모의해킹(1)

newbie hacker·2022년 5월 22일

모의해킹

목록 보기
1/1

대부분의 사람들은 위와 같은 모습으로 해킹하는 모습을 떠올리곤 한다. 해킹이라는 단어는 이미 드라마나 영화로 인해 미화된 형태로 각인되었으며 누구는 경외하는 눈빛으로 또 다른 누구는 멸시하는 눈빛으로 해커를 바라보곤한다.


하지만 실제로 대부분의 기업에서는 위와 같은 형태의 툴을 사용하여 취약점을 찾는다. (대부분의 기업은 전문적인 해커를 고용하지 않고 있다.) 아니면 다른 전문적인 해커들이 속해있는 컨설팅 회사에 외주를 맡긴다는 식의 형태로 모의해킹을 진행하고 있다.

취약점?

기본적으로 위키피디아에서 제공하는 정의에 따르면

Vulnerabilities are flaws in a computer system that weaken the overall security of the device/system.

즉, 시스템의 보안을 약화시키는 시스템의 결함을 말한다. 시스템 결함의 예를 하나 들어보면

 a = int(input("first number : ")
 b = int(input("second number : ")
 print(a/b)

위의 코드에서 a와 b에 숫자를 입력받고 a를 b로 나누는 값을 출력하는 간단한 코드이다. 하지만 여기서는 큰 문제점이 하나 있다. b의 값이 검증되지 않고 있기 때문에 0을 입력 받을 시 에러가 발생하는 것이다.

이런 코드들의 버그를 피할 수 있는 방법중 가장 간단한 방법은 '테스트'를 진행하는 것이다. 테스트는 기능 테스트, 보안 테스트, 가용성, 호환성 등 다양한 방식으로 테스트가 진행되는데, 보안 테스트에서 취약점을 찾고 조치가 진행된다.

보안 테스트?

취약점을 찾는 보안테스트의 환경은 크게 3가지로 나눌 수 있다.

  1. 블랙박스(black-box) 테스트
  2. 그레이박스(gray-box) 테스트
  3. 화이트박스(white-box) 테스트

블랙박스 테스트의 경우에는 소스코드, 내부구조, 구축 세부사항 등의 정보를 알지 못한채 소프트웨어 어플리케이션의 취약점을 진단하는 테스트 방식이다. 예를 들어 도메인 주소의 정보만 가진 채 모의해킹을 진행한다면 이는 블랙박스 모의해킹이 되는 것이다.

화이트박스 테스트는 블랙박스 테스트와 반대로 아키텍쳐와 소스코드 등의 정보를 모두 알고 진행이 되기때문에 접근 방식이 다르다.

예를 들어 위의 코드에서 출력하는 부분의 테스트를 진행해야 한다면 블랙박스 테스트의 경우에는 직접 프로그램을 실행시켜 두개의 값을 입력하며 테스트를 해야하고, 화이트박스 테스트의 경우에는 출력하는 부분(print)과 입력받는 부분(input)등의 소스코드를 보며 테스트를 진행하게 된다.

그렇다면 회사에 들어간다면 우리는 어떠한 방식으로 테스트를 진행하게될까?
위의 물음에 대해서는 다음편에 계속 작성하겠습니다.

1개의 댓글

comment-user-thumbnail
2024년 12월 1일

안녕하세요~ 혹시 ld플레이어 앱 루팅우회, 애뮬레이터 우회감지를 피하고싶은데 제가 개발자가 아닌 일반인입니다. 그래서 의뢰가 가능한가해서요~
제카톡 아이디 : yit059

답글 달기