Microsoft Graph セキュリティ API と Power BI を使用してカスタム Microsoft Defender XDR レポートをCreateする
適用対象:
セキュリティプロフェッショナルがデータを視覚化できるようにすると、ノイズの下に潜んでいる可能性のある複雑なパターン、異常、傾向をすばやく認識できます。 視覚化により、SOC チームは脅威を迅速に特定し、情報に基づいた意思決定を行い、organization全体で分析情報を効果的に伝えることができます。
Microsoft Defenderセキュリティ データを視覚化するには、複数の方法があります。
- Microsoft Defender ポータルでの組み込みレポートの移動。
- すべての Defender 製品に対して事前構築済みのテンプレートで Microsoft Sentinel ブックを使用する (Microsoft Sentinel との統合が必要)。
- 高度なハンティングでレンダー関数を適用する。
- Power BI を使用して既存のレポート機能を拡張する。
この記事では、Microsoft Graph セキュリティ API を使用して、Power BI でサンプルの Security Operations Center (SOC) 効率ダッシュボードを作成します。 ユーザー コンテキストでアクセスするため、アラートとインシデント データを表示するには、 対応するアクセス許可 がユーザーに必要です。
注:
次の例は、新しい MS Graph セキュリティ API に基づいています。 詳細については、「 Microsoft Graph セキュリティ API を使用する」を参照してください。
Power BI へのデータのインポート
このセクションでは、アラート データを例として使用して、Microsoft Defender XDR データを Power BI に取得するために必要な手順について説明します。
Microsoft Power BI Desktopを開きます。
[ データの > 取得] [空のクエリ] の順に選択します。
[詳細エディター] を選択します。
クエリに貼り付ける:
let Source = OData.Feed("https://graph.microsoft.com/v1.0/security/alerts_v2", null, [Implementation="2.0"]) in Source
[完了] を選択します。
資格情報の入力を求められたら、[ 資格情報の編集] を選択します。
[ 組織アカウント > ] [サインイン] を選択します。
Microsoft Defender XDRインシデント データへのアクセス権を持つアカウントの資格情報を入力します。
[接続] を選択します。
これで、クエリの結果がテーブルとして表示され、その上に視覚化の構築を開始できます。
ヒント
インシデント、高度なハンティング、セキュリティ スコアなど、他の形式の Microsoft Graph セキュリティ データを視覚化する場合は、「 Microsoft Graph セキュリティ API の概要」を参照してください。
データのフィルター処理
Microsoft Graph APIでは OData プロトコルがサポートされているため、ユーザーは改ページや次のデータ セットの要求について心配する必要がありません。 ただし、ビジー環境での読み込み時間を向上させるためには、データのフィルター処理が不可欠です。
Microsoft Graph APIでは、クエリ パラメーターがサポートされています。 レポートで使用されるフィルターの例を次に示します。
次のクエリは、過去 3 日間に生成されたアラートの一覧を返します。 大量のデータを持つ環境でこのクエリを使用すると、数百メガバイトのデータが読み込まれる可能性があります。 このハードコーディングされたアプローチを使用すると、レポートを開くとすぐに、過去 3 日間の最新のアラートをすばやく表示できます。
let AlertDays = "3", TIME = "" & Date.ToText(Date.AddDays(Date.From(DateTime.LocalNow()), -AlertDays), "yyyy-MM-dd") & "", Source = OData.Feed("https://graph.microsoft.com/v1.0/security/alerts_v2?$filter=createdDateTime ge " & TIME & "", null, [Implementation="2.0"]) in Source
日付範囲にわたってデータを収集する代わりに、YYYY-MM-DD 形式を使用して日付を入力することで、より正確な日付にわたってアラートを収集できます。
let StartDate = "YYYY-MM-DD", EndDate = "YYYY-MM-DD", Source = OData.Feed("https://graph.microsoft.com/v1.0/security/ alerts_v2?$filter=createdDateTime ge " & StartDate & " and createdDateTime lt " & EndDate & "", null, [Implementation="2.0"]) in Source
履歴データが必要な場合 (たとえば、1 か月あたりのインシデント数を比較するなど)、日付によるフィルター処理はオプションではありません (可能な限り前に戻る必要があるため)。 この場合は、次の例に示すように、選択したフィールドをいくつかプルする必要があります。
let Source = OData.Feed("https://graph.microsoft.com/v1.0/security/alerts_v2?$filter=createdDateTime ge " & StartLookbackDate & " and createdDateTime lt " & EndLookbackDate & "&$select=id,title,severity,createdDateTime", null, [Implementation="2.0"]) in Source
パラメーターの概要
コードに対して常にクエリを実行して時間枠を調整する代わりに、パラメーターを使用して、レポートを開くたびに開始日と終了日を設定します。
[クエリ エディター] に移動します。
[パラメーターの管理] [新しいパラメーター]> の順に選択します。
目的のパラメーターを設定します。
次の例では、開始日と終了日の 2 つの異なる時間枠を使用します。
ハードコーディングされた値をクエリから削除し、StartDate 変数名と EndDate 変数名がパラメーター名に対応していることを確認します。
let Source = OData.Feed("https://graph.microsoft.com/v1.0/security/incidents?$filter=createdDateTime ge " & StartDate & " and createdDateTime lt " & EndDate & "", null, [Implementation="2.0"]) in Source
レポートの確認
データがクエリされ、パラメーターが設定されたら、レポートを確認できるようになりました。 PBIT レポート ファイルの初回起動時に、前に指定したパラメーターを指定するように求められます。
ダッシュボードには、SOC 分析情報を提供するための 3 つのタブが用意されています。 最初のタブには、(選択した期間に応じて) すべての最近のアラートの概要が表示されます。 このタブを使用すると、アナリストは、検出ソース、重大度、アラートの総数、平均解決までの時間別に分類されたアラートの詳細を使用して、環境内のセキュリティ状態を明確に理解できます。
2 番目のタブでは、インシデントとアラート全体で収集された攻撃データに関するより多くの分析情報が提供されます。 このビューでは、実行される攻撃の種類と、それらが MITRE ATT&CK フレームワークにどのようにマップされるかについて、より大きな視点をアナリストに提供できます。
Power BI ダッシュボードのサンプル
詳細については、 Power BI レポート テンプレートのサンプル ファイルに関するページを参照してください。