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, Virtualbox, Vmware, Vsphere 등)
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
- 분석 내용 확인