collecting-indicators-of-compromise について
インシデント対応担当者向けの侵害指標(IOC)収集ガイドです。ログ、フォレンジック、マルウェア解析からの抽出、情報の補完、評価、配布を扱い、STIX 2.1 による共有も説明します。
主な機能
- 01ネットワーク、ホスト、メールの指標整理
- 02インシデント証拠からの IOC 抽出
- 03脅威情報コンテキストの付加
- 04確度評価と優先順位付け
- 05防御システムやパートナーへの配布
活用シーン
- 01対応中の攻撃インフラ特定と遮断
- 02事後検知に向けた観測痕跡の記録
- 03ISAC や業界パートナーとの IOC 共有
- 04SIEM、EDR、ネットワークツール向け検知ルール作成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill collecting-indicators-of-compromiseインストール後、Claude Code で/collecting-indicators-of-compromiseを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSEreferences/api-reference.mdscripts/agent.py詳細
侵害指標の収集
使用するタイミング
- インシデント対応中に、攻撃者のインフラストラクチャを特定してブロックする場合
- インシデント後に、将来の検知に備えて、確認された攻撃者の痕跡をすべて記録する場合
- ISAC、業界パートナー、法執行機関と脅威インテリジェンスを共有する場合
- SIEM、EDR、ネットワークセキュリティツールで検知ルールを作成する場合
- リスクスコアリングのために、IOCに脅威インテリジェンスのコンテキストを付加する場合
使用しないでください:技術的な指標を伴わない行動TTP分析には使用せず、行動の特性評価にはMITRE ATT&CKマッピングを使用してください。
前提条件
- インシデント証拠の取得元へのアクセス:SIEMログ、EDRテレメトリ、メモリダンプ、ディスクイメージ、ネットワークキャプチャ
- IOCの管理と共有に使用する脅威インテリジェンスプラットフォーム(MISP、OpenCTI、ThreatConnect)
- IOCエンリッチメントツール:VirusTotal、OTX(AlienVault Open Threat Exchange)、Shodan、DomainTools
- 構造化されたIOC表現のためのSTIX 2.1に関する知識
- 関連するISAC(FS-ISAC、H-ISAC、IT-ISAC)または業界パートナーとの共有契約
ワークフロー
ステップ1:IOCのカテゴリを特定する
インシデント証拠から、すべてのカテゴリにわたって指標を収集します。
ネットワーク指標:
- IPアドレス(C2サーバー、ステージングサーバー、データ流出先)
- ドメイン名(C2ドメイン、フィッシングドメイン、DGAドメイン)
- URL(マルウェアのダウンロード、C2へのチェックイン、データ流出エンドポイント)
- JA3/JA3Sハッシュ(TLSクライアント/サーバーのフィンガープリント)
- User-Agent文字列(カスタムまたは不審なHTTPヘッダー)
- DNSクエリパターン(トンネリングのシグネチャ、DGAパターン)
ホスト指標:
- ファイルハッシュ(マルウェア、ツール、スクリプトのMD5、SHA-1、SHA-256)
- ファイルパス(既知のマルウェアインストールディレクトリ)
- レジストリキー(永続化の仕組み、設定の保存場所)
- スケジュールされたタスクとサービス名(永続化)
- ミューテックス/イベント名(マルウェアインスタンスの同期)
- 名前付きパイプ(C2通信チャネル。例:Cobalt Strike)
メール指標:
- 送信者アドレスとドメイン(なりすまし、または攻撃者が管理するもの)
- 件名と本文のパターン
- 添付ファイル名とハッシュ
- 埋め込みURL
- メールヘッダーの異常(SPF/DKIM/DMARCの失敗)
ステップ2:証拠ソースからIOCを抽出する
各証拠ソースから体系的に指標を抽出します。
SIEM/ログ分析から:
# Extract unique destination IPs from firewall logs
index=firewall action=blocked
| stats count by dest_ip
| where count > 100
# Extract domains from DNS query logs
index=dns query=*evil* OR query=*c2*
| stats count by query
メモリフォレンジックから:
# Extract network connections
vol -f memory.raw windows.netscan | grep ESTABLISHED
# Extract strings from suspicious process memory
vol -f memory.raw windows.memmap --pid 3847 --dump
strings -n 8 pid.3847.dmp | grep -E "(http|https)://"
マルウェア分析から:
Sandbox Report IOC Extraction:
- Dropped files: 3 (hashes extracted)
- DNS queries: update.evil[.]com, cdn.malware[.]net
- HTTP connections: POST to https://185.220.101[.]42/gate.php
- Registry modified: HKCU\Software\Microsoft\Windows\CurrentVersion\Run\svcupdate
- Mutex created: Global\MTX_0x1234ABCD
- Named pipe: \\.\pipe\MSSE-1234-server
ステップ3:IOCにコンテキストを付加する
各指標に脅威インテリジェンスのコンテキストを追加します。
IOC Enrichment Report:
━━━━━━━━━━━━━━━━━━━━━
IP: 185.220.101.42
VirusTotal: 12/89 vendors flag as malicious
Shodan: Open ports: 443, 8443, 80
Geolocation: Netherlands, AS208476
First Seen: 2025-10-01
Threat Intel: Associated with Qakbot C2 infrastructure
Confidence: High
TLP: AMBER
Domain: update.evil[.]com
Registration: 2025-10-28 (recently registered)
Registrar: Namecheap
WHOIS Privacy: Yes
VirusTotal: 8/89 vendors flag as malicious
DNS History: Resolved to 185.220.101.42, 91.215.85.17
Confidence: High
TLP: AMBER
ステップ4:IOCをスコアリングして優先順位を付ける
各指標に信頼度スコアとリスクスコアを割り当てます。
| スコア | 信頼度レベル | 基準 |
|---|---|---|
| 90-100 | 悪意ありと確認済み | 複数のTIソースが確認し、進行中の攻撃で観測されている |
| 70-89 | 強く疑わしい | 1つのTIソースが確認し、行動分析でも裏付けられている |
| 50-69 | 疑わしい | TIデータは限られているが、状況から疑わしい |
| 30-49 | 未確認 | TIとの一致はないが、環境内で異常が見られる |
| 0-29 | おそらく無害 | 偽陽性の指標、または正当なインフラストラクチャ |
ステップ5:検知とブロックのためにIOCを配布する
即時保護のため、防御システムにIOCを登録します。
- ファイアウォール/IPS:C2のIPアドレスとドメインをブロックする
- DNS:悪意のあるドメインをシンクホールする
- EDR:ファイルハッシュをブロックリストに追加し、カスタムIOC監視リストを作成する
- メールゲートウェイ:送信者ドメイン、添付ファイルのハッシュ、悪意のあるURLをブロックする
- SIEM:IOCの一致を検出する相関検索を作成する
- Webプロキシ:WebフィルタリングポリシーでURLとドメインをブロックする
ステップ6:パートナーとIOCを共有する
共有用にIOCをSTIX 2.1形式でパッケージ化します。
{
"type": "indicator",
"spec_version": "2.1",
"id": "indicator--a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"created": "2025-11-15T18:00:00Z",
"modified": "2025-11-15T18:00:00Z",
"name": "Qakbot C2 Server IP",
"indicator_types": ["malicious-activity"],
"pattern": "[ipv4-addr:value = '185.220.101.42']",
"pattern_type": "stix",
"valid_from": "2025-11-15T14:23:00Z",
"confidence": 95,
"labels": ["c2", "qakbot"],
"object_marking_refs": ["marking-definition--f88d31f6-486f-44da-b317-01333bde0b82"]
}
共有契約に従って、MISP、ISACポータル、TAXIIサーバーに提出します。
主要な概念
| 用語 | 定義 |
|---|---|
| IOC(侵害の痕跡) | セキュリティインシデントの際に観測され、攻撃者の存在を示す技術的な痕跡(ハッシュ、IP、ドメインなど) |
| TLP(トラフィック・ライト・プロトコル) | 脅威インテリジェンスの共有制限を分類する標準規格です。WHITE、GREEN、AMBER、AMBER+STRICT、REDがあります |
| STIX(構造化脅威情報表現) | サイバー脅威インテリジェンスを、構造化された機械可読形式で表現するための標準言語 |
| TAXII(信頼できる自動脅威情報交換) | 組織間でSTIX形式の脅威インテリジェンスを共有するための転送プロトコル |
| 信頼度スコア | インジケーターが実際に悪意のあるものだというアナリストの確信度を示す数値評価(0~100) |
| IOC のライフサイクル | インジケーターの作成、検証、配布、および関連性が薄れた際の廃止に至るまでのプロセス |
| デファング | レポート内の悪意のあるURLやドメインを変更し、誤ってクリックするのを防ぐ手法です(例:evil[.]com) |
ツールとシステム
- MISP:IOC の管理、保存、配布に使われるオープンソースの脅威インテリジェンス共有プラットフォーム
- VirusTotal:IOC の情報を補完するための、複数エンジンによるマルウェアスキャンおよび脅威インテリジェンスプラットフォーム
- OpenCTI:STIX 2.1 をネイティブでサポートするオープンソースのサイバー脅威インテリジェンスプラットフォーム
- Yeti:オブザーバブル、インジケーター、TTP を整理するためのオープンソースプラットフォーム
- CyberChef:IOC のデコード、デファング、フォーマットに役立つGCHQのデータ変換ツール
よくあるシナリオ
シナリオ:ISAC 共有用のインシデント対応後の IOC パッケージ
コンテキスト:Cobalt Strike の展開につながったQakbot感染への対応後、IRチームは金融サービスISAC(FS-ISAC)と共有するすべてのIOCをパッケージ化する必要があります。
アプローチ:
- 調査からネットワーク、ホスト、メールのすべてのインジケーターを収集します
- 各IOCにVirusTotalおよびMISPの相関データを追加します
- 直接観測か二次的な相関かに基づいて信頼度スコアを割り当てます
- パートナーとの共有に向け、すべてのIOCにTLP:AMBERを設定します
- STIX 2.1 バンドルとしてエクスポートし、FS-ISAC TAXIIフィードに送信します
- メール配布用に、人が読めるIOC概要レポートを作成します
注意点:
- 共有IOCパッケージに内部IPアドレスやホスト名を含めてしまう(情報漏えい)
- TLP:AMBERに制限すべきIOCをTLP:WHITEで共有する
- 人が読むレポート内のURLやドメインをデファングしない
- 正規のCDNやクラウドプロバイダーのIPアドレスを、悪意のあるIOCとして共有する
出力形式
INDICATOR OF COMPROMISE REPORT
================================
Incident: INC-2025-1547
Date: 2025-11-15
TLP: AMBER
Sharing: FS-ISAC, internal SOC
NETWORK INDICATORS
Type | Value | Confidence | Context
---------|--------------------------|------------|--------
IPv4 | 185.220.101[.]42 | 95 | Qakbot C2 server
IPv4 | 91.215.85[.]17 | 90 | Cobalt Strike C2
Domain | update.evil[.]com | 95 | Staging domain
URL | hxxps://185.220[.]101.42/gate.php | 95 | C2 check-in
JA3 | a0e9f5d64349fb13191bc7...| 80 | Qakbot TLS fingerprint
HOST INDICATORS
Type | Value | Confidence | Context
---------|--------------------------|------------|--------
SHA-256 | a1b2c3d4e5f6... | 100 | Qakbot dropper
SHA-256 | b2c3d4e5f6a7... | 100 | Cobalt Strike beacon
FilePath | C:\Users\*\AppData\Local\Temp\update.exe | 85 | Dropper location
RegKey | HKCU\...\Run\svcupdate | 90 | Persistence
Mutex | Global\MTX_0x1234ABCD | 95 | Qakbot instance lock
Task | WindowsUpdate | 90 | Scheduled task persistence
EMAIL INDICATORS
Type | Value | Confidence | Context
---------|--------------------------|------------|--------
Sender | billing@spoofed[.]com | 95 | Phishing sender
Subject | "Invoice-Nov2025" | 70 | Phishing subject line
Hash | c3d4e5f6a7b8... | 100 | Malicious .docm attachment
TOTAL: 14 indicators | HIGH confidence avg: 91
コメント
Markdown 対応