티스토리 뷰


최근 "분석" 분야의 트렌드는 "자동화" !!

아무래도 공격 자체가 자동화되기 시작하면서, 도저히 수동 분석으로는 넘쳐나는 악성코드의 분석업무를 수행하기 버겁기 때문일 것 입니다. 때마침 이러한 기술적 요구사항을 "가상화" 기술이 충분히 서포트할 수 있게 된 것도 그 이유일 것 같습니다. 



오늘은 지인을 통해 접하게 된 괜찮은 자동화된 악성코드 분석을 위한 오픈소스 프로젝트를 하나 소개하고자 합니다. 

   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

   .---.                       _
  /   6_6                     | |
  \_  (__\    ____ _   _  ____| |  _ ___   ___
  //   \\    / ___) | | |/ ___) |_/ ) _ \ / _ \
 ((     ))  ( (___| |_| ( (___|  _ ( |_| | |_| |
==""===""==  \____)____/ \____)_| \_)___/ \___/
    |||            
www.cuckoobox.org
     |

[2011-02-11 12:20:16] [Start Up] Starting Cuckoo TCP Server...
[2011-02-11 12:20:16] [Start Up] Cuckoo TCP Server running on address XXX.XXX.XXX.XXX and port 7777



------- 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가 실행될 때, 분석할 악성코드가 서버에서 클라이언트로 복사되고 실행되며, 그 분석결과를 다시 서버로 복사하는 과정을 수행됩니다. 

 

 
댓글
  • 프로필사진 비밀댓글입니다 2011.03.16 19:15
  • 프로필사진 BlogIcon redhidden 안녕하세요.. 재훈님..
    최근에 시급한 업무가 겹치는 바람에 블로그운영을 할 여력이 없었네요.. 부끄부끄..
    도움이 되시는 자료가 있었다니 우선 감사드립니다.
    네.. 저는 지금 근무중~ 입니다..... 궁금하신 점은 redhidden00@gmail.com으로 보내주시고 댓글도 남겨주시면 감사하겠습니다... 시급하게 답변이 필요하신 질문은 아니시지요?? 제가 요번주말부터 출장일정이 있어서...
    그럼 메일로 뵈어요~~~
    감사합니다.
    2011.03.17 16:34 신고
  • 프로필사진 ck 죄송하지만 수정하신 소스좀 받을수 있을까요???

    리눅스에서 실행 하려니 잘 안되서요
    2012.04.19 15:41 신고
댓글쓰기 폼