利用事件指标更好地管理 SOC
作为安全运营中心 (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
更多示例查询
事件状态 - 给定时间框架内按状态和严重性显示所有事件:
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') |
Status | string | |
TenantId | string | |
TimeGenerated | datetime | 创建当前记录的时间戳 (UTC) (修改事件时) |
标题 | string | |
类型 | string | 常量 ('SecurityIncident') |
后续步骤
- 若要开始使用 Microsoft Sentinel,需要订阅 Azure。 如果你没有订阅,则可以注册试用版。
- 了解如何将数据载入 Microsoft Sentinel。