セキュリティチームの97%は、自組織のエクスポージャーが実際に悪用可能かどうかを判断できていません。あなたのチームは大丈夫ですか?レポートを読む
Filigran
ソフトウェア開発脅威インテリジェンス

OpenCTIデータにどんな質問でもできるチャットボット

10 分で読めます
Ask any question to your OpenCTI data with our Chatbot

サイバー脅威インテリジェンスは今や豊富に存在し、通常の情報と同様に、圧倒的で実際には処理しきれないほどです。OpenCTIはCTIフィードの一元化と自動取り込みの拠点として機能しますが、保存されたデータを活用するには専門知識が必要です。これは図書館にいて、どの本でも読めるものの、探している特定のジャンルを見つけるための分類記号やコードを理解していない状況に似ています。

人間、そしてOpenCTIユーザーは自然言語での作業を好むため、私たちは以前NLQに取り組みました。これは自然言語クエリをプラットフォーム上のフィルタセットに変換できる機能です。今回のアイデアは、さらに一歩進んで、まるで同僚と最新のサイバー攻撃について議論するように、データを会話に統合しやすくすることです。

ただし、ここでの同僚は、データを取得する独特の方法であるGraphQL APIを持つ実際のソフトウェアであり、現在は声と名前が与えられています。それがArianeAi、あなたのAIアシスタントです。そして、この難解な言語を話すことを学ぶ時間もモチベーションもないかもしれません。そのため、大きな野望は非常に簡潔な問題に集約されます:プラットフォームに対する任意の質問をGraphQLクエリに変換し、その結果から関連性のあるユーザーフレンドリーな回答を生成することは可能でしょうか?


TL;DR

  • これは何か:
    • OpenCTIフロントエンド内の会話機能
    • チャットボットAIの回答は、プラットフォーム内のデータに基づく
  • これではないもの:
    • 一般的な質問に答えるCTIまたはサイバーセキュリティの相棒
    • OpenCTIでデータを更新または作成する別の手段

エージェント型AIのトレンドに乗る

NLQ機能のおかげで、自然言語クエリから関連情報を抽出することが可能であり、それを特定の構造(例えばOpenCTIページのフィルタ)にマッピングすることが、徹底的な一連のステップで実現できることを既に知っています。「一連のステップ」アプローチは目前の問題にも適用できますが、GraphQL文法とOpenCTI固有の実装の両方を考慮して、すべての異なる組み合わせを明示的に記述する長く面倒な作業になる可能性があります。最新の成果を考えると、問題を逆さまにして、エージェント型パラダイムの方向を見るのが自然に感じられました。原子的なタスクを記述して硬直的なワークフローに順序付けする代わりに、タスクを実行するために必要なすべての異なる機能を記述し、それらを「エージェント」に提供することで、処理の各ステップで関連するツールを自律的に選択して使用させることを試みました。

基盤の構築:Model Context Protocol (MCP)

まず、これらのツールを標準的な共通フレームワークに記述する必要があり、あらゆるエージェント型実装で使用できることを確認します。執筆時点での主要な標準はModel Context Protocol (MCP)であり、手元の問題を扱う様々なオープンソースサーバーがあります。しかし、すぐに使える解決策がないことがわかり、Filigranのオープンソース精神で独自に実装することにしました。詳細はこちらでご覧いただけます。

ソースコードをご覧になればわかるように、与えられたGraphQLスキーマを理解し、機能するクエリを生成し、OpenCTI環境で実行するツールを考案しました。次のステップは、これらのツールとエージェントを接続し、魔法が起こることを期待することです。しかし、バーノンおじさんがかつて言ったように「魔法など存在しない」のであり、このような素朴な実装は処理時間(回答生成が長い)と関連性(特に無関係な質問に対して回答が常に的確ではない)の両面でパフォーマンスが低いことが判明しました。クエリ生成をより細かく制御するために、エージェントは使用できるが、より細かいフロー内で使用する必要があることを理解しました。

細かいフロー

前述の課題に対処するため、ユーザーの質問に答える際にエージェントを段階的に導く論理的なAIワークフローを実装しました。この細かいアプローチは、プロセスを次のように分解します:

View the interactive product demo

1: 質問を処理する

  • 質問が関連性があるかどうかを判断する
  • 明示的に名前が挙げられているエンティティを特定し、データ内での存在を確認する
  • 関与するエンティティのタイプを分類する(例:マルウェア、攻撃パターン)

2: クエリを構築して実行する

  • 質問に基づいて関連するエンティティタイプを選択する(マルウェアや脆弱性など)
  • MCPツールを使用してフィールド定義、フィルタ、ソートオプションを取得し、クエリを構築する
  • クエリを実行する

3: 結果を解釈して回答を書く

これらの各ステップはArianeAiによって統制され、質問が解釈から実行まで論理的に流れることを保証します。

以下のチャートは、エージェントがこの多段階プロセスを通じて回答を構築する方法の視覚的な概要を提供します。

blog opencti chatbot execution flow 1025

OpenCTIチャットボットの実行フロー

細かさが重要な理由

このモジュール型フローは、大きな柔軟性を提供します。AI コンポーネント(エージェント、MCPツール)と、OpenCTIチャットボットのニーズに合わせた認証、レート制限、URL生成などのカスタマイズされたロジックを組み合わせることができます。さらに、各ステップの複雑さに応じて、異なるモデルサイズを使用できます。日常的なタスクにはより小さく高速なLLMを、複雑な解釈にはより大きく強力なモデルを使用できます。

私たちの内部ベンチマークによれば、このアプローチは、適切なMCPツールを直接使用しようとする単一のエージェントに依存する場合と比較して、より良く、より速い結果を提供します。問題を分解することで、各ステップを個別に最適化でき、効率と精度が向上します。

現状と今後の展望

この最初の反復は始まりに過ぎず、エージェント型AIがFiligranのXTMスイート内で達成できることの表面をなぞっているに過ぎません。現在、チャットボットはOpenAIのgpt-4.1-miniを使用して動作していますが、私たちの目標は独自のインフラストラクチャで実行することです。Qwen3gpt-ossなどのオープンウェイトモデルでの初期実験は、有望な結果を示しています。

現在の制限

しかし、大規模言語モデルには固有の制限があります。たとえば、カウント能力が低いのです。よく知られた例として、多くのモデル(大きなモデルでも)が「Strawberryにはいくつのrがありますか?」のような単純な質問に答えられません。したがって、OpenCTIのチャットボットは非常に長いリスト内の要素をカウントするのに苦労し、「最も標的とされた上位5か国は?」「最も活発な脅威アクターは?」といった質問にはうまく対応できません。LLMのコンテキストウィンドウによる制限は言うまでもありません。この問題に取り組む方法を特定しており、今後の反復で実装する予定です。

OpenCTIの基礎となるデータ構造は、各ユーザークエリに潜在的に関連する多数のエンティティタイプとフィールドがあり、さらに複雑さを加えています。微妙な質問に対して、何をクエリする必要があるのか、返された結果をどのように解釈するのかを正確に判断することが、モデルにとって難しい場合があります。

今後の機能

現在、チャットボットはデータの読み取りに制限されており、情報の作成、変更、削除はできません。これらの機能を拡張する前に、ArianeAiでの優先事項は、モデルが質問を一貫して正しく解釈し、回答できるようにすることです。今後のリリースでは、チャットボットでレポートを作成できる可能性があります。

まとめ

エージェント型AIをOpenCTIに統合することは、サイバー脅威インテリジェンスをより身近で実用的なものにするための重要なステップです。細かいエージェント型ワークフローを活用することで、自然言語クエリを正確なGraphQLクエリに変換し、OpenCTIアプリケーション内のチャットボットで人間が読める洞察を24時間365日提供できるようになりました。

Model Context Protocol (MCP)とカスタムツールの採用により、LLMのカウント能力や微妙なクエリ処理の制限などの課題にもかかわらず、チャットボットがOpenCTIの複雑なデータ構造をナビゲートする能力が向上しました。gpt-4.1-miniを搭載した現在のイテレーションはデータの読み取りと解釈に優れていますが、OpenCTI 6.9などの将来のリリースでは、レポート作成などの機能が導入されます。Qwen3やgpt-ossなどのオープンウェイトモデルでの継続的な実験は、セルフホスト型インフラストラクチャへの移行を示しており、より高いスケーラビリティと柔軟性を約束しています。これは始まりに過ぎず、FiligranのXTMスイート内でチャットボットの可能性を改良し拡大し続けます。ぜひお試しいただき、フィードバックをお聞かせください!

お楽しみください。ご質問があれば、お気軽に私たちの Slackコミュニティchannel でお尋ねください!

続きを読む

関連トピックとインサイトをご覧ください