今週のプレイブック: Cortex XSOARでChatGPTを使う方法

Jun 01, 2023
2 minutes
... views

This post is also available in: English (英語)

皆さんはすでにChatGPTを使ってスクリプトを書いたり、画像を生成したりしたことがあるかもしれません。Cortex XSOARにChatGPTインテグレーションが加わったことは既報のとおりなのですが、そうなると「これをどうセキュリティ オペレーション(SecOps)に活かせばインシデント レスポンスを効率化できるのか」が気になるところではないでしょうか。

取り急ぎ概要を知りたい方へ: CortexのポートフォリオにAIを組み込んで最新の自律型SOCを作る方法はCortex XSIAM Solution Brief (日本語版)から確認できます。

本稿では以下のように、XSOARのプレイブック内でChatGPTを使ってユーザーフレンドリーに情報配信をはじめる方法の例をご紹介します。

  • インシデントの分析結果をセキュリティ アナリストが読みやすい自然言語で提供
  • 分析、影響、勧告に関する情報を提供しインシデント チケットへのレスポンスを改善
  • MSSPの場合は人間が書いたような説明や分析を提供。人間をはるかにしのぐスピードで応答することでChatGPTはわかりやすさと高いユーザー満足度を実現

プレイブックの解説に入る前に、ChatGPTがアラートを取り込み、定形フォーマットに従い、よりリッチなコンテキストを追加した上で、インシデントの詳細を書き換えてくれるようすを見てみましょう。

ChatGPTへのリクエスト

今回のリクエストとプレイブックではGPT-3.5を使っています。

ChatGPTのレスポンス

分析

影響分析

アクション/勧告

たいしたものですよね。

ということで、これを自動化されたプレイブック連携させてみましょう。このプレイブックは標準的なチケット テンプレートで作成されており、以下の内容をカバーしています。

  • 詳細(分析)
  • 影響
  • アクション/勧告

別の出力条件を与えてやれば、ChatGPTのレスポンスは微調整可能です。クイック ヒント: 条件を箇条書きにしておけばChatGPTはそれに合わせたフォーマットにしてくれます。注: ChatGPTを使ってデータを提示するさいは、自社のデータ分類ポリシーに従うことをお勧めします。

ChatGPTインテグレーションをプレイブックで利用する方法

弊社は以下のインテグレーション(OpenAi ChatGPT v3)を使う予定です。

https://xsoar.pan.dev/docs/reference/integrations/open-ai-chat-gpt-v3

OpenAI APIキーを生成する

注: OpenAI APIの利用には無料の試用終了後に従量課金(pay-as-you-go)のサブスクリプションが必要です。

  1. 以下のリンクからご自身のOpenAIアカウントにログインしてください。

https://platform.openai.com/docs/introduction

  1. 右上のプロフィールをクリックし、メニューから[View API keys (APIキーを表示)]をクリックします。

APIキーのメニュー
APIキーのメニュー

  1. [Generate new secret key (新しい秘密鍵を生成する)]をクリックします。

Creating new secret key
新しい秘密鍵を生成

新しい秘密鍵を追加するには、[Create new secret key (新しい秘密鍵を生成)]をクリックします。

新しい秘密鍵を生成するウィンドウ
[Create new secret key (新しい秘密鍵を生成する)]ウィンドウ

新しい秘密鍵をコピーしてください。警告: 新しい秘密鍵にアクセスできなくなるのでコピーしてからウィンドウを閉じるようにしてください。

[Create new secret key (新しい秘密鍵を生成する)]ウィンドウの2つめのウィンドウ
[Create new secret key (新しい秘密鍵を生成する)]ウィンドウの2つめのウィンドウ

OpenAI ChatGPT v3 インスタンスの設定

  1. Cortex Marketplaceからコンテンツ パックをダウンロードします。
  2. インスタンスを追加します。

インスタンスの追加
インスタンスの追加

  1. コピーした秘密鍵を貼り付け、[Save & exit (保存して終了)]をクリックします。

インスタンスを保存
インスタンスの保存

ユース ケース

これでChatGPTインテグレーションのインスタンス設定は終了です。さっそくプレイブックで使ってみましょう。自動化のユース ケースに合わせて、必要に応じてプレイブック タスクを変更できます。

インシデント エンリッチメント

エンリッチメントは2段階に分けて行います。

  • インジケーター抽出: ログなどの詳細を取得し、お使いのSIEMソリューションからアーティファクトを抽出します。
  • インジケーター エンリッチメント: Unit42の脅威インテリジェンスやVirusTotalなどの脅威インテリジェンスのフィードを使い、抽出したインジケーターのエンリッチメントを行います。

プレイブック内のインジケーター エンリッチメント タスク
プレイブック内のインジケーター エンリッチメント タスク

インシデント分析

インシデント分析のため、以下のように以前のタスクで収集したすべてのデータをChatGPTに送信し、インシデントの深刻度を判定します。

プレイブックのChatGPT分析セクション
プレイブックのChatGPT分析セクション

ChatGPTのタスクの設定

前述のとおり、ChatGPTにはご自身でプロンプトを設定できますが、最適な出力結果を得るためのヒントを以下にいくつかご紹介します。

  • 簡潔に書く
  • 出力表示についての具体的に指示する
  • 出力条件を箇条書きで与える
  • データ パラメーターを追加する(例えばタイトルや侵害されたマシンのホスト名など)

プレイブック内のChatGPTプロンプトの出力結果
プレイブック内のChatGPTプロンプトの出力結果

ChatGPTのプロンプト

ご自身の入力パラメーターでタスクを設定すると、ChatGPTのWeb版の出力内容とよく似た内容になるはずです。

ChatGPTからのレスポンスの出力

API連携でChatGPTと通信する場合はトークンの利用数を監視することが重要です。OpenAIはお客様のAPIコール(プロンプト+回答)で使用されたトークンの総数にもとづいてAPI利用料を計算します。

OpenAIはOpenAIトークンの定義とカウント方法についての詳細情報を提供しています。

インシデント ウォールームでのChatGPTのレスポンス情報
インシデント ウォールームでのChatGPTのレスポンス情報

インシデント レスポンス

このフェーズでは、悪意のあるインジケーターはすべて、Cortex XDRないしファイアウォールでブロックされることになります。これはインジケーターのエンリッチメント段階で判定されたインジケーターのレピュテーション/スコア応じて決まります。

インシデントの深刻度にもとづくインシデント対応アクション
インシデントの深刻度にもとづくインシデント対応アクション

インシデントのクローズ

インシデント解決の一環として、ChatGPTのレスポンス詳細が記載されたメールがSOCアナリストに送信され、ServiceNowチケットが生成され、ChatGPTの出力をもとにしたクローズ メモで更新されます。

インシデントのクローズ アクション
インシデントのクローズ アクション

サンプル メール

これはXSOARからアナリストが受け取ったメールの例で、ChatGPTのレスポンスが出力されています。

サンプル メール
サンプル メール

備考:

私たちは、Cortex XSOARとの連携させるべく、多数のLLM (大規模言語モデル)に取り組んでいて、このChatGPTもそうしたLLMの1つです。ほかにGoogle Vertex AiなどのLLMとの連携に関するブログも予定しています。

さらに詳細を学ぶには

Cortex XSOARをまだお使いでない場合は、無料の Community版をいますぐダウンロードして、このプレイブックと何百もの自動化パックをお試しください。自動化パックは、セキュリティ オペレーションやSOCで皆さんが日常的に扱うよくあるユース ケースに対応しています。


Subscribe to Security Operations Blogs!

Sign up to receive must-read articles, Playbooks of the Week, new feature announcements, and more.