引入时间规范化
查询时间分析
正如 ASIM 概述中所讨论的那样,Microsoft Sentinel 使用查询时间和引入时间规范化来利用这两者的优势。
若要使用查询时间规范化,请使用 查询时间统一分析程序(例如查询中的 _Im_Dns
)。 使用查询时间分析进行规范化的一些优势:
- 保留原始格式:查询时间规范化不需要修改数据,因此能保留源发送的原始数据格式。
- 避免潜在的重复存储:由于规范化数据只是原始数据的一个视图,因此无需同时存储原始数据和规范化数据。
- 让开发更轻松:因为查询时间分析程序提供数据的视图且不修改数据,所以更易于开发。 开发、测试和修复解析器都可以在现有数据上完成。 此外,当发现问题时,可以修复解析器,并且修复将应用于现有数据。
引入时间分析
虽然 ASIM 查询时间分析程序经过优化,但查询时间分析可能会减慢查询速度,尤其是在大型数据集上。
通过进行引入时间分析,可在事件被引入 Microsoft Sentinel 时将事件转换为规范化架构,并将其以规范化格式存储。 引入时间分析的灵活性较低,且分析程序开发难度较高,但因为能将数据以规范化格式存储,所以性能更好。
规范化数据可以存储在 Microsoft Sentinel 的本机规范化表中,也可以存储在使用 ASIM 架构的自定义表中。 架构与 ASIM 架构接近但不完全相同的自定义表也提供引入时间规范化的性能优势。
目前,ASIM 支持将以下本机规范化表作为引入时间规范化的目标:
- 审核事件架构的 ASimAuditEventLogs。
- 身份验证架构的 ASimAuthenticationEventLogs。
- ASimDnsActivityLogs,适用于 DNS 架构。
- ASimNetworkSessionLogs,适用于网络会话架构
- Web 会话架构的 ASimWebSessionLogs。
本机规范化表的优势在于它们默认包含在 ASIM 统一分析程序中。 自定义规范化表可以包含在统一分析程序中,如管理分析程序中所述。
将引入时间和查询时间规范化相结合
查询应始终使用查询时间统一分析程序(例如 _Im_Dns
)以利用查询时间和引入时间规范化的优势。 本机规范化表通过使用存根分析程序包含在查询的数据中。
存根分析程序是一个查询时间分析程序,在规范化表中用于输入。 由于规范化表不需要分析,因此存根分析程序非常高效。
存根分析程序为添加到 ASIM 本机表的调用查询提供视图:
- 别名 - 为了避免因重复的值而浪费存储空间,别名不会存储在 ASIM 本机表中,并且由存根分析程序在查询时添加。
- 常量值 - 与别名一样,由于同样的原因,ASIM 规范化表也不存储 EventSchema 等常量值。 存根分析程序会添加这些字段。 ASIM 规范化表由许多源共享,且引入时间分析程序可以更改其输出版本。 因此,EventProduct、EventVendor 和 EventSchemaVersion 等字段不是常量值,并且不会由存根分析程序添加。
- 筛选 - 存根分析程序也实现筛选。 虽然 ASIM 本机表不需要筛选分析程序就能获得更好的性能,但需要筛选以包含在统一分析程序中。
- 更新和修复 - 使用存根分析程序可以更快地解决问题。 例如,如果数据引入不正确,那么可能是未在引入期间从消息字段提取 IP 地址。 存根分析程序可以在查询时提取 IP 地址。
使用自定义规范化表时,请创建自己的存根分析程序来实现此功能,并将其添加到统一分析程序,如管理分析程序中所述。 将本机表的存根分析程序(例如 DNS 本机表存根分析程序及其筛选对应项)用作起点。 如果表已半规范化,请使用存根分析程序执行所需的其他分析和规范化。
在开发 ASIM 分析程序中详细了解如何编写分析程序。
实现引入时间规范化
若要在引入时规范化数据,需要使用数据收集规则 (DCR)。 实现 DCR 的过程取决于用于引入数据的方法。 有关详细信息,请参阅在 Microsoft Sentinel 中引入时转换或自定义数据一文。
KQL 转换查询是 DCR 的核心。 DCR 中使用的 KQL 版本与 Microsoft Sentinel 中其他位置使用的版本略有不同,以适应管道事件处理的要求。 因此,需要修改查询时分析程序才能在 DCR 中使用它。 若要详细了解其中的差异以及如何将查询时间分析程序转换为引入时间分析程序,请阅读 DCR KQL 限制。
后续步骤
有关详细信息,请参阅: