以前、Foundation-Sec-8Bモデルのチャット機能をSplunk App for Data Science and Deep Learning(DSDL)で活用し、セキュリティイベントの要約や検知提案ができることを紹介しました。このモデルの強力なセキュリティ知識を活かし、Foundation-Sec-8Bは幅広いセキュリティタスクでのゼロショット分類にも対応しています。
本ブログでは、Splunkサーチからファインチューニングは不要でセキュリティデータを分類できる、Foundation-Sec-8Bモデルを搭載した新しいDSDLコンテナを紹介します。
大規模言語モデル(LLM)がセキュリティイベントの分析や要約に広く利用される中、効果的な分類はSOCアナリストにとって依然として重要な基盤です。フィッシング検知やインシデントのグルーピングといったタスクは、脅威の特定やアラート管理に不可欠であり、多大な手作業や専門知識が求められることもあります。
従来の自動分類手法では、データ準備やモデルのファインチューニングに多くの投資が必要であり、計算コストの増大、開発サイクルの長期化、適応性や精度の制限といった課題が生じていました。
Foundation-Sec-8Bは異なるアプローチを提供します。包括的なセキュリティデータセットで事前学習されたこのモデルは、ゼロショット分類に対応しており、タスク固有のファインチューニングなしでセキュリティデータを高精度に分類できます。パープレキシティベースのスコアリングやカスタマイズ可能なラベルを活用することで、SOCアナリストはさまざまなデータセットやユースケースにわたり、迅速にイベントを分類し、新たな脅威にも柔軟に対応できます。
ゼロショット分類の能力は、現代のセキュリティ運用に求められるスピード、柔軟性、運用効率の向上に直結します。これにより、脅威検知やインシデント対応を加速し、チームは繰り返しの手作業ではなく、より価値の高い業務に集中できるようになります。
Splunkユーザーがこの機能を利用できるよう、私たちは新しいDSDLコンテナイメージを提供します。このコンテナはFoundation-Sec-8Bモデルをシームレスにホストし、組み込みのノートブックも備えています。これにより、SplunkのSPL検索から直接ゼロショット分類を簡単に実行できるようになりました。複雑なセットアップやファインチューニングの障壁なく、セキュリティチームにAI駆動の高度な分類機能をもたらし、より迅速で賢く、適応力の高いセキュリティ運用を実現します。
DSDLは、Splunkプラットフォームとコンテナベースの推論によるディープラーニングモデルのトレーニングや大規模言語モデル(LLM)デプロイのシームレスな統合を実現し、Splunkの機能を大幅に強化します。さまざまなプリビルドのコンテナイメージにより、DSDLはTransformersモデルのトレーニングからLLM統合、エージェンティックAIワークフローまで幅広いユースケースをサポートし、セキュリティチームがSplunk環境内で高度なAIを運用できるようにします。
DSDLバージョン5.2.2では、Transformers GPU(5.2.2)イメージをアップデートし、Foundation-Sec-8Bモデルによるゼロショット分類を追加しました。これにより、追加のセットアップやカスタマイズ不要で、この機能を簡単に利用できるようになりました。
始めるには、DSDLコンテナ管理ページからTransformers GPU(5.2.2)コンテナを起動してください。コンテナが稼働すると、DSDLがJupyterLabのURLを表示し、コンテナ内のノートブックでアルゴリズムのカスタマイズができるようになります。本実験では、Foundation AIのベストプラクティスに基づき、コンテナの実行環境として40GBのGPUメモリを搭載したDockerホストを使用しました。

JupyterLabにログインした後、notebooks フォルダーに移動するとfdai_zeroshot_classification.ipynb ノートブックが見つかります。このノートブックには、Splunkサーチからの使用例がタイトル下に記載されています。SPLの詳細については、このブログの後半でさらに詳しく解説します。

このノートブックは、Foundation AIのGitHubで公開されているクックブックをベースに、DSDL内での利用をより効率化するための機能「自動モデルファイルダウンロード機能」が追加されています。
ノートブックにはinit()関数が含まれており、Foundation-Sec-8Bモデルファイルがローカルに存在するかどうかを確認します。ファイルが存在しない場合、初回実行時に自動的にモデルをダウンロードします。そのため、最初の実行時は通常よりも処理に時間がかかる場合があります。初回ダウンロード後は、モデルファイルはJupyterLab内の「app/model/data/fdtn-ai--Foundation-Sec-8B」ディレクトリに保存され、以降の実行時はこのローカルパスから直接モデルを読み込むため、起動が高速になります。
エアギャップ環境(インターネット接続がない環境)では、指定されたディレクトリを手動で作成し、必要なモデルファイルをこのフォルダーに転送することで、オフラインでの利用も可能です。

コンテナ内のノートブック環境に慣れたところで、次はSplunkに切り替えて、SPL検索からゼロショット分類を実行してみましょう。
Splunkのサーチバーで、一連のセキュリティイベントを特定しました。分析を効率化するため、これらのイベントをアナリストが確認しやすいよう、以下の8つのカテゴリに分類することを目指します。

従来、セキュリティイベントの分類には、膨大な単語解析や専用の分類モデルのトレーニングが必要であり、アナリストがインシデントの分類作業を始めるまでに多くの手間がかかっていました。しかし、Foundation-Sec-8BがDSDLに統合されたことで、このプロセスは大幅に簡素化されました。現在では、手作業での特徴量エンジニアリングやモデルのトレーニングを行うことなく、SPLコマンドを一つ実行するだけでゼロショット分類が可能です。
index=sec_event | eval text=_raw | table text
| fit MLTKContainer algo=fdai_zeroshot_classification labels="Malware Activity&&Data Exfiltration Attempt&&Phishing/Social Engineering&&Unauthorized Access&&Denial of Service (DoS)&&Insider Threat&&Vulnerability Scan&&Policy Violation" text into app:fdai_zeroshot_classification
fitコマンドは、JupyterLabで確認したノートブック内で定義されたfdai_zeroshot_classificationアルゴリズムを呼び出します。このアルゴリズムは「text」という名前の入力フィールドを想定しているため、evalコマンドを使って生のイベント内容をtextフィールドに割り当て、モデルへの入力として利用できるようにします。
さらに、labelsパラメーターを通じて、カスタムしたカテゴリラベルをアルゴリズムに渡します。すべてのラベルオプションは、&&記号で区切られた単一の文字列として連結されます。 このSPLの実行結果は、下記のスクリーンショットに示されています。

各イベントごとに、モデルはpredicted_Labelフィールドに予測されたカテゴリを割り当てます。predicted_Probabilityフィールドは、そのイベントが予測カテゴリに属する確率(0~1の範囲)を示しており、値が高いほど根拠が強いことを意味します。
また、predicted_Confidenceフィールドは、モデルが自分の予測に対してどれくらい確信を持っているかを0~1のスケールで表します。
このように、各フィールドを活用することで、イベントごとの分類結果とその信頼度を直感的に把握できます。 結果が示す通り、このモデルは10件の入力イベントそれぞれを中程度から高い確信度で正確に分類し、専門的なセキュリティ領域の知識を効果的に活用しました。
ゼロショット分類では、場合によってはモデルの信頼度スコアが低くなることがあります。こうしたケースで精度を高めるには、プロンプトに少数の例(few-shot例)を追加することで、モデルの判断力を大幅に向上させることができます。このDSDLの統合では、ユーザーが例を追加し、Fitコマンドを通じて分類時にそれらの例を活用することでfew-shot学習をサポートしています。
例を追加するには、まずSplunk検索で「text」と「label」の2つのフィールドを持つテーブルを作成します。textフィールドには分類用の代表的な入力サンプルを、labelフィールドには各サンプルに対応するカテゴリを入力してください。次に、以下のfitコマンドを使用して、これらの例をコンテナ環境へ送信し、クエリ実行時にfew-shot学習を有効にします。
... | table text label
| fit MLTKContainer mode=stage algo=fdai_zeroshot_classification text label into app:fdai_zeroshot_classification
キーワードmode=stageは、このコマンドが例をコンテナに送信するためだけに使用され、この段階では分類処理は実行されないことを示しています。

上記のスクリーンショットの通り、各カテゴリに対して少なくとも1つの例を含めています。分類時にこれらのfew-shot例を活用するには、fitコマンドにfew_shot=1パラメーターを追加します。下記の例をご参照ください。

左側に示したようにfew-shotの例を追加することで、右側のゼロショット分類と比較して、モデルの分類における信頼度スコアが大幅に向上しました。この強化は、fitコマンドの標準機能によって完全にサポートされています。
Foundation-Sec-8BとDSDLの統合により、強力なゼロショット分類機能がSplunkプラットフォーム上で直接利用できるようになり、セキュリティ運用の効率化や手動でのモデル学習の負担軽減が実現します。さらに興味深いFoundation-Sec-8Bの活用例は、Foundation AIのGitHub上のクックブックリポジトリでご覧いただけます。
新しいDSDL Transformers GPUイメージを使えば、これらのクックブックを簡単にSplunkに連携し、Splunk検索から直接実行してセキュリティ運用をさらに強化することが可能です。
Splunkプラットフォームは、データを行動へとつなげる際に立ちはだかる障壁を取り除いて、オブザーバビリティチーム、IT運用チーム、セキュリティチームの能力を引き出し、組織のセキュリティ、レジリエンス(回復力)、イノベーションを強化します。
Splunkは、2003年に設立され、世界の21の地域で事業を展開し、7,500人以上の従業員が働くグローバル企業です。取得した特許数は1,020を超え、あらゆる環境間でデータを共有できるオープンで拡張性の高いプラットフォームを提供しています。Splunkプラットフォームを使用すれば、組織内のすべてのサービス間通信やビジネスプロセスをエンドツーエンドで可視化し、コンテキストに基づいて状況を把握できます。Splunkなら、強力なデータ基盤の構築が可能です。