Share via


インシデント メトリックを使用して 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')

次のステップ