Cuckoo 자체 시스템에서 점수를 매겨줄 수 있는
자체 Cuckoo SandBox 시그너처 업데이트 해야함
(쿠쿠 시그너처를 파이썬으로 되어있음)
https://github.com/cuckoosandbox/community
- CuckooSandBox 시그니처 패치
(venv)$ cuckoo community <-- 명령어 입력 자동 업데이트
(venv)$ cuckoo <-- cuckoo 실행
(venv)$ cuckoo web runserver 0.0.0.0:8000 <-- web 실행
Virtual Machine OS 설정
- windows 7 , 32bit 설치
- 오디오 옵션 제거
- 호스트 네트워크로 설정 (네트워크 설정 필요)
- PIL , agent.py , Python - 3개 설치
- 방화벽 , 백신 , UAC 해제
- agent.py 실행
- SnapShot - 이름은 cuckoo1 또는 SnapShot 으로 한다.
(옵션에서는 기본 SnapShot 이란 이름으로 지정되어있다)
--------------------------------------------------------------------
Cuckoo - Yara 적용 방법
- Yara Rule 관련 파일
# /venv/lib/python2.7/site- packages/cuckoo/core/startup.py
startup.py 파일 내부에 init_yara() 함수가 보일 것이다.
해당 함 수 밑에 category = memory 라고 나타나 있는데
이것은 Memory 폴더만 점수 매긴다고 보면 될듯
다른것을 점수 포함 시킬려면..... 소스 수정 필요
- 실제로 점수 반영되는 폴더가 어느것이고 어느 폴더가 탐지 되었을시 표시해주는지
※ 두 가지 폴더가 현재 Cuckoo 시스템 내에 쓰이고 있음 (수정 시 startup.py 파일)
[ Binaries 폴더 ]
- Web Cuckoo 보고서 표시에 Yara 매칭 이름 나타냄 하지만 점수 반영은 없음
[ Memory 폴더 ]
- Web Cuckoo 보고서 표시 안됨 , 하지만 점수 반영은 됨
Yara Rule 작성 시 폴더 두 가지를 다 사용하여야 함
--------------------------------------------------------------------
Cuckoo API Open
$ cuckoo api
$ cuckoo api --host 211.55.59.247 --port 8090
명령어로 사용
curl -F file=@/검사파일경로/파일이름.exe http://localhost:8090/tasks/create/file
파이썬 사용
import requests
REST_URL = "http://localhost:8090/tasks/create/file"
SAMPLE_FILE = "/path/to/malwr.exe"
with open(SAMPLE_FILE, "rb") as sample:
files = {"file": ("temp_file_name", sample)}
r = requests.post(REST_URL, files=files)
# Add your code to error checking for r.status_code.
task_id = r.json()["task_id"]
# Add your code for error checking if task_id is None
보고서 출력 API
$ curl http://localhost:8090/tasks/report/77(77번 리포트 출력) >> 리포트내용 저장.txt
보고서 저장 경로
~/.cuckoo/storage/analyses 폴더내에 보고서 저장되어 있음