Compact
true
担当領域:リスクハンティング/専門分野:フォレンジック、ログ解析、SIEM
2年間のセキュリティ人材育成プログラムを経て、2018年よりインシデントレスポンス業務や、NEC Cyber Security Dashboardを含むNECグループ社内で利用する各種セキュリティシステムの構築と運用の業務に従事。Splunk Boss of the SOC、Tanium CTFにて複数回入賞。CEH MASTER、情報処理安全確保支援士(RISS)を保持。

本記事では、ログ分析基盤である Splunk[1]と、LLM(大規模言語モデル)向けのプロトコル Model Context Protocol(MCP)を連携させ、AI によるログ検索支援・初動分析の高速化が実現できるかを検証します。

背景と目的

近年のサイバー攻撃は複雑化・高度化が進み、SOC や CSIRTに求められる対応スピードと分析精度はますます高まっています。
SOC や CSIRT では日々膨大なログを扱い、次のような問題が発生しがちです。

問題

これらの問題を整理すると、次のような課題が見えてきます。

課題

この課題を解決するため、本検証では以下の3点を目的としました。

検証目的

  1. Splunk + MCP の技術的連携が実運用レベルで可能か確認する
  2. AI による自然言語ベースのログ分析支援の有効性を確認する
  3. 初動調査の高速化と属人性の排除が実現できるか検証する
運用に組み込む際の補足
今回の検証では利便性のため MCP クライアントとして Claude for Desktop[2][3]を使用していますが、実際の企業環境では、オンプレミスや閉域網で動作する LLM を利用する構成が望ましいです。
MCP はベンダ非依存のプロトコルのため、Claude をそのまま社内 LLM に置き換えることができます。
1
1

検証準備

実験環境

使用データセット

Splunk BOSS of the SOC(BOTS)v3 [4][5]のデータを使用しました。
演習用に作成された仮想組織の攻撃ログが含まれ、SOC トレーニングに最適です。

Splunk環境

LLM / MCP クライアント

Splunk MCP 連携手順

1. Splunk MCP App のセットアップ
Splunk base から MCP Server App をインストールします。

2. ロールとユーザの作成
ユーザに付与するロールを作成します。割り当てる権限として「mcp_tool_execute」を設定します。

図 1 ロールの作成
図 1 ロールの作成
100

次にMCPサーバがアクセスするユーザを作成します。ロールとして、上記で作成したものを設定します。

図 2 ユーザ作成時のロールの設定
図 2 ユーザ作成時のロールの設定
100

3. ユーザのトークン作成
MCPクライアントから接続する際に利用するユーザのトークンを作成します。オーディエンスの部分は「mcp」と設定します。

図 3 ユーザのトークンの作成
図 3 ユーザのトークンの作成
100

作成されたトークンはテキストファイルなどに一時的に保存しておきます。

4. MCPクライアント(Claude Desktop)の設定
Claude for Desktopでは裏側でNode.jsを利用するため、事前に導入しておきます。なお、Claude for DesktopからMCPへの接続が失敗する問題が発生する場合があるため、インストール先は「C:\nodejs」など半角スペースを含まないパスを指定します。

次にClaude for Desktopを導入します。導入完了後、起動後にClaudeのアカウントでログインします。その後、以下のMCPの設定を追加します。
Claude for Desktopの左上のハンバーガーアイコン⇒「ファイル」⇒「設定」と進み、「開発者」⇒「設定を編集」をクリックします。
Claude for Desktopの設定ファイルが格納されているフォルダが開くので、「claude_desktop_config.json」をテキストエディタなどで開きます。
設定内容として、以下のようなMCPサーバに接続するための情報を記載します。

{
  "mcpServers": {
    "splunk-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://<Splunk Server Address>:8089/services/mcp/",
        "--header",
        "Authorization: Bearer ${AUTH_TOKEN}"
      ],
      "env": {
        "AUTH_TOKEN": "<Your Token>",
        "NODE_TLS_REJECT_UNAUTHORIZED": "0"
      }
    }
  }
}
1
1

設定ファイルに記載後はClaude for Desktopを再起動します。

再起動後、再度、設定の開発者画面を表示し、以下のように接続されている(runningになっている)ことを確認します。

図 4 MCPサーバへの接続状態の正常性を確認
図 4 MCPサーバへの接続状態の正常性を確認
100

検証

検証内容:AI によるログ分析支援の実力を試す

Splunk × MCP × LLM がどこまで役に立つか確認します。

プロンプトの内容として、PowerShellに関連した攻撃の兆候を探し、その結果に関連する追加の情報も検索、さらにレポートにまとめる指示を出しました。
結果は以下の通りです。

図 5 LLMからMCPを介したSplunkのログ検索とレポーティングの結果
図 5 LLMからMCPを介したSplunkのログ検索とレポーティングの結果
100

上記の画像に示す通り、段階的な検索をその都度SPLを作成しつつ行い、追加情報も検索したうえで、最終的なレポートにわかりやすくまとめる作業を、1回のプロンプトの指示で行うことができました。

SPLによるログの検索はブラックボックスになっておらず、以下のようにすべての検索処理を確認することができます。これにより、初学者の方がSPLの習熟に利用でき、また検索内容が問題ないかの検証にも利用することができます。

図 6 作成され実行されたSPLと結果を確認
図 6 作成され実行されたSPLと結果を確認
100

検証結果と考察

有効だったポイント

◎ 自然言語だけで SPL を生成
SPL生成の経験が浅いメンバでも分析がすぐ始められる。

◎ 大量ログの要約が圧倒的に速い
人が数十分かける内容も数秒で把握。

◎ 初動調査の属人性を軽減
AI が「次に確認すべき項目」を提示。

課題と限界

▲ AI の判断が常に正しいわけではない
要約の誤認識や検索条件の過不足が起こる場合がある。

▲ SPL の最適化は専門家の監修が必要
生成された SPL は必ずしも高速・最適とは限らない。

▲ 実運用ではオンプレ LLM が必須
閉域環境やプライベート環境に構築したLLMを利用するのが安全。

システム導入のポイント

今回の検証結果から、AIは特に「初動調査」「要約」「情報整理」といった領域で有効性が高いことが確認できました。一方で、最終判断や検索条件の精査は人間が担う必要があります。
そのため、導入にあたっては以下のポイントを押さえることが重要です。

まとめ

本検証では、Splunk と MCP を組み合わせることで、ログ検索の効率化や初動調査の迅速化といった SOC/CSIRT 業務における分析負荷の軽減に寄与しうることを確認しました。特に、自然言語による SPL の生成や、大量イベントの要約といった機能は、既存の運用プロセスにおいて分析作業を支援する手段として有効であることが分かりました。

一方で、LLM による解析結果は、ログの収集条件や環境の前提を誤って解釈する可能性があるため、最終的な判断においてはアナリストによる確認やレビューが引き続き重要であることも明らかになりました。また、実運用を想定した場合、機密情報の取り扱いに十分配慮する必要があり、外部へのデータ送信を伴わない構成や、オンプレミス環境での利用を含めた検討が求められます。

さらに、本稿では Splunk と LLM の連携を中心に取り上げましたが、MCP を介することで、VirusTotal、DomainTools、Shodan などの外部調査サービスと連携する構成も考えられます。これにより、IoC の情報付加や調査作業の効率化など、分析支援の幅を広げる可能性があります。

本稿で示した内容は、既存の公開技術やサービスを用いた検証結果に基づくものであり、SOC/CSIRT 運用における技術活用の検討や、分析プロセス改善の参考事例として活用いただければ幸いです。

参考文献

[1] Splunk (スプランク)
https://www.splunk.com/ja_jp

[2] Claude
https://claude.ai/

[3] Claudeをデスクトップに配置
https://www.claude.com/ja-jp/download

[4] Boss of the SOC (BOTS) Dataset Version 3
https://github.com/splunk/botsv3

[5] CC0 1.0 Universal
※著作権を放棄したクリエイティブコモンズライセンス
https://github.com/splunk/botsv3/blob/master/LICENSE

[6] Splunk MCP Server
https://splunkbase.splunk.com/app/7931

執筆者プロフィール

執筆者
original
50

梅木 翔太(うめき しょうた)
担当領域:リスクハンティング
専門分野:フォレンジック、ログ解析、SIEM

2年間のセキュリティ人材育成プログラムを経て、2018年よりインシデントレスポンス業務や、NEC Cyber Security Dashboardを含むNECグループ社内で利用する各種セキュリティシステムの構築と運用の業務に従事。Splunk Boss of the SOC、Tanium CTFにて複数回入賞。CEH MASTER、情報処理安全確保支援士(RISS)を保持。