こんにちは!セキュリティエンジニアを担当している濱本です。今回はAPT攻撃(標的型攻撃)についてAIを活用して調査する方法についてお話します。
1.今回の目的について
普段、私はSIEMを使用したログ分析業務を行っていますが、その中にはAPT攻撃(標的型攻撃)についての分析も含まれています。今まではAPT攻撃に関する情報収集は個人または専用のAddonなどを使い収集することで脅威インテリジェンスとして活用してきました。
しかしながら、最近のAIの活躍や成長は著しく、必要な情報を渡すことで自分が調べるよりも早く情報を収集することも可能だと考えています。そこで今回はAIを活用して ・APT攻撃に関する情報の収集 ・収集した情報を使って分析する方法という2点を目的に進めたいと思います。
2.APT攻撃(標的型攻撃)について
まずAPT攻撃(標的型攻撃)についてAIに聞いてみましょう。なお、AIに質問をする場合には複数のAIに質問を投げかけたいため、今回は天秤.AIを使って「Gemini 2.5 Pro」と「GPT 4.1」に質問したいと思います。
Question(濱本)APT攻撃(標的型攻撃)について教えてください。
Answer(Gemini 2.5 Pro)APT攻撃(Advanced Persistent Threat)は、特定の組織を標的に、高度な技術で執拗に仕掛けられるサイバー攻撃です。標的型メールなどで侵入後、長期間潜伏して活動します。目的は金銭ではなく、機密情報や知的財産の窃取、重要インフラの破壊などであり、国家などが背後にいる場合も多く深刻な脅威となります。Answer(GPT 4.1)APT攻撃(Advanced Persistent Threat: 高度な持続的脅威)とは、特定の組織や個人を標的に、長期間にわたり継続的かつ高度な手法で行われるサイバー攻撃です。目的は情報窃取やインフラ破壊で、手口はフィッシングやマルウェア侵入など多様です。
ブログの関係上、回答を200文字以内で指定しましたので概ね同様の回答となりましたね。なお、天秤.AIでは無償版のアカウントでも回数制限はありますが、「Gemini 2.5 Pro」などを利用可能です。
さて重要なのはここからです。侵入や潜伏している可能性がないかどうかを本格的に調査していきましょう!
3.APT攻撃(標的型攻撃)に関する情報はどこに?
ログを分析してAPT攻撃に関する痕跡がないかどうかを確認するためには、IPアドレスやドメイン名、マルウェアとして使われたファイル名やツール名などが必要です。こういった情報はIOC (Indicator of Compromise) 情報といいますが、どこで確認できるのでしょうか?
Question(濱本)セキュリティアナリストとして、APT攻撃について調べる必要があります。 このため、APT攻撃について攻撃元のIPアドレスやファイル名やツール名などが記載されているWebサイトの情報を教えてください。
Answer(Gemini 2.5 Pro)①Mandiant (Google Cloud)https://www.mandiant.com/resources/blogAPTの概念を広めた企業。非常に詳細で質の高い分析レポートが多数。APTグループのTTPs(戦術・技術・手順)や使用するマルウェア、インフラ(IPアドレス、ドメイン)に関する情報が豊富。②CrowdStrikehttps://www.crowdstrike.com/blog/「BEAR」「PANDA」「SPIDER」といった独自の命名規則で攻撃者を追跡。最新のAPT攻撃キャンペーンに関する速報や詳細な分析レポートを頻繁に公開。③Palo Alto Networks (Unit 42)https://unit42.paloaltonetworks.com/新しいマルウェアファミリーや攻撃キャンペーンの発見に定評あり。具体的なファイル名、C2サーバのIPアドレス、ドメインなどが記載されたレポートが多い。④Kaspersky (GReAT)https://securelist.com/非常に高度な国家支援型APT攻撃の発見・分析で世界的に有名。技術的に深く掘り下げたレポートが多く、マルウェアの解析結果やIOCリストが充実。⑤Microsoft Security Bloghttps://www.microsoft.com/en-us/security/blog/WindowsやAzure、Office 365など、広範なテレメトリを活かした分析が強み。国家が関与する攻撃者(例: Nobelium, Hafnium)に関する詳細なレポートを公開。⑥Trend Microhttps://www.trendmicro.com/ja_jp/research.html日本やアジア太平洋地域を標的とするAPT攻撃に関するレポートが豊富。日本語での情報発信も積極的。
「GPT 4.1」にも同時に聞いていますが、双方とも回答内容が長文でしたので「Gemini 2.5 Pro」から必要な個所のみピックアップさせていただきました。「GPT 4.1」の回答にしかない情報を合わせると実際は10個以上教えてくれました。
上記のURLの中から1つだけ選んで、APT攻撃に関するより詳細な情報を探してもらいましょう。今回は「Mandiant (Google Cloud)」のサイトに特定してより詳細な情報の収集を行います。
4.Deep Researchを使った情報収集
さて、無事にAPT攻撃に関する情報が記載されているサイトの情報がわかりました。今までは、実際に該当のサイトにアクセスを行いながら情報の収集などを行っていましたが、AIの進歩とは恐ろしいもので今ではAIにサイトのURLと調べて欲しい情報を質問するだけで実際のサイト内を巡回して情報をまとめてくれます。
天秤.AIで「Gemini 2.5 Pro」を指定すれば、プロンプト内で記載されたURLにアクセスを行い、必要な情報を収集してくれるため非常に便利です。
Question(濱本)あなたなセキュリティアナリストです。 下記URLにアクセスし、APT攻撃に関するIPアドレスやドメイン名、ファイル名やハッシュ値などの情報を集めてください。 https://www.mandiant.com/resources/blog
Answer(Gemini 2.5 Pro)以下に、近年注目された具体的な攻撃キャンペーンの例を挙げ、関連するIoCをまとめます。
ケーススタディ1: UNC4841によるBarracuda ESGの脆弱性悪用攻撃 (CVE-2023-2868)中国関連が疑われるAPTグループ UNC4841 が、Barracuda Email Security Gateway (ESG) のゼロデイ脆弱性(CVE-2023-2868)を悪用して、世界中の政府機関や民間企業に長期間潜伏していた事案です。情報源 https://www.mandiant.com/resources/blog/barracuda-esg-exploited-globallyIndicators of Compromise (IoC)1. ドメイン名 / IPアドレス攻撃者はC2(コマンド&コントロール)通信のために多数のドメインやIPアドレスを使用しました。singamofing[.]comsingnode[.]comtogetheroffway[.]com107.148.149[.]156137.175.28[.]251198.2.254[.]2232. マルウェア / ツールUNC4841は、感染したESGアプライアンス上で複数のカスタムマルウェアファミリーを使用しました。・SALTWATER ESGアプライアンスのSMTPデーモン(bsmtpd)に潜むトロイの木馬化されたモジュール。 C2通信やファイルのアップロード/ダウンロード、プロキシ機能などを持ちます。・SEASPY TCPポート(25/smtp, 587/submission, 465/smtps)を監視し、マジックパケットを受信すると リバースシェルを起動するパッシブ型バックドア。・SEASIDE Luaで書かれたバックドア。HELO/EHLOコマンドに含まれる特定の文字列をトリガーに C2サーバーからのコマンドを実行します。3. ファイルハッシュ (md5)観測されたマルウェアのハッシュ値の例です。・SALTWATER 0d67f50a0bf7a3a017784146ac41ada0 b601fce4181b275954e3f35b18996c92・SEASPY c528b6398c86f8bdcfa3f9de7837ebfe・SEASIDE 2ccb9759800154de817bf779a52d48f84. ファイル名 / パスマルウェアは特定のパスにドロップされることが確認されています。・/tmp/・/home/product/
今回は1つだけ実際の出力結果を貼っていますが、他にもいくつかのAPT攻撃に関するIoC情報を出力してくれています。本来、こういった情報に関しては正しい情報かどうかファクトチェックを行いますが、今回は私のほうで既に確認済みのため、上記IoCを活用してログを分析したいと思います。
5.Microsoft Defenderを使ったIOC調査
今回、IoCの調査に関してはMicrosoft Defender for Endpointの「Advanced Hunting(高度なハンティング)」を使って調査を行いたいと思います。
Microsoft Defenderの画面にアクセスすると、画面左側の一覧から「追求(ハンティング)」を選択します。その後、「高度な追求(高度なハンティング)」を選択していただくことで「Advanced Hunting」の画面が表示されます。
何やら「新しいクエリ」という文言が見えますね。こちらにKQL(Kusto Query Language)という言語で抽出したい条件を入力することでMicrosoft Defenderが集約しているログ情報の中からIoCに関する調査を行うことができます。
しかし、いきなりKQLで書け!と言われても困ってしまう方も多いのではないでしょうか。そうです、AIの出番です。今回は以下IPアドレスと通信していた端末がいないかどうかを確認するためのKQLとしましょう。【調査IoC】107.148.149[.]156
Question(濱本)過去7日間に以下IPアドレスと通信していた端末がいなかったどうかを調べるためのKQLを教えてください。【対象のIPアドレス】107.148.149[.]156
Answer(Gemini 2.5 Pro)シナリオ1:Microsoft Defender for Endpoint を利用している場合 (推奨)エンドポイント(PCやサーバー)のネットワーク通信を直接確認できるため、最も確実性の高い方法です。DeviceNetworkEvents テーブルを検索します。
kql
// 過去7日間のネットワークイベントを検索
DeviceNetworkEvents
| where Timestamp > ago(7d)
// 対象のIPアドレスが通信先(RemoteIP)であるイベントに絞り込む
| where RemoteIP == "107.148.149[.]156"
// 結果を見やすく集計
| summarize CommunicationCount = count(),
FirstSeen = min(Timestamp),
LastSeen = max(Timestamp),
Ports = makeset(RemotePort) // 通信したポート番号のリスト
by DeviceName, InitiatingProcessFileName
// どの端末の、どのプロセスが通信したか
| project DeviceName, InitiatingProcessFileName, CommunicationCount, FirstSeen, LastSeen, Ports
さて、KQLがわかったということで実際にクエリを実行してみましょう(ドキドキ)
ほっ!見つからなかったようです。今回は参考としてIPアドレスを指定していますが、ドメイン名やファイル名、ハッシュ値でもKQLを使った調査は可能となっていますので、Microsoft Defender for Endpointをお使いの方はAIにKQLを聞きながら積極的に「Advanced Hunting」を使っていただければと思います。
6.まとめ
いかがだったでしょうか。AIを活用することで、APT攻撃に関する手法や証跡となるIoC情報を集めることができました。また、今回はMicrosoft Defender for Endpointの「Advanced Hunting」を使用して脅威の検出を行いましたが、他製品の場合でも利用することは可能だと思います。
逆にAIを活用することで、接続するだけで問題となるようなドメイン名やIPアドレスなど脅威となる情報も取得できてしまうため、知識や経験がない方が安易にアクセスしてしまうとそれ自体が脅威となってしまう場合もありますので、ご利用いただく際には注意が必要です。
今後もAIを活用したログの分析業務についてお話できればと思いますが、本説明が少しでもみなさんのセキュリティ改善に貢献できれば幸いです。