3.3. Preparing the Guest OS
3.3.1. Creation of the Virtual Machine and Installing Windows and Vulnerable Applications
가상머신 생성할 때 중요한 점은 "악성코드가 활발히 활동하기에 있어 충분한 환경인가?" 이다. 물리적 스펙으로 인해 악성코드의 실행에 있어 좋은 퍼포먼스가 나오지 않는다면 Cuckoo를 운영할 필요가 없기 때문이다. (Cuckoo가 아닌 선택이라면 Capture-BAT이나, 꼭 Cuckoo를 운영하고 싶다면 듀얼 부팅과 같은 다른 대안이 있다.) 대개 Sandbox들의 메모리는 512MB, Ubuntu는 2GB로 코어는 각각 1개와 4개로 주는 것을 권장한다.
윈도우를 Sandbox로 사용할 때 취약하여 악성코드가 활동하기에 원활하도록 추가적인 응용 프로그램들이 설치되지 않은 순정(?) 버전을 권장한다. 만약 바이러스를 테스트 하기 위해서는 숙주가 되는 취약한 응용프로그램들을 설치해야 하며, Drive-By Download 를 위해서는 관련된 취약한 응용프로그램을 설치하여 환경을 만든다.
Java, IE, Flash Player의 취약한 응용프로그램을 구하기 위해서 검색을 한다. 대개 Oldapps 사이트를 통해서 구하며, Cuckoo 1.0 버전부터는 Sandbox를 선택하여 악성코드를 동작 시킬 수 있기 때문에, 단계별 취약한 환경을 구축 할 수 있어 미리 수집해 두는 것도 나쁘지 않을 것 같다.
관리하기에 원활하고 "공유 폴더 설정"을 위해서 Guest Additions를 설치한다. 설정한 공유 폴더는 Host OS의 Cuckoo 디렉토리로 한다.
3.3.3. Installing Python, Python-PIL
Cuckoo는 Analyzer 디렉터리의 python 스크립트를 Guest OS로 복사하여 실행함으로써 악성코드의 동작들을 추적한다. 또한 Sandbox를 스크린 샷 찍기 위해서 PIL (Python Image Library)를 사용한다. 그래서 Guest OS에 Guest OS의 플랫폼에 맞는 Python과 Python-PIL을 다운로드 받아 설치한다.
Python-PIL - http://www.pythonware.com/products/pil/
3.3.4. Disabling Windows Firewall and Automatic Updates
윈도우 방화벽은 원활한 통신과 제어를 하는데 방해가 될 수 있기에 사용하지 않는다. 윈도우 업데이트는 보안 취약점을 패치하기 때문에 사용하지 않는다.
3.3.5. Configuring Network
Cuckoo는 고정된 IP주소를 통해 Operator와 Sandbox들간의 통신을 한다. Tor Routing을 통해 만든 가상의 어댑터를 사용하기 위해 Virtualbox 네트워크 설정을 통해 Bridge Adapter 모드를 사용한다. 꼭 Tor를 통한 익명성을 유지할 필요 없이 환경을 구성해도 된다. Tor 없이 환경을 구성할때도 Bridge Adapter를 사용하여 고정된 IP를 할당하는 동일한 작업을 수행해야 한다.
Bridge Adapter 모드에서 가상의 어댑터를 선택한다. 가상의 어댑터의 이름은 vnet0 으로 설정해 두었으며 사용할 수 있는 IP 대역은 172.16.0.0/24 이다.
가상의 어댑터가 사용하는 IP 대역에서 외우기 쉬운 IP를 선택하여 고정시킨다. 첫 번째 Sandbox이기 때문에 101번으로 고정시켰다. DNS와 보조 DNS는 생각나는대로 구글 DNS로 설정했다.
제대로 통신이 된다면 다음과 같이 웹 서버에 접근하는 IP가 변조된 것을 확인하면 된다.
3.3.6. Installing Cuckoo Agent
Cuckoo의 Agent를 설치하는 것은 쉽다. 설정한 공유폴더에서 cuckoo/agent 디렉터리의 agent.py만 복사해서 실행하면 된다.
Agent.py를 Agent.pyw로 확장자를 변경해서 쓰면 백그라운드에서 동작하게 된다. 그리고 Python-PIL 을 통해 스크린샷을 찍기 때문에 Sysinternals의 Process Monitor나 Moo0의 File Monitor 같은 프로그램을 함께 구동 시켜 두는 것도 괜찮은 방법이다. Operator와 Sandbox 간의 원활한 통신을 하는지 확인하기 위해 agent를 백그라운드에서 동작시키지 않았다.
아래 그림은 agent.py를 실행한 모습이다.
3.3.7. Saving the Virtual Machine
Cuckoo 문서에서는 명령어를 통한 가상 머신을 제어하도록 하고 있지만 괜스레 가상머신 이름과 오타 그리고 긴 장문의 영문 타이핑 보다는 마우스로 해결하는게 더욱 빠르고 정확할 것으로 생각한다. 이 작업은 가상머신 상태를 저장하고 스냅샷을 사용하는 이유는 악성코드를 분석 한 후 리스토어 할 수 있게 설정하기 위함이다.
제대로 설정이 되었다면 아래의 그림과 같이 Preview가 저장된 상태를 보여준다.
앞의 내용
- How to install Cuckoo 1.0 with Tor Network #01
다음 내용
- How to install Cuckoo 1.0 with Tor Network #03
'Information Security > OpenSource' 카테고리의 다른 글
Using Django within Cuckoo Sandbox (0) | 2014.04.09 |
---|---|
How to install Cuckoo 1.0 with Tor Network #03 (7) | 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 |
How to install phoneyc client honeypot (0) | 2014.01.31 |