
Hybrid Analysis(API)에 파일을 자동으로 제출하는 스크립트
이 Python 스크립트는 폴더를 재귀적으로 스캔하여 실행 파일, 스크립트, 문서 및 기타 관련 파일을 Hybrid Analysis (Falcon Sandbox)에 제출하여 자동화된 악성코드 분석을 수행합니다.
~/.hybrid_analysis_submitter/)에 저장하여 스캔 대상 폴더 오염 방지.env 파일에서 API 키 읽기스크립트를 복제 또는 다운로드하여 로컬 시스템에 저장합니다.
필요한 패키지 설치:
pip install requests python-dotenv
.env 파일 생성 (스크립트와 동일한 디렉터리에 API 키 입력):HYBRID_API_KEY=your_api_key_here
API 키는 Hybrid Analysis에 등록하여 얻을 수 있습니다.
명령줄에서 스크립트를 실행하고 스캔할 폴더를 지정합니다:
python submit_to_hybrid.py /path/to/folder
| 인자 | 설명 |
|---|---|
folder_path | 필수 – 스캔할 폴더 경로 (재귀적) |
--max-file-size | 최대 파일 크기 (MB 단위, 기본값: 250) |
--environment-id | 분석 환경 ID (기본값: 120 = Windows 7 64비트) |
--cache-file | 캐시 파일 이름 (기본값: submitted_cache.json). 파일은 ~/.hybrid_analysis_submitter/에 저장됨 |
기본 설정으로 폴더 스캔:
python submit_to_hybrid.py C:\suspicious_files
폴더를 스캔하되 크기 제한을 200MB로 늘리고 다른 환경(예: Android) 사용:
python submit_to_hybrid.py /home/user/samples --max-file-size 200 --environment-id 300
사용자 지정 캐시 파일 이름 사용:
python submit_to_hybrid.py ./malware --cache-file my_cache.json
Scanning folder: C:\suspicious_files
Submitting: C:\suspicious_files\malware.exe (2.34 MB)
-> Success! Job ID: 5f8a9c2d3e4f5a6b7c8d9e0f
Submitting: C:\suspicious_files\document.pdf (0.12 MB)
-> Success! Job ID: 6g9b0c1d2e3f4a5b6c7d8e9f
Skipping already submitted: C:\suspicious_files\malware.exe
Skipping symlink: C:\suspicious_files\link_to_malware.exe
Finished.
Files found: 42
Files submitted: 35
Files skipped: 6
Files failed: 1
.exe, .scr, .pif, .dll, .com, .cpl.msi.bat, .cmd, .ps1, .psd1, .psm1, .js, .vbs, .vbe, .wsf, .hta, .sct.lnk, .chm.doc, .docx, .ppt, .pps, .pptx, .ppsx, .xls, .xlsx, .rtf, .pub.pdf, .eml, .msg.jar, .py, .pl.apk (Android), .elf (Linux).svg지원되는 모든 파일 형식의 공식 목록은 Hybrid Analysis FAQ를 확인하세요.
os.walk()를 사용하여 모든 하위 폴더를 탐색합니다.--max-file-size 초과 시 건너뜀), 이전 제출 여부(SHA‑256 캐시)를 확인합니다.https://hybrid-analysis.com/api/v2/submit/file 엔드포인트로 API 키와 함께 지속적인 requests 세션을 통해 업로드됩니다.~/.hybrid_analysis_submitter/ 내의 JSON 캐시 파일에 저장되어 이후 실행 시 재제출되지 않습니다. 캐시는 가독성을 위해 정렬되어 저장됩니다.429 응답을 감지하고 3회 오류 발생 후 중지하여 무한 재시도를 방지합니다..env 파일에서 읽어옵니다 – 하드코딩하지 마세요.--max-file-size보다 큰 파일은 건너뜁니다.ALLOWED_EXTENSIONS에 포함된 확장자를 가진 파일만 제출됩니다.~/.hybrid_analysis_submitter/)에 저장됩니다.| 문제 | 가능한 해결 방법 |
|---|---|
ERROR: HYBRID_API_KEY not found | 스크립트와 동일한 디렉터리에 HYBRID_API_KEY=your_key_here가 포함된 .env 파일을 생성하세요. |
'folder_path' is not a valid directory | 존재하는 폴더의 올바른 경로를 제공하세요. |
| 파일 읽기 권한 거부 | 적절한 읽기 권한으로 스크립트를 실행하세요. |
| 빈번한 429 오류 | 제출 속도를 줄이거나(스크립트에서 time.sleep(2) 증가) API 요금제를 업그레이드하세요. |
| 예상치 못한 파일 건너뜀 | 확장자가 ALLOWED_EXTENSIONS에 포함되어 있는지 확인하세요. 스크립트를 편집하여 확장자를 추가할 수 있습니다. |
| 중복 제출 건너뛰지 않음 | 캐시 파일이 없거나 손상되었을 수 있습니다. ~/.hybrid_analysis_submitter/submitted_cache.json을 삭제하여 새로 시작하거나 --cache-file 인자를 사용하여 다른 캐시 파일 이름을 사용하세요. |
| 스캔 루트 외부의 파일 건너뜀 | 이는 보안을 위한 의도된 동작입니다. 모든 대상 파일이 지정된 폴더 내에 있는지 확인하세요. |
이 스크립트는 교육 및 보안 분석 목적으로 있는 그대로 제공됩니다. 책임감 있게 사용하고 Hybrid Analysis 서비스 약관을 준수하세요.
파일을 타사 샌드박스에 제출하면 잠재적으로 민감한 콘텐츠가 노출될 수 있습니다. 업로드하기 전에 파일을 공유할 권한이 있는지 확인하세요.