Microsoft Sentinel custom graphの変更点と影響|脅威ハンティングで確認すべき設定と注意点

Microsoft Sentinel custom graphに関する今回の案内は、既存環境へ強制的な変更を加えるものではなく、Sentinel data lake、Visual Studio Code、GitHub Copilot、Graph Query Languageを使って脅威ハンティングを高度化するための実践ガイドと捉えるのが適切です。Microsoft Sentinelを利用している組織は、すぐに設定変更を急ぐというより、データレイクの有効化状況、権限、課金、Graph Jobの運用ルール、SOCで使えるハンティングシナリオを確認することが重要です。

目次

A guide to innovating threat hunting with Microsoft Sentinel custom graph は何が変わった?

2026年6月24日ごろにMicrosoft Sentinel Blogで公開・更新された「A guide to innovating threat hunting with Microsoft Sentinel custom graph」は、分類としてはNoticeです。つまり、サービス終了や破壊的変更の告知ではなく、Microsoft Sentinelのcustom graphを使った脅威ハンティング手法を紹介する技術解説に近い内容です。

ポイントは、Microsoft Sentinelのログを従来の「表形式のクエリ」だけで追うのではなく、ユーザー、端末、メール、URL、IPアドレス、アプリケーションなどの関係をノードとエッジとして扱い、攻撃経路や影響範囲をたどりやすくする点です。Microsoftの説明では、Sentinel graphはMicrosoft Sentinel data lake内のデータを関係性ベースで整理・照会する仕組みとして紹介されています。(TECHCOMMUNITY.MICROSOFT.COM)

今回の案内で特に重要なのは、次の3点です。

確認項目内容利用者への影響
custom graphの位置づけMicrosoft Sentinel data lakeのデータを使って、組織ごとの攻撃シナリオに合わせたグラフを作成するKQLだけでは追いにくい多段階の攻撃経路を可視化しやすくなる
作成方法VS Code、Microsoft Sentinel拡張機能、Jupyter Notebook、GitHub Copilotを使うSOCアナリストだけでなく、検出エンジニアやセキュリティエンジニアの関与が必要になる
運用面Graph Jobで保存・更新し、Defenderポータルから照会する権限、スケジュール、課金、共有範囲の設計が必要になる

Microsoft Learnでも、custom graphはSentinel data lakeやMicrosoft以外のデータソースを使って、隠れたパターンや攻撃経路を可視化するプレビュー機能として説明されています。(Microsoft Learn)

既存のMicrosoft Sentinel環境にすぐ影響はある?

今回のNoticeだけで、既存の分析ルール、インシデント、Playbook、KQLクエリが自動的に変更されるわけではありません。すでにMicrosoft Sentinelを運用している組織でも、custom graphを使わなければ日々のアラート処理や検出ルールが急に変わるものではありません。

ただし、次のような環境では影響確認を始める価値があります。

  • Microsoft Sentinel data lakeをすでに有効化している
  • Microsoft Defenderポータル上でSentinel運用を進めている
  • 脅威ハンティングで複数テーブルのjoinが増えている
  • フィッシング、ID侵害、OAuth権限昇格、C2通信などの調査に時間がかかっている
  • GitHub CopilotやVS Codeをセキュリティ運用に取り入れたい

特に、アカウント侵害後の「どの端末にログオンしたか」「どのアプリにアクセスしたか」「どのIPや場所からサインインしたか」「同じ端末を使った別ユーザーは誰か」といった調査は、表形式のログだけでは追跡が複雑になりがちです。今回のガイドでは、こうしたblast radius、つまり侵害時の影響範囲をcustom graphで追う例が示されています。(TECHCOMMUNITY.MICROSOFT.COM)

対象者は誰か

今回の内容は、Microsoft Sentinelを「ログを集めるSIEM」としてだけ使っている担当者よりも、脅威ハンティングや調査プロセスを改善したいチームに向いています。

対象者確認すべきこと
SOCアナリストフィッシング、ID侵害、端末侵害などでcustom graphを使う場面があるか
検出エンジニア既存のKQLハンティングをグラフ構造に置き換える価値があるか
Microsoft Sentinel管理者data lake、権限、VS Code拡張、Graph Jobの利用可否
セキュリティ運用責任者課金、プレビュー機能の扱い、運用標準化、教育計画
MSSP・運用代行事業者顧客ごとの調査テンプレートやGraph Jobの標準化

逆に、まだMicrosoft Sentinel data lakeを使っていない組織や、日常運用がアラート確認中心で高度なハンティングまで手が回っていない組織では、いきなり本番運用に組み込むより、検証環境で1つのシナリオに絞って試す方が安全です。

すぐ確認したい設定と前提条件

custom graphを使うには、Microsoft Sentinel側だけでなく、VS Codeや権限の準備も必要です。Microsoftのドキュメントでは、Microsoft Sentinel拡張機能、Jupyter拡張機能、適切な権限を持つSentinel data lakeが前提として示されています。(Microsoft Learn)

確認項目見る場所・観点注意点
Sentinel data lakeMicrosoft Defenderポータル、Sentinel設定data lakeが未構成だとcustom graphの前提が満たせない
データソースSignInLogs、EmailEvents、DeviceNetworkEventsなどグラフ化したい調査シナリオに必要なテーブルが存在するか確認する
権限Microsoft Defender XDR unified RBAC、Microsoft Entra IDロール読み取り権限がないデータはグラフに含まれない
VS Code環境Microsoft Sentinel拡張、Jupyter拡張、GitHub Copilot拡張SOC端末で利用できるか、社内の拡張機能ポリシーに合うか確認する
Graph Jobオンデマンド実行、スケジュール実行保存期間、更新頻度、共有範囲を決めてから使う
課金Sentinel graph meter、data lake関連メーター検証段階からコスト監視を入れる

重要なのは、権限を広く与えすぎないことです。custom graphでは複数データソースの関係を横断的に扱うため、ユーザー、端末、アプリケーション、メール、IPアドレスなどの情報が一画面でつながって見える可能性があります。調査効率は上がりますが、アクセス制御を雑にすると、必要以上のセキュリティ情報を閲覧できる状態になりかねません。

運用で変わるポイント

KQLだけではなくGQLを使う場面が増える

従来のMicrosoft Sentinel運用では、KQLでテーブルを結合しながら調査する場面が中心でした。custom graphでは、グラフ化したデータに対してGraph Query Language、つまりGQLを使います。

たとえば、フィッシングメールの調査では、メール、添付ファイル、プロセス、端末を順番に追う必要があります。従来はEmailEvents、EmailUrlInfo、UrlClickEvents、EmailAttachmentInfo、DeviceFileEvents、DeviceProcessEventsなどを複数回joinする必要がありました。今回のガイドでは、Phishing Email Kill Chainの例として、メールから添付ファイル、プロセス、端末までを1つのグラフ traversalで追う考え方が紹介されています。(TECHCOMMUNITY.MICROSOFT.COM)

つまり、KQLが不要になるわけではありません。初期検出や集計はKQL、関係性の深掘りはGQLという使い分けが現実的です。

GitHub Copilotは便利だが、出力レビューは必須

今回のガイドでは、GitHub Copilot ChatとSentinelのgraph authoring機能を使い、自然言語でcustom graph作成を支援する流れが示されています。Microsoft Learnでも、GitHub Copilotを使ってcustom graphの作成、修正、デバッグ、クエリ作成を支援できると説明されています。(GitHub)

ただし、Copilotが生成したNotebookやグラフ定義をそのまま本番利用するのは避けるべきです。特に確認したいのは次の点です。

  • 想定していないテーブルを読みに行っていないか
  • NULLや空文字がキーに使われていないか
  • 配列やJSON値をそのままノードキーにしていないか
  • 時間範囲が広すぎてコストや処理時間が増えないか
  • 個人情報や機微情報を含むプロパティを過剰に表示していないか
  • ノードとエッジの意味がSOC内で説明できるか

特に「とりあえず全データをつなぐ」という設計は失敗しやすいです。最初は「侵害ユーザーのblast radius」「フィッシングURLのクリック者」「OAuth権限昇格の経路」など、1つの調査目的に絞る方が成功しやすくなります。

custom graphで使いやすいシナリオ

custom graphは、すべての調査を置き換える機能ではありません。効果が出やすいのは、複数のエンティティをまたぐ調査です。

シナリオcustom graphが向く理由最初に確認したいデータ
侵害アカウントの影響範囲調査ユーザー、IP、端末、アプリ、リソースをつなげて追えるSignInLogs、IdentityInfo、DeviceLogon系ログ
フィッシング調査メール、URL、クリック、添付ファイル、端末実行を一連の流れで見られるEmailEvents、UrlClickEvents、EmailAttachmentInfo、DeviceProcessEvents
DNS C2ビーコン調査端末、ドメイン、解決先IP、脅威インテリジェンスを関連付けられるDeviceNetworkEvents、DNSログ、ThreatIntelIndicators
OAuth権限昇格サービスプリンシパル、同意、権限、サインインを関係として追えるEntraServicePrincipals、AADServicePrincipalSignInLogs
Databricksなど外部基盤の調査Microsoft以外のデータも含めた関係性を設計できる対象サービスの監査ログ、ID情報、権限情報

Microsoftのガイドでも、VS CodeのSentinel拡張機能に複数のGraphサンプルが用意されていることが紹介されています。例として、Phishing Email Killchain、Behavioral Attack Chain、Databricks Outbound Exfiltration、DNS C2 Beaconing、OAuth Privilege Escalationなどが挙げられています。(TECHCOMMUNITY.MICROSOFT.COM)

課金面で見落としやすい注意点

custom graphは「可視化できるから便利」で終わらせず、コストも確認する必要があります。Microsoftの課金ドキュメントでは、custom graphの作成やクエリ実行はSentinel graph meterに基づいて課金されると説明されています。さらに、ノードやエッジを作成するためのNotebook/Sparkコンピュート、data lake storage、Advanced Data Insightsなどは別メーターで課金される場合があります。(Microsoft Learn)

運用上は、次のように管理すると安全です。

リスク対策
グラフ作成時に処理対象期間が広すぎるまず7日または14日など短い期間で検証する
Graph Jobを高頻度で実行しすぎる調査目的に応じて日次、週次、オンデマンドを使い分ける
誰がどのグラフを作ったか分からない命名規則、所有者、目的、更新頻度を記録する
使われないグラフが残る定期的に利用状況とGraph Jobを棚卸しする
検証コストが見えないMicrosoft Cost ManagementやSentinelのコスト管理でmeterを確認する

特に検証段階では、Graph Jobをスケジュール実行にする前に、オンデマンドで結果、処理時間、コスト傾向を確認するのがおすすめです。

管理者が今日確認すべきチェックリスト

Microsoft Sentinel custom graphをすぐ本番導入しない場合でも、以下は確認しておくと後で慌てずに済みます。

  • Microsoft Sentinel data lakeを有効化しているか
  • custom graphを使えるリージョン、テナント、ライセンス条件を満たしているか
  • Microsoft DefenderポータルでSentinelを運用できる状態か
  • VS CodeとMicrosoft Sentinel拡張機能を社内端末で利用できるか
  • GitHub Copilotの利用可否と社内ポリシーを確認済みか
  • SOCアナリストにGraph Query Languageを学ぶ時間を確保できるか
  • 最初に試すハンティングシナリオを1つに絞っているか
  • Graph Jobの所有者、更新頻度、削除ルールを決めているか
  • custom graph関連の課金メーターを監視できるか
  • プレビュー機能として、本番依存しすぎない運用設計になっているか

この中で最も重要なのは、技術検証よりも「何を調査したいのか」を先に決めることです。custom graphは多機能ですが、目的が曖昧なまま始めると、見た目は派手でも運用で使われないグラフになりがちです。

実務ではどう進めるべきか

最初の一歩としては、既存のハンティングクエリの中から「joinが多く、毎回調査に時間がかかるもの」を1つ選び、custom graph化できるか検討するのが現実的です。

おすすめは、次のような進め方です。

ステップ作業内容成果物
目的を決める例:侵害ユーザーの影響範囲を調べる調査シナリオ
必要なデータを洗い出すSignInLogs、IdentityInfo、DeviceLogonなど利用テーブル一覧
ノードとエッジを設計するUser、Device、IPAddress、Applicationなどグラフ設計メモ
VS Codeで試作するNotebookとCopilotを使ってグラフ作成試作Notebook
GQLで確認する代表的な調査クエリを作るGQLテンプレート
Graph Jobを検討するオンデマンドか定期更新か決める運用ルール
SOCでレビューする実際の調査に使えるか確認する改善点リスト

この進め方なら、既存のMicrosoft Sentinel運用を壊さず、段階的にcustom graphを試せます。

まとめ:今回のNoticeで確認すべきこと

「A guide to innovating threat hunting with Microsoft Sentinel custom graph」は、Microsoft Sentinel利用者に対して、custom graphを使った新しい脅威ハンティングの進め方を示すNoticeです。既存環境にすぐ破壊的な影響が出るものではありませんが、Sentinel data lake、Defenderポータル、VS Code、GitHub Copilot、GQLを組み合わせた運用に進むための準備が求められます。

まず確認すべきなのは、data lakeの有効化、必要テーブルの有無、権限、VS Code拡張機能、Graph Jobの扱い、課金メーターです。そのうえで、フィッシング調査や侵害アカウントのblast radius分析など、効果が見えやすいシナリオから小さく始めるのが安全です。

Microsoft Sentinel custom graphは、KQLを置き換えるものではなく、KQLでは追いにくい「関係性」を補うための選択肢です。SOCの調査時間を短縮したい組織は、まず1つの調査シナリオを選び、検証環境でcustom graphの有効性とコストを確認するところから始めるとよいでしょう。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次