1) VB2016 paper: Open source malware lab(http://kkn1220.tistory.com/115)

2) Thug (http://kkn1220.tistory.com/117)

3) Bro (http://kkn1220.tistory.com/118)

4) Volatility (http://kkn1220.tistory.com/119)

5) 쿠쿠 샌드박스 설치 내용: Kisa 아카데미 보안 샌드박스 활용 실무 교육 (https://academy.kisa.or.kr)


Cuckoo Sandbox


1. 개념

- Sandboxing* 기술을 적용하여 의심스러운 파일의 자동 분석을 가능하게 하는 오픈소스 소프트웨어

-> 악성코드 분석을 실행할 수 있는 도구!


 Sandboxing?
신뢰하지 못하는 프로그램 또는 파일을 격리 된 환경에서 실행하고 그것이 무엇을 하는지에 대한 정보를 얻음

Malware Sandboxing은 악성 파일을 동적 분석 할 수 있는 실질적인 어플리케이션

          (파일의 정적 분석 뿐만 아니라실행 및 모니터링까지 함)


2. Cuckoo Sandbox 구조

Cuckoo Host

  : Cuckoo Guest가 악성파일을 분석할 수 있도록 명령을 내리며분석 후 나온 결과를 파일로 저장

Analysis Guest

  : Cuckoo Host와 통신을 하며명령을 받아 악성 파일에 대한 분석을 진행

Virtual Network

  : Cuckoo Host의 명령을 받아실제 분석을 진행할 Cuckoo Guest , Virtual Machine을 생성


3. 분석 환경

- 분석 가능 파일

-> 일반적인 윈도우 실행파일, DLL파일, PDF/MS office, HTML, PHP, ZIP 등 대부분 모든 것들

- 분석 가능 환경

-> 윈도우, Mac, Debian 계열의 Linux 등


4. 구성도


1) Auxiliary Module

총 4가지의 엔진으로 구성

a. MITM

       - HTTP 및 HTTPS 트래픽 캡처

       감시할 대상 port를 지정하여 동작

b. Reboot

       악성코드의 완전한 분석을 위한 분석 환경 clear 및 분석이 완료된 파일의 재분석을 진행할 때 사용

c. Services

       기본적으로 사용하는 가상 머신 외에 추가로 구축한 가상머신에서 새로운 분석을 진행하기 위한 기능
        (
기본 제공 환경: KVM, VirtualboxVmwareVsphere )

d. Sniffer

       Tcpdump 모듈을 이용해서 네트워크 트래픽 캡처


2) Machinery Module

- Machinery를 설정하는 cuckoo.conf 파일을 읽고설정 되어 있는 가상 머신의 실행과 종료를 주관


3) Processing Module

 23개의 모듈을 통해 가상 환경에서 생성된 결과를 분석하고이후 진행될 Signature, Reporting 모듈에서 사용되는 데이터 정의


4) Signatures Module

안드로이드윈도우리눅스 등의 OS에 대한 시그니처를 제공하며총 약 360개의 행위 패턴 제공

- Processing Module에서 분석한 내용을 기반으로 행위 패턴 매칭 수행

5) Reporting Module

- Processing, Signatures module들을 거쳐 나온 데이터를 사용자가 보기 쉽도록 가공하는 기능 수행


5. 설치(Ubuntu 16.04 기준)


1) Python 기본 모듈 설치

$ sudo apt install python python-pip python-dev libffi-dev libssl-dev libxml2-dev libxslt1-dev libjpeg-dev mongodb git

$sudo apt install build-essential libffi-dev python python-dev python-pip automake autoconf libtool

$sudo BUILD_LIB=1 pip install ssdeep     //ssdeep  A,B라는 악성코드가 있을 때 연관성 확인

$sudo apt install libfuzzy-dev

$sudo pip install pydeep    //$pip list  설치된 항목 보기


2) TCP dump 모듈 설치

$sudo apt install libcap2-bin

$sudo apt install tcpdump

$sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump

$getcap /usr/sbin/tcpdump


3) Yara 설치

$sudo apt install automake libtool make gcc

$wget https://github.com/VirusTotal/yara/archive/v3.5.0.tar.gz

$tar -zxf v3.5.0.tar.gz

$cd yara-3.5.0

$./bootstrap.sh

$./configure

$make

$sudo make install

$cd ~

$sudo pip install yara-python


4) Cuckoo 설치 (시간이 좀 걸림)

$git clone https://github.com/cuckoosandbox/cuckoo.gitndbox/cuckoo.git

$cd cuckoo

$sudo pip install -r requirements.txt

$cd ~


5) Virtualbox 설치 (무료니깐~)

$wget http://security.ubuntu.com/ubuntu/pool/main/libv/libvpx/libvpx1_1.0.0-1_amd64.deb

$sudo dpkg -i libvpx1_1.0.0-1_amd64.deb       //14.04에서는 안됨일단 무시

$wget http://download.virtualbox.org/virtualbox/5.1.10/virtualbox-5.1_5.1.10-112026~Ubuntu~trusty_amd64.deb

$sudo apt-get install libsdl1.2debian

$sudo dpkg -i virtualbox-5.1_5.1.10-112026~Ubuntu~trusty_amd64.deb

$sudo wget http://download.virtualbox.org/virtualbox/5.1.10/Oracle_VM_VirtualBox_Extension_Pack-5.1.10-112026.vbox-extpack

$VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.1.10-112026.vbox-extpack

$sudo /sbin/vboxconfig

가상머신 네트워크설정

$vboxmanage hostonlyif create

$vboxmanage hostonlyif ipconfig vboxnet0 -ip 192.168.56.1

$ifconfig   //vboxnet0이 실제로 설정되어있는지 호스트(ubuntu)에서 확인해주면됨 (중요)

$virtualbox  //virtualbox가 실행됨


6) Guest 만들기

cuckoo1로 하고 디폴트 설치(win 32bit)


- 설정 저장소 시디 비어있음에 광학디스크 이미지 추가

네트워크를 nat에서 호스트전용으로 바꿔주기 (이전 고정 ip지정해둔  vboxnet0)

오디오 사용하기 해제 (물리적공간 낭비 해소 및 실제로 오디오 쓰지도 않아서)

공유폴더 설정하기

- ubuntu에서 $mkdir ~/backup 

- 위의 경로 폴더로 공유폴더 설정하기(virtualbox- auto mount 설정, read-only는 해제)

가상머신에 PIL파일과 python설치파일이 필요하기 때문에 백업폴더를 생성한 것임

윈도우 설치하기

- 이름은 cuckoo1,  암호는 설정안함, 자동보호 없앰

PIL, agent.py, python2.7 설치파일 backup으로 복사

가상 윈도우에서 공유폴더는 게스트확장을 사용할 수 없음으로 되어있음.

 VBoxWindowsAdditions-x86 설치. (공유폴더 위해)


제어판-사용자계정 및 가족보호- 사용자 계정- 사용자계정컨트롤설정변경-bar를 가장 아래로 설정 -> reboot

공유폴더 설정하기

-ubuntu에 설치된 cuckoo 폴더 내 agent.py share폴더로 복사 

($cp ~/cuckoo/agent/agent.py <share_folder_path>

- PIL, python은 인터넷에서 다운로드..


파이썬이랑, PIL(Python Image Library) 설치 
  (default 설치파이썬의 경우 설치과정에서 path설정해두면 별도 설정 필요x)

파이썬 폴더안에 agent.py 복사(c:\Python27)

- Agent 실행 (방화벽 나오면 허용)

스냅샷찍기(핵심)

cuckoo1  반드시 통일시켜줘야됨  (변경시 config파일 설정 필요)

- Machine tab에 take snapshot



7) Cuckoo 환경설정 (ubuntu에서 설정)

$cd ~/cuckoo/conf/

$sudo vi cuckoo.conf

  version_check=off로 변경

$sudo vi vurtualbox.conf

   cuckoo1으로 머신이 매칭 된 것 확인 가능 (3개가 같은지 확인하면 됨)

resultserver_ip 주석 해제resultserver_port  주석 해제

- $vi reporting.conf

  mongodb enable


8) Signature Download


$cd ~/cuckoo

$./utils/community.py waf  //약 350개정도의 패턴을 다운받을 수 있음   //모듈폴더-시그니쳐안에 존재함


9) 실행

$cd ~/cuckoo

$./cuckoo.py  (윈도우 종료되는게 정상 행동)

- $cd ~/cuckoo/web

- $./manage.py runserver 0.0.0.0:8000

- Web브라우저 실행 후 localhost:8000 입력 (아래와 같이 열리면 정상적으로 설치 완료)


- File upload


- 분석 내용 확인



+ Recent posts