使用 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 参数,而使用这些架构通常对于优化性能至关重要。