Microsoft Sentinelを使用して Visual Studio Code のGitHub Copilotを使用して、Jupyter ノートブックを使用してカスタム セキュリティ グラフを作成、変更、クエリします。 自然言語で構築する内容を説明し、生成されたノートブックを確認し、必要に応じて調整します。
Copilot は、次のようなさまざまなグラフ作成タスクに使用します。
- 説明から完全なグラフ作成ノートブックを作成する
- 既存のグラフを変更またはデバッグする
- 生成されたグラフ コードについて
- グラフ クエリの作成と実行
カスタム グラフに対する AI アシスタンスのしくみ
Microsoft Sentinelに接続されている Jupyter ノートブックで作業する場合、GitHub Copilotは自然言語プロンプトを使用してグラフ作成タスクを行うのに役立ちます。
グラフ作成のために Copilot と対話するには、次のワークフローを使用します。
- 作成するグラフまたは変更について説明します。
- Copilot は、グラフ関連のコードを生成または更新します。
- 結果を確認、実行、反復します。
グラフ固有のシナリオでは、Microsoft Sentinelは、グラフ API、スキーマ、ワークスペースに関する追加のコンテキストを Copilot に提供する省略可能なヘルパーを提供します。 これらのヘルパーは精度と一貫性を向上させますが、Copilot アシスタンスを使用する必要はありません。
前提条件
開始する前に、次の情報があることを確認してください。
- Visual Studio Code のMicrosoft Sentinel拡張機能がインストールされ、サインインしています。 詳細については、「Microsoft Sentinel データ レイクでノートブックを実行する」を参照してください。
- Visual Studio Code 用 Jupyter 拡張機能 がインストールされています。 VS Code Extensions Marketplace からダウンロードします。
- GitHub Copilotインストールされ、有効になっています。 詳細については、「GitHub Copilot拡張機能」を参照してください。
- ビジネスプランまたは Copilot Enterprise プランGitHub Copilot、GitHub Copilot プランに関するページを参照してください
- 適切なアクセス許可で構成されたMicrosoft Sentinel データ レイク。 詳細については、「Microsoft Sentinel Data Lake へのオンボード」を参照してください。
Copilot を使用してカスタム グラフを作成および編集する
次の手順を使用して、新しいグラフを作成するか、GitHub Copilotを使用して既存のグラフを変更します。
既存の Jupyter ノートブック (
.ipynb) を開くか、Copilot で作成できるようにします。チャットGitHub Copilot開きます (Windows では Ctrl + Shift + I、macOS では Cmd + Shift + I)。
ビルドするグラフについて説明します。
完全なグラフを作成または変更するときに最適な結果を得るには、プロンプトに@sentinel /graph-authoringを含めることにより、Sentinelグラフ作成ヘルパーを使用します。 これにより、グラフ API、スキーマ、ベスト プラクティスに関する追加のコンテキストが Copilot に提供されます。
@sentinel /graph-authoring Create a graph that maps email senders to recipients and URLs using EmailEvents
アシスタントでは、標準のグラフ作成ライフサイクルに従った完全なノートブックが生成されます。
| 手順 | 説明 |
|---|---|
| 環境のセットアップ | 必要なパッケージと接続情報を確認します |
| データの読み込み | Sentinel データ レイクからテーブルを読み取ります |
| データ変換 | ノードとエッジ のデータを準備します |
| グラフ スキーマ | ノードとエッジを定義します |
| スキーマの検証 | グラフ定義を検証します |
| グラフ ビルド | グラフを具体化する |
| グラフ クエリ | グラフ クエリを実行する |
グラフを絞り込む
グラフが作成されたら、会話を続行して、次のように絞り込むことができます。
@sentinel Add an edge from User to IPAddress
@sentinel Filter the data to show only failed sign-ins
既存のグラフを変更またはデバッグする
Copilot に、ノートブックの特定の部分を更新または修正するように依頼します。 例:
@sentinel Change the time range to the last 7 days
@sentinel Update cell 3 to include the Subject column
@sentinel Fix the error in the graph build step
影響を受けるセルのみが更新されます。 他のセルは変更されません。
グラフ コードとクエリについて
ノートブックを変更せずに、生成されたコードについて質問します。 例:
@sentinel What does show_schema() do?
@sentinel Explain how edge keys are defined
@sentinel How does this graph query work?
グラフ API と例を検索する
グラフ API、メソッド パラメーター、またはサンプル クエリSentinelヘルプが必要な場合は、Copilot に説明を求めることができます。 より正確でSentinel固有の回答を得る場合は、プロンプトに#Sentinel参照ヘルパーを含めます。 例:
What parameters does build_graph_with_data() accept? #sentinel
Write a graph query to find all paths between User and IPAddress #sentinel
このヘルパーは、権限のあるSentinel graph API ドキュメントを Copilot に提供します。 ノートブックは変更されません。
Copilot と対話する方法を選択する
次の表を使用して、目標に基づいて Copilot と対話するための最良の方法を選択します。
| やりたいこと | 推奨されるアプローチ |
|---|---|
| グラフ ノートブックを作成または変更する | 目標について説明する (最適な結果を得るには @sentinel を使用する) |
| グラフ エラーを修正またはデバッグする | 問題について説明する ( @sentinelを使用する) |
| グラフ API またはパラメーターについて質問する | 質問する ( #sentinelを含む) |
| 一般的な質問をする | プレーン Copilot プロンプト |
主な概念
ワークスペースとテーブルの可用性
AI アシスタンスでは、Sentinel データ レイクに表示されるテーブルが使用されます。 生成されたコードでは、アクセス権を持つテーブルのみが使用されます。
重要
データ レイク エクスプローラーにテーブルが表示されない場合は、グラフの作成に使用できません。
ノートブックの変更
ノートブックを変更すると、変更する必要があるセルのみが更新されます。 標準エディターの元に戻すコマンドを使用して、変更を元に戻すことができます。
トラブルシューティング
| 問題 | 解決方法 |
|---|---|
| ノートブックが開いていません | グラフの作成を開始する前に、 .ipynb ファイルを開くか作成します。 |
| テーブルがありません | Sentinel データ レイクが接続されていること、および予期されるテーブルがデータ レイク エクスプローラーに表示されることを確認します。 |
| 必要なパッケージがありません | ノートブックがサポートされているSentinel Spark コンピューティング プールに接続されていることを確認します。 |
| 予期しないセルが変更されました | 変更を元に戻し、セル番号を指定して要求を再試行します。 |