mcpField
M
malware-analysis

malware-analysis

github.com/tsaleセキュリティ32572 回インストール24 週間前に更新
リポジトリ

malware-analysis について

malware-analysis はセキュリティアナリスト向けのマルウェア分析スキルです。サンプルのスクリプトによるトリアージや指標抽出に、根拠に基づく推論、確信度評価、構造化された脅威レポートを組み合わせます。

主な機能

  1. 01サンプルの静的解析
  2. 02脅威インテリジェンスのトリアージ
  3. 03IOC 抽出
  4. 04挙動と能力の評価
  5. 05確信度とリスクの評価
  6. 06構造化された脅威レポート

活用シーン

  1. 01不審なファイルのトリアージ
  2. 02静的指標からマルウェア能力を評価
  3. 03根拠を添えてリスクを説明

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/tsale/awesome-dfir-skills --skill malware-analysis

インストール後、Claude Code で/malware-analysisを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

config/
config.json
references/
mitre_techniques.md
report_template.md
scripts/
extract_iocs.py
generate_report.py
static_analysis.py
triage.py

詳細

マルウェア分析スキル

このスキルは、アナリスト品質の脅威レポートを作成します。単なるデータの羅列ではありません。すべての結論は、証拠と推論に基づいている必要があります。

基本原則

  1. 証拠に基づく推論:理由を説明せずに結論を述べてはいけません
  2. 点と点を結び付ける:インジケーターを、挙動、機能、影響と関連付けます
  3. 確信度を評価する:確信の度合いとその理由を述べます
  4. 実行に移せる出力:レポートは情報を伝えるだけでなく、意思決定に役立つものである必要があります

分析ワークフロー

ステップ 1:データを収集する

すべてのスクリプトを実行して、生データを収集します。

# Static analysis - get hashes, PE info, strings, APIs, entropy
python3 scripts/static_analysis.py /path/to/sample -f json > static.json

# Threat intelligence - check reputation across sources
python3 scripts/triage.py -t file /path/to/sample -f json > triage.json

# IOC extraction - extract network/host indicators
python3 scripts/extract_iocs.py /path/to/sample -f json > iocs.json
ステップ 2:分析して推論する(ここが最重要のステップです)

収集したデータを使って、アナリスト品質の推論を行います。

2.1 脅威インテリジェンスの評価

次の点を確認します。

  • このサンプルは既知のものですか?MalwareBazaar/ThreatFox で見つかった場合は、マルウェアであることが確認されています
  • VT の検出率はどのくらいですか?
    • 検出数 0 件:新しいサンプル、誤検知、またはクリーンなファイルの可能性があります。動的解析が必要です
    • 検出数 1~5 件:新しい亜種または標的型の可能性があります。不審です
    • 検出数 5~15 件:複数のベンダーにより悪意が確認されています
    • 検出数 15 件以上:広く知られているマルウェアです
  • どのファミリーに分類されていますか?そのファミリーの一般的な挙動を調査します
  • 初めて確認されたのはいつですか?最近であれば、進行中のキャンペーンである可能性があります

推論は必ず説明してください。

「このサンプルは MalwareBazaar により RedLine Stealer と特定されており、VT の検出数は 70 件中 45 件です。検出率が高く、信頼できるマルウェアリポジトリにも登録されていることから、誤検知ではなく、既知の脅威であることが確認できます。」

2.2 静的インジケーターに基づく挙動分析

API 分析 — API を挙動に対応付けます。

API パターン想定される挙動推論
VirtualAlloc + VirtualProtect + WriteProcessMemory + CreateRemoteThreadプロセスインジェクションこれは典型的なインジェクションパターンです。メモリを割り当て、実行可能にし、コードを書き込んで、対象プロセス内で実行します
CredEnumerate、CryptUnprotectData認証情報の窃取これらの API は、Windows の認証情報ストアや DPAPI で保護されたデータ(ブラウザーのパスワード)に直接アクセスします
InternetOpen + URLDownloadToFileダウンローダーHTTP を初期化してファイルをダウンロードします。典型的なドロッパーの挙動です
RegSetValueEx + 文字列内の Run キーのパス永続化Run キーに書き込むことで、起動時に実行されるようにします
IsDebuggerPresent、GetTickCount、NtQuerySystemInformation分析対策複数の回避チェックがあることから、分析中にマルウェアが挙動を隠している可能性が示唆されます
CryptEncrypt + ファイル列挙 APIランサムウェアの可能性ファイルの検出機能と暗号化機能を併せ持ちます。ただし、安全な C2 通信にも使われる可能性があります

推論は必ず説明してください。

「VirtualAlloc、VirtualProtect、CreateRemoteThread がそろっていることから、プロセスインジェクション機能が強く示唆されます。これらの API は個別には正当な用途もありますが、この特定の組み合わせは、他のプロセスにコードを注入する典型的なパターンです。」

パッキング分析:

インジケーター意味確信度
エントロピー > 7.0圧縮または暗号化されたコンテンツ高
セクションのエントロピー > 7.0(特に .text)パックされたコードセクション高
UPX0、UPX1、.aspack、.packed セクション既知のパッカーを示すシグネチャ非常に高
RWX セクション自己書き換えコード中
GetProcAddress/LoadLibrary のみを含む小さなインポートテーブルAPI の動的解決高

パックされている場合は、その意味を述べてください。

「このサンプルには、エントロピー 7.4 や UPX セクションなど、複数のパッキングを示す特徴があります。静的解析の結果は、実際のペイロードではなく、アンパッカーのスタブを示しています。真の機能を明らかにするには、動的解析が必要です。」

2.3 機能の評価

証拠に基づき、マルウェアが実行できることを判断します。

機能必要な証拠信頼度
プロセスインジェクションインジェクション API が2つ以上3つ以上なら高、2つなら中
認証情報の窃取認証情報へのアクセス API が1つでもある高(これらは特異性が高い)
キーロギングSetWindowsHookEx中(正当な用途もある)
ネットワーク C2ネットワーク API が2つ以上+抽出された URL/IP高
ファイルのダウンロードURLDownloadToFile など高
永続化レジストリ/サービス API+関連文字列中
暗号化/ランサムウェア暗号 API+ファイル列挙中(文脈の確認が必要)

信頼度と根拠を示します:

"認証情報窃取機能:高い信頼度 — CryptUnprotectData が存在します。この API は、ブラウザーのパスワードなど、DPAPI で保護されたデータを特に復号します。ほとんどのソフトウェアにおいて、この API に正当な用途はありません。"

2.4 リスク評価

根拠を添えてリスクレベルを判断します。

リスクレベル基準
CRITICAL認証情報窃取 API、プロセスインジェクション、データ窃取/ランサムウェアで知られるマルウェアファミリーであることが確認されている
HIGH複数の悪意ある機能、ネットワーク C2、永続化の仕組み
MEDIUM不審な兆候はあるが、悪意ある機能は確認されていない。または、パッキングによって実際の動作が隠されている
LOW兆候が少なく、不審なパターンはあるものの、正当なソフトウェアである可能性がある
UNKNOWN証拠が不十分、強くパッキングされている、または TI の検出結果がない
ステップ 3:レポートを作成する

レポートを次の構成で作成します。

# Threat Analysis Report: [MALWARE_NAME or "Unknown Sample"]

| | |
|---|---|
| **Risk Level** | [CRITICAL/HIGH/MEDIUM/LOW] |
| **Confidence** | [High/Medium/Low] |
| **Analysis Date** | [DATE] |

---

## Executive Summary

[2-3 sentences: What is this? Is it malicious? What can it do? How do we know?]

**Key Finding:** [One sentence bottom line]

---

## Threat Intelligence Assessment

[What do TI sources tell us? Explain what each finding means]

- **VirusTotal:** [X/Y detections] — [what this means]
- **MalwareBazaar:** [Found/Not found] — [what this means]  
- **Family Attribution:** [Family name] — [what this family typically does]

**Assessment:** [Your reasoned conclusion based on TI]

---

## Behavioral Analysis

### Identified Capabilities

#### [Capability 1: e.g., "Process Injection"]
- **Confidence:** [High/Medium/Low]
- **Evidence:** [List the specific APIs/strings found]
- **Reasoning:** [Explain WHY this evidence indicates this capability]

#### [Capability 2: e.g., "Credential Theft"]
...

### Packing Assessment

[Is it packed? What does this mean for the analysis?]

### Anti-Analysis Techniques

[What evasion techniques were identified?]

---

## MITRE ATT&CK Mapping

| Tactic | Technique | ID | Evidence |
|--------|-----------|----|---------| 
| [Only include techniques you can justify with evidence] |

---

## Indicators of Compromise

### File Indicators
[Hashes]

### Network Indicators  
[Defanged IPs, domains, URLs - only if extracted]

### Host Indicators
[Registry keys, file paths, mutexes - only if found]

---

## Risk Assessment

**Overall Risk: [LEVEL]**

This assessment is based on:
1. [Reason 1]
2. [Reason 2]
3. [Reason 3]

**Confidence in Assessment: [High/Medium/Low]**
- [Why this confidence level]

---

## Recommendations

### Immediate Actions
[What should be done RIGHT NOW based on risk level]

### Detection Opportunities
[How to detect this threat]

### Further Analysis Needed
[What questions remain unanswered]
エントロピーの解釈
エントロピー意味
0-1構造が非常に単純(空、反復)
4-5プレーンテキスト、読み取り可能な文字列
5-6コンパイル済みコード(通常の .text セクション)
6-7圧縮データ、一部難読化
7-8暗号化/圧縮(パッキング済み)
ファイルシグネチャ
バイト列種類
4D 5A (MZ)PE 実行ファイル
50 4B (PK)ZIP/Office ドキュメント
7F 45 4C 46ELF 実行ファイル
D0 CF 11 E0OLE/旧形式の Office
25 50 44 46PDF

分析推論の例

悪い例(データの羅列):

「API を検出:VirtualAlloc、CreateRemoteThread、RegSetValueEx。エントロピー:7.2。VT:34/70。」

良い例(アナリストの推論):

「このサンプルには、VirtualAlloc と CreateRemoteThread が存在することから、プロセスインジェクション機能があると判断できます(信頼度:高)。これらの API は、標的プロセス内にメモリを割り当て、インジェクションしたコードを実行するスレッドを作成するという、典型的なコードインジェクションのパターンを形成します。エントロピーが高い(7.2)ことから、ペイロードがパッキングされていると考えられます。つまり、観測された API は最終ペイロードではなく、アンパッカーのスタブに属している可能性があります。VirusTotal の検出率が 34/70 であることから、このサンプルは既知のマルウェアであり、複数のベンダーが認証情報の収集を行う情報窃取型マルウェア、Agent Tesla の亜種として特定しています。プロセスインジェクション機能があり、認証情報を窃取するマルウェアファミリーに関連していることから、このサンプルは実行されたシステムの認証情報セキュリティに対して CRITICAL なリスクをもたらします。」

スクリプトのリファレンス

static_analysis.py
python3 scripts/static_analysis.py <file> -f [text|json]

抽出項目:ハッシュ、ファイル形式、PE ヘッダー、セクション、エントロピー、インポート、文字列、不審な兆候

triage.py
python3 scripts/triage.py <ioc> -f [text|json]
python3 scripts/triage.py -t file <filepath> -f json
python3 scripts/triage.py --status  # Check API config

照会先:MalwareBazaar、ThreatFox、URLhaus、VirusTotal、AbuseIPDB

extract_iocs.py
python3 scripts/extract_iocs.py <file> -f [text|json|csv]

抽出項目:IP、ドメイン、URL、メールアドレス、ハッシュ、レジストリキー、ファイルパス、暗号通貨ウォレット、ミューテックス

コメント