Malware Analysis & Sandboxing について
マルウェア分析者向けのClaudeスキルです。サンプルの静的解析、サンドボックスの挙動解釈、YARAルール作成、ファミリー分類を支援し、隔離環境の構築とIOC報告も案内します。
主な機能
- 01ファイルとPEの静的解析
- 02YARAルールの生成とテスト
- 03サンドボックス挙動の解釈
- 04マルウェアファミリーの分類
- 05IOC抽出とレポート作成
- 06サンドボックス隔離の指針
活用シーン
- 01不審なバイナリやスクリプトの初期分析
- 02マルウェア指標から検知ルールを作成
- 03CuckooまたはCAPEのレポートを解釈
- 04脅威ハンティング用のIOCを抽出
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ masriyan/ claude-code-cybersecurity-skill --skill malware-analysis-&-sandboxingインストール後、Claude Code で/malware-analysis-&-sandboxingを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
examples/example_usage.mdscripts/yara_generator.pystatic_analyzer.py詳細
マルウェア解析とサンドボックス
目的
ファイルのプロパティやコードの静的解析、動的な挙動分析の解釈、YARA ルールの生成、サンドボックスの構成、マルウェアファミリーの特定など、マルウェア解析のワークフローを Claude が支援できるようにします。Claude は提供されたアーティファクトを直接解析し、自動処理用のスクリプトを実行します。
安全上の警告:疑わしいファイルを、隔離された管理下の環境以外で実行しないでください。ネットワークが分離され、スナップショット機能を備えた専用 VM またはサンドボックスを使用してください。
起動条件
次のような依頼があった場合に、このスキルが起動します。
- 疑わしいファイル、バイナリ、スクリプトの解析
- マルウェア検出用 YARA ルールの生成
- マルウェア解析サンドボックスのセットアップ
- Cuckoo/CAPE/AnyRun サンドボックスレポートの解釈
- マルウェアファミリーまたは挙動の特定
- マルウェアサンプルからの IOC の作成
- PE/ELF ファイルの静的解析
- マルウェアアーティファクトのメモリフォレンジック
- 挙動分析(プロセス生成、ネットワーク、レジストリ、ファイルの変更)
前提条件
pip install yara-python pefile python-magic requests ssdeep
推奨する解析ツール:
Cuckoo Sandbox / CAPE— 自動化された動的解析VirusTotal API— マルチエンジンのスキャンとインテリジェンスYARA— パターンマッチングエンジンGhidra / IDA Pro— 詳細なバイナリ解析(→ スキル 04)Volatility 3— メモリフォレンジックDIE (Detect-It-Easy)— パッカー/コンパイラーの検出Pestudio— Windows PE の静的解析
主な機能
1. マルウェアの静的解析
ユーザーから疑わしいファイルまたはハッシュが提供された場合:
Claude は次の順序で解析します。
ステップ 1 — ファイルの識別:
file malware.exe # File type from magic bytes
md5sum malware.exe # MD5 hash (legacy, for lookups)
sha256sum malware.exe # SHA-256 (primary identifier)
python scripts/static_analyzer.py --file malware.exe --hashes
ステップ 2 — 脅威インテリジェンスの照会:
- VirusTotal を照会します(API キーが必要です。または、ブラウザーにハッシュを貼り付けます)
- MalwareBazaar、AbuseIPDB、URLhaus を確認します
- 既存の解析レポートを検索します
# VirusTotal hash lookup via API
curl "https://www.virustotal.com/api/v3/files/<sha256>" -H "x-apikey: YOUR_KEY"
ステップ 3 — PE 解析(Windows 実行ファイル):
python scripts/static_analyzer.py --file malware.exe --strings --imports --output report.json
出力から次の指標を探します。
疑わしいインポート関数:
| カテゴリー | 疑わしい API |
|---|---|
| プロセスインジェクション | CreateRemoteThread、WriteProcessMemory、VirtualAllocEx、NtMapViewOfSection、RtlCreateUserThread |
| 永続化 | RegSetValueEx、CreateService、SHFileOperation、ITaskScheduler |
| 解析対策 | IsDebuggerPresent、CheckRemoteDebuggerPresent、GetTickCount、QueryPerformanceCounter、GetSystemInfo |
| ネットワーク C2 | InternetOpenUrl、HttpSendRequest、WSAStartup、socket、URLDownloadToFile、WinHttpOpen |
| 暗号処理 | CryptEncrypt、CryptDecrypt、BCryptEncrypt、CryptHashData |
| 認証情報へのアクセス | SamOpenDatabase、LsaOpenPolicy、NtlmGetUserInfo |
| キーロギング | SetWindowsHookEx、GetAsyncKeyState、GetKeyboardState |
| 防御回避 | VirtualProtect、NtSetInformationProcess、Wow64DisableWow64FsRedirection |
ステップ 4 — 文字列の抽出と分析:
strings -a malware.exe | grep -E "(http|ftp|/[a-z]|[0-9]{1,3}\.[0-9]{1,3}|HKEY|reg|cmd|powershell)"
抽出した文字列を分類します。
- ネットワーク指標:URL、IP、ドメイン、ユーザーエージェント
- ファイルシステム:パス、ファイル名、レジストリキー
- 暗号:Base64 データ、16 進文字列(鍵/ペイロードの可能性)
- 解析対策:VM/サンドボックス検出用の文字列(VMware、VirtualBox、Sandboxie)
- ミューテックス名:二重感染を防ぐ一意の識別子
ステップ 5 — エントロピー解析:
python scripts/static_analyzer.py --file malware.exe --entropy
| エントロピー範囲 | 解釈 |
|---|---|
| 0.0 – 1.0 | ほぼ空、またはすべてゼロのセクション |
| 1.0 – 5.0 | 通常のコード/データセクション |
| 5.0 – 7.0 | 圧縮されたデータまたはコード |
| 7.0 – 8.0 | 暗号化またはパックされたデータ — 要調査 |
| 7.9 – 8.0 | 非常に疑わしい — 暗号化されたペイロードの可能性が高い |
2. YARA ルールの生成
ユーザーがサンプルや指標から YARA ルールを作成するよう求めた場合:
Claude は、次の方法に従って YARA ルールを生成します。
- 安定した固有の指標を選ぶ — 汎用的なパターンは避け、このファミリーに固有のバイト列や文字列を選びます
- 構造的なパターンを優先する — ヘッダーのマジックバイト、特定のオフセット、セクション名を使用します
- 特異性と網羅性のバランスを取る — 特異性が高すぎるルール(1つのサンプルしか検出できない)や広すぎるルール(誤検知が発生する)は避けます
- 無害なファイルに対してテストする — クリーンな Windows システムファイルには一致しないルールにします
YARA ルールのテンプレート:
// Tier 1: Specific sample (hash-based)
rule MalwareFamily_Variant_Hash {
meta:
author = "Analyst Name"
date = "2025-05-28"
description = "Detects [MalwareFamily] [Variant] — specific sample"
sha256 = "aabbcc..."
tlp = "GREEN"
reference = "https://example.com/analysis"
condition:
hash.sha256(0, filesize) == "aabbcc..."
}
// Tier 2: Family-level detection (behavioral strings)
rule MalwareFamily_Generic {
meta:
author = "Analyst Name"
date = "2025-05-28"
description = "Detects [MalwareFamily] family by strings and structure"
tlp = "GREEN"
strings:
// C2 patterns
$c2_ua = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" ascii
$c2_uri = "/gate.php?id=" ascii
// Crypto constants
$rc4_key = { 52 43 34 5F 4B 45 59 } // "RC4_KEY" hex
// Mutex
$mutex = "Global\\MSDTC_MUTEX_" ascii wide
// Registry persistence key
$reg_key = "HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run" ascii wide nocase
// Anti-analysis check
$vm_check = "VBOX" ascii wide nocase
condition:
uint16(0) == 0x5A4D and // MZ header (PE file)
filesize < 2MB and
(
(2 of ($c2_*)) or
($mutex and 1 of ($reg_key, $rc4_key))
)
and not $vm_check // Exclude sandbox-aware variants
}
// Tier 3: Network IOC detection (for NIDS integration)
rule MalwareFamily_Network_C2 {
meta:
description = "Detects [MalwareFamily] C2 communication patterns"
type = "network"
strings:
$beacon_path = "/api/v1/ping?uid=" ascii
$beacon_ua = "MalBot/1.0" ascii
$checkin_hdr = "X-Command-Key: " ascii
condition:
any of them
}
# Generate YARA rules using the script
python scripts/yara_generator.py --samples ./malware_samples/ --output rules.yar
python scripts/yara_generator.py --file single_sample.exe --rule-name "MalwareFamily" --output rule.yar
# Test rules against benign files
yara -r generated_rule.yar /usr/bin/ 2>/dev/null | wc -l # Should be 0
yara generated_rule.yar malware.exe # Should match
3. 動的/挙動分析
ユーザーがサンドボックス分析の出力を提供した場合、または動的分析について質問した場合:
Cuckoo/CAPE サンドボックスレポートの解釈:
Claude は、次の点に着目して挙動レポートを分析します。
-
プロセスツリー分析:
- 不審な親子関係(Word.exe → PowerShell.exe → cmd.exe)
- プロセスインジェクションの兆候(異なる資格情報でプロセスを生成)
- ホロウイングのパターン(不審なメモリを持つ正規プロセス)
-
ネットワーク指標:
- DNS クエリ:DGA パターン(ランダムに見えるドメイン)、ファストフラックス
- HTTP:不審なユーザーエージェント、エンコードされた POST データ、ビーコニング間隔
- C2 ビーコニングの検出:一定間隔でのコールバック(タイミングの一貫性を確認)
-
ファイルシステムの変更:
- シャドウコピーの削除:
vssadmin delete shadows→ ランサムウェアの兆候 - 起動時の永続化:
\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\ - 一時ディレクトリにドロップされた二次ペイロード
- シャドウコピーの削除:
-
レジストリの変更:
- Run キー:
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run - サービスのインストール:
HKLM\SYSTEM\CurrentControlSet\Services\ - セキュリティポリシーの変更:UAC、Windows Defender の無効化
- Run キー:
-
MITRE ATT&CK へのマッピング:
| 観測された挙動 | MITRE の手法 |
|---|---|
| PowerShell のダウンロードクレードル | T1059.001 — PowerShell |
cmd /c vssadmin delete shadows | T1490 — システムリカバリーの妨害 |
| レジストリ Run キーによる永続化 | T1547.001 — レジストリ Run キー |
| CreateRemoteThread によるインジェクション | T1055.001 — DLL インジェクション |
| スケジュールタスクの作成 | T1053.005 — スケジュールされたタスク |
netsh advfirewall set allprofiles state off | T1562.004 — ホストファイアウォールの無効化 |
| UAC の回避(fodhelper.exe) | T1548.002 — UAC の回避 |
| LSASS メモリへのアクセス | T1003.001 — LSASS メモリ |
4. マルウェアファミリーの分類
ユーザーがマルウェアサンプルの特定や分類を求めた場合:
挙動パターンによる分類:
| ファミリーの指標 | 考えられるファミリーの種類 |
|---|---|
| シャドウコピーの削除+ファイルの暗号化+身代金要求メモ | ランサムウェア |
| 定期的な HTTP ビーコニング+コマンド実行+ラテラルムーブメント | RAT/ボットネット |
| ブラウザー認証情報の窃取+オンラインバンキング画面への偽装 | バンキング型トロイの木馬 |
| キーロギング+スクリーンショットの取得+データの外部送信 | スパイウェア/インフォスティーラー |
| プロセスホロウイング+隠密な永続化 | ルートキット/バックドア |
| 暗号通貨マイニングプロセスの生成 | クリプトマイナー |
| ネットワーク共有を介したワームの拡散 | ワーム |
| マクロを含み、ペイロードをダウンロードするドキュメント | ドロッパー/ダウンローダー |
類似性分析:
# SSDeep fuzzy hash comparison
ssdeep -l malware.exe > hash.txt
ssdeep -m hash.txt similar_sample.exe
# Similarity > 70% → likely same family/variant
5. サンドボックス環境のセットアップ
ユーザーがマルウェア分析環境のセットアップを求めた場合:
最低限必要な隔離要件:
- 専用 VM(VirtualBox、VMware、KVM)— メインのマシンは絶対に使用しないでください
- ホストオンリーまたは隔離されたネットワークアダプター(デフォルトではインターネットアクセスなし)
- 分析前にスナップショットを作成 — 各サンプルの分析後に復元
- 共有フォルダーとクリップボードを無効化(データの外部送信を防止)
推奨サンドボックス構成:
Analysis VM (Windows 10/11 or Ubuntu):
├── FakeNet-NG or INetSim — Simulate network services
├── Wireshark — Capture network traffic
├── ProcessMonitor (Windows) / strace (Linux) — Monitor syscalls
├── Regshot (Windows) — Compare registry before/after
├── Autoruns (Windows) — Monitor persistence locations
└── Cuckoo/CAPE Agent — Automated collection
Network Layer:
└── Host-only adapter → no real internet → INetSim captures C2 attempts
仮想マシン検出対策:
- VMware Tools をインストールする(Tools がないか確認するマルウェアもあります)
- 適切な RAM(4GB 以上)と CPU 数(2 以上)を設定する
- 無害なユーザーファイルやブラウザー履歴をいくつか追加する
- 現実的な画面解像度(1920x1080)を設定する
- 明らかな VM の痕跡(レジストリキー、デバイス名)を削除する
IOC の抽出と出力形式
分析したサンプルごとに、次の内容を出力します。
## Malware Analysis Report — [Sample Name]
**Hashes:**
- MD5: [hash]
- SHA1: [hash]
- SHA256: [hash]
- SSDeep: [fuzzy hash]
**Classification:** [Ransomware / RAT / Infostealer / etc.]
**Confidence:** [High / Medium / Low]
**Family:** [Family Name, if identified]
**First Seen:** [Date from TI sources]
**Network IOCs:**
- IPs: [list]
- Domains: [list]
- URLs: [list]
- User-Agent: [string]
**Host IOCs:**
- File Paths: [list]
- Registry Keys: [list]
- Mutex Names: [list]
- Services: [list]
**MITRE ATT&CK Mapping:**
- [Tactic]: [Technique ID] — [Technique Name]
**YARA Rules:** [Attached]
**Sigma Rules:** [Attached, for Skill 12]
スクリプトリファレンス
static_analyzer.py
python scripts/static_analyzer.py --file malware.exe --output report.json
python scripts/static_analyzer.py --file sample.dll --hashes --strings --imports --entropy
yara_generator.py
python scripts/yara_generator.py --samples ./malware_samples/ --output rules.yar
python scripts/yara_generator.py --file single_sample.exe --rule-name "MyMalware" --output rule.yar
スキル連携
| 条件 | 関連スキル |
|---|---|
| より詳細な逆アセンブルが必要 | → Skill 04(リバースエンジニアリング) |
| 環境全体でのハンティングに IOC を使用する準備ができている | → Skill 06(脅威ハンティング) |
| インシデント対応中にマルウェアを収集 | ← Skill 07(インシデント対応) |
| 検知シグネチャを作成 | → Skill 15(ブルーチーム防御) |
参考資料
- YARA のドキュメント
- MITRE ATT&CK フレームワーク
- MalwareBazaar
- VirusTotal
- Cuckoo Sandbox のドキュメント
- CAPE Sandbox
- Practical Malware Analysis(書籍)
- vx-underground サンプルアーカイブ
v3.0 の強化内容(2026 年更新)
現在の脅威状況に対応しています。
- 主要なファミリー/TTP(2025~26 年) — インフォスティーラー(Lumma、Redline の後継)、ローダー(初期アクセスブローカー)、ランサムウェアのアフィリエイトに加え、Linux/ESXi ランサムウェア、クロスプラットフォーム対応の Go/Rust ペイロード。
- EDR 回避と BYOVD — Bring-Your-Own-Vulnerable-Driver、EDR キラーのツール、直接/間接システムコール、フック解除、AMSI/ETW のパッチ適用を検出します。
- ファイルレス/メモリのみ — メモリフォレンジック(→ Skill 07)を優先し、LOLBin(
rundll32、mshta、regsvr32、msbuild)および PowerShell/.NETのリフレクティブロードをハンティングします。 - 設定の抽出 — 一般的なファミリーから C2 設定を抽出し(文字列/キーをデコードし、ビーコンプロファイルをダンプ)、Skill 06 向けに IOC を STIX/CSV 形式で出力します。
- AI 生成マルウェア — 変動性が高く、共有コードが少ないサンプルに注意してください。ハッシュ照合ではなく、挙動分析と挙動に基づく YARA に頼ってください。
- デトネーションサービス — ローカル環境でデトネーションを行う前に、MalwareBazaar、Triage、Hybrid Analysis を起点に調査し、ファミリーを特定してください。
安全ルール: 本番ネットワークに到達できない、隔離されスナップショットから復元された VM 内でのみデトネーションを行ってください。レポートにはサンドボックスの設定を記録してください。