利用事件指标更好地管理 SOC

重要

注意:根据世纪互联发布的公告2026 年 8 月 18 日,Microsoft Sentinel 的所有功能将在中国区域的 Azure 中正式停用。

作为安全运营中心 (SOC) 管理员,需要随时可以获得总体效率指标和度量值,以衡量团队的表现。 需要按许多不同的条件来查看一段时间内的事件操作,如严重性、MITRE 技巧、平均会审时间、平均解决时间等等。 Microsoft Sentinel 现在使用 Log Analytics 中新的“SecurityIncident”表和架构以及附带的“安全运营效率”工作簿提供此数据 。 你将能够直观显示团队在一段时间内的表现,并使用此见解来提高效率。 还可以针对事件表来写入和使用自己的 KQL 查询,以创建符合特定审核需求和 KPI 的自定义工作簿。

使用安全事件表

SecurityIncident 表是 Microsoft Sentinel 中的内置表。 可以在“日志”下的“SecurityInsights”集合中找到该表及其他表。 可以像在 Log Analytics 中的任何其他表一样对其进行查询。

安全事件表

每次创建或更新事件时,都会向表中添加一个新的日志条目。 这允许你跟踪对事件所做的更改,并允许更强大的 SOC 指标,但需要注意,每个事件更新在构造此表的查询时会创建一个新的日志条目,因为可能需要删除事件的重复条目(具体取决于正在运行的确切查询)。

例如,如果想要返回按事件编号排序的所有事件的列表,但只想返回每个事件的最新日志,则可以结合使用 KQL summarize 运算符arg_max() 聚合函数来执行此操作:

SecurityIncident
| summarize arg_max(LastModifiedTime, *) by IncidentNumber

事件指标的示例 KQL 查询

以下示例显示了可与 SecurityIncident 表一起使用的常见 KQL 查询。

事件状态 - 给定时间框架内按状态和严重性显示所有事件:

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 架构

以下架构参考描述了 SecurityIncident 表中可用的字段。

架构的数据模型

字段 数据类型 说明
AdditionalData 动态 警报数量、书签数量、评论数量、警报产品名称和策略
AlertIds 动态 创建此事件的警报
BookmarkIds 动态 已加书签的实体
分类 字符串 事件关闭分类
分类注释 字符串 事件关闭分类备注
ClassificationReason 字符串 事件关闭分类原因
关闭时间 日期/时间 事件最后一次关闭时的时间戳 (UTC)
注释 动态 事件注释
创建时间 日期/时间 创建事件的时间戳 (UTC)
说明 字符串 事件描述
FirstActivityTime 日期/时间 首次事件时间
FirstModifiedTime 日期/时间 首次修改事件的时间戳 (UTC)
IncidentName 字符串 内部 GUID
IncidentNumber int
IncidentUrl 字符串 事件链接
标签 动态 标签
LastActivityTime 日期/时间 最近事件时间
LastModifiedTime 日期/时间 上次修改事件的时间戳 (UTC)
(当前记录描述的修改)
ModifiedBy 字符串 修改事件的用户或系统
所有者 动态
RelatedAnalyticRuleIds 动态 触发该事件警报的规则
严重性 字符串 事件的严重性(高/中/低/信息)
SourceSystem 字符串 常量 ('Azure')
Status 字符串
TenantId 字符串
TimeGenerated 日期/时间 创建当前记录的时间戳 (UTC)
(在修改事件时)
标题 字符串
类型 字符串 常量 ('SecurityIncident')

后续步骤