この記事では、セキュリティ操作 (SOC) ワークスペースの内部および外部のコンプライアンス要件など、Microsoft Sentinel ワークスペースで実行されるクエリとアクティビティの監査データを表示する方法について説明します。
Microsoft Sentinelは、次へのアクセスを提供します。
アラート ルールの編集など、Microsoft Sentinelで実行されたすべてのアクションの詳細を示す AzureActivity テーブル。 AzureActivity テーブルでは、特定のクエリ データはログに記録されません。 詳細については、「Azure アクティビティ ログを使用した監査」を参照してください。
LAQueryLogs テーブル。これは、Log Analytics で実行されるクエリに関する詳細を提供します。これには、Microsoft Sentinelから実行されるクエリも含まれます。 詳細については、「 LAQueryLogs での監査」を参照してください。
ヒント
この記事で説明されている手動クエリに加えて、SOC 環境でのアクティビティの監査に役立つ組み込みの ワークスペース監査 ブックを使用することをお勧めします。 詳細については、「Microsoft Sentinel でブックを使用してデータを視覚化および監視する」を参照してください。
前提条件
この記事のサンプル クエリを正常に実行するには、Microsoft Sentinel ワークスペースに関連するデータを使用してクエリを実行し、Microsoft Sentinelにアクセスする必要があります。
詳細については、「Microsoft Sentinelコンテンツの構成」および「Microsoft Sentinelでのロールとアクセス許可」を参照してください。
Azure アクティビティ ログを使用した監査
Microsoft Sentinelの監査ログは、Azure アクティビティ ログに保持されます。AzureActivity テーブルには、Microsoft Sentinel ワークスペースで実行されたすべてのアクションが含まれます。
Microsoft Sentinelを使用して SOC 環境のアクティビティを監査する場合は、AzureActivity テーブルを使用します。
AzureActivity テーブルに対してクエリを実行するには:
Sentinel ソリューションのAzure アクティビティ ソリューションをインストールし、Azure アクティビティ データ コネクタを接続して、監査イベントのストリーミングを開始し、
AzureActivityという新しいテーブルに接続します。他のテーブルと同様に、Kusto 照会言語 (KQL) を使用してデータにクエリを実行します。
- Azure portalで、[ログ] ページでこのテーブルに対してクエリを実行します。
- Defender ポータルの [調査と対応] > [ハンティング] >[Advanced hunting] ページで、このテーブルをクエリします。
AzureActivity テーブルには、Microsoft Sentinelを含む多くのサービスからのデータが含まれています。 以下のクエリを使って、AzureActivityテーブルをMicrosoft Sentinel操作のみを表示するように絞り込みます:
AzureActivity | where OperationNameValue startswith "MICROSOFT.SECURITYINSIGHTS"たとえば、特定の分析ルールを編集する最後のユーザーを確認するには、次のクエリを使用します (
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxを、チェックするルールのルール ID に置き換えます)。AzureActivity | where OperationNameValue startswith "MICROSOFT.SECURITYINSIGHTS/ALERTRULES/WRITE" | where Properties contains "alertRules/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" | project Caller , TimeGenerated , Properties
レポートする必要がある内容に応じて、 さらに AzureActivities テーブルを調べるパラメーターをクエリに追加します。 次のセクションでは、 AzureActivity テーブル データを監査するときに使用するその他のサンプル クエリについて説明します。
詳細については、「Azure アクティビティ ログに含まれるデータのMicrosoft Sentinel」を参照してください。
過去 24 時間以内に特定のユーザーが実行したすべてのアクションを検索する
次の AzureActivity テーブル クエリでは、過去 24 時間以内に特定のMicrosoft Entra ユーザーによって実行されたすべてのアクションが一覧表示されます。
AzureActivity
| where OperationNameValue contains "SecurityInsights"
| where Caller == "[AzureAD username]"
| where TimeGenerated > ago(1d)
すべての削除操作を検索する
削除されたMicrosoft Sentinelリソースを特定するには、以下のクエリを実行して、ワークスペース内の削除操作が成功しているかどうかをAzureアクティビティログでフィルタリングしてください。
AzureActivity
| where OperationNameValue contains "SecurityInsights"
| where OperationName contains "Delete"
| where ActivityStatusValue contains "Succeeded"
| project TimeGenerated, Caller, OperationName
Azure アクティビティ ログに含まれるMicrosoft Sentinel データ
Microsoft Sentinelの監査ログは、Azure アクティビティ ログに保持され、次の種類の情報が含まれます。
| 操作 | 情報の種類 |
|---|---|
| Created | アラート ルール ケースコメント インシデントのコメント 保存された検索 ウォッチリスト Workbooks |
| Deleted | アラート ルール ブックマーク データ コネクタ インシデント 保存された検索 設定 脅威インテリジェンスレポート ウォッチリスト ワークブック Workflow |
| Updated | アラート ルール ブックマーク ケース データ コネクタ インシデント インシデントのコメント 脅威インテリジェンスレポート ワークブック Workflow |
また、Azure アクティビティ ログを使用して、ユーザーの承認とライセンスをチェックすることもできます。 たとえば、次の表は、ログ データの取得元の特定のリソースAzureアクティビティ ログで検出された選択された操作の一覧です。
| 操作名 | リソースの種類 |
|---|---|
| ワークブックを作成または更新 | Microsoft.Insights/workbooks |
| ワークブックを削除 | Microsoft.Insights/workbooks |
| ワークフローの設定 | Microsoft.Logic/workflows |
| ワークフローを削除する | Microsoft.Logic/workflows |
| 保存した検索を作成する | Microsoft.OperationalInsights/workspaces/savedSearches |
| 保存した検索を削除する | Microsoft.OperationalInsights/workspaces/savedSearches |
| アラート ルールを更新する | Microsoft.SecurityInsights/alertRules |
| アラート ルールを削除する | Microsoft.SecurityInsights/alertRules |
| アラート ルールの応答アクションを更新する | Microsoft.SecurityInsights/alertRules/actions |
| アラート ルールの応答アクションを削除する | Microsoft.SecurityInsights/alertRules/actions |
| ブックマークを更新する | Microsoft.SecurityInsights/bookmarks |
| ブックマークを削除する | Microsoft.SecurityInsights/bookmarks |
| ケースの更新 | Microsoft.SecurityInsights/Cases |
| ケース調査の更新 | Microsoft.SecurityInsights/Cases/investigations |
| ケース コメントを作成する | Microsoft.SecurityInsights/Cases/comments |
| データ コネクタを更新する | Microsoft.SecurityInsights/dataConnectors |
| データ コネクタを削除する | Microsoft.SecurityInsights/dataConnectors |
| 設定を更新する | Microsoft.SecurityInsights/settings |
詳細については、「アクティビティ ログ イベント スキーマのAzure」を参照してください。
LAQueryLogs を使用した監査
LAQueryLogs テーブルには、Log Analytics で実行されるログ クエリの詳細が示されています。 Log Analytics はMicrosoft Sentinelの基になるデータ ストアとして使用されるため、Microsoft Sentinel ワークスペースで LAQueryLogs データを収集するようにシステムを構成できます。
LAQueryLogs データには、次のような情報が含まれます。
- クエリが実行されたとき
- Log Analytics でクエリを実行したユーザー
- Log Analytics でクエリを実行するために使用されたツール (Microsoft Sentinelなど)
- クエリのテキスト自体
- 各クエリ実行のパフォーマンス データ
注:
LAQueryLogs テーブルには、Microsoft Sentinelの [ログ] ブレードで実行されたクエリのみが含まれます。 これには、スケジュールされた分析ルール、調査グラフを使用して、Microsoft Sentinel の ハンティング ページで、または Defender ポータルの 高度なハンティング ページで実行されるクエリは含まれません。
クエリが実行されてから LAQueryLogs テーブルにデータが設定されるまでに、短い遅延が発生する可能性があります。 LAQueryLogs テーブルに監査データのクエリを実行するには、約 5 分待つ必要があります。
LAQueryLogs テーブルに対してクエリを実行するには:
LAQueryLogs テーブルは、Log Analytics ワークスペースでは既定では有効になっていません。 Microsoft Sentinelで監査するときに LAQueryLogs データを使用するには、まず Log Analytics ワークスペースの [診断設定] 領域で LAQueryLogs を有効にします。
詳細については、「Azure Monitor ログでのクエリの監査」を参照してください。
次に、他のテーブルと同様に、KQL を使用してデータにクエリを実行します。
たとえば、次のクエリは、過去 1 週間に実行されたクエリの数を 1 日ごとに示しています。
LAQueryLogs | where TimeGenerated > ago(7d) | summarize events_count=count() by bin(TimeGenerated, 1d)
次のセクションでは、Microsoft Sentinelを使用して SOC 環境のアクティビティを監査するときに LAQueryLogs テーブルで実行するサンプル クエリについて説明します。
応答が "OK" ではない場合に実行されるクエリの数
以下のクエリを使って、成功しない応答コードを返したLog Analyticsクエリをカウントしてください。 このカウントには、実行に失敗したクエリやHTTP 200 OK 応答以外を返したクエリも含まれます。
LAQueryLogs
| where ResponseCode != 200
| count
CPU 集中型クエリのユーザーを表示する
最もリソースを多く消費するクエリを実行しているユーザーやクライアントを見つけるには、以下のクエリを使って、Microsoft EntraクライアントIDごとのCPU時間が最も高いクエリをCPU時間でソートして表示します。
LAQueryLogs
|summarize arg_max(StatsCPUTimeMs, *) by AADClientId
| extend User = AADEmail, QueryRunTime = StatsCPUTimeMs
| project User, QueryRunTime, QueryText
| sort by QueryRunTime desc
過去 1 週間に最も多くのクエリを実行したユーザーを表示する
以下のクエリを使って、各ユーザーが過去7日間に何回クエリを実行したかをまとめ、監査や使用状況分析のためにワークスペースで最も活発なユーザーを特定します。
LAQueryLogs
| where TimeGenerated > ago(7d)
| summarize events_count=count() by AADEmail
| extend UserPrincipalName = AADEmail, Queries = events_count
| join kind= leftouter (
SigninLogs)
on UserPrincipalName
| project UserDisplayName, UserPrincipalName, Queries
| summarize arg_max(Queries, *) by UserPrincipalName
| sort by Queries desc
Microsoft Sentinel アクティビティのアラートを構成する
Microsoft Sentinel監査リソースを使用して、プロアクティブなアラートを作成できます。
例えば、Microsoft Sentinel workspaceに機密テーブルがある場合、それらのテーブルがいつアクセスされているかを検出できます。 以下のクエリは、過去24時間以内に参照したクエリを一覧表示することで、特定の機密テーブルへのアクセスを監査します。
[Name of sensitive table]を監視したいテーブル名に置き換えてください:
LAQueryLogs
| where QueryText contains "[Name of sensitive table]"
| where TimeGenerated > ago(1d)
| extend User = AADEmail, Query = QueryText
| project User, Query
ワークブック、ルール、プレイブックを使用して Microsoft Sentinel を監視する
Microsoft Sentinel独自の機能を使用して、Microsoft Sentinel内で発生するイベントとアクションを監視します。
ワークブックで監視する。 Microsoft Sentinel の組み込みワークブックには、ワークスペースで作業するユーザーに関する情報、使用されている分析ルール、最も広くカバーされている MITRE の戦術、停止中または停止したデータ インジェスト、SOC チームのパフォーマンスなど、ワークスペースのアクティビティを監視するのに役立つものがいくつかあります。
詳細については、「Microsoft Sentinel でブックを使用してデータを視覚化および監視する」および「一般的に使用される Microsoft Sentinel ブック」を参照してください
インジェストの遅延に注意してください。 インジェストの遅延に関する懸念がある場合は、 分析ルールで遅延を表す変数を設定します 。
たとえば、次の分析ルールは、結果に重複が含まれていないことを確認し、ルールの実行時にログを見逃さないようにするのに役立ちます。
let ingestion_delay= 2min;let rule_look_back = 5min;CommonSecurityLog| where TimeGenerated >= ago(ingestion_delay + rule_look_back)| where ingestion_time() > (rule_look_back) - Calculating ingestion delay CommonSecurityLog| extend delay = ingestion_time() - TimeGenerated| summarize percentiles(delay,95,99) by DeviceVendor, DeviceProduct詳細については、「自動化ルールを使用したMicrosoft Sentinelでのインシデント処理の自動化」を参照してください。
コネクタ正常性プッシュ通知ソリューションプレイブックを使用してデータ コネクタの正常性を監視し、ストールまたは停止したインジェストを監視し、コネクタがデータの収集を停止したか、コンピューターがレポートを停止したときに通知を送信します。
この記事のKQL例で使われている演算子と関数については、Kustoのドキュメントを参照してください。
- let ステートメント
- where 演算子
- project 演算子
- count 演算子
- sort 演算子
- extend 演算子
- join 演算子
- summarize 演算子
- ago() 関数
- ingestion_time() 関数
- count() 集計関数
- arg_max() 集計関数
KQL の詳細については、「Kusto 照会言語 (KQL) の概要」を参照してください。
その他のリソース:
次のステップ
Microsoft Sentinelで、ワークスペース監査ブックを使用して、SOC 環境のアクティビティを監査します。 詳細については、「 データの視覚化と監視」を参照してください。