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

处理 Microsoft Sentinel 中的误报

Microsoft Sentinel 分析规则会在你的网络中出现可疑情况时通知你。 没有分析规则是完美的,总归会有一些误报需要你来处理。 本文介绍如何通过使用自动化或修改计划的分析规则来处理误报。

误报原因及预防

即使是在一个正确构建的分析规则中,误报也经常源自用户或 IP 地址等特定实体,这些实体应该被排除在规则之外。

常见方案包括:

  • 某些用户(通常是服务主体)的正常活动显示出一种看似可疑的模式。
  • 来自已知 IP 地址的有意安全扫描活动被检测为恶意活动。
  • 排除专用 IP 地址的规则还应排除一些非专用的内部 IP 地址。

本文介绍两种避免误报的方法:

  • 自动化规则,无需修改分析规则即可创建例外。
  • 计划的分析规则修改,允许更详细和永久的例外。

下表介绍了每种方法的特征:

方法 特征
自动化规则
  • 可应用于多个分析规则。
  • 保留审核线索。 异常会立即自动关闭创建的事件,记录关闭原因和注释。
  • 通常由分析人员生成。
  • 允许在有限的时间内应用例外。 例如,维护工作可能会触发误报,认为超出了维护时间范围就是真实事件。
分析规则修改
  • 允许高级布尔表达式和基于子网的例外。
  • 允许使用监视列表实现集中例外管理。
  • 通常需要由安全运营中心 (SOC) 工程师实施。
  • 是最灵活和最完整的误报解决方案,但更为复杂。

使用自动化规则添加例外

添加例外的最简单方法是在看到误报事件时添加自动化规则

添加自动化规则以处理误报:

  1. 在 Microsoft Sentinel 的“事件”下,选择要为其创建例外的事件。

  2. 选择“创建自动化规则”。

  3. 在“创建新的自动化规则”边栏中,可以选择修改新规则名称以标识例外,而不仅仅是警报规则名称。

  4. 在“条件”下,可选择添加更多要应用例外的“分析规则名称”。 选择包含分析规则名称的下拉列表框,并从列表中选择更多分析规则。

  5. 边栏显示了当前事件中可能导致误报的特定实体。 保留自动建议,或修改它们以微调例外。 例如,可以更改 IP 地址上的一个条件,以便应用于整个子网。

    Screenshot showing how to create an automation rule for an incident in Microsoft Sentinel.

  6. 满足条件后,可以继续定义规则的作用:

    Screenshot showing how to finish creating and applying an automation rule in Microsoft Sentinel.

    • 该规则已配置为关闭符合例外条件的事件。
    • 可以按原样保留指定的结束原因,或者如果其他原因更合适,可以更改原因。
    • 可以向解释例外的自动关闭事件添加注释。 例如,可以指定事件源自已知的管理活动。
    • 默认情况下,规则设置为在 24 小时后自动过期。 这可能是你需要的过期时间,并减少了误报错误的可能性。 如果想要时间更长的例外,请将“规则过期时间”设置为更晚的时间。
  7. 如果需要,可以添加更多操作。 例如,可以向事件添加标记,也可以运行 playbook 发送电子邮件或通知或与外部系统同步。

  8. 选择“应用”以激活例外。

提示

还可以从头开始创建自动化规则,而无需从事件开始。 从 Microsoft Sentinel 左侧导航菜单中选择“自动化”,然后选择“创建”>“添加新规则”。 详细了解自动化规则

通过修改分析规则来添加例外

实现例外的另一个选项是修改分析规则查询。 你可以直接在规则中包含例外,或者在可能的情况下,最好使用对监视列表的引用。 然后便可以管理监视列表中的例外列表。

修改查询

要编辑现有分析规则,请从 Microsoft Sentinel 左侧导航菜单中选择“自动化”。 选择要编辑的规则,然后选择右下方的“编辑”以打开“分析规则向导” 。

有关使用“分析规则向导”创建和编辑分析规则的详细说明,请参阅创建自定义分析规则以检测威胁

要在典型的规则报头中实现例外,可以在规则查询的开头附近添加一个类似 where IPAddress !in ('<ip addresses>') 的条件。 此行从规则中排除特定的 IP 地址。

let timeFrame = 1d;
SigninLogs
| where TimeGenerated >= ago(timeFrame)
| where IPAddress !in ('10.0.0.8', '192.168.12.1')
...

这种类型的例外并不限于 IP 地址。 可以使用 UserPrincipalName 字段排除特定用户,或使用 AppDisplayName 排除特定应用。

还可以排除多个属性。 例如,要排除来自 IP 地址 10.0.0.8 或用户 user@microsoft.com 的警报,请使用:

| where IPAddress !in ('10.0.0.8')
| where UserPrincipalName != 'user@microsoft.com'

若要在适用时实现更细粒度的例外,并减少误报的机会,可以组合属性。 仅当两个值出现在同一警报中时,以下例外才适用:

| where IPAddress != '10.0.0.8' and UserPrincipalName != 'user@microsoft.com'

排除子网

要排除组织使用的 IP 范围,需要排除子网。 以下示例显示如何排除子网。

ipv4_lookup 运算符是扩充运算符,而不是筛选运算符。 where isempty(network) 行实际上通过检查那些未显示匹配项的事件来进行筛选。

let subnets = datatable(network:string) [ "111.68.128.0/17", "5.8.0.0/19", ...];
let timeFrame = 1d;
SigninLogs
| where TimeGenerated >= ago(timeFrame)
| evaluate ipv4_lookup(subnets, IPAddress, network, return_unmatched = true)
| where isempty(network)
...

使用监视列表管理例外

可以使用监视列表来管理规则本身之外的例外列表。 如果适用,此解决方案具有以下优点:

  • 分析人员可以在不编辑规则的情况下添加例外,这更符合 SOC 最佳做法。
  • 同一个监视列表可以应用于多个规则,从而实现集中例外管理。

使用监视列表类似于使用直接例外。 使用 _GetWatchlist('<watchlist name>') 调用监视列表:

let timeFrame = 1d;
let logonDiff = 10m;
let allowlist = (_GetWatchlist('ipallowlist') | project IPAddress);
SigninLogs
| where TimeGenerated >= ago(timeFrame)
| where IPAddress !in (allowlist)
...

还可使用监视列表进行子网筛选。 例如,在前面的子网排除代码中,可以将子网 datatable 定义替换为监视列表:

let subnets = _GetWatchlist('subnetallowlist');

示例:管理适用于 SAP® 应用程序的 Microsoft Sentinel 解决方案的异常

适用于 SAP® 应用程序的 Microsoft Sentinel 解决方案提供了可用于从触发警报中排除用户或系统的功能。

  • 排除用户使用 SAPUsersGetVIP 函数可以:

    • 要从触发警报中排除的用户的呼叫标记。 将SAP_User_Config监视列表中的用户标记为野生卡将星号设置为野生卡,以使用指定的命名语法标记所有用户。
    • 列出要从触发警报中排除的特定 SAP 角色和/或配置文件。
  • 排除系统。 使用支持 SelectedSystemRoles 参数的函数来确定仅特定类型的系统触发警报,包括仅生产系统、仅 UAT 系统或两者。

有关详细信息,请参阅 适用于 SAP® 应用程序数据参考的 Microsoft Sentinel 解决方案。

后续步骤

有关详细信息,请参阅: