インシデント メトリックを使用して SOC をより適切に管理する
Note
米国政府機関クラウドにおける機能使用可否の詳細については、「米国政府機関のお客様向けのクラウド機能の利用可能性」に記載されている Microsoft Sentinel テーブルを参照してください。
セキュリティ オペレーション センター (SOC) のマネージャーとして、チームのパフォーマンスを評価するために、全体的な効率性のメトリックとメジャーを用意しておく必要があります。 さまざまな条件 (重要度、MITRE 戦術、平均トリアージ時間、平均解決時間など) 別に、長期にわたるインシデント操作を確認します。 Microsoft Sentinel では、このデータを Log Analytics の新しい SecurityIncident テーブルおよびスキーマと、付属する [セキュリティ操作の効率性] ブックで使用できるようになりました。 長期にわたってチームのパフォーマンスを視覚化し、その分析情報を使用して効率性を改善できます。 インシデント テーブルに対する独自の KQL クエリを作成して使用することで、特定の監査ニーズと KPI に合わせてカスタマイズされたブックを作成することもできます。
セキュリティ インシデント テーブルを使用する
SecurityIncident テーブルは Microsoft Sentinel に組み込まれています。 [ログ] にある SecurityInsights コレクション内のその他のテーブルでも見つかります。 Log Analytics のその他のテーブルと同様に、クエリを実行できます。
インシデントを作成または更新するたびに、新しいログ エントリがテーブルに追加されます。 これにより、インシデントに加えられた変更を追跡し、さらに強力な SOC メトリックを使用できます。ただし、(実行中のクエリによっては) 重複するインシデント エントリを削除する必要もあるため、このテーブルに対するクエリの構築時は、このことに注意する必要があります。
たとえば、すべてのインシデントのリストがインシデント番号で並べ替えられて返されるが、インシデントごとに最新のログのみが返されようにする場合は、arg_max()
集計関数とともに KQL 集計演算子 使用すれば実行できます。
SecurityIncident
| summarize arg_max(LastModifiedTime, *) by IncidentNumber
その他のサンプル クエリ
インシデントの状態 - 特定の時間枠における状態と重大度別のすべてのインシデント:
let startTime = ago(14d);
let endTime = now();
SecurityIncident
| where TimeGenerated >= startTime
| summarize arg_max(TimeGenerated, *) by IncidentNumber
| where LastModifiedTime between (startTime .. endTime)
| where Status in ('New', 'Active', 'Closed')
| where Severity in ('High','Medium','Low', 'Informational')
百分位ごとの終了時間:
SecurityIncident
| summarize arg_max(TimeGenerated,*) by IncidentNumber
| extend TimeToClosure = (ClosedTime - CreatedTime)/1h
| summarize 5th_Percentile=percentile(TimeToClosure, 5),50th_Percentile=percentile(TimeToClosure, 50),
90th_Percentile=percentile(TimeToClosure, 90),99th_Percentile=percentile(TimeToClosure, 99)
百分位ごとのトリアージ時間:
SecurityIncident
| summarize arg_max(TimeGenerated,*) by IncidentNumber
| extend TimeToTriage = (FirstModifiedTime - CreatedTime)/1h
| summarize 5th_Percentile=max_of(percentile(TimeToTriage, 5),0),50th_Percentile=percentile(TimeToTriage, 50),
90th_Percentile=percentile(TimeToTriage, 90),99th_Percentile=percentile(TimeToTriage, 99)
[セキュリティ操作の効率性] ブック
SecurityIncidents テーブルを補完するために、すぐに使用できる [セキュリティ操作の効率性] ブック テンプレートが提供されています。これを使用すると、SOC 操作を監視できます。 このブックには、次のメトリックが含まれています。
- 長期にわたって作成されたインシデント
- 終了分類、重要度、所有者、および状態別に作成されたインシデント
- 平均トリアージ時間
- 平均終了時間
- 長期にわたって重要度、所有者、状態、製品、および戦術別に作成されたインシデント
- トリアージまでの時間 (パーセンタイル)
- 修了までの時間 (パーセンタイル)
- 所有者ごとの平均トリアージ時間
- 最近のアクティビティ
- 最近の終了分類
この新しいブック テンプレートは、Microsoft Sentinel ナビゲーション メニューから [ブック] を選択し、 [テンプレート] タブを選択することで見つかります。ギャラリーから [セキュリティ操作の効率性] を選択し、 [保存されたブックの表示] ボタンか [テンプレートの表示] ボタンをクリックします。
テンプレートを使用すると、特定のニーズに合わせて独自のカスタム ブックを作成できます。
SecurityIncidents スキーマ
スキーマのデータ モデル
フィールド | データ型 | 説明 |
---|---|---|
AdditionalData | 動的 | アラート数、ブックマーク数、コメント数、アラート製品の名前と戦術 |
AlertIds | 動的 | インシデントが作成される原因となったアラート |
BookmarkIds | 動的 | ブックマークが付けられたエンティティ |
分類 | string | インシデント終了の分類 |
ClassificationComment | string | インシデント終了の分類のコメント |
ClassificationReason | string | インシデント終了の分類の理由 |
ClosedTime | DATETIME | インシデントが最後に閉じられたときのタイムスタンプ (UTC) |
コメント | 動的 | インシデント コメント |
CreatedTime | DATETIME | インシデントが作成されたときのタイムスタンプ (UTC) |
説明 | string | インシデントの説明 |
FirstActivityTime | DATETIME | 最初のイベントの時刻 |
FirstModifiedTime | DATETIME | インシデントが最初に変更されたときのタイムスタンプ (UTC) |
IncidentName | string | 内部 GUID |
IncidentNumber | INT | |
IncidentUrl | string | インシデントへのリンク |
ラベル | 動的 | タグ |
LastActivityTime | DATETIME | 前回のイベントの時刻 |
LastModifiedTime | datetime | インシデントが最後に変更されたときのタイムスタンプ (UTC) (現在のレコードによって記述された変更) |
ModifiedBy | string | インシデントを変更したユーザーまたはシステム |
所有者 | 動的 | |
RelatedAnalyticRuleIds | 動的 | インシデントのアラートがトリガーされる原因となったルール |
重大度 | string | インシデントの重要度 (高/中/低/情報提供) |
SourceSystem | string | 定数 ('Azure') |
状態 | string | |
TenantId | string | |
TimeGenerated | datetime | 現在のレコードが作成されたときのタイムスタンプ (UTC) (インシデントの変更時) |
タイトル | string | |
Type | string | 定数 ('SecurityIncident') |
次のステップ
- Microsoft Sentinel を使用するには、Microsoft Azure のサブスクリプションが必要です。 サブスクリプションがない場合は、 無料試用版にサインアップできます。
- データを Microsoft Sentinel にオンボードし、データや潜在的な脅威を視覚化する方法を確認します。