본문으로 바로가기

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

4.1.1. auxiliary.conf

네트워크에 관련된 설정 파일이다. 다음과 같은 3 가지의 질문에 답하면 된다.

  • tcpdump를 사용할 것인가?
  • tcpdump의 위치는 어디인가?
  • tcpdump를 사용할 인터페이스는 무엇인가?

tcpdump를 사용하기 때문에 다음과 같이 설정하였고, 덤프를 뜨는 인터페이스는 가상 어댑터인 vnet0으로 설정한다. 실제 인터넷으로 통하는 eth0 어댑터의 경우 tor로 인해 암호화가 이루어지기 때문에 덤프를 뜰 수가 없다.

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는 무엇인가?

virtualbox의 세번째 질문과 [설정 ID]는 동일하게 되어야 한다. 복수개의 설정을 하기 위해서는 가상 머신 설정 ID의 질문에 , 를 사용하여 복수개로 나열하고 해당 설정 ID에 맞는 질문을 답해주면 된다.


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 -h

~/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


저작자 표시 비영리 동일 조건 변경 허락
신고

댓글을 달아 주세요

  1. Daedalus 신고">2014.04.24 02:47 신고

    안녕하세요, Cuckoo 실행에 오류 발생해서 혹시 해결 방법을 아시는지 도움을 요청하기 위해서 질문 댓글을 답니다.
    sudo ./cuckoo.py -d 명령을 실행하게 되면


    2014-04-24 02:30:44,009 [lib.cuckoo.common.abstracts] DEBUG: Waiting 11 cuckooseconds for machine cuckoo_01 to switch to status ['poweroff', 'aborted', 'saved']
    2014-04-24 02:30:45,011 [modules.machinery.virtualbox] DEBUG: Getting status for cuckoo_01
    2014-04-24 02:30:45,058 [modules.machinery.virtualbox] DEBUG: VBoxManage returns error checking status for machine cuckoo_01: VBoxManage: error: Could not find a registered machine named 'cuckoo_01'
    VBoxManage: error: Details: code VBOX_E_OBJECT_NOT_FOUND (0x80bb0001), component VirtualBox, interface IVirtualBox, callee nsISupports
    VBoxManage: error: Context: "FindMachine(Bstr(VMNameOrUuid).raw(), machine.asOutParam())" at line 2610 of file VBoxManageInfo.cpp

    2014-04-24 02:30:45,074 [lib.cuckoo.common.abstracts] DEBUG: Waiting 12 cuckooseconds for machine cuckoo_01 to switch to status ['poweroff', 'aborted', 'saved']

    위 내용과 같은 에러가 발생하는데 해당 에러는 어떻게 수정을 해야 좋을까요? 해결책을 아실까 조언을 구해봅니다.

    • BlogIcon hakawati 신고">2014.04.24 13:45 신고

      VBoxManage returns error checking status for machine cuckoo_01: VBoxManage: error: Could not find a registered machine named 'cuckoo_01'

      에서 보시듯이 VBoxManage가 Daedalus님께서 설정하신 cuckoo_01 이름의 가상머신을 찾지 못했다고 말하고 있어요^^; conf 디렉터리에 virtualbox.conf 파일의 설정을 하시길 바래요. 대소문자 구분한답니다^^

    • Daedalus 신고">2014.04.24 14:18 신고

      답변 감사드립니다 :D

  2. kimse 신고">2014.09.02 15:42 신고

    안녕하세요. 현재 설치를 마쳤고 URL 분석을 위해 게스트pc를 하나 더 올려서(cuckoo2) 로 인터넷 설정을 하던 중 막혀버렸습니다.
    How to install Cuckoo 1.0 with Tor Network #04 로 URL분석편 을 올려주실 생각은 없으신지요.......
    1~3편으로 어마무시하게 큰 도움을 얻은 쿠쿠샌드박스 유저의 부탁을 들어주세요 ㅜㅜ

    • BlogIcon hakawati 신고">2014.09.02 18:04 신고

      안녕하세요^^
      도움이 되셨다니 다행입니다.
      현재 운영되는 버전이 1.2-dev 버전으로 알고 있는데, 그 이후 정식 릴리즈 버전부터 추가 포스팅을 할 계획을 가지고 있습니다. 1.1 버전의 imphash가 설레게 했지만, 아무래도 yara 3.0의 도입을 바라보고 있기 때문입니다 ㅎㅎ

      뭐.. 그것보다는 바쁜 일정들이 많아서..아니 다 핑계고.. 제가 포스팅하는 것 보다 직접 테스트하고 망가트려보고 하시는게 더 빠르실 것 같습니다. ^^

  3. 도아주세요 ㅠ 신고">2014.09.03 17:59 신고

    안녕하세요..

    쿠쿠샌드박스를 다 만들고 자동화스크립트 까지 작성한 상태입니다.
    그런대 악성코드 를 서브밋으로 올린다음 쿠쿠.파이를 실행시켜 돌아가게 해놨습니다
    그런데 잘 분석되는도중 샌드박스가 스톱핑 하면서 검은화면으로 전환대면서 멈추는 현상이 있는데 이거 왜이런지 아시는지 아나요?ㅠㅠ

    해당 버그를 못 고치면 아무리많이 태스크로 올려놔도 ㅠㅠ 자동화가 무용지물이 될거같스빈다 ㅠㅠ 답변좀 부탁드리겠습니다 ㅠㅠ

티스토리 툴바