🤖

外部データを Sentinel ウォッチリストに登録し Copilot for Security から参照する

2024/05/17に公開

はじめに

Copilot for Security で CSV などの外部データを参照したいケースがあります。以前、以下でファイル参照を紹介しましたが、ファイルサイズの制限がありました。
https://zenn.dev/microsoft/articles/82409d4eb08b6a

そのため、今回は Sentinel ウォッチリストに登録した外部データを Copilot for Security から参照します。

プロンプトを試してみる

Copoliot for Security は Sentinel に接続可能なので、まずはそのままプロンプトで指示してみます。

Sentinel ウォッチリストの IPaddress をテーブル形式で出力してください

結果は以下の通り、適切に KQL が構成できず失敗しました。おそらくウォッチリストが理解できていないようです。

カスタム プラグイン

ネイティブの機能では現時点では参照できないようなので、プラグインを作ります。以下のように指定したウォッチリストを検索し、テーブルとして出力する KQL 用のカスタム プラグイン用 yaml を準備します。

Descriptor:
  Name: GetDataFromWatchlist
  DisplayName: GetDataFromWatchlist
  Description: Get data from Sentinel watchlist and show result as a table format
SkillGroups:
  - Format: KQL
    Skills:
      - Name: GetDataFromWatchlist
        DisplayName: GetDataFromWatchlist
        Description: Get data from Sentinel watchlist and show result as a table format
        Inputs:
          - Name: watchlistname
            Description: watchlistname
            Required: true
        Settings:
          Target: Sentinel
          TenantId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
          SubscriptionId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
          ResourceGroupName: myresourcegroup
          WorkspaceName: mysentinelworkspace
          Template: |-
            _GetWatchlist('{{watchlistname}}')

カスタム プラグインの登録方法はこちらです。
https://zenn.dev/microsoft/articles/7ba96973d95035

試してみる

まずは自然言語で試してみます。

watchlist から IPaddress を取得してください。

データは取得できましたが、テーブル形式では出力できませんでした。


次に [システムの機能] から直接指定して実行してみます。


この場合は意図したとおりに出力できました。


まとめ

直接指定すればテーブル形式で取得できるものの、自然言語での指示では少し難があるので、使用する場合には明確に機能を指定するプロンプトブックを準備しておいた方がよさそうです。

Microsoft (有志)

Discussion