使用 ASIM 分析程序
在 Microsoft Sentinel 中,分析并规范化在查询时发生。 分析器构建为 KQL 用户定义函数,用于将现有表(如 CommonSecurityLog、自定义日志表或 Syslog)中的数据转换为规范化架构。
用户在查询中使用高级安全信息模型(ASIM)分析程序而不是表名称,以查看采用规范化格式的数据,并在查询中包含与架构相关的所有数据。
内置 ASIM 分析器和工作区部署的分析程序
每个 Microsoft Sentinel 工作区内置许多 ASIM 分析程序,这些程序立即可用。 ASIM 还支持使用 ARM 模板或手动将分析程序从 GitHub 部署到特定工作区。 立即可用和工作区部署的分析程序在功能上都是等效的,但命名约定略有不同,这让两个分析器集都可以在同一 Microsoft Sentinel 工作区中共存。
每种方法都各有优势:
| 比较 | 内置 | 工作区部署 |
|---|---|---|
| 优点 | 存在于每个 Microsoft Sentinel 实例中。 可与其他内置内容结合使用。 | 新分析程序通常首先作为工作区部署的分析程序交付。 |
| 缺点 | 用户无法直接修改。 可用的分析程序更少。 | 不为内置内容所使用。 |
| 何时使用 | 在大多数需要 ASIM 分析程序的情况下使用。 | 在部署新分析程序时使用,或者,用于尚不能立即可用的分析程序。 |
建议对具有内置解析器的架构使用这些内置解析器。
分析器层次结构
ASIM 包括两个级别的分析程序:统一分析器和特定于源分析器。 用户通常对相关架构使用统一分析器,确保查询与架构相关的所有数据。 统一分析程序反过来会调用特定于源的分析程序来执行实际的分析和规范化,这特定于每个源。
内置解析器的统一名称为_Im_Schema,工作区部署解析器的名称为imSchema。 其中 Schema 表示它所服务的特定架构。 也可以单独使用特定于源的分析程序。 例如,在特定于 Infoblox 的工作簿中,使用 vimDnsInfobloxNIOS 特定于源的分析程序。
统一分析程序
在查询中使用 ASIM 时,使用统一分析器来合并所有源,规范化为同一架构,并使用规范化字段对其进行查询。
例如,以下查询使用内置的统一 DNS 分析器通过 ResponseCodeName、SrcIpAddr 和 TimeGenerated 规范化字段查询 DNS 事件:
_Im_Dns(starttime=ago(1d), responsecodename='NXDOMAIN')
| summarize count() by SrcIpAddr, bin(TimeGenerated,15m)
此示例使用筛选参数,从而提高 ASIM 性能。 没有筛选参数的同一示例如下所示:
_Im_Dns
| where TimeGenerated > ago(1d)
| where ResponseCodeName =~ "NXDOMAIN"
| summarize count() by SrcIpAddr, bin(TimeGenerated,15m)
下表列出了可用的统一分析程序:
| 图式 | 统一分析程序 |
|---|---|
| 身份验证 | imAuthentication |
| Dns | _Im_Dns |
| 文件事件 | imFileEvent |
| 网络会话 | _Im_NetworkSession |
| 处理事件 | imProcessCreate 和 imProcessTerminate |
| 注册表事件 | imRegistry |
| Web 会话 | _Im_WebSession |
使用参数优化分析
使用分析程序可能会影响查询性能,主要是在分析后筛选结果。 因此,许多分析程序都有可选的筛选参数,这使你可以在分析和增强查询性能之前进行筛选。 借助查询优化和预筛选工作,与根本不使用规范化相比,ASIM 分析器通常会提供更好的性能。
调用分析程序时,请始终通过添加一个或多个命名参数来使用可用的筛选参数,以确保 ASIM 分析程序拥有最佳性能。
每个架构都有一组标准筛选参数记录在相关架构文档中。 筛选参数是完全可选的。 以下架构支持筛选参数:
- 身份验证
- DNS
- 网络会话
- Web 会话
支持筛选参数的每个架构至少支持 starttime 和 enttime 参数,并且使用它们通常对于优化性能至关重要。