你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

修改内容以使用高级安全信息模型 (ASIM)(公共预览版)

Microsoft Sentinel 中的规范化安全内容包括分析规则、搜寻查询,以及使用统一的规范化分析程序的工作簿。

可在 Microsoft Sentinel 库和解决方案中查找规范化的现成内容、自行创建规范化内容或修改现有的自定义内容以使用规范化数据。

本文介绍了如何转换现有的 Microsoft Sentinel 分析规则,以便将规范化数据与高级安全信息模型 (ASIM) 配合使用。

若要了解规范化内容如何适用于 ASIM 体系结构,请参阅 ASIM 体系结构图

重要

ASIM 当前处于预览状态。 Azure 预览版补充条款包含适用于 beta 版、预览版或其他尚未正式发布的 Azure 功能的其他法律条款。

修改自定义内容以使用规范化

若要使自定义的 Microsoft Sentinel 内容能够使用规范化,请执行以下操作:

  • 修改查询以使用与查询相关的任何统一分析程序

  • 修改查询中的字段名称,以使用规范化架构字段名称。

  • 在适用的情况下,更改条件以在查询中使用字段的规范化值。

分析规则的示例规范化

例如,考虑使用“观测到反向 DNS 查找计数较高的罕见客户端”DNS 分析规则来处理 Infoblox DNS 服务器发送的 DNS 事件:

let threshold = 200;
InfobloxNIOS
| where ProcessName =~ "named" and Log_Type =~ "client"
| where isnotempty(ResponseCode)
| where ResponseCode =~ "NXDOMAIN"
| summarize count() by Client_IP, bin(TimeGenerated,15m)
| where count_ > threshold
| join kind=inner (InfobloxNIOS
    | where ProcessName =~ "named" and Log_Type =~ "client"
    | where isnotempty(ResponseCode)
    | where ResponseCode =~ "NXDOMAIN"
    ) on Client_IP
| extend timestamp = TimeGenerated, IPCustomEntity = Client_IP

以下代码是与源无关的版本,它使用规范化来为提供 DNS 查询事件的任何源提供相同的检测。 以下示例使用内置 ASIM 分析程序:

_Im_Dns(responsecodename='NXDOMAIN')
| summarize count() by SrcIpAddr, bin(TimeGenerated,15m)
| where count_ > threshold
| join kind=inner (imDns(responsecodename='NXDOMAIN')) on SrcIpAddr
| extend timestamp = TimeGenerated, IPCustomEntity = SrcIpAddr

若要使用工作区部署的 ASIM 分析程序,请将第一行替换为以下代码:

imDns(responsecodename='NXDOMAIN')

内置分析程序和工作区部署的分析程序之间的差异

上例中的两个选项在功能上完全相同。 与源无关的规范化版本具有以下差别:

  • 使用 _Im_DnsimDns 规范化分析程序,而不是 Infoblox 分析程序。

  • 规范化分析程序只提取 DNS 查询事件,因此无需检查事件类型,而 Infoblox 版本中的 where ProcessName =~ "named" and Log_Type =~ "client" 会执行这种检查。

  • 使用 SrcIpAddr 字段而不是 Client_IP

  • 分析程序参数筛选用于 ResponseCodeName,不再需要显式 where 子句。

注意

除支持任何规范化的 DNS 源以外,规范化版本更短且更易于理解。

如果架构或分析程序不支持筛选参数,则更改类似,只是原始查询中的筛选条件保留。 例如:

let threshold = 200;
imDns
| where isnotempty(ResponseCodeName)
| where ResponseCodeName =~ "NXDOMAIN"
| summarize count() by SrcIpAddr, bin(TimeGenerated,15m)
| where count_ > threshold
| join kind=inner (imDns
    | where isnotempty(ResponseCodeName)
    | where ResponseCodeName =~ "NXDOMAIN"
    ) on SrcIpAddr
| extend timestamp = TimeGenerated, IPCustomEntity = SrcIpAddr

后续步骤

本文讨论高级安全信息模型 (ASIM) 内容。

有关详细信息,请参阅: