本記事では、脅威インテリジェンスの根幹をなすIOC(侵害指標)の収集・分析・活用を軸に、MITRE ATT&CK・STIX/TAXII・実践的なPythonコードまで体系的に解説します。
📌 はじめての方へ(2026年9月追記)
先に結論:IOC(侵害指標)とは? 5つのポイント
- IOCは「Indicator of Compromise」の略で、日本語では「侵害指標」。読み方は「アイ・オー・シー」です。サイバー攻撃を受けた、または受けている「痕跡」を示すデータのことです。
- 代表例は、攻撃に使われたIPアドレス・ドメイン名・URL・ファイルのハッシュ値。米国NISTも「攻撃が迫っている、進行中である、またはすでに侵害が起きた可能性を示す技術的な痕跡」と定義しています。
- IOC=攻撃に使われた「物」、IOA=攻撃中の「ふるまい」、TTP=攻撃者の「やり方」。IOCは照合しやすい反面、攻撃者にすぐ変えられてしまいます。
- IOCは「IOCフィード」で集め、SIEMやEDRでログと照合して使います。機械どうしで交換するときの標準はSTIX/TAXIIです。
- 無料で始めるなら、abuse.ch・OTX・MISP・OpenCTIなど。ただしIOCはすぐ古くなるので、鮮度と誤検知の確認が欠かせません。
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 | フィッシングサイトや、マルウェアの通信先 |
| URL | hxxps://example[.]net/update | マルウェアの配布元や偽のログインページ |
| ファイルのハッシュ値 | MD5・SHA-256などの値 | マルウェア本体を特定する「指紋」 |
| メールの特徴 | 送信元アドレス、特徴的な件名 | 標的型メール・フィッシングメール |
| 端末に残る痕跡 | 不審なファイル名、自動起動の設定 | 感染後にパソコンに残る変化 |
例のIPアドレスは説明用に予約された範囲(203.0.113.0/24)のものです。「[.]」や「hxxps」は、うっかりクリックやアクセスをしないように無害化する書き方(ディファング)です。
ほかの種類(証明書、ミューテックスなど)や、IOCごとの有効期限の目安は、この記事の第2章「IOC(侵害指標)の種類と特徴」でくわしく解説しています。
入門1 おわり — 次は「IOC・IOA・TTPの違い」
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フィード」
IOCフィードとは?無料で使える主なIOC情報の入手先
IOCフィード(脅威インテリジェンスフィード)は、新しく見つかったIOCを継続的に配信してくれる仕組みです。形式は、テキストやCSVの一覧、JSONを返すAPI、STIX/TAXII、MISPのフィード形式などさまざまです。まずは無料で使える次のような入手先から始められます。
| 入手先 | 運営 | 主なIOC | 使い方・注意 |
|---|---|---|---|
| URLhaus | abuse.ch | マルウェア配布URL | Webで閲覧できるほか、APIで取得できます。APIの利用にはabuse.chアカウントで発行する「Auth-Key」が必要です(2024年11月に告知) |
| ThreatFox | abuse.ch | IP・ドメイン・URL・ハッシュと、関連するマルウェア名 | |
| MalwareBazaar | abuse.ch | マルウェア検体のハッシュ値 | |
| OTX(Open Threat Exchange) | LevelBlue | IP・ドメイン・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は時間がたつと古くなります。攻撃者が手放したIPアドレスが、別の正規サービスに使われていることもあります。フィードに大手のDNSやCDNのアドレスが紛れていると、ブロックした瞬間に社内の通信が止まるおそれもあります。「いつ観測されたか」「複数の情報源で確認されているか」「誤検知のおそれはないか」を確かめてから使いましょう。商用利用や再配布の条件も、入手先ごとに確認が必要です。
入門3 おわり — 次は「SIEMでの使い方」
SIEMで脅威インテリジェンス(IOC)を使う仕組みと、IOCエンリッチメント
集めたIOCは、持っているだけでは役に立ちません。社内のログと照合して、実際に攻撃が来ていないかを見つけるときに価値が出ます。その中心になるのが、ログを集めて分析するSIEM(シーム)です。流れは次のとおりです。
- 集めるIOCフィードや、業界の情報共有コミュニティからIOCを取り込みます。
- 整えるMISPやOpenCTIなどの脅威インテリジェンス基盤(TIP)で、重複を消し、信頼度や有効期限を付けます。
- 照合するSIEMが、ファイアウォール・プロキシ・DNS・メール・EDRなどのログとIOCを突き合わせ、一致したらアラートを出します。
- 情報を足す(エンリッチメント)一致したIOCに、ウイルス対策エンジンでの検知数、IPアドレスの持ち主(ASN)、初めて観測された日、関連するマルウェアなどの情報を加えます。
- 判断して対応する本当に危険ならブロックや端末の隔離をします。誤検知なら、その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の使い方」
OpenCTIの使い方(はじめの一歩)とMISPとの違い
OpenCTIは、Filigran社が開発しているオープンソースの脅威インテリジェンス基盤です。公式ドキュメントでは、組織がサイバー脅威インテリジェンスの知識と観測値(Observable)を管理するためのプラットフォームと説明されています。データの形はSTIX 2.1が土台で、「攻撃グループAがマルウェアBを使う」といった関係をグラフで整理できるのが特徴です。
OpenCTIを使い始める流れ
- 立ち上げる公式ドキュメントの「Deployment & Setup」に沿って、Dockerなどでプラットフォームを起動します。
- コネクタでデータを取り込むコネクタには、外部の情報をSTIX 2.1に変換して取り込む「Import」、登録済みのデータに情報を足す「Enrichment」、OpenCTIのデータをSIEMやEDRなどへ流す「Stream」などの種類があります。MISPやOTXからの取り込み用コネクタも公開されています。
- 知識を探す取り込んだIPアドレスやハッシュ値、攻撃グループ、マルウェアを検索し、関係図で「何とつながっているか」を確かめます。
- 検知に使う形にする検知に使いたい観測値(Observable)は、指標(Indicator)として扱います。
- ほかのツールに配る「Data sharing」の画面で、Live stream・TAXIIコレクション・CSVフィードを作り、SIEMなどに渡せます。
MISPとOpenCTIの違い
| MISP | OpenCTI | |
|---|---|---|
| 得意なこと | IOCを「イベント」単位で、組織の間で共有する | IOCと、攻撃グループ・手口・マルウェアの関係を知識として整理する |
| データの形 | MISP独自の形式(STIXの読み込み・書き出しにも対応) | STIX 2.1が土台 |
| 向いている使い方 | ISACや取引先などとのIOC共有 | 自社向けの分析・関係の可視化・レポート作成 |
OpenCTIにはMISPからデータを取り込むコネクタがあるため、「共有はMISP、分析はOpenCTI」と組み合わせる使い方もできます。MISPでの共有のコード例は第13章にあります。
入門5 おわり — 最後に「よくある質問」
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に含まれるURLやファイルは、本物の攻撃に使われたものです。確認のためでも、業務用のパソコンで開いたり、アクセスしたりしないでください。調べるときはVirusTotalなどの外部サービスを使います。共有するときは、情報の扱い範囲を色で示すTLP(Traffic Light Protocol)の指定に従いましょう(くわしくは第13章)。
- 自社を狙いそうな攻撃(業種・使っている製品)を2〜3個決め、それに関係するIOCの入手先を1つ選ぶ
- 受け取ったIOCを、プロキシやDNSのログで過去にさかのぼって検索してみる
- 一致したIOCは、エンリッチメントで文脈を足してから、ブロックするかを決める
ここから先は、中級〜上級向けの「脅威インテリジェンス実践ガイド」です。インテリジェンスサイクル、STIX/TAXIIのJSON、Pythonによる自動化、SIEM統合、脅威アクターの分析まで解説します。
📚 入門編で参照した公式情報(2026年9月に確認)
- NIST CSRC Glossary「indicators of compromise」 https://csrc.nist.gov/glossary/term/indicator_of_compromise
- NIST CSRC Glossary「tactics, techniques, and procedures」 https://csrc.nist.gov/glossary/term/tactics_techniques_and_procedures
- Microsoft Learn「Microsoft Defender for Endpointのインジケーターの概要」 https://learn.microsoft.com/ja-jp/defender-endpoint/indicators-overview
- Microsoft Learn「STIX/TAXII 脅威インテリジェンス フィードに接続する」 https://learn.microsoft.com/ja-jp/azure/sentinel/connect-threat-intelligence-taxii
- CrowdStrike「IOA vs IOC」 https://www.crowdstrike.com/en-us/cybersecurity-101/threat-intelligence/ioa-vs-ioc/
- MITRE ATT&CK「Enterprise tactics」「ATT&CK versions」 https://attack.mitre.org/tactics/enterprise/
- OASIS「STIX Version 2.1」 https://docs.oasis-open.org/cti/stix/v2.1/os/stix-v2.1-os.html
- abuse.ch「Community First - new authentication, new data, and new functionality」(2024年11月18日) https://abuse.ch/blog/community-first/
- CISA「Automated Indicator Sharing (AIS)」 https://www.cisa.gov/topics/cyber-threats-and-advisories/information-sharing/automated-indicator-sharing-ais
- OpenCTI Documentation(Introduction/Connectors/Data model/Feeds) https://docs.opencti.io/latest/
- MISP Project「Default feeds」 https://www.misp-project.org/feeds/
🛡️ 脅威インテリジェンス(Threat Intelligence)実践ガイド
IOCの収集・分析・活用から、MITRE ATT&CK・STIX・TAXIIまで完全解説
対象レベル:中級〜上級 | シリーズ:やさしいサイバーセキュリティ | OSINTシリーズ続編
サイバー攻撃を「起きてから対応する」のではなく、「起きる前に予測して防ぐ」。そのために必要なのが脅威インテリジェンス(Threat Intelligence)です。世界中のセキュリティチームが毎日収集・分析・共有している脅威情報は、適切に活用すれば自組織のセキュリティレベルを劇的に引き上げる武器になります。本記事では、脅威インテリジェンスの根幹をなすIOC(侵害指標)の収集・分析・活用を軸に、MITRE ATT&CK・STIX/TAXII・実践的なPythonコードまで体系的に解説します。
📋 目次
- 脅威インテリジェンスとは何か――定義と4つの種類
- IOC(侵害指標)の種類と特徴を完全理解する
- インテリジェンスサイクル――収集から活用までの流れ
- 無料で使えるTIフィード・プラットフォーム総覧
- STIX/TAXIIとは――脅威情報の標準フォーマット
- MITRE ATT&CK フレームワークの実践活用
- VirusTotalを使った高度なIOC分析
- PythonによるIOC収集・分析の自動化
- SIEMへのTIフィード統合――実装ガイド
- 脅威アクターのプロファイリング技法
- インシデントレスポンスへのTI活用
- TIプログラムの構築と成熟度モデル
- コミュニティ共有とISAC――情報共有の実際
- 法的・倫理的考慮点とこれからのトレンド
はじめての方は、まずIOC入門編(この記事の前半)からどうぞ。
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層のピラミッドを意識することが重要です。
例えば「185.123.45.67」というIPアドレスはただのデータです。「このIPはロシアのISPが管理し、ポート443で通信している」が情報です。「このIPはAPT29が使用するC2サーバーであり、日本の金融機関を標的とした2024年Q3のキャンペーンで使用されており、類似インフラがさらに3件確認されている」になって初めてインテリジェンスです。
2IOC(侵害指標)の種類と特徴を完全理解する
IOC(Indicator of Compromise:侵害指標)は、システムへの侵入・マルウェア感染・不正活動の痕跡を示すデータ片です。TIの中核をなす要素であり、防御システムへの統合・調査での活用・情報共有の基本単位となります。
主要なIOCの種類
C2サーバー・スキャン元・エクスプロイトの送信元として使用される悪意のあるIPアドレス
フィッシング・マルウェアのC2・DGAドメインなど。IPよりも変更コストが高く長期使用される傾向
フィッシングページ・マルウェア配布URL・エクスプロイトキット。ドメインより粒度が細かい
マルウェアの固有識別子。MD5・SHA-1・SHA-256・SSDeep(類似度ハッシュ)がある
スピアフィッシングの送信元。なりすましアドレス・侵害された正規アカウント等
C2サーバーが使用する証明書の指紋(フィンガープリント)。IPが変わっても追跡可能
マルウェアが自動起動やデータ保存に使用するWindowsレジストリのパス
マルウェアが設置するファイルの場所・名前。正規ファイルを模倣することが多い
マルウェアが二重起動防止に使用するミューテックス。同一ファミリーの識別に有効
マルウェア通信の特徴的パターン。User-Agent文字列・HTTPヘッダー・通信プロトコル等
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ステップのインテリジェンスサイクル
「何を知りたいか」を明確にする最重要フェーズ。Priority Intelligence Requirements(PIR)として問いを設定する。例:「自社が属する金融業界を標的とした最新のランサムウェアグループはどこか?」「攻撃者はどのような初期侵入手法を使っているか?」
PIRに基づき、TIフィード・OSINT・ダークウェブ・ベンダーレポートなど複数ソースからデータを収集する。ソースの多様性と信頼性の評価が重要。
収集した生データを分析可能な形式に変換・正規化する。重複排除・フォーマット統一・タイムゾーン正規化・IOCの分類など。STIXフォーマットへの変換もここで実施。
処理されたデータにコンテキスト・判断・推奨事項を加えてインテリジェンスを生産する。攻撃グループの帰属・TTPのMITRE ATT&CKへのマッピング・影響範囲の評価など。
適切な形式で適切な読者に届ける。経営層向けの戦略レポート・SOC向けのIOCフィード・エンジニア向けのTTP詳細など、受け取る側に合わせた形で提供する。
「このインテリジェンスは役立ったか?」「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 Future | AI駆動のリアルタイム分析。脅威アクター追跡。ダークウェブ監視 | 大企業・政府機関 |
| CrowdStrike Falcon Intelligence | EDRと統合されたTI。APTグループの詳細レポート | 中〜大企業 |
| Mandiant Advantage | Google傘下。インシデントレスポンスで収集した実戦データ | 大企業・政府 |
| Palo Alto Unit 42 | マルウェア分析・APT追跡に特化した研究チームのTI | 中〜大企業 |
| Microsoft DTTI | Microsoft製品との深い統合。Sentinel/Defenderとのネイティブ連携 | Microsoft環境の組織 |
5STIX/TAXIIとは――脅威情報の標準フォーマット
脅威インテリジェンスの共有・交換を標準化するために、OASISによって策定された2つの規格があります。STIX(Structured Threat Information eXpression)がデータフォーマットを、TAXII(Trusted Automated eXchange of Intelligence Information)がデータ転送プロトコルを定義します。
STIX 2.1の主要オブジェクト(SDO)
| オブジェクトタイプ | 説明 | 使用例 |
|---|---|---|
indicator | IOCパターンの定義 | 「この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 ローカルシステムのデータ |
| TA0011 | C&C(Command and Control) | 侵害システムとの通信 | T1071 アプリケーション層プロトコル |
| TA0010 | 流出(Exfiltration) | データの外部持ち出し | T1041 C&Cチャネル経由の流出 |
| TA0040 | 影響(Impact) | システムへのダメージ・妨害 | T1486 データの暗号化(ランサムウェア) |
MITRE ATT&CKを使った検知ルールの作成
ATT&CKのテクニックに基づいてSIEM検知ルールを作成することで、IOCに依存しない「振る舞いベースの検知(TTPベース)」が実現できます。
# 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: mediumATT&CK Navigatorによる可視化
MITRE ATT&CK Navigator(mitre-attack.github.io/attack-navigator/)は、自社の検知カバレッジ・脅威グループのTTP・ペネトレーションテスト結果をマトリクス上に色分けして可視化するWebツールです。
- 自社のSIEM/EDRが検知できるテクニックを青色でマーク → 検知カバレッジを可視化
- 侵害を受けたインシデントのTTPを赤色でマーク → 攻撃経路をマッピング
- 特定のAPTグループ(例:APT29)のTTPをインポートして重ね合わせ → 脅威特化の対策優先度を設定
- レッドチーム演習のカバレッジと実際の検知ルールを比較 → ギャップを特定
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を自動展開することで、攻撃者のインフラ全体をマッピングできます。
- 既知の悪意あるIP/ドメインをGraph上に配置
- 「Expand」機能で紐づくドメイン・ファイル・URLを展開
- SSL証明書ハッシュで共通インフラを特定(同一証明書を使う複数のC2を発見)
- Passive DNSで過去の紐づきを追跡し、退役したインフラも含めて全体像を把握
- 発見した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_iocsIOCの重複排除・正規化・スコアリング
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_bonusAbuseIPDB 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つのアーキテクチャパターン
TIプロバイダーのAPI → SIEM内蔵のTI機能に直接投入。Splunk ES・Microsoft Sentinel・IBM QRadarはこのパターンをネイティブサポート。設定コストが低く最初のステップとして最適。
TIフィード → MISP/OpenCTI(TIP)→ SIEM。TIPで正規化・重複排除・スコアリングを行い、高品質なIOCのみをSIEMに送り込む。偽陽性を大幅に削減できる。
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活用マップ
自組織が属する業種の最新攻撃トレンドをTIで把握。攻撃されやすい経路(フィッシング・VPN脆弱性等)に対応したプレイブックを事前作成。TI経由で得た攻撃グループのTTPに基づく検知ルールを事前に整備。
SIEMアラートのIPアドレス・ドメインを即座にTIで照合。VirusTotal・OTXで既知のマルウェアファミリーか確認。MITRE ATT&CKで観測されたTTPを特定し、どのキャンペーンに似ているか判断。
確認されたC2サーバーのIPレンジ・ドメインをファイアウォール・Proxyでブロック。TIPのパッシブDNSで関連する追加C2を特定し、ブロック範囲を拡大。SSL証明書ハッシュで同一インフラの別エンドポイントを特定。
使用されたマルウェアファミリーのTIレポートから、典型的な永続化手法(レジストリキー・サービス・スケジュールタスク)を把握し、見落としがないか体系的に確認。
インシデントから得られた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 results12TIプログラムの構築と成熟度モデル
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ステップ
- PIRの設定(1週間):「自社業種を狙うランサムウェアグループを把握する」等の具体的な問いを2〜3個設定。漠然とした「すべての脅威」ではなく絞り込みが重要
- 無料フィードの統合(2週間):Abuse.ch ThreatFox・OTX・AbuseIPDBのAPIをSIEMに接続。既存のファイアウォール・Proxyへのブロックリスト投入
- レポーティングの習慣化(継続):週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共同発行):無料ダウンロード可能な定番書籍


コメント