본문으로 바로가기

Cuckoo Sandbox 1.2 release

category Information Security 2015.03.05 11:13

1. Behavior Search


행위 분석 결과에서 모든 문자들을 패턴매칭하여 원하는 결과를 찾을 수 있다.


행위 분석 결과 검색


2. Network Stream View


TCP/UDP 스트림을 수집하고 헥사 덤프로 검사할 수 있는 몇가지 기능을 추가 구현되었다.


TCP/UDP 스트림 헥사 덤프


3. Comparative Analysis


악성코드의 유사성을 추정하기 위해 다른 악성코드와 비교할 수 있는 기능을 추가되었다.


분석 결과 비교 1


상세한 비교 분석은까진 아니고 현재 실행되는 이벤트 기반을 통한 그래프 표현 방식만 묘사한다.


분석 결과 비교 2


4. Changelog


- baremetal 분석 지월 (물리 시스템 모듈)

cuckoo sandbox 1.2-dev 버전 부터 설정 파일이 모여있는 conf 디렉터리에 physical.conf 파일이 생성되어 있었다. 고성능 허니클라이언트의 치명적인 단점으로 분류되는 "안티-가상머신" 기술을 사용하는 악성코드 분석의 한계를 뛰어넘기 위함으로 보고 있다.


- XenServer 기계 모듈 추가

- 프로세스 메모리 처리 모듈 추가

- 볼라티리티 2.4와 추가 모듈을 지원

분명 볼라티리티 또한 거대한 오픈소스 프레임워크로 cuckoo와 함께 성장해야할 필수 구성 요소이다. 그러기에 볼라티리티의 버전과 핵심 플러그인들에 민감하게 cuckoo는 버전업을 해야할 것으로 보이며, 매 릴리즈시 changelog에 기록이 남을 것으로 보인다.


- 웹 인터페이스에 메모리 분석 정보 추가

- VMWare 워크스테이션 메모리 덤프 모듈 추가

- 보고서에 분석 머신 정보 추가

- 두 보고서의 분석을 비교하기 위한 골격만 추가

"3. Comparative Analysis"에서 보았듯이 상당히 흥미로운 기능이 추가되었다. 악성코드 관점에서 사이버 범죄 프로파일의 핵심은 서로 다른 악성코드의 유사성을 찾아 같은 범죄 집단임을 증명하는 것으로 보고 있다. 이 관점에서 상당히 훌륭한 역할로 자리잡을 수 있을 것 같기에 기대되는 기능이다.


- TCP와 UDP 스트림 헥사 뷰 추가

오래전에 추가되어야 했었던 기능이 아니었나 싶다.


- 웹 인터페이스에서 분석 결과 삭제 기능 추가

- 웹 인터페이스에서 문자열로 검색 기능 추가

- 웹 인터페이스에서 API 호출 로그의 검색 추가

- 웹 인터페이스에서 PE 컴파일 시간 추가 표시

- 웹 인터페이스에서 메모리 덤프 다운로드 기능 추가

- 분석 패키지들을 리팩토링하고 구문 단순화함

- MS PowerPoint 분석 패키지 추가

- MSI 분석 패키지 추가

- 파이썬 스크립트 분석 패키지 추가

- DLL 분석 패키지 로더 옵션 추가 (가짜 부모 프로세스)

- additional signatures 도우미 기능 추가

- 가상머신 종료 전에 프로세스 종료하는 옵션 terminate_processes 추가

- 스크린 샷을 비교할 때 중복을 제거하고, 건너 뛰는 옵션을 추가

- 자동 생성한 YARA 룰 인덱스 추가

1.1 버전에서 생겼나? YARA 룰 자동 생성 기능이? 1.0 버전까지만 다뤄봐서 Cuckoo가 룰을 자동 생성한다는 것에 대해 다소 생소하다. YARA 자동 생성 관련 포스팅


- Pillow에 대한 지원 추가 (PIL fork)

- 자동 기계 구성 업데이트 유틸리티를 시스템에 추가

- Cuckoo 인스턴스 분석 배포를 위한 유틸리티 추가

- un-hook 탐지 추가 (악성코드가 Cuckoo의 hooks를 지울 수 있어서)

agent.py 가 동작할 때 악성코드가 탐지하고 삭제할 경우 정확한 분석이 되지 않는 부분을 이야기 하고 있다. 관련 동작을 하는 악성코드가 발견되었기에 추가된 기능으로 추정한다.


- Microsoft Crypto API 훅 추가

- 적극적인 절전 스킵 모드 옵션 추가

- 보조 모듈은 분석의 끝에 콜백을 실행하도록 허용

- ./utils/clean.sh를 ./cuckoo.py --clean으로 대체

사실 clean.sh 파일이 별도로 존재한 이유는 과거 0.3 버전때 cuckoo sandbox의 모든 데이터를 초기화 하는 방법이 수동이어서 쉘 스크립트 파일로 제공했었다. 당연히 코어 엔진에서 옵션으로 제공되면 깔끔하기에 이렇게 변경된 것으로 보인다.


- diStorm3 디스어셈블러를 Capstone 디스어셈블러로 대체

디스어셈블러의 대세를 따르는 것으로 보인다. Capstone 디스어셈블러를 사용함으로써 앞으로 더욱 많은 기능들이 생겨날 것으로 보인다.


- process.py의 자동 모드에서 사용되는 delete_original과 delete_bin_copy를 수정

- 확장자가 없는 HTML 페이지를 분석하도록 수정

- 마우스 활동 에뮬레이터에서 로직 버그 수정

- 슬립 스킵 메카니즘 버그 수정

- 낮은 버전의 python-magic의 사용으로 메모리 누수 수정

- 큰 파일의 해시를 계산할 때 out of memory 에러 수정

- PCAP에서 에이전트 트래픽을 스킵하기 위한 BPF 필터 수정

- 윈도우 분석기의 다양한 버그들을 수정

- 안티-샌드박스 트릭의 수를 수정

번역으로 인해 "트릭의 수"라고 하지만, 안티-샌드박스 혹은 안티-가상머신의 탐지 패턴의 수를 증가시킨 것으로 보고 있다. 물리 환경이라고 하나 자원의 비용이 너무 고가가 될 수 있기 때문에 가상머신 안의 가상머신이 아닌 가상머신과 가상머신으로도 구현 가능하다는 점을 미뤄 보았을 때 지속적으로 업데이트 해야할 필 수 패턴으로 보고 있다.


- SQLite 데이터베이스 잠금 이슈 수정

- hpfeeds 레포팅 모듈 제거

이 레포팅은 honeyclient가 아닌 honeynet을 위한 기능이었고, hpfeeds 에서도 cuckoo sandbox를 위한 서비스는 제공하지 않았었다. 결국 hpfeeds 레포팅 모듈은 예상대로 제거되었다. 


5. 결론


Cuckoo Sandbox 1.1 또는 취약점 패치된 1.1.1 버전은 다양한 기능이 추가 되었기 보다 최초 메이저 버전으로 업데이트된 1.0 버전의 기능과 버그 픽스 목적이 컸다. 하지만 1.2 버전에는 다양한 기능이 추가되었다. 특정 대상을 소개하며 추가된 기능을 소개하는 것으로 보아 새로운 멤버가 영입된 것으로 보이며, 안정적인 지원 아래 더욱 큰 프로젝트로 자리잡을 것으로 보여진다.


댓글을 달아 주세요

  1. 박성규 신고">2015.03.05 13:45 신고

    엄청 빨리 확인하셨네요..+_+
    항상 좋은 정보 감사합니다!!
    19일에 있는 강의도 유익한 내용 부탁 드리겠습니다..^ ^

티스토리 툴바