4. Configure
운영하는 환경에 따라 다르게 설정해야 하는 부분이다.
4.1. Kind of Cuckoo Configure Files
Cuckoo의 설정은 cuckoo/conf 에 위치해 있다. Cuckoo를 운영하기 위한 네 가지의 설정 파일과, 가상머신을 운영하기 위한 네 가지의 설정 파일, 그리고 Volatility를 운영하기 위한 한 가지의 설정파일이 존재한다. Volatility는 운영자의 선택에 따라 운영되고, 기본 운영 설정 파일에서 부수적으로 함께 설정해야한다.
기본 운영 설정 파일
- auxiliary.conf
- cuckoo.conf
- processing.conf
- reporting.conf
가상 머신 운영 설정 파일
- esx.conf
- kvm.conf
- virtualbox.conf
- vmware.conf
Volatility 설정 파일
- memory.conf
- tcpdump를 사용할 것인가?
- tcpdump의 위치는 어디인가?
- tcpdump를 사용할 인터페이스는 무엇인가?
4.1.2. cuckoo.conf
Cuckoo의 운영 설정을 담당한다. 다음과 같은 20 가지의 질문에 답하면 된다.
[Cuckoo]
- Cuckoo의 버전을 확인할 것인가?
- 분석에 사용된 원본을 삭제할 것인가?
- 분석 후 나오는 복사본을 삭제할 것인가?
- 가상 머신은 어떤 종류인가?
- 메모리 덤프를 사용할 것인가?
- 운영에 문제가 생긴 Sanbox를 자동 복구 할 것인가?
- 분석 결과를 받아 볼 것인가?
- 최대 분석 개수는 몇개인가?
- 분석 할 파일의 최대 용량은 얼마로 제한할 것인가?
[ResultServer]
- 분석 결과를 받을 서버의 IP 주소는 무엇인가?
- 분석 결과를 받을 서버의 포트 번호는 무엇인가?
- CSV 포맷을 사용할 것인가?
- 가상 머신으로 부터 업로드 받을 파일의 용량은 얼마로 제한할 것인가?
[Processing]
- 분석하는데 생기는 추가적인 파일들의 크기는 얼마로 제한 할 것인가?
- DNS 조회를 사용할 것인가?
[Database]
- 데이터베이스 주소는 어떻게 되는가?
- 데이터베이스 접근 실패(timeout)은 몇초로 할 것인가?
[Timeouts]
- 기본 분석 시간은 몇초로 할 것인가?
- 분석 실패 시간은 몇초로 할 것인가?
- 가상머신 상태를 변경하는 시간을 최대 몇초로 할 것인가?
기본 설정을 하는데 중요한 부분은 다음 두가지 이다. 먼저 Cuckoo의 버전을 확인하는 부분을 "off"로 설정한다. Cuckoo는 새로운 기능이 추가 될 때 마다 즉각적인 운영이 불가능하고 새로운 모듈을 설치하는 작업을 해야하기 때문이다. 결과를 받을 서버는 Cuckoo를 실행하는 Operator의 IP주소를 입력하면 된다. 이 주소는 127.0.0.1, 0.0.0.0, localhost와 같이 입력하는 것이 아닌 정확한 IP를 입력해야 한다.
4.1.3. processing.conf
processing.conf 는 분석에 사용되는 모듈의 기능을 on/off 하는 설정 파일이다. virustotal API 인증 키는 개인의 것으로 바꾸어도 되지만, 그대로 사용해도 무방하다.
4.1.4. reporting.conf
분석되어 나오는 결과를 어떠한 형태로 받을 것인가에 대한 설정 파일이다. 기본적으로 jsondump와 html 형태가 활성화 되어 있다. html 형태가 활성화 되어 있으면 웹을 통해 분석 결과를 받을 수 있다. 그 외 mmdef, maec40, mongodb, hpfclient 형태를 활성화/비활성화 가 가능하다.
4.1.5. virtualbox.conf
가상 소프트웨어는 virtualbox를 사용하기 때문에 해당 설정 파일을 설정한다. 복수개의 sandbox를 운영하기 위해서는 이 설정 파일에서 설정을 한다. 설정은 다음과 같이 6 개의 질문에 답을 하면 된다.
[Virtualbox]
- 가상 머신 운영 모드는 어떤 것인가?
- 가상 머신에 명령하기 위한 실행파일의 위치는 어디인가?
- 가상 머신 설정 ID가 무엇인가?
[설정 ID]
- 가상 머신의 이름은 무엇인가?
- 가상 머신에 설치된 운영체제 플랫폼은 무엇인가?
- 가상 머신의 IP는 무엇인가?
5. Operating Cuckoo
cuckoo 디렉터리에 cuckoo.py를 이용하여 Cuckoo를 실행 한다. 정상적으로 실행된다면, 실행하기에 앞서 cuckoo를 제작한 팀에서 배포하는 yara 외 다양한 시그니처를 업데이트 할 필요가 있다.
5.1. Updating Signatures
시그니처 업데이트는 cuckoo/utils 디렉터리의 community.py를 이용하여 업데이트 한다. community.py는 Cuckoo Community Repository 를 통해 시그니처 뿐만 아니라 Custom한 모듈들을 다운로드 받는 기능을 한다.
~/cuckoo/utils$ ./community.py -s -f
이미 시그니처 업데이트를 완료 했기 때문에 위와 같은 결과를 받았다.
5.2. Execute Cuckoo.py
Cuckoo를 실행 할 때 가상머신의 설정을 root 권한으로 했기 때문에 sudo 명령과 함께 실행한다. 그리고 운영하는데 있어 발생하는 에러를 해결하기 위해 디버그 모드로 실행했다.
~/cuckoo$ sudo ./cuckoo.py -d
각종 모듈이 정상적으로 Import 되었는지 확인을 하였고, 분석에 사용된 Sandbox가 정상적으로 로드 되었는지 확인 할 수 있다. 남은 것은 악성코드를 분석하고 결과를 받는 데에서 발생하는 에러를 Log를 통해 해결 하면 된다.
5.3. Execute web.py
cuckoo/utils 디렉터리에 web.py를 이용하여 간편하게 웹을 통해 악성코드 분석을 실시할 수 있다. -H 명령을 통해 Host IP를 설정하고 -p 명령을 통해 포트 번호를 설정 할 수 있다.
~/cuckoo/utils$ ./web.py -h
~/cuckoo/utils$ ./web.py
이제 웹으로 접근하면 다음과 같이 볼 수 있다.
- File to upload : 업로드 할 파일
- Package to use : 업로드 한 파일의 패키지
- Options : 옵션
- Timeout : 종료 시간 설정
- Priority : 분석의 우선순위
- Machine : 분석할 Sandbox
- Capture Memory : 메모리 캡쳐 사용 유무
Cuckoo는 다양한 패키지와 옵션을 사용할 수 있기 때문에 Analysis Packages 페이지를 참조하면 된다.
앞의 내용
- How to install Cuckoo 1.0 with Tor Network #01
- How to install Cuckoo 1.0 with Tor Network #02
'Information Security > OpenSource' 카테고리의 다른 글
Cuckoo Sandbox 1.1 Release (0) | 2014.04.09 |
---|---|
Using Django within Cuckoo Sandbox (0) | 2014.04.09 |
How to install Cuckoo 1.0 with Tor Network #02 (0) | 2014.02.16 |
How to install Cuckoo 1.0 with Tor Network #01 (15) | 2014.02.15 |
YARA1.7 on Kali Linux with GLIBC Error Report (0) | 2014.02.08 |