この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
デフォルト設定でフォルダをスキャン:
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, , すべてのサポートされているファイルタイプの公式リストについては、Hybrid Analysis FAQ を確認してください。
os.walk() を使用してすべてのサブフォルダを走査します。--max-file-size を超えるものはスキップ)、および以前に送信されたかどうか(SHA-256キャッシュ)をチェックします。https://hybrid-analysis.com/api/v2/submit/file エンドポイントにアップロードされます。~/.hybrid_analysis_submitter/ 内のJSONキャッシュファイルに保存され、将来の実行で再送信されないようにします。キャッシュは人間が読みやすいようにソートされて保存されます。429応答を検出し、3回のエラー後に停止して無限リトライを回避します。.envファイルからのみ読み取られます – ハードコードしないでください。--max-file-size より大きいファイルはスキップされます。ALLOWED_EXTENSIONS に含まれる拡張子のファイルのみが送信されます。~/.hybrid_analysis_submitter/)に保存されます。このスクリプトは、教育およびセキュリティ分析目的で現状のまま提供されます。責任を持って使用し、Hybrid Analysisの利用規約に従ってください。
ファイルを第三者サンドボックスに送信すると、機密性の高いコンテンツが露出する可能性があります。アップロードする前に、ファイルを共有する権利があることを確認してください。
| 引数 | 説明 |
|---|
folder_path | 必須 – スキャンするフォルダのパス(再帰的) |
--max-file-size | ファイルサイズの上限(MB単位、デフォルト: 250) |
--environment-id | 解析環境ID(デフォルト: 120 = Windows 7 64ビット) |
--cache-file | キャッシュファイル名(デフォルト: submitted_cache.json)。ファイルは ~/.hybrid_analysis_submitter/ に保存されます。 |
.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| 問題 | 考えられる解決策 |
|---|
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 引数で別のキャッシュファイル名を使用してください。 |
| スキャンルート外のファイルがスキップされる | これはセキュリティ上の意図された動作です。すべての対象ファイルが指定されたフォルダ内にあることを確認してください。 |