2020-09-29 05:25 (화)
[전문가 기고] 커스텀 플레이북 이용해 BAS를 실제 해커처럼 사용하기
상태바
[전문가 기고] 커스텀 플레이북 이용해 BAS를 실제 해커처럼 사용하기
  • 길민권 기자
  • 승인 2020.08.10 14:24
이 기사를 공유합니다

BAS(Breach and Attack simulation)는 작년 1월경부터 국내에 다양한 채널을 통해서 소개되기 시작했다. 현재 국내 메이저 은행과 가상화폐 회사에서 도입을 했고, 복수의 메이저 은행에서 올해, 내년에 도입을 준비하고 있다.

이번 기고에서는 BAS 제품중 가장 인지도가 높은 세이프브리치(SafeBreach)의 Custom Playbook(이하, 커스텀 플레이북) 기능을 이용해 실제 해커처럼 다양한 취약점 점검을 수행할 수 있는 방식을 소개하고자 한다. 이는 특정 시스템에 대한 취약점 점검을 직접 수행할 수 있는 방법으로, 실제 해킹툴을 그대로 이용해 원하는 시스템 및 서비스에 직접적인 형태의 공격 시나리오를 수행할 수 있게 해준다.

플레이북은 공격 시뮬레이션에 사용되는 테스트 항목에 대한 정보 셋을 말한다. 때문에, 플레이북의 개수는 시뮬레이션 개수를 의미한다. 따라서 시뮬레이션 개수와 플레이북의 업데이트 주기 및 최신성은 BAS 제품 평가의 중요한 기준이 될 수밖에 없다.

벤더사에서 제공되는 플레이북은 실제 공격을 하는 코드가 아니다. 실제와 흡사하며 시그너처를 포함한 시뮬레이션용 코드다. 따라서 보안솔루션 탐지 테스트는 가능하지만, 설치된 시스템과 네트워크에 어떠한 악영향도 미치지 않는다.

‘커스텀 플레이북’은 말 그대로 사용자가 직접 작성해 사용하는 플레이북이다. 커스텀 플레이북의 가장 큰 특징은 실제와 동일한 명령을 만들 수 있다는 점이다. 예를 들어, 포트스캔, 계정정보 덤프나 윈도우 시스템 명령인 ipconfig.exe 명령 등을 특정 시뮬레이터에서 직접 수행시킬 수 있고, 그 결과를 대시보드에서 확인할 수 있게 해준다. 때문에, 악성코드도 실제로 실행시킬 수 있는데, 랜섬웨어 같은 경우 컴퓨터가 실제 감염이 되는 상황을 만들 수 있다.


커스텀플레이북을 만드는 방법은 간단하며 두 가지 방법을 제공하고 있다.

1) PCAP 파일을 이용하는 방법

2) Python 코드로 만드는 방법

PCAP을 이용하는 방법은 다음과 같다.

1) 악의적인 통신 내역을 PCAP 파일로 확보한다.

2) PCAP 파일을 업로드한다. (아래 그림에서 PCAP File 부분)

3) 업로드된 파일은 헤더와 데이터 영역을 파싱한다. 이때, 아래 그림의 공격자와타깃의 IP를 기준으로 공격자와 타깃으로 패킷을 구분한다.

4) 테스트할 시뮬레이터(공격자와 타깃)를 지정하면 자동으로 해당 시뮬레이터간에 PCAP 파일의 내용을 재연한다.

PCAP은 네트워크 통신과정이기 때문에, 정보유출/내부침투/측면 공격 등을 재연할 수 있다.

이러한 테스트 방법은 실제 공격 패킷을 그대로 송수신하기 때문에, 네트워크 구간에 있는 보안 솔루션들이 반드시 이를 탐지 및 차단해야 하는데, 이를 테스트할 수 있다. 예를 들면, 그룹사중 한곳에서 비정상 트래픽이 감지되었는데, 확인 결과 악의적인 공격 패킷이었을 경우, 해당 패킷이 다른 그룹사에서도 탐지가 가능한지 확인을 해볼 수 있다는 것이다.

후자인 Python(파이썬) 코드를 이용하는 방법은 세이프브리치에서 제공하는 샘플코드(파이썬)를 이용해 코드를 생성하게 되는데, 클라이언트/서버 코드 및 호스트 단독 공격을 재연할 수 있다.

실제로 사용되는 악성코드 및 해킹도구 또는 테스트용 프로그램(mimikatz, sqlmap, ipconfig 등)을 인코딩해 기존 샘플코드에 적용하면 된다. 단수, 복수개의 파일뿐만 아니라 디렉토리를 포함한 파일구조도 가능하다.

실행하고자 하는 명령을 base64로 인코딩한 후에 아래 코드에 추가하면 실제 시뮬레이터에서 아래 코드를 내려받은 후에 실행과정에서 base64로 디코딩한 후에 실행한다. 해커가 실제 공격 명령을 내린 것과 같은 효과를 나타낸다. (아래 코드는 샘플이 제공이 되며, 샘플에서 일부 내용만 수정하면 제작이 가능하다. 제작 완료후 파이썬 코드를 그대로 업로드하면 된다.)

그리고 공격을 실행한 결과를 화면에 출력해 준다. 아래 화면은 시뮬레이터에 ipconfig.exe 명령을 내려 수행하도록 한 후에 결과를 받아서 대시보드에 출력한 화면이다. (참고로, 한글은 인코딩 문제로 출력되지 않는다.)


BAS는 네트워크 존에 설치된 시뮬레이터간의 시뮬레이션이다. 따라서, 특정 시스템이나, 특정 대상에 대한 취약점 점검을 수행하지는 않는다. 하지만 세이프브리치의 커스텀 플레이북(Custom Playbook)을 이용하면 특정 시스템 또는 서비스에 대한 취약점 점검도 수행이 가능하다.

1) 특정 시뮬레이터에서 mimikatz를 이용해 계정정보 유출하기

2) 악성코드에 감염된 PC에서 전파를 위한 전체 포트스캐닝 또는 SMB 포트 스캐닝

3) PC에 실제 랜섬웨어나 악성코드 감염시키기

4) 외부의 공격자가 내부망에 침투후 특정 웹서버로 SQL인젝션 공격해 정보 유출하기

5) POC 코드를 실제 실행하여 취약점 존재 여부 확인하기

6) 네트워크 패킷 덤프하기

7) 그 외 STDOUT을 출력하는 모든 명령(Command, Console 창에서 출력값이 있는 명령) 수행 가능함 (GUI 프로그램의 경우 일부 실행은 가능하나 대시보드에서는 결과를 확인할 수 없음)

커스텀 플레이북은 고객사에 특화된 내·외부 공격을 테스트하거나 특정 시나리오를 재연하는데 탁월하다. 또한 시나리오를 사이버 킬체인의 단계로 구분해 커스텀 플레이북에 적용하도록 하고 있어 그 결과를 통해서 특정 공격이 일어날 경우 어떤 단계에서 취약한지, 반대로 어떤 상황에서 잘 막아낼 수 있는지를 고객이 원하는 시나리오를 기반으로 확인할 수 있다.

[글. 황석훈 타이거팀 대표 / h9430@tigerteam.kr]

★정보보안 대표 미디어 데일리시큐!★


관련기사