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

处理Microsoft Sentinel中的误报

重要

自定义检测现在是跨 Microsoft Sentinel SIEM Microsoft Defender XDR 创建新规则的最佳方式。 使用自定义检测,可以降低引入成本,获得无限的实时检测,并通过自动实体映射与Defender XDR数据、函数和修正操作的无缝集成受益。 有关详细信息,请阅读 此博客

Microsoft Sentinel分析规则在网络中发生可疑事件时通知你。 没有一个分析规则是完美的,你肯定会得到一些需要处理的误报。 本文介绍如何使用自动化或修改计划分析规则来处理误报。

误报原因和预防

即使在正确生成的分析规则中,误报通常也源于应从规则中排除的特定实体,例如用户或 IP 地址。

常见方案包括:

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

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

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

下表描述了每个方法的特征:

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

使用仅) (Azure 门户 自动化规则添加例外

此过程介绍如何在看到误报事件时 添加自动化规则 。 此过程仅在Azure 门户中受支持。

如果已将Microsoft Sentinel载入到 Defender 门户,请基于事件的详细信息从头开始创建自动化规则。 有关详细信息,请参阅使用自动化规则在 Microsoft Sentinel 中自动执行威胁响应

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

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

  2. 在一侧的事件详细信息窗格中,选择 “操作 > 创建自动化规则”。

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

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

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

    显示如何在 Microsoft Sentinel 中创建事件的自动化规则的屏幕截图。

  6. 满足条件后,在侧窗格中向下滚动以继续定义规则的作用:

    显示如何在 Microsoft Sentinel 中完成创建和应用自动化规则的屏幕截图。

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

  8. 选择“ 应用 ”以激活异常。

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

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

修改查询

若要编辑现有分析规则,请从左侧导航菜单中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');

请参阅 Kusto 文档中前面示例中使用的以下项的详细信息:

有关 KQL 的详细信息,请参阅 Kusto 查询语言 (KQL) 概述

其他资源:

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

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

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

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

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

有关更多信息,请参阅: