你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
处理 Microsoft Sentinel 中的误报
Microsoft Sentinel 分析规则会在你的网络中出现可疑情况时通知你。 没有分析规则是完美的,总归会有一些误报需要你来处理。 本文介绍如何通过使用自动化或修改计划的分析规则来处理误报。
误报原因及预防
即使是在一个正确构建的分析规则中,误报也经常源自用户或 IP 地址等特定实体,这些实体应该被排除在规则之外。
常见方案包括:
- 某些用户(通常是服务主体)的正常活动显示出一种看似可疑的模式。
- 来自已知 IP 地址的有意安全扫描活动被检测为恶意活动。
- 排除专用 IP 地址的规则还应排除一些非专用的内部 IP 地址。
本文介绍两种避免误报的方法:
- 自动化规则,无需修改分析规则即可创建例外。
- 计划的分析规则修改,允许更详细和永久的例外。
下表介绍了每种方法的特征:
方法 | 特征 |
---|---|
自动化规则 |
|
分析规则修改 |
|
使用自动化规则添加例外
添加例外的最简单方法是在看到误报事件时添加自动化规则。
添加自动化规则以处理误报:
在 Microsoft Sentinel 的“事件”下,选择要为其创建例外的事件。
选择“创建自动化规则”。
在“创建新的自动化规则”边栏中,可以选择修改新规则名称以标识例外,而不仅仅是警报规则名称。
在“条件”下,可选择添加更多要应用例外的“分析规则名称”。 选择包含分析规则名称的下拉列表框,并从列表中选择更多分析规则。
边栏显示了当前事件中可能导致误报的特定实体。 保留自动建议,或修改它们以微调例外。 例如,可以更改 IP 地址上的一个条件,以便应用于整个子网。
满足条件后,可以继续定义规则的作用:
- 该规则已配置为关闭符合例外条件的事件。
- 可以按原样保留指定的结束原因,或者如果其他原因更合适,可以更改原因。
- 可以向解释例外的自动关闭事件添加注释。 例如,可以指定事件源自已知的管理活动。
- 默认情况下,规则设置为在 24 小时后自动过期。 这可能是你需要的过期时间,并减少了误报错误的可能性。 如果想要时间更长的例外,请将“规则过期时间”设置为更晚的时间。
如果需要,可以添加更多操作。 例如,可以向事件添加标记,也可以运行 playbook 发送电子邮件或通知或与外部系统同步。
选择“应用”以激活例外。
提示
还可以从头开始创建自动化规则,而无需从事件开始。 从 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 解决方案数据参考。
相关内容
有关详细信息,请参阅: