🛡️ 脅威インテリジェンス(Threat Intelligence)実践ガイド IOCの収集・分析・活用から、MITRE ATT&CK・STIX・TAXIIまで完全解説

本記事では、脅威インテリジェンスの根幹をなすIOC(侵害指標)の収集・分析・活用を軸に、MITRE ATT&CK・STIX/TAXII・実践的なPythonコードまで体系的に解説します。

📌 はじめての方へ(2026年9月追記)

先に結論:IOC(侵害指標)とは? 5つのポイント

  1. IOCは「Indicator of Compromise」の略で、日本語では「侵害指標」。読み方は「アイ・オー・シー」です。サイバー攻撃を受けた、または受けている「痕跡」を示すデータのことです。
  2. 代表例は、攻撃に使われたIPアドレス・ドメイン名・URL・ファイルのハッシュ値。米国NISTも「攻撃が迫っている、進行中である、またはすでに侵害が起きた可能性を示す技術的な痕跡」と定義しています。
  3. IOC=攻撃に使われた「物」、IOA=攻撃中の「ふるまい」、TTP=攻撃者の「やり方」。IOCは照合しやすい反面、攻撃者にすぐ変えられてしまいます。
  4. IOCは「IOCフィード」で集め、SIEMやEDRでログと照合して使います。機械どうしで交換するときの標準はSTIX/TAXIIです。
  5. 無料で始めるなら、abuse.ch・OTX・MISP・OpenCTIなど。ただしIOCはすぐ古くなるので、鮮度と誤検知の確認が欠かせません。
入門1

IOC入門 1 / 5

IOCとは?セキュリティ(IT)での意味・読み方と具体例

IOCはIndicator of Compromiseの略で、日本語では「侵害指標」や「侵害の痕跡」と訳されます。読み方は一般に「アイ・オー・シー」。「IoC」と書かれることもありますが、意味は同じです。ニュースでよく見る「IOC(国際オリンピック委員会)」とは別物で、IT・セキュリティの分野ではこの侵害指標を指します。

出典IOCの説明
米国NIST攻撃が差し迫っている、進行中である、またはすでに侵害が起きた可能性を示す、技術的な痕跡や観測値(NIST SP 800-61r3。SP 800-150の定義をもとにしたもの)
Microsoft「侵害のインジケーター (IoC)」と呼び、ネットワークやホストで観察される痕跡(フォレンジックアーティファクト)で、侵入が起きたことを高い信頼度で示すもの、と説明

出典:NIST CSRC Glossary/Microsoft Learn「Microsoft Defender for Endpointのインジケーターの概要」(2026年9月に確認)

💡 たとえるなら「空き巣が残した手がかり」

空き巣に入られた家に残る「犯人の車のナンバー」「現場に残った指紋」がIOCです。そのナンバーを近所に知らせておけば、同じ車が別の家に現れたときにすぐ気づけます。IOCを共有して、次の被害を先回りで止めるのが、脅威インテリジェンスの基本的な考え方です。

代表的なIOCの種類と具体例

「IOC情報」と呼ばれるものの多くは、次のような項目を一覧にしたものです。

種類例(無害化した書き方)何の痕跡か
IPアドレス203.0.113[.]45攻撃者が遠隔操作に使うサーバー(C2サーバー)との通信
ドメイン名login-example[.]comフィッシングサイトや、マルウェアの通信先
URLhxxps://example[.]net/updateマルウェアの配布元や偽のログインページ
ファイルのハッシュ値MD5・SHA-256などの値マルウェア本体を特定する「指紋」
メールの特徴送信元アドレス、特徴的な件名標的型メール・フィッシングメール
端末に残る痕跡不審なファイル名、自動起動の設定感染後にパソコンに残る変化

例のIPアドレスは説明用に予約された範囲(203.0.113.0/24)のものです。「[.]」や「hxxps」は、うっかりクリックやアクセスをしないように無害化する書き方(ディファング)です。

ほかの種類(証明書、ミューテックスなど)や、IOCごとの有効期限の目安は、この記事の第2章「IOC(侵害指標)の種類と特徴」でくわしく解説しています。

入門1 おわり — 次は「IOC・IOA・TTPの違い」

入門2

IOC入門 2 / 5

IOC・IOA・TTPの違いと、MITRE ATT&CK・STIXとの関係

IOCとよく一緒に出てくるのがIOA(Indicator of Attack:攻撃指標)とTTP(Tactics, Techniques, and Procedures:戦術・技術・手順)です。見ているものが違います。

IOC(侵害指標)IOA(攻撃指標)TTP(戦術・技術・手順)
見るもの攻撃に使われた「物」(IP・ドメイン・ハッシュ)攻撃者が今しようとしている「ふるまい」攻撃者の「やり方」そのもの
たとえ犯人の車のナンバー夜中に家の周りを何度も下見する動き「窓を割って入り、金庫だけを狙う」手口
強み一致すれば判断しやすく、自動でブロックしやすい使われたマルウェアが未知でも、ふるまいで気づける攻撃者が簡単に変えられず、長く使える
弱み攻撃者にすぐ変えられ、古くなりやすい正常な操作との見分けに分析が必要抽象的で、そのままでは機械的に照合しにくい

NISTはTTPを「攻撃者のふるまい」と定義し、戦術→技術→手順の順に細かくなると説明しています。CrowdStrikeはIOAを「使われたマルウェアやエクスプロイトに関係なく、攻撃者の意図を検知するもの」と説明しています。

🔺 「痛みのピラミッド(Pyramid of Pain)」で考える

セキュリティ研究者のDavid Biancoが示したモデルでは、ハッシュ値→IPアドレス→ドメイン名→…→TTPの順に、防御側に見抜かれたときの攻撃者の「痛み」が大きくなります。IOCだけに頼らず、TTPやIOAの検知と組み合わせることが大切です。くわしくは第2章をご覧ください。

MITRE ATT&CKとIOCの関係

MITRE ATT&CK(マイターアタック)は、実際の攻撃で観測されたTTPを整理した知識ベースで、IOCの一覧ではありません。IOCで攻撃を見つけたら、その攻撃がATT&CKのどのテクニックにあたるかを当てはめます(マッピング)。すると、同じ攻撃者が次に取りそうな行動や、自社に足りない検知が見えてきます。

🆕 2026年のATT&CKの変更点

2026年9月時点の最新版はATT&CK v19.2(2026年4月28日公開)です。Enterprise版の戦術は15個になり、これまでの「Defense Evasion(防御回避)」は「Stealth(TA0005)」と「Defense Impairment(TA0112)」に分かれました。ATT&CKの全体像はMITRE ATT&CK 日本語完全連載で解説しています。

STIXではIOCをどう表す?

STIX(スティックス)は、脅威情報を機械で交換するための標準フォーマットです。STIX 2.1では、IPアドレスやドメイン、ハッシュ値そのものは「STIX Cyber-observable Object(SCO)」として表します。「このパターンに一致したら怪しい」という検知の条件は、「Indicator(インディケーター)」オブジェクトのpattern(必須の項目)に、たとえば[ipv4-addr:value = '203.0.113.45']のように書きます。STIXのデータを受け渡す通信の決まりがTAXII(タクシー)です。実際のJSONの形は第5章で紹介しています。

入門2 おわり — 次は「IOCフィード」

入門3

IOC入門 3 / 5

IOCフィードとは?無料で使える主なIOC情報の入手先

IOCフィード(脅威インテリジェンスフィード)は、新しく見つかったIOCを継続的に配信してくれる仕組みです。形式は、テキストやCSVの一覧、JSONを返すAPI、STIX/TAXII、MISPのフィード形式などさまざまです。まずは無料で使える次のような入手先から始められます。

入手先運営主なIOC使い方・注意
URLhausabuse.chマルウェア配布URLWebで閲覧できるほか、APIで取得できます。APIの利用にはabuse.chアカウントで発行する「Auth-Key」が必要です(2024年11月に告知)
ThreatFoxabuse.chIP・ドメイン・URL・ハッシュと、関連するマルウェア名
MalwareBazaarabuse.chマルウェア検体のハッシュ値
OTX(Open Threat Exchange)LevelBlueIP・ドメイン・URL・ハッシュコミュニティが「Pulse」という単位でIOCをまとめて共有しています
AIS(Automated Indicator Sharing)米国CISA機械で読める形式のIOCと防御策無償のプログラム。利用規約への同意と、STIX/TAXIIに対応したクライアントが必要です
MISPの既定フィードMISPプロジェクトフィードにより異なるMISPには既定のフィード一覧(Default feeds)があり、MISPに取り込んで使えます

出典:abuse.ch、LevelBlue OTX、CISA、MISPプロジェクトの各公式サイト(2026年9月に確認)。VirusTotalなど、そのほかのサービスは第4章の一覧表にまとめています。

⚠ IOCフィードを、そのままブロックリストに入れない

IOCは時間がたつと古くなります。攻撃者が手放したIPアドレスが、別の正規サービスに使われていることもあります。フィードに大手のDNSやCDNのアドレスが紛れていると、ブロックした瞬間に社内の通信が止まるおそれもあります。「いつ観測されたか」「複数の情報源で確認されているか」「誤検知のおそれはないか」を確かめてから使いましょう。商用利用や再配布の条件も、入手先ごとに確認が必要です。

入門3 おわり — 次は「SIEMでの使い方」

入門4

IOC入門 4 / 5

SIEMで脅威インテリジェンス(IOC)を使う仕組みと、IOCエンリッチメント

集めたIOCは、持っているだけでは役に立ちません。社内のログと照合して、実際に攻撃が来ていないかを見つけるときに価値が出ます。その中心になるのが、ログを集めて分析するSIEM(シーム)です。流れは次のとおりです。

  1. 集めるIOCフィードや、業界の情報共有コミュニティからIOCを取り込みます。
  2. 整えるMISPやOpenCTIなどの脅威インテリジェンス基盤(TIP)で、重複を消し、信頼度や有効期限を付けます。
  3. 照合するSIEMが、ファイアウォール・プロキシ・DNS・メール・EDRなどのログとIOCを突き合わせ、一致したらアラートを出します。
  4. 情報を足す(エンリッチメント)一致したIOCに、ウイルス対策エンジンでの検知数、IPアドレスの持ち主(ASN)、初めて観測された日、関連するマルウェアなどの情報を加えます。
  5. 判断して対応する本当に危険ならブロックや端末の隔離をします。誤検知なら、そのIOCを除外して次に生かします。

IOCエンリッチメントとは

IOCエンリッチメントは、IOCに「文脈」を足して、判断しやすくする作業です。たとえば「社内のパソコンが203.0.113.45と通信した」だけでは、急いで対応すべきかわかりません。そこに「複数のフィードで悪性と報告されている」「ランサムウェアの配布に使われたという報告がある」「初めて観測されたのは2日前」といった情報が加わると、優先して調べるべきだと判断できます。VirusTotalなどでの調べ方はVirusTotal 完全ガイド、自動化のコード例は第11章にあります。

製品ではどう設定する?(Microsoftの例)

製品IOCを使う機能できること(公式ドキュメントより)
Microsoft Sentinel(SIEM)「脅威インテリジェンス - TAXII」データコネクタTAXII 2.0/2.1サーバーのAPIルートURLとコレクションIDを入力すると、脅威インジケーターを取り込めます
Microsoft Defender for Endpoint(EDR)インジケーター(IoC)ファイル・IPアドレス・URL/ドメイン・証明書を登録し、「許可」「監査」「警告」「実行をブロック」などを選べます(1テナントあたり15,000個まで)

出典:Microsoft Learn「STIX/TAXII 脅威インテリジェンス フィードに接続する」「Microsoft Defender for Endpointのインジケーターの概要」(2026年9月に確認)。SplunkやSentinelへの投入コード例は第9章をご覧ください。

入門4 おわり — 次は「OpenCTIの使い方」

入門5

IOC入門 5 / 5

OpenCTIの使い方(はじめの一歩)とMISPとの違い

OpenCTIは、Filigran社が開発しているオープンソースの脅威インテリジェンス基盤です。公式ドキュメントでは、組織がサイバー脅威インテリジェンスの知識と観測値(Observable)を管理するためのプラットフォームと説明されています。データの形はSTIX 2.1が土台で、「攻撃グループAがマルウェアBを使う」といった関係をグラフで整理できるのが特徴です。

OpenCTIを使い始める流れ

  1. 立ち上げる公式ドキュメントの「Deployment & Setup」に沿って、Dockerなどでプラットフォームを起動します。
  2. コネクタでデータを取り込むコネクタには、外部の情報をSTIX 2.1に変換して取り込む「Import」、登録済みのデータに情報を足す「Enrichment」、OpenCTIのデータをSIEMやEDRなどへ流す「Stream」などの種類があります。MISPやOTXからの取り込み用コネクタも公開されています。
  3. 知識を探す取り込んだIPアドレスやハッシュ値、攻撃グループ、マルウェアを検索し、関係図で「何とつながっているか」を確かめます。
  4. 検知に使う形にする検知に使いたい観測値(Observable)は、指標(Indicator)として扱います。
  5. ほかのツールに配る「Data sharing」の画面で、Live stream・TAXIIコレクション・CSVフィードを作り、SIEMなどに渡せます。

MISPとOpenCTIの違い

MISPOpenCTI
得意なことIOCを「イベント」単位で、組織の間で共有するIOCと、攻撃グループ・手口・マルウェアの関係を知識として整理する
データの形MISP独自の形式(STIXの読み込み・書き出しにも対応)STIX 2.1が土台
向いている使い方ISACや取引先などとのIOC共有自社向けの分析・関係の可視化・レポート作成

OpenCTIにはMISPからデータを取り込むコネクタがあるため、「共有はMISP、分析はOpenCTI」と組み合わせる使い方もできます。MISPでの共有のコード例は第13章にあります。

入門5 おわり — 最後に「よくある質問」

FAQQ

よくある質問

IOC(侵害指標)についてのよくある質問

IOCの読み方は?「IoC」との違いは?

一般に「アイ・オー・シー」と読みます。「IoC」と書かれることもありますが、どちらもIndicator of Compromise(侵害指標)のことで、意味は同じです。

IOCだけで攻撃を防げますか?

IOCだけでは不十分です。攻撃者はIPアドレスやドメインをすぐに変えるため、IOCは「すでに知られている攻撃」を止めるのには強い一方、新しい攻撃には気づけません。EDRのふるまい検知のようなIOA・TTPにもとづく検知と組み合わせるのが基本です。

IOC情報を受け取ったら、まず何をすればいい?

①プロキシ・DNS・メール・EDRなどのログで、その期間に一致する通信やファイルがないか検索する、②一致したら該当の端末を調べる、③まだ有効なIOCなら、誤検知のおそれを確かめてからブロックする、の順で進めます。

IOCはどれくらいで古くなりますか?

種類によって大きく違います。一般に、IPアドレスやURLは短い期間で使われなくなりやすく、攻撃者の手口(TTP)は長く使える傾向があります。目安は第2章の「IOCの有効期限問題」の表をご覧ください。

小さな会社や個人でもIOCを活用できますか?

できます。怪しいファイルやURLをVirusTotalで調べる、使っているEDRのインジケーター機能に信頼できる情報源のIOCを登録する、といったところから始められます。いきなりたくさんのフィードを入れるより、自社に関係する少数の情報源を丁寧に使うほうが失敗しにくいです。

IOC(侵害指標)と、ニュースの「IOC」は関係ありますか?

関係ありません。ニュースで見るIOCは国際オリンピック委員会(International Olympic Committee)の略です。IT・セキュリティの文脈で出てくるIOCは、この記事で説明している侵害指標のことです。

🚨 IOCそのものの扱いにも注意

IOCに含まれるURLやファイルは、本物の攻撃に使われたものです。確認のためでも、業務用のパソコンで開いたり、アクセスしたりしないでください。調べるときはVirusTotalなどの外部サービスを使います。共有するときは、情報の扱い範囲を色で示すTLP(Traffic Light Protocol)の指定に従いましょう(くわしくは第13章)。

✅ 今日からできる3ステップ
  • 自社を狙いそうな攻撃(業種・使っている製品)を2〜3個決め、それに関係するIOCの入手先を1つ選ぶ
  • 受け取ったIOCを、プロキシやDNSのログで過去にさかのぼって検索してみる
  • 一致したIOCは、エンリッチメントで文脈を足してから、ブロックするかを決める

ここから先は、中級〜上級向けの「脅威インテリジェンス実践ガイド」です。インテリジェンスサイクル、STIX/TAXIIのJSON、Pythonによる自動化、SIEM統合、脅威アクターの分析まで解説します。

→ 第1章「脅威インテリジェンスとは何か」へ進む

📚 入門編で参照した公式情報(2026年9月に確認)

🛡️ 脅威インテリジェンス(Threat Intelligence)実践ガイド

IOCの収集・分析・活用から、MITRE ATT&CK・STIX・TAXIIまで完全解説

対象レベル:中級〜上級 | シリーズ:やさしいサイバーセキュリティ | OSINTシリーズ続編

サイバー攻撃を「起きてから対応する」のではなく、「起きる前に予測して防ぐ」。そのために必要なのが脅威インテリジェンス(Threat Intelligence)です。世界中のセキュリティチームが毎日収集・分析・共有している脅威情報は、適切に活用すれば自組織のセキュリティレベルを劇的に引き上げる武器になります。本記事では、脅威インテリジェンスの根幹をなすIOC(侵害指標)の収集・分析・活用を軸に、MITRE ATT&CK・STIX/TAXII・実践的なPythonコードまで体系的に解説します。

1脅威インテリジェンスとは何か――定義と4つの種類

脅威インテリジェンス(Threat Intelligence、略称:TI)とは、サイバー脅威に関する収集・処理・分析された情報のことです。単なるデータの羅列(IPアドレスのリストなど)ではなく、「誰が・何を目的に・どのような方法で・どこを狙っているか」という文脈(コンテキスト)を持った知識です。

Gartnerは脅威インテリジェンスを「証拠に基づく知識であり、脅威アクターの動機・意図・能力に関するコンテキスト・メカニズム・指標・影響・実行可能な助言を含み、既知または新興の脅威や危険に対する意思決定を可能にするもの」と定義しています(2014年)。この定義は現在も業界標準として参照されています。

脅威インテリジェンスの4つの種類

種類対象読者内容更新頻度
戦略的 (Strategic) 経営層・CISO 脅威のトレンド・攻撃者の動機・地政学的リスク。長期的なリスク意思決定に使用 月次〜四半期
作戦的 (Operational) セキュリティマネージャー・SOCリード 具体的なキャンペーンの手口・攻撃対象・タイムライン。対策計画の立案に使用 週次〜月次
戦術的 (Tactical) SOCアナリスト・インシデントレスポンダー TTP(戦術・技術・手順)。MITRE ATT&CKのテクニック詳細。検知ルール作成に使用 日次〜週次
技術的 (Technical) SOCアナリスト・自動化システム IOC(IPアドレス・ドメイン・ハッシュ値等)。自動ブロック・SIEM連携に使用 リアルタイム〜時間単位

多くの組織が「技術的インテリジェンス(IOCのリスト)」の収集・活用には取り組んでいますが、「戦略的・作戦的インテリジェンス」を経営判断やセキュリティ投資計画に活用している組織はまだ少ないのが現状です。成熟したTIプログラムはすべての層をカバーします。

TIが「データ」「情報」と異なる点

TIの価値を正確に理解するために、3層のピラミッドを意識することが重要です。

📊 データ(Data) → 加工・分類 → 📄 情報(Information) → 分析・コンテキスト付与 → 🧠 インテリジェンス(Intelligence)

例えば「185.123.45.67」というIPアドレスはただのデータです。「このIPはロシアのISPが管理し、ポート443で通信している」が情報です。「このIPはAPT29が使用するC2サーバーであり、日本の金融機関を標的とした2024年Q3のキャンペーンで使用されており、類似インフラがさらに3件確認されている」になって初めてインテリジェンスです。


2IOC(侵害指標)の種類と特徴を完全理解する

IOC(Indicator of Compromise:侵害指標)は、システムへの侵入・マルウェア感染・不正活動の痕跡を示すデータ片です。TIの中核をなす要素であり、防御システムへの統合・調査での活用・情報共有の基本単位となります。

主要なIOCの種類

🌐 IPアドレス

C2サーバー・スキャン元・エクスプロイトの送信元として使用される悪意のあるIPアドレス

185.220.101.34
🔗 ドメイン名

フィッシング・マルウェアのC2・DGAドメインなど。IPよりも変更コストが高く長期使用される傾向

update-microsoft365.ru
🔗 URL

フィッシングページ・マルウェア配布URL・エクスプロイトキット。ドメインより粒度が細かい

http://evil.com/payload/loader.exe
#️⃣ ファイルハッシュ

マルウェアの固有識別子。MD5・SHA-1・SHA-256・SSDeep(類似度ハッシュ)がある

44d88612fea8a8f36de82e1278abb02f(MD5)
📧 メールアドレス

スピアフィッシングの送信元。なりすましアドレス・侵害された正規アカウント等

hr-notice@company-support[.]net
🔏 SSL証明書ハッシュ

C2サーバーが使用する証明書の指紋(フィンガープリント)。IPが変わっても追跡可能

SHA1: a3:b9:2c… (Fingerprint)
📝 レジストリキー

マルウェアが自動起動やデータ保存に使用するWindowsレジストリのパス

HKCU\Software\Microsoft\Windows\CurrentVersion\Run\svchost32
📁 ファイルパス・名前

マルウェアが設置するファイルの場所・名前。正規ファイルを模倣することが多い

C:\Windows\System32\svch0st.exe
🔑 ミューテックス名

マルウェアが二重起動防止に使用するミューテックス。同一ファミリーの識別に有効

Global\{GUID-HERE}
🌊 ネットワークシグネチャ

マルウェア通信の特徴的パターン。User-Agent文字列・HTTPヘッダー・通信プロトコル等

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0)

Pyramid of Pain――IOCの「痛み度」ランキング

セキュリティ研究者のDavid Bianco(2013年)が提唱した「Pyramid of Pain」は、各IOCタイプを「攻撃者にとっての変更コスト(痛み)」で順位付けしたモデルです。

Pyramid of Pain(下から上へ痛みが増大):
① ハッシュ値(最も簡単に変更可能――1バイト変えるだけでハッシュが変わる)
② IPアドレス(変更が容易――クラウドサービスで即時に新IPを取得可能)
③ ドメイン名(やや変更コストがかかる――しかし安価で大量取得可能)
④ ネットワーク・ホストアーティファクト(変更に手間がかかる)
⑤ ツール(開発・習熟に時間とスキルが必要)
⑥ TTP(最も高コスト――攻撃者の行動様式そのものを変える必要がある)

上位のTTP(戦術・技術・手順)をベースにした検知ルールは、攻撃者に最大のコストを強いる最も効果的な防御策です。これがMITRE ATT&CKフレームワークが重視される理由です。

IOCの有効期限問題

IOCには「鮮度(Freshness)」の概念があります。特に技術的IOCであるIPアドレスは、攻撃者がクラウドサービスを使って頻繁に変更するため、有効期間が非常に短いです。

IOCタイプ平均有効期間の目安備考
IPアドレス(C2)数時間〜数日クラウドIP・Torノードは特に短命
ドメイン名数日〜数週間DGAドメインはさらに短命(数時間)
URL数時間〜数日フィッシングURLは特に短命
ファイルハッシュ(MD5/SHA)特定のキャンペーン期間中多形型マルウェアは毎回異なるハッシュ
SSL証明書ハッシュ証明書の有効期間(最大1年)IPより長命。追跡価値が高い
TTP(MITRE ATT&CKベース)数ヶ月〜数年攻撃グループの根本的な手口。最も価値が高い

3インテリジェンスサイクル――収集から活用までの流れ

脅威インテリジェンスは「一度収集して終わり」ではなく、継続的なサイクルとして運用されます。このサイクルを「インテリジェンスサイクル」と呼び、元来は軍事・諜報機関の手法が民間セキュリティに適用されたものです。

6ステップのインテリジェンスサイクル

PHASE 1 / 計画・要件定義(Planning & Direction)

「何を知りたいか」を明確にする最重要フェーズ。Priority Intelligence Requirements(PIR)として問いを設定する。例:「自社が属する金融業界を標的とした最新のランサムウェアグループはどこか?」「攻撃者はどのような初期侵入手法を使っているか?」

PHASE 2 / 収集(Collection)

PIRに基づき、TIフィード・OSINT・ダークウェブ・ベンダーレポートなど複数ソースからデータを収集する。ソースの多様性と信頼性の評価が重要。

PHASE 3 / 処理(Processing)

収集した生データを分析可能な形式に変換・正規化する。重複排除・フォーマット統一・タイムゾーン正規化・IOCの分類など。STIXフォーマットへの変換もここで実施。

PHASE 4 / 分析・生産(Analysis & Production)

処理されたデータにコンテキスト・判断・推奨事項を加えてインテリジェンスを生産する。攻撃グループの帰属・TTPのMITRE ATT&CKへのマッピング・影響範囲の評価など。

PHASE 5 / 普及・共有(Dissemination)

適切な形式で適切な読者に届ける。経営層向けの戦略レポート・SOC向けのIOCフィード・エンジニア向けのTTP詳細など、受け取る側に合わせた形で提供する。

PHASE 6 / フィードバック(Feedback)

「このインテリジェンスは役立ったか?」「PIRは適切だったか?」を評価し、次のサイクルに反映する。フィードバックなしにはサイクルが改善されない。

多くの組織はPHASE 2(収集)とPHASE 3(処理)は実施していますが、PHASE 1(計画)とPHASE 6(フィードバック)が欠落していることが多いです。目的なき収集は「IOCをため込むだけで活用されない」という典型的な失敗パターンにつながります。


4無料で使えるTIフィード・プラットフォーム総覧

脅威インテリジェンスの入り口として、まず無料のフィード・プラットフォームを活用することが重要です。有料サービスと組み合わせることで、より包括的な防御が実現できます。

主要な無料TIフィード・プラットフォーム

サービス名提供IOCタイプ特徴API
VirusTotal
(virustotal.com)
ハッシュ・URL・IP・ドメイン 70以上のAVエンジンによる多角的スキャン。コミュニティコメント・グラフ機能 ✅ 無料枠あり
OTX / AlienVault
(otx.alienvault.com)
IPアドレス・ドメイン・URL・ハッシュ・CVE 現在はLevelBlueが運営(旧AlienVault/AT&T Cybersecurity)。コミュニティ主導のPulse(脅威レポート)が充実。API無料。MISP連携可 ✅ 完全無料
MISP
(misp-project.org)
全IOCタイプ オープンソースのTI共有プラットフォーム。自己ホスト型。STIX対応。組織間共有の標準 ✅ 完全無料
Abuse.ch マルウェアハッシュ・C2 IP・URLhaus MalwareBazaar・URLhaus・ThreatFox・FeodoTrackerを運営。専門性が高い ✅ 完全無料
Shodan
(shodan.io)
IP・ポート・バナー・証明書 インフラIOCに特化。悪性IPの開放ポート・バナーを確認できる ✅ 無料枠あり
PhishTank
(phishtank.com)
フィッシングURL コミュニティ検証型のフィッシングURL DB。OpenDNS(Cisco)傘下 ✅ 完全無料
ThreatFox
(threatfox.abuse.ch)
IOCとマルウェアファミリーのマッピング abuse.ch運営。IOCを特定のマルウェアファミリーに紐付けて提供 ✅ 完全無料
Feodo Tracker Emotet・TrickBot・QakBot等のC2 IP 主要バンキングマルウェアのC2リストをリアルタイム更新 ✅ 完全無料
AbuseIPDB
(abuseipdb.com)
悪意のあるIPアドレス コミュニティ報告型。スキャン・DDoS・スパム等のカテゴリ別に確認可能 ✅ 無料枠あり
OpenCTI 全IOCタイプ オープンソースのCTI(サイバー脅威インテリジェンス)プラットフォーム。STIX 2.1対応 ✅ 完全無料

MISPはオープンソースのTI共有基盤として、各国のCERT・政府機関・民間企業に広く使われています。公式サイトには既定のフィード一覧(Default feeds)が用意されており、abuse.chなどの公開フィードを選んで取り込めます。自組織で立てたMISPを起点に、取引先やISACとIOCを共有していくのが一般的な使い方です。

有料TIサービス(参考)

サービス名特徴対象組織
Recorded FutureAI駆動のリアルタイム分析。脅威アクター追跡。ダークウェブ監視大企業・政府機関
CrowdStrike Falcon IntelligenceEDRと統合されたTI。APTグループの詳細レポート中〜大企業
Mandiant AdvantageGoogle傘下。インシデントレスポンスで収集した実戦データ大企業・政府
Palo Alto Unit 42マルウェア分析・APT追跡に特化した研究チームのTI中〜大企業
Microsoft DTTIMicrosoft製品との深い統合。Sentinel/Defenderとのネイティブ連携Microsoft環境の組織

5STIX/TAXIIとは――脅威情報の標準フォーマット

脅威インテリジェンスの共有・交換を標準化するために、OASISによって策定された2つの規格があります。STIX(Structured Threat Information eXpression)がデータフォーマットを、TAXII(Trusted Automated eXchange of Intelligence Information)がデータ転送プロトコルを定義します。

STIX 2.1の主要オブジェクト(SDO)

オブジェクトタイプ説明使用例
indicatorIOCパターンの定義「このIPがC2通信に使用される」というルール
malwareマルウェアの特性・動作記述Emotetの感染メカニズム・C2通信方法
threat-actor脅威アクターの属性APT29の国籍・動機・スキルレベル
attack-pattern攻撃手法(MITRE ATT&CKテクニック)T1566.001 スピアフィッシング添付ファイル
campaign特定の攻撃キャンペーン「Operation GhostShell」等の名前付きキャンペーン
course-of-action対策・緩和策の記述「特定レジストリキーを監視せよ」
tool攻撃者が使用するツールCobalt Strike・Mimikatz等の記述
vulnerability脆弱性(CVE参照)CVE-2021-44228(Log4Shell)
relationshipオブジェクト間の関係「threat-actor XがmalwareYを使用する」

STIX JSONの基本構造

# STIX 2.1 indicatorオブジェクトの例 { "type": "indicator", "spec_version": "2.1", "id": "indicator--8e2e2d2b-17d4-4cbf-938f-98ee46b3cd3f", "created": "2024-01-15T10:00:00.000Z", "modified": "2024-01-15T10:00:00.000Z", "name": "Malicious IP - APT29 C2", "description": "APT29のC2サーバーとして確認されたIPアドレス", "pattern": "[ipv4-addr:value = '185.220.101.34']", "pattern_type": "stix", "valid_from": "2024-01-15T10:00:00.000Z", "labels": ["malicious-activity"], "confidence": 85, "kill_chain_phases": [{ "kill_chain_name": "mitre-attack", "phase_name": "command-and-control" }] }

TAXIIサーバーへの接続(Python)

from taxii2client.v21 import Server # TAXII 2.1サーバーに接続 server = Server( "https://cti.example.com/taxii/", user="username", password="password" ) # 利用可能なコレクションを取得 api_root = server.api_roots[0] for collection in api_root.collections: print(f"Collection: {collection.title} / ID: {collection.id}") # 特定コレクションからSTIXオブジェクトを取得 collection = api_root.collections[0] objects = collection.get_objects() for obj in objects.get("objects", []): if obj["type"] == "indicator": print(f"IOC: {obj.get('name')} / Pattern: {obj.get('pattern')}")

TAXII 2.0は2017年にOASISにより正式公開され、TAXII 2.1は2021年に最新版として公開されました。現在、MITRE ATT&CK・US-CERT・ENISA・多くの商用TIプラットフォームがTAXII 2.xを使ったSTIX配信をサポートしています。日本のJPCERT/CCもTI共有にTAXII/STIXを採用しています。


6MITRE ATT&CK フレームワークの実践活用

MITRE ATT&CKは、MITREが2013年から開発・公開している実際に観測されたサイバー攻撃のTTP(戦術・技術・手順)のナレッジベースです。現在はEnterprise・Mobile・ICS(産業制御システム)の3マトリクスがあり、Enterprise版は15の戦術(Tactic)と200以上の技術(Technique)で構成されています。

MITRE ATT&CKの最新版は、2026年9月時点でv19.2(2026年4月28日公開)です。Enterprise版の戦術は15個(偵察・リソース開発・初期アクセス・実行・永続化・権限昇格・ステルス・防御の妨害・認証情報アクセス・発見・横展開・収集・C&C・流出・影響)で、従来の「Defense Evasion(防御回避)」がStealth(TA0005)とDefense Impairment(TA0112)に分割されました。それぞれに紐づく200以上のテクニック・サブテクニックが実際の攻撃事例に基づいてドキュメント化されており、世界中のセキュリティチームが検知ルール・ペネトレーションテスト・脅威ハンティングの共通言語として使用しています。

ATT&CKの15戦術(Tactics)と概要

ID戦術名攻撃者の目的代表的テクニック
TA0043偵察(Reconnaissance)標的に関する情報収集T1595 アクティブスキャン
TA0042リソース開発(Resource Development)攻撃に必要なリソースの取得T1583 インフラの取得
TA0001初期アクセス(Initial Access)ネットワークへの最初の侵入T1566 フィッシング
TA0002実行(Execution)悪意のあるコードの実行T1059 コマンドラインインタープリター
TA0003永続化(Persistence)アクセスの維持T1053 スケジュールタスク
TA0004権限昇格(Privilege Escalation)より高い権限の取得T1068 脆弱性の悪用
TA0005ステルス(Stealth)気づかれないように隠れる・正常な動作に見せかけるT1055 プロセスインジェクション
TA0112防御の妨害(Defense Impairment)セキュリティの仕組みやログを壊して、防御側から見えなくするT1685 セキュリティツールの停止・改ざん
TA0006認証情報アクセス(Credential Access)パスワード・トークンの窃取T1003 OSの認証情報ダンプ
TA0007発見(Discovery)環境情報の収集T1082 システム情報の発見
TA0008横展開(Lateral Movement)ネットワーク内での移動T1021 リモートサービス
TA0009収集(Collection)関心データの特定と収集T1005 ローカルシステムのデータ
TA0011C&C(Command and Control)侵害システムとの通信T1071 アプリケーション層プロトコル
TA0010流出(Exfiltration)データの外部持ち出しT1041 C&Cチャネル経由の流出
TA0040影響(Impact)システムへのダメージ・妨害T1486 データの暗号化(ランサムウェア)

MITRE ATT&CKを使った検知ルールの作成

ATT&CKのテクニックに基づいてSIEM検知ルールを作成することで、IOCに依存しない「振る舞いベースの検知(TTPベース)」が実現できます。

T1059.001PowerShell(コマンドラインインタープリター:PowerShell)
攻撃者はPowerShellを使ってコマンドやスクリプトを実行します。エンコードされたコマンド(-EncodedCommand)やダウンロード・実行ワンライナーが典型的な悪用パターンです。
# Sigma(汎用SIEM検知ルール形式)によるATT&CK T1059.001対応ルール例 title: Suspicious PowerShell Encoded Command id: 65531a81-a694-4e31-ae04-f8ba5bc33759 status: stable description: PowerShellの-EncodedCommandパラメータの使用を検知 references: - https://attack.mitre.org/techniques/T1059/001/ author: Security Team date: 2024/01/15 tags: - attack.execution - attack.t1059.001 logsource: category: process_creation product: windows detection: selection: Image|endswith: '\powershell.exe' CommandLine|contains: - '-EncodedCommand' - '-enc ' - '-ec ' filter_legitimate: CommandLine|contains: 'legitimate_app_pattern' condition: selection and not filter_legitimate falsepositives: - 一部の正規管理スクリプトがエンコードされたコマンドを使用する場合がある level: medium

ATT&CK Navigatorによる可視化

MITRE ATT&CK Navigator(mitre-attack.github.io/attack-navigator/)は、自社の検知カバレッジ・脅威グループのTTP・ペネトレーションテスト結果をマトリクス上に色分けして可視化するWebツールです。

🗺️ ATT&CK Navigatorの主な使い方
  1. 自社のSIEM/EDRが検知できるテクニックを青色でマーク → 検知カバレッジを可視化
  2. 侵害を受けたインシデントのTTPを赤色でマーク → 攻撃経路をマッピング
  3. 特定のAPTグループ(例:APT29)のTTPをインポートして重ね合わせ → 脅威特化の対策優先度を設定
  4. レッドチーム演習のカバレッジと実際の検知ルールを比較 → ギャップを特定

7VirusTotalを使った高度なIOC分析

VirusTotalは単なる「ファイルスキャンツール」ではなく、高度なIOC分析に使える包括的なTIプラットフォームです。特にPremium(Enterprise)版のGraph機能とRetroHunt機能は、プロのアナリストが日常的に活用する強力な機能です。

VirusTotal APIによる自動分析

import vt import json client = vt.Client("YOUR_VIRUSTOTAL_API_KEY") # ファイルハッシュのレポートを取得 def analyze_hash(file_hash): try: file_report = client.get_object(f"/files/{file_hash}") stats = file_report.last_analysis_stats print(f"ファイル名: {file_report.meaningful_name}") print(f"悪意あり: {stats['malicious']} / 不審: {stats['suspicious']}") print(f"検知なし: {stats['undetected']}") print(f"タグ: {file_report.tags}") return stats['malicious'] > 0 except vt.error.APIError as e: print(f"エラー: {e}") return None # ドメインのレポートを取得 def analyze_domain(domain): domain_report = client.get_object(f"/domains/{domain}") print(f"カテゴリ: {domain_report.categories}") print(f"評判スコア: {domain_report.reputation}") print(f"作成日: {domain_report.creation_date}") # 使用例 analyze_hash("44d88612fea8a8f36de82e1278abb02f") analyze_domain("suspicious-domain.com") client.close()

VirusTotal Graphによるインフラマッピング

VirusTotal GraphはIOC間の関係をグラフ化する機能です。あるIPアドレスから出発して、そのIPに紐づくドメイン・ファイル・URL・関連IPを自動展開することで、攻撃者のインフラ全体をマッピングできます。

🕸️ VirusTotal Graphによるインフラ探索手順
  1. 既知の悪意あるIP/ドメインをGraph上に配置
  2. 「Expand」機能で紐づくドメイン・ファイル・URLを展開
  3. SSL証明書ハッシュで共通インフラを特定(同一証明書を使う複数のC2を発見)
  4. Passive DNSで過去の紐づきを追跡し、退役したインフラも含めて全体像を把握
  5. 発見したIOCをSTIXフォーマットでエクスポートし、MISPに投入

IOC評価の5つの指標

IOCを受け取った際、そのまま鵜呑みにせずに品質を評価することが重要です。

評価指標確認内容ツール・方法
信頼性(Confidence)ソースの信頼度。自社インシデントから得られたIOCは最高評価ソースのトラックレコード確認
鮮度(Freshness)最終確認日。古いIPは正規サービスに再割り当てされている可能性最終更新日・有効期限の確認
コンテキスト「なぜこのIPが悪意あるとされるか」の根拠関連レポート・インシデント情報
偽陽性リスク正規サービスと混同されるリスク。大手CDN・DNS Resolver等IPの所属ASN・ホスティング情報
関連性(Relevance)自組織の業種・環境に関連する脅威か業種・地域・使用技術との照合

8.8.8.8(Google Public DNS)や1.1.1.1(Cloudflare DNS)のような大手サービスのIPがTIフィードに含まれている場合があります。これらをブロックすると全社のDNS解決が停止するという壊滅的な影響が出ます。IOCの適用前には必ず偽陽性チェックを実施してください。


8PythonによるIOC収集・分析の自動化

大量のTIフィードを手動で処理することは現実的ではありません。Pythonによる自動化で収集・処理・評価・統合のパイプラインを構築します。

TIフィードの自動取得と処理

import requests import json from datetime import datetime, timezone # Abuse.ch ThreatFox APIからIOCを取得 def fetch_threatfox_iocs(days_back=1): url = "https://threatfox-api.abuse.ch/api/v1/" # 2024年11月の変更で、abuse.chのAPIはAuth-Keyによる認証が必須 headers = {"Auth-Key": "YOUR_ABUSECH_AUTH_KEY"} payload = { "query": "get_iocs", "days": days_back } response = requests.post(url, json=payload, headers=headers, timeout=30) data = response.json() iocs = [] if data.get("query_status") == "ok": for item in data.get("data", []): iocs.append({ "ioc": item["ioc"], "ioc_type": item["ioc_type"], "malware_family": item["malware"], "confidence": item["confidence_level"], "tags": item.get("tags", []), "first_seen": item["first_seen"] }) return iocs # OTX AlienVaultフィードを取得 def fetch_otx_pulses(api_key, modified_since_days=1): headers = {"X-OTX-API-KEY": api_key} url = "https://otx.alienvault.com/api/v1/pulses/subscribed" params = {"modified_since": f"{modified_since_days}d"} response = requests.get(url, headers=headers, params=params) pulses = response.json().get("results", []) all_iocs = [] for pulse in pulses: for indicator in pulse.get("indicators", []): all_iocs.append({ "ioc": indicator["indicator"], "ioc_type": indicator["type"], "pulse_name": pulse["name"], "tags": pulse.get("tags", []) }) return all_iocs

IOCの重複排除・正規化・スコアリング

import ipaddress import re from collections import Counter # IPアドレスの検証と正規化 def validate_ip(ip_str): try: ip = ipaddress.ip_address(ip_str) # プライベートIPアドレスを除外 if ip.is_private or ip.is_loopback or ip.is_reserved: return None return str(ip) except ValueError: return None # ドメインの基本検証 def validate_domain(domain): pattern = r'^[a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?(\.[a-zA-Z]{2,})+$' if re.match(pattern, domain): # 大手CDN・信頼済みドメインのホワイトリストチェック whitelist = {'google.com', 'microsoft.com', 'cloudflare.com'} if domain not in whitelist: return domain return None # IOCの信頼スコアを算出(複数ソースで確認されるほど高スコア) def calculate_ioc_score(ioc, source_counts): base_score = 50 # 複数ソースで確認された場合にスコアを加算 source_bonus = min(source_counts.get(ioc, 1) * 10, 40) return base_score + source_bonus

AbuseIPDB APIを使ったIPレピュテーション確認

import requests def check_abuseipdb(ip_address, api_key): url = "https://api.abuseipdb.com/api/v2/check" headers = { "Key": api_key, "Accept": "application/json" } params = { "ipAddress": ip_address, "maxAgeInDays": "90", "verbose": "" } response = requests.get(url, headers=headers, params=params) data = response.json()["data"] return { "ip": data["ipAddress"], "abuse_confidence": data["abuseConfidenceScore"], "country": data["countryCode"], "isp": data["isp"], "total_reports": data["totalReports"], "last_reported": data["lastReportedAt"] }

9SIEMへのTIフィード統合――実装ガイド

収集・分析したIOCをSIEM(Security Information and Event Management)に統合することで、リアルタイムのアラート生成・自動対応・脅威ハンティングが可能になります。

SIEM統合の3つのアーキテクチャパターン

パターン 1 / 直接フィード統合(最もシンプル)

TIプロバイダーのAPI → SIEM内蔵のTI機能に直接投入。Splunk ES・Microsoft Sentinel・IBM QRadarはこのパターンをネイティブサポート。設定コストが低く最初のステップとして最適。

パターン 2 / TIPを介した統合(推奨)

TIフィード → MISP/OpenCTI(TIP)→ SIEM。TIPで正規化・重複排除・スコアリングを行い、高品質なIOCのみをSIEMに送り込む。偽陽性を大幅に削減できる。

パターン 3 / SOAR統合(最も高度)

TIフィード → SIEM(検知) → SOAR(自動対応)。IOCがヒットしたアラートを自動的にSOARに送り、エンリッチメント(追加情報収集)→ チケット作成 → ブロック実行まで自動化。

Microsoft Sentinelへの統合例

# Azure CLI / Python SDKでSentinelにThreat Intelligenceを投入 from azure.identity import DefaultAzureCredential from azure.mgmt.securityinsight import SecurityInsights from azure.mgmt.securityinsight.models import ThreatIntelligenceIndicatorModel credential = DefaultAzureCredential() client = SecurityInsights(credential, "YOUR_SUBSCRIPTION_ID") # IOCをSentinelのTI Indicatorsとして登録 indicator = ThreatIntelligenceIndicatorModel( threat_intelligence_tags=["APT29", "C2"], pattern="[ipv4-addr:value = '185.220.101.34']", pattern_type="stix", source="Internal-TI-Team", confidence=85, valid_from="2024-01-15T00:00:00Z", description="APT29 C2 IPアドレス - 金融機関攻撃キャンペーンで確認" ) client.threat_intelligence_indicator.create_indicator( resource_group_name="rg-security", workspace_name="sentinel-workspace", ti_indicator=indicator )

Splunk ESへのTIフィード投入(KV Store活用)

# Splunk REST APIでTI KV Storeを更新 import requests import json SPLUNK_URL = "https://splunk.example.com:8089" SPLUNK_TOKEN = "YOUR_SPLUNK_TOKEN" def push_ioc_to_splunk(ioc_list): # TI用KV Storeコレクションに一括投入 url = f"{SPLUNK_URL}/servicesNS/nobody/SA-ThreatIntelligence/storage/collections/data/ip_intel" headers = { "Authorization": f"Bearer {SPLUNK_TOKEN}", "Content-Type": "application/json" } for ioc in ioc_list: payload = { "ip": ioc["value"], "threat_key": ioc["malware_family"], "weight": ioc["confidence"], "description": ioc["description"] } requests.post(url, headers=headers, json=payload, verify=False)

SIEMにIOCを大量投入すると偽陽性アラートが急増し、SOCアナリストが「アラート疲れ(Alert Fatigue)」に陥る危険があります。Confidence 70以上・複数ソースで確認済み・30日以内のIOCのみを投入するなど、品質フィルタリングを必ず設けてください。


10脅威アクターのプロファイリング技法

個別のIOCを追うだけでなく、「どの攻撃グループが・何を目的に・どのような方法で攻撃してくるか」を理解することが上級TIアナリストの仕事です。これを脅威アクターの「プロファイリング」と呼びます。

主要な国家関連APTグループの特徴

グループ名帰属国主要ターゲット代表的TTPs別名
APT29 ロシア(SVR) 政府・シンクタンク・医療・IT企業 WellMess・SUNBURST・Cobalt Strike。サプライチェーン攻撃を多用 Cozy Bear・Midnight Blizzard
APT28 ロシア(GRU) NATO・政府・選挙関連・メディア X-Agent・Sofacy。フィッシング・ゼロデイ悪用 Fancy Bear・Forest Blizzard
APT41 中国 ゲーム・医療・テレコム・国防 国家スパイ活動と金銭目的の攻撃を並行。サプライチェーン・VPN脆弱性悪用 Winnti・Double Dragon
Lazarus Group 北朝鮮(RGB) 金融・仮想通貨・航空宇宙・防衛 外貨獲得目的の仮想通貨窃取。SWIFT攻撃。ランサムウェア展開 Hidden Cobra・Zinc
APT33 イラン 航空宇宙・エネルギー・サウジアラビア スピアフィッシング・ワイパーマルウェア(Shamoon) Elfin・Refined Kitten

Microsoft社は2023年以降、脅威アクターの命名を「天気」にもとづく分類に統一しました。国家系は出身国ごとにBlizzard(ロシア)・Typhoon(中国)・Sandstorm(イラン)・Sleet(北朝鮮)など、金銭目的はTempest、民間の攻撃ツール事業者(PSOA)はTsunami、影響工作はFlood、分析途中のグループはStorm-+4桁の番号です。例えばAPT29は「Midnight Blizzard」、APT41は「Brass Typhoon」、Lazarusは「Diamond Sleet」と命名されています。業界内では新旧の名称が混在しているため、どちらの命名規則かを把握しておくことが重要です。

プロファイリングに必要な7要素

🎯

動機(Motivation)

国家支援型スパイ活動・金銭目的・ハクティビズム・破壊工作のいずれか

🌍

帰属(Attribution)

国家・組織への帰属。複数の独立した証拠に基づく慎重な判断が必要

🔧

能力(Capability)

使用するツール・ゼロデイの調達能力・マルウェア開発能力

🏹

標的(Targeting)

業種・地域・組織規模・特定のポジション(CISO・CFO等)の傾向

⚔️

TTP

MITRE ATT&CKにマッピングされた具体的な攻撃手順・ツール・手続き

🏗️

インフラ(Infrastructure)

C2サーバーの特徴・ASN傾向・証明書パターン・VPS/自前ホスト

📅

活動パターン(Tempo)

活動時間帯(タイムゾーン推定)・業務時間帯の有無・攻撃頻度

🔤

言語的証跡

マルウェア・コード・文書のメタデータに含まれる言語・文字コード


11インシデントレスポンスへのTI活用

脅威インテリジェンスはインシデント対応の各フェーズで活用できます。特に初期トリアージ・根本原因分析・封じ込め範囲の特定において、TIは対応時間を大幅に短縮します。

IRフェーズ別TI活用マップ

準備フェーズ(Preparation)

自組織が属する業種の最新攻撃トレンドをTIで把握。攻撃されやすい経路(フィッシング・VPN脆弱性等)に対応したプレイブックを事前作成。TI経由で得た攻撃グループのTTPに基づく検知ルールを事前に整備。

識別フェーズ(Identification)

SIEMアラートのIPアドレス・ドメインを即座にTIで照合。VirusTotal・OTXで既知のマルウェアファミリーか確認。MITRE ATT&CKで観測されたTTPを特定し、どのキャンペーンに似ているか判断。

封じ込めフェーズ(Containment)

確認されたC2サーバーのIPレンジ・ドメインをファイアウォール・Proxyでブロック。TIPのパッシブDNSで関連する追加C2を特定し、ブロック範囲を拡大。SSL証明書ハッシュで同一インフラの別エンドポイントを特定。

根絶フェーズ(Eradication)

使用されたマルウェアファミリーのTIレポートから、典型的な永続化手法(レジストリキー・サービス・スケジュールタスク)を把握し、見落としがないか体系的に確認。

事後対応フェーズ(Lessons Learned)

インシデントから得られたIOCをSTIX形式で記録し、MISPに投入して組織内外に共有。攻撃者のTTPをMITRE ATT&CKにマッピングし、検知ギャップを特定。TIプログラムのPIRを更新。

IOCのエンリッチメント自動化

import requests from concurrent.futures import ThreadPoolExecutor # 複数のTIソースでIOCを並列にエンリッチメント def enrich_ip(ip_address, vt_key, abuse_key): results = {} def check_vt(): headers = {"x-apikey": vt_key} r = requests.get( f"https://www.virustotal.com/api/v3/ip_addresses/{ip_address}", headers=headers, timeout=15 ) if r.status_code == 200: data = r.json()["data"]["attributes"] results["virustotal"] = { "malicious": data["last_analysis_stats"]["malicious"], "country": data.get("country"), "asn": data.get("asn") } def check_abuse(): r = requests.get( "https://api.abuseipdb.com/api/v2/check", headers={"Key": abuse_key}, params={"ipAddress": ip_address, "maxAgeInDays": "30"}, timeout=15 ) if r.status_code == 200: results["abuseipdb"] = r.json()["data"] # 並列でエンリッチメントを実行 with ThreadPoolExecutor(max_workers=2) as executor: executor.submit(check_vt) executor.submit(check_abuse) return results

12TIプログラムの構築と成熟度モデル

TIは単発のツール導入ではなく、継続的に運用・改善されるプログラムとして設計する必要があります。成熟度モデルを使ってロードマップを描きましょう。

TI成熟度モデル(5段階)

レベル名称特徴目安
Lv.1 アドホック TI活動が存在しない。インシデント発生時のみ断片的に情報収集 多くの中小企業
Lv.2 初期 無料フィードをSIEMに統合。IOCの手動チェックを実施。PIRは未定義 セキュリティ意識のある中小企業
Lv.3 定義済み MISPやOpenCTIを導入。TIPでIOCを管理。MITRE ATT&CKにTTPをマッピング開始 SOCを持つ中規模企業
Lv.4 管理済み インテリジェンスサイクルが確立。PIRに基づくTI生産。ISACへの情報共有参加 成熟したSOCを持つ大企業
Lv.5 最適化 TIが経営判断・予算計画に統合。独自の脅威アクター追跡。業界全体への貢献 金融・通信・防衛等の重要インフラ

小規模組織でのTIプログラム開始3ステップ

🚀 最小コストで始めるTIプログラム
  1. PIRの設定(1週間):「自社業種を狙うランサムウェアグループを把握する」等の具体的な問いを2〜3個設定。漠然とした「すべての脅威」ではなく絞り込みが重要
  2. 無料フィードの統合(2週間):Abuse.ch ThreatFox・OTX・AbuseIPDBのAPIをSIEMに接続。既存のファイアウォール・Proxyへのブロックリスト投入
  3. レポーティングの習慣化(継続):週1回、収集したTIから自組織への影響度を評価し、担当者(CISO等)に共有。フィードバックを次週のPIR改善に反映

13コミュニティ共有とISAC――情報共有の実際

TIの価値は組織内に閉じ込めておくより、信頼できるコミュニティで共有することで指数的に高まります。「1つの組織で観測した攻撃情報が、他の組織の被害を未然に防ぐ」という善のサイクルがTI共有の本質です。

ISAC(情報共有・分析センター)とは

ISACは特定業種の組織が集まり、サイバー脅威情報を相互に共有する業界団体です。1998年に米国で始まった概念で、現在は世界中に業種別のISACが設立されています。

2024年現在、米国には金融(FS-ISAC)・医療(H-ISAC)・エネルギー(E-ISAC)・航空(A-ISAC)・IT(IT-ISAC)など24以上の業種別ISACが活動中です。日本においては、2017年に設立された金融ISAC(金融機関向け)や、IPAが推進するJ-CSIP(サイバー情報共有イニシアティブ)が主要な情報共有組織です。J-CSIPには2024年現在、製造・自動車・防衛など幅広い業種から200社超が参加しています。

MISPを使ったコミュニティ共有

from pymisp import PyMISP, MISPEvent, MISPAttribute # MISPインスタンスに接続 misp = PyMISP( url="https://misp.example.com", key="YOUR_MISP_API_KEY", ssl=True ) # 新しいTIイベントを作成 event = MISPEvent() event.info = "Emotet Campaign - 2024-Q1 Japan Targeting" event.threat_level_id = 2 # Medium event.analysis = 2 # Completed event.distribution = 3 # All communities # IOCを追加 event.add_attribute("ip-dst", "185.220.101.34", comment="Emotet C2") event.add_attribute("domain", "evil-update.com", comment="Distribution domain") event.add_attribute("md5", "44d88612fea8a8f36de82e1278abb02f", comment="Dropper hash") # タグの追加(MITRE ATT&CK対応) event.add_tag("misp-galaxy:mitre-attack-pattern=\"Phishing - T1566\"") event.add_tag("tlp:amber") # TLPレベルの指定 # イベントをMISPに投入 result = misp.add_event(event) print(f"Event ID: {result.id}")

TLP(Traffic Light Protocol)の理解と遵守

TLPは脅威情報の共有範囲を色で示す業界標準プロトコルです(FIRST.org が管理)。

TLPカラー共有範囲使用場面
🔴 TLP:RED情報提供者と受領者のみ(転送禁止)最高機密の脆弱性・インシデント情報
🟠 TLP:AMBER受領組織内の「Need to Know」の人員のみ顧客・パートナーに限定した情報
🟡 TLP:AMBER+STRICT受領組織のメンバーのみ(顧客への共有も禁止)より厳格な制限が必要な場合
🟢 TLP:GREENコミュニティ全体(公開不可)業界内での広い共有
⬜ TLP:CLEAR制限なし・公開可能一般公開の脅威情報・セキュリティ勧告

14法的・倫理的考慮点とこれからのトレンド

TI活動における法的考慮点

「ハックバック(反撃)」は日本では違法です。不正アクセス禁止法により、たとえ攻撃者のサーバーであっても、許可なく第三者のシステムにアクセスすることは違法です。TIは「防御的な情報収集・分析・共有」に限定し、攻撃者への能動的な反撃(ハックバック・アクティブディフェンス)は行ってはいけません。

法規制TI活動との関係
不正アクセス禁止法攻撃者インフラへの直接アクセス・ハックバックは違法。PassiveDNS・ShodanなどのOSINTは合法
個人情報保護法TIフィードに個人情報(氏名・メールアドレス等)が含まれる場合は適用対象。収集・利用目的の明確化が必要
不正競争防止法企業の内部情報(競合他社の脆弱性情報等)を不正に収集・利用することは適用対象
GDPR(EU)EU居住者のメールアドレス等の個人情報がTIデータに含まれる場合、日本企業でも適用の可能性

これからの脅威インテリジェンストレンド

  • AI駆動のTI(AI-Powered TI):LLMによるマルウェアレポートの自動要約・未知のIOCパターン検出・脅威アクターの行動予測が実用化段階に入っています。Recorded FutureはAI分析を中核サービスに位置づけています
  • 生成AI悪用への対応TI:AIが生成したフィッシングメール・ディープフェイク動画を使った標的型攻撃が増加。これらを検出するためのTI(AIコンテンツ検出IOC)という新カテゴリが誕生しています
  • 量子コンピュータ準備(PQC)とTI:量子コンピュータによる暗号解読に向けた長期的な準備として、「Harvest Now Decrypt Later(今収集して後で復号)」攻撃が国家系APTで観測されています。TLSハンドシェイクのキャプチャを中心としたTI収集が重要性を増しています
  • OT/ICS向けTIの成熟:工場・電力・水道などの産業制御システムを標的とした攻撃が急増し、OT環境特有のTI(Dragos・Claroty等が提供)への需要が高まっています
  • サプライチェーンTI:SolarWinds(2020年)・Kaseya(2021年)・3CX(2023年)等のサプライチェーン攻撃を受け、ベンダーのセキュリティ状況を継続的にモニタリングするTIが標準化されつつあります

Verizon社の「Data Breach Investigations Report(DBIR)2024」によると、侵害の68%に「悪意のない人的要素」(うっかりミスや、だまされてしまったケース)が関与しています。また、侵害全体の32%に、ランサムウェアを含む何らかの恐喝の手口が関わっていたと報告されています。人が引っかかる前提で、TIによる事前の遮断と早期の気づきを用意しておく価値は大きいといえます。


まとめ:脅威インテリジェンスを「使える武器」にするために

🧠

PIRを先に決める

「何を知りたいか」を定義しないTIは価値のないIOCの山になる

📐

Pyramid of Painを意識

ハッシュより上位のTTPベース検知を目指す。IPブロックは一時的な対策に過ぎない

🔗

STIX/TAXIIで標準化

IOCをSTIXフォーマットで管理することで再利用性と共有性が向上する

🗺️

ATT&CKにマッピング

すべての観測TTPをATT&CKに紐づけることで検知ギャップが可視化される

⚡

SIEMへの品質統合

大量投入より高品質なIOCを厳選して投入。偽陽性管理が運用継続の鍵

🤝

コミュニティで共有

TLPを遵守した情報共有が業界全体のセキュリティレベルを底上げする

学習を深めるための推奨リソース

  • MITRE ATT&CK公式サイト(attack.mitre.org):最新のTTP・グループ情報を確認
  • SANS CTI Summit:年1回開催のTI専門カンファレンス。講演資料が後日公開
  • FIRST TLP Guidelines(first.org/tlp):TLPの公式ガイドライン
  • Mandiant / Google Cloud Security Blog:APT分析レポートの最新事例
  • JPCERT/CC Weekly Report:日本語で読める国内外の脅威情報
  • 「The Threat Intelligence Handbook」(CrowdStrike・Recorded Future共同発行):無料ダウンロード可能な定番書籍
IOCを手がかりに次の一手を読む感覚は→【ゲーム】SOC TACTICS|詰将棋系ターン戦術で疑似体験できます。

コメント