최근 "분석" 분야의 트렌드는 "자동화" !!
아무래도 공격 자체가 자동화되기 시작하면서, 도저히 수동 분석으로는 넘쳐나는 악성코드의 분석업무를 수행하기 버겁기 때문일 것 입니다. 때마침 이러한 기술적 요구사항을 "가상화" 기술이 충분히 서포트할 수 있게 된 것도 그 이유일 것 같습니다.
오늘은 지인을 통해 접하게 된 괜찮은 자동화된 악성코드 분석을 위한 오픈소스 프로젝트를 하나 소개하고자 합니다.
http://www.cuckoobox.org/index.php
"Cuckoo" 라는 이름은 알을 낳으면 자신의 둥지가 아닌 다른 새의 둥지에 넣어서 키우는 새의 이름으로부터 유래되었다고 합니다.. 본 프로젝트에서 사용하는 DLL Injection 기술 때문에 이런 이름을 생각해 냈다고 하는 군요.. ^^;;
- USER : 분석명령과 샘플전달
- Control Server : 중앙 컨트롤 서버, Linux 환경, Python Script (소스 수정후 저는 Windows 환경에서 테스트함)
- VIRTUAL BOX : 샘플 수행과 분석, Windows 환경, AutoIt Script
------- Control Server ---------------
1) 중앙의 컨트롤 서버는 크게 컨트롤 관련폴더와 Virtual Box와의 통신에 필요한 shares 폴더로 구성되어 있습니다. 다시, shares 폴더는 가상환경 구축에 필요한 setup 폴더와 가상환경에 파일을 전달하고 그 결과를 받기 위한 [Virtual Box 주소] 폴더로 구성되어 있습니다. 따라서, 해당 폴더는 사용하는 가상환경의 숫자만큼 존재하게 되겠죠.....
특히, cuckoo는 setup 폴더에 가상환경에 필요한 파일들을 패키지 형태로 가지고 있어서 쉽게 환경 구축이 가능하다는 장점을 가진 것 같습니다.
2) 모든 폴더구성이 완료되었으며, 서버주소 및 폴더, 가상화 설정등 Control.py 설정파일을 적절히 변경한 후 컨트롤 서버를 실행합니다.
>python core\cuckoo.py
.---. _ [2011-02-11 12:20:16] [Start Up] Starting Cuckoo TCP Server... |
------- USER ---------------
3) 사용자는 컨트롤서버에 접속(7777포트)하여 다음과 같은 분석명령을 내리게 됩니다.
[로컬샘플분석] : START|LOCAL:[파일패스]
[원격샘플분석] : START|REMOTE:http://[URL경로]
4) 서버가 명령을 받게 되면, 악성코드 분석을 위한 Virtual Box Pool 중에서 하나를 해당 악성파일에 할당하게 됩니다. 파일은 분석을 위해서, shares\[할당된 VirtualBox 주소]\bin 디렉토리 밑에 [MD5].[exe or pdf] 로 복사되고, 가상환경에서 해당 악성파일을 실행하기 위한 AutoIt3 스크립트파일이 shares\[할당된 VirtualBox 주소]\run.au3 에 생성됩니다.
현재는 파일형식이 "PE32/MS-DOS" 와 "PDF" 만을 판단하고 있습니다.
------- Virutal Box Client ---------------
5) 우선 가상환경(virtual box)에서는 AutoIt 스크립트를 설치하고, 서버에 존재하는 cuckoo_init.au3 만을 실행하면 됩니다. cuckoo_init.au3 는 주기적으로 컨트롤 서버에 접속해서 cuckoo_run.au3를 실행하도록 설계되어 있습니다. cuckoo_run.au3 는 서버의 setup 폴더를 복사해서 클라이언트 분석 환경을 구축하고, 동적으로 생성된 run.au3를 실행시킵니다.
분석 요청된 파일을 실행할 수 있도록 동적으로 생성되는 run.au3가 존재한다는 것은 해당 가상환경에 분석이 요구되었다는 것을 의미합니다. 따라서, run.au3가 실행될 때, 분석할 악성코드가 서버에서 클라이언트로 복사되고 실행되며, 그 분석결과를 다시 서버로 복사하는 과정을 수행됩니다.
[원격샘플분석] : START|REMOTE:http://[URL경로]
4) 서버가 명령을 받게 되면, 악성코드 분석을 위한 Virtual Box Pool 중에서 하나를 해당 악성파일에 할당하게 됩니다. 파일은 분석을 위해서, shares\[할당된 VirtualBox 주소]\bin 디렉토리 밑에 [MD5].[exe or pdf] 로 복사되고, 가상환경에서 해당 악성파일을 실행하기 위한 AutoIt3 스크립트파일이 shares\[할당된 VirtualBox 주소]\run.au3 에 생성됩니다.
현재는 파일형식이 "PE32/MS-DOS" 와 "PDF" 만을 판단하고 있습니다.
------- Virutal Box Client ---------------
5) 우선 가상환경(virtual box)에서는 AutoIt 스크립트를 설치하고, 서버에 존재하는 cuckoo_init.au3 만을 실행하면 됩니다. cuckoo_init.au3 는 주기적으로 컨트롤 서버에 접속해서 cuckoo_run.au3를 실행하도록 설계되어 있습니다. cuckoo_run.au3 는 서버의 setup 폴더를 복사해서 클라이언트 분석 환경을 구축하고, 동적으로 생성된 run.au3를 실행시킵니다.
분석 요청된 파일을 실행할 수 있도록 동적으로 생성되는 run.au3가 존재한다는 것은 해당 가상환경에 분석이 요구되었다는 것을 의미합니다. 따라서, run.au3가 실행될 때, 분석할 악성코드가 서버에서 클라이언트로 복사되고 실행되며, 그 분석결과를 다시 서버로 복사하는 과정을 수행됩니다.
'사소한거짓말' 카테고리의 다른 글
vSphere 4 - x64 Guest OS 설치시 오류 해결 (0) | 2011.07.18 |
---|---|
CVE-2010-3970 thumbnail 취약점 공격사례 (0) | 2011.02.25 |
[시스템] Windows 7 8GB를 인식해?? (0) | 2011.01.13 |
[Metasploit] Proxy 사용시 metasploit 업데이트 문제 (0) | 2011.01.12 |
[난독화풀기] MS10-018 & Dadong's JSXX 코드풀기 (2) | 2011.01.12 |