Microsoft Sentinel 中的计划分析规则
到目前为止,最常见的分析规则类型是“计划”规则,它基于 Kusto 查询,这些查询配置为定期运行,并检查定义的“回溯”周期中的原始数据。 查询可以对其目标数据执行复杂的统计操作,并显示事件组中的基线和离群值。 如果查询捕获的结果数超过了规则中配置的阈值,规则将生成警报。
本文旨在帮助你了解计划分析规则是如何构建的,还会向你介绍所有配置选项及其含义。 本文分享的信息在以下两种场景下非常有用:
从模板创建分析规则:使用模板中定义的查询逻辑以及计划和回溯设置,或对其进行自定义以创建新规则。
从头开始创建分析规则:从头开始构建属于自己的查询和规则。 若要有效执行此操作,你应该全面掌握数据科学和 Kusto 查询语言的基础知识。
Analytics 规则模板
计划的规则模板中的查询由安全和数据科学专家编写,这些专家可能来自 Microsoft,也可能来自提供模板的解决方案供应商。
使用分析规则模板的方法如下:从模板列表中选择一个模板名称,然后基于此模板创建规则。
每个模板都具有所需数据源的列表。 打开模板时,会自动检查数据源的可用性。 可用性是指数据源已连接,并且正在通过它定期引入数据。 如果有任何必需的数据源不可用,则不会允许你创建规则,并且还有可能看到提醒你此情况的错误消息。
从模板创建规则时,会根据所选模板打开规则创建向导。 所有详细信息都将自动填充,你可以自定义逻辑和其他规则设置,以更好地满足你的特定需求。 可以重复此过程以基于模板创建更多规则。 当规则创建向导接近结束时,将会验证你的自定义并创建规则。 新规则将显示在“分析”页面上的“活动规则”选项卡中。 与之类似,在“规模模板”选项卡上,你根据其创建规则的模板现在会显示 In use
标签。
分析规则模板的作者会持续进行维护,修复 bug 或优化查询。 如果模板收到更新,任何基于此模板创建的规则都会显示 Update
标签,即表示可以修改这些规则以包含对此模板做出的任何更改。 还可以将在规则中进行的任何更改还原到其基于模板的原始版本。 请参阅在 Microsoft Sentinel 中管理计划分析规则的模板版本,了解更多信息。
熟悉本文介绍的配置选项后,请参阅从模板创建计划分析规则。
本文剩余部分介绍自定义规则配置的所有选项。
分析规则配置
本节介绍在开始配置规则之前,你需要考虑到的注意事项。
分析规则名称和详细信息
分析规则向导的第一页包含规则的基本信息。
名称:规则在规则列表以及任何基于规则的筛选器中所显示的名称。 名称必须在工作区中是唯一的。
说明:由你自己输入用来说明规则用途的一段文字。
ID:规则作为 Azure 资源的 GUID,用于 API 请求和响应等之中。 仅在创建规则时会分配此 GUID,因此仅在你编辑现有规则时才会显示。 由于是只读字段,因此显示为灰显,且无法更改。 无论是从模板还是从头开始创建新规则时,该 GUID 尚不存在。
严重性:分级,用于提供此规则产生的警告。 活动的严重性是对于该活动发生后可能出现的负面影响的计算结果。
严重性 | 说明 |
---|---|
信息 | 对系统没有影响,但信息可能表明威胁行动者计划了未来步骤。 |
低 | 直接影响将是微乎其微的。 威胁行动者可能需要执行多个步骤,才能对环境产生影响。 |
中等 | 威胁行动者可能通过此活动对环境产生一些影响,但影响范围有限或需要其他活动。 |
高 | 确定的活动为威胁行动者提供了广泛的访问权限来对环境执行操作,或者由对环境的影响触发。 |
严重性级别默认值不能保证当前或环境影响级别。 自定义警报详细信息,从而使用查询输出中任何相关字段的值自定义给定警报实例的严重性、策略和其他属性。
Microsoft Sentinel 分析规则模板的严重性定义仅与分析规则创建的警报相关。 对于从其他服务引入的警报,严重性由源安全服务定义。
MITRE ATT&CK:此规则捕获的活动所代表的攻击策略和技术手段的规范。 这些类别基于 MITRE ATT&CK® 框架的策略和技术生成。
此处在规则中定义的 MITRE ATT&CK 策略和技术适用于此规则生成的任何警报。 此外,还适用于从这些警报创建的任何事件。
有关最大限度地扩大 MITRE ATT&CK 威胁形势覆盖范围的更多信息,请参阅了解 MITRE ATT&CK® 框架的安全覆盖范围
状态:创建规则时,默认情况下规则的“状态”将为“已启用”,这表示当你完成创建后,它将立即运行。 如果不希望立即运行,有以下两种选项:
- 如果选择“已禁用”,则将创建规则而不运行它。 如果希望规则运行,请在“活动规则”选项卡中找到它,并从此处启用。
- 计划规则在特定日期和时间首次运行。 此方法当前以预览版提供。 请参阅本文稍后的内容:查询计划。
规则查询
规则的本质是:你决定此规则创建的警报中包含哪些信息,以及这些信息的组织方式。 此配置会对产生怎样的事件,以及调查、修复和解决这些事件的难易程度产生后续影响。 警报中的信息应做到越丰富越好,且务必做到轻松即可获取。
查看或输入分析原始日志数据的 Kusto 查询。 若要从头开始创建规则,最好先计划和设计查询,然后再打开此向导。 可以在“日志”页面中构建和测试查询。
在规则查询窗口中输入的所有内容会立即进行验证,让你马上知道自己是否犯错。
建议使用高级安全信息模型 (ASIM) 分析程序作为查询源,而不是使用本机表。 这将确保查询支持任何当前或未来的相关数据源或数据源系列,而不是依赖于单个数据源。
查询长度应介于 1 到 10,000 个字符之间,并且不得包含“
search *
”或“union *
”。 可以使用用户定义的函数来应对查询长度限制,一个函数就可以替代几十行代码。不支持在 Log Analytics 查询窗口中使用 ADX 函数创建 Azure 数据资源管理器查询。
在查询中使用
bag_unpack
函数时,如果使用“project field1
”将列投影为字段而列不存在,此时查询将失败。 为了防止这种情况发生,必须按以下方式对列进行投影:project field1 = column_ifexists("field1","")
有关构建 Kusto 查询的更多帮助,请参阅 Microsoft Sentinel 中的 Kusto 查询语言和 Kusto 查询语言查询的最佳做法。
警报增强
如果希望警报显示发现的情况,以便在事件中立即可见,并相应进行跟踪和调查,请使用警报增强配置以显示警报中所有的重要信息。
此次警报增强新增一项实用功能:以轻松可见、可用方式显示发现的情况。
可以配置以下三种警报增强:
- 实体映射
- 自定义详细信息
- 警报详细信息(也称为动态内容)
实体映射
实体是指任何攻击事件中任意一方的人员。 识别警报中的所有实体对于检测和调查威胁而言至关重要。 为确保 Microsoft Sentinel 识别出原始数据中的实体,必须将 Microsoft Sentinel 识别的实体类型映射到查询结果中的字段中。 此映射会将识别到的实体集成到警报架构中的“实体”字段中。
有关映射实体的完整说明,请参阅将数据字段映射到 Microsoft Sentinel 中的实体。
自定义详细信息
默认情况下,事件中只会显示警报实体和元数据,而不会详细钻取到查询结果中的原始事件。 若要查询结果中的其他字段在警报和事件中立即变为可见,请将它们定义为自定义详细信息。 Microsoft Sentinel 将这些自定义详细信息集成到警报中的 ExtendedProperties 字段中,使它们显示在警报前面以及从这些警报创建的任何事件中。
有关呈现自定义详细信息的完整说明,请参阅在 Microsoft Sentinel 中的警报中呈现自定义事件详细信息。
警报详细信息
此设置允许根据每个单独警报中各个字段的内容自定义其他标准警报属性。 这些自定义设置已集成到警报的 ExtendedProperties 字段中。 例如,可以自定义警报名称或描述以包含警报中包含的用户名或 IP 地址。
有关自定义警报详细信息的完整说明,请参阅在 Microsoft Sentinel 中自定义警报详细信息。
查询计划
以下参数确定计划规则将会在怎样的频率运行,以及每次运行时会检查哪个时间段。
设置 | 行为 |
---|---|
查询运行间隔 | 控制查询间隔:运行查询的频率。 |
查找上次的数据 | 确定回溯期:查询涵盖的时间段。 |
这两个参数的允许范围是 5 分钟到 14 天。
查询间隔必须小于或等于回溯期。 如果较短,查询时间段将重叠,这可能会导致结果重复。 不过,规则验证不允许设置比回溯期更长的间隔,因为这会导致覆盖范围出现空白。
启动运行设置目前已推出预览版,让你可以创建状态为“已启用”的规则,但会延迟其第一次执行,直到预先确定的日期和时间。 如果希望根据何时从源中引入数据或 SOC 分析师何时开始白天的工作再确定规则的执行时间的话,则此设置非常有用。
设置 | 行为 |
---|---|
自动 | 该规则将在创建后立即开始首次运行,之后将按“查询运行间隔”设置中所设置的间隔运行。 |
在特定时间(预览) | 设置规则首次运行的日期和时间,之后它将按照“查询运行间隔”设置中设置的时间间隔运行。 |
“开始运行”时间必须在规则创建(或启用)时间后 10 分钟到 30 天之间。
“开始运行”设置下的文本行(其左侧带有信息图标)汇总了当前查询计划和回溯设置。
注意
引入延迟
为了考虑在源中生成事件与将事件引入 Microsoft Sentinel 之间可能出现的延迟,并确保实现完全覆盖且数据不会重复,Microsoft Sentinel 从计划的时间起延迟五分钟运行计划的分析规则 。
有关详细信息,请参阅处理计划分析规则中的引入延迟。
警报阈值
虽然许多类型的安全事件都是正常事件甚至是小概率事件,却是一种迹象,表示存在大量威胁。 不同规模的大数字表示不同类型的威胁。 例如,在 1 分钟的时间内登录尝试失败 2、3 次即表示用户不记得密码,可如果是 1 分钟内失败 5 次则表示是人为攻击,1000 次则可能是自动攻击。
根据规则尝试检测的活动类型,你可以设置一个事件数量最低阈值,达到此阈值才能触发警报。 此阈值单独应用于规则每一次运行,而不是统一应用。
此外,还可将此阈值设置为结果的最大数量或确切数量。
事件分组
以下两种方式可以处理将事件分组到警报的操作:
将所有事件分组到一个警报:这是默认设置。 只要查询返回的结果数超过上一节中介绍的警报阈值,此规则每次运行时就生成一个警报。 此单个警报汇总了查询结果中返回的所有事件。
每次事件都触发警报:此规则将针对查询返回的每一个事件(结果)生成一个独一无二的警报。 如果你希望单独显示各个事件,或者希望按特定参数(按用户、主机名或其他内容)将事件分组,这种模式会很有用。 你可以在查询中定义这些参数。 |
分析规则最多可以生成 150 个警报。 如果“事件分组”设置为“为每个事件触发警报”,并且该规则的查询返回 150 个以上的事件,则前 149 个事件中,每个都会生成独一无二的警报(针对 149 个警报),第 150 个警报将汇总返回的所有事件。 换句话说,如果“事件分组”已设置为“将所有事件分组到一个警报中”,则会生成第 150 个警报。
每次事件都触发警报设置可能会导致查询结果缺失或与预期不同的问题。 有关此应用场景的更多信息,请参阅故障排除 Microsoft Sentinel 中的分析规则 | 问题:查询结果中不显示事件。
禁止
如果希望此规则在生成警报后停止工作一段时间,请将“生成警报后停止运行查询”设置设置为“启用”。 然后,必须将“停止运行查询的时长”设置为查询应停止运行的时长,最多为 24 小时。
结果模拟
分析规则向导允许你通过在当前数据集上运行规则,以测试其有效性。 运行测试时,“结果模拟”窗口中会一张图表,其中是按照当前定义的计划查询将在最近 50 次运行过程中生成的结果。 如果修改查询,则可再次运行测试更新此图表。 此图表展示了定义的时段内的结果数,该时段由查询计划定义。
上面的屏幕截图中的查询的结果模拟如下所示。 左侧是默认视图,右侧是将鼠标指针悬停在图表上的某个时间点上时所显示的内容。
如果你发现查询将触发的警报过多或过于频繁,可以对计划和阈值设置进行试验,然后再次运行模拟。
事件设置
选择 Microsoft Sentinel 是否将警报转换为可操作事件。
默认情况下启用事件创建。 Microsoft Sentinel 创建一个单独的事件,该事件与规则生成的每个警报分开。
如果你不需要让此规则生成任何故障事件(例如,在此规则只用于收集信息以供以后进行分析的情况下),则将此设置设为“已禁用”。
如果想要通过一组警报创建单个故障事件,而不是为每一个警报生成一个故障事件,请参阅下一节内容。
警报分组
选择警报在事件中的分组方式。 默认情况下,Microsoft Sentinel 为每个生成的警报创建事件。 可以选择将多个警报组合成单个事件。
只有在生成所有警报后才会创建事件。 所有警报将在事件创建后立即添加到事件中。
最多可将 150 个警报分组到一个故障事件。 如果将警报分组到一个故障事件的规则生成了 150 个以上的警报,该规则将使用与初始故障事件详细信息同样的内容生成一个新故障事件,并将超出数目的警报分组到这个新的故障事件。
若要将警报一起进行分组,请将警报分组设置设置为“已启用”。
对警报进行分组时,可以考虑以下几种选项:
期限:默认情况下,在事件中的第一个警报添加到同一事件后最多 5 小时创建的警报。 5 小时后创建新事件。 可将此期限调整为 5 分钟到 7 天之间的任意值。
分组条件:选择如何确定小组中包含哪些警报。 下表列出了可能的选择:
选项 说明 如果所有实体都匹配,则将警报分组为单个事件 如果警报先前定义的映射实体的值都相同,则将警报组合在一起。 建议使用此设置。 将此规则触发的所有警报分组到单个事件中 将此规则生成的所有警报都组合在一起,即使这些警报没有相同的值也是如此。 如果所选实体和详细信息匹配,则将警报分组到单个事件中 如果警报的值与此设置所选择的所有映射实体、警报详细信息和自定义详细信息完全相同,则将警报组合在一起。 从选择此选项时出现的下拉列表中选择实体和详细信息。
例如,如果你想要基于源或目标 IP 地址创建单独的事件,或者想要对匹配特定实体和严重性的警报进行分组,则可能需要使用此设置。
注意:如果选择此选项,则必须至少为该规则选择一个实体或详细信息。 否则,规则验证将失败,并且不会创建规则。重新打开事件:如果某个故障事件已解决并已关闭,而稍后系统生成了应属于该故障事件的另一个警报,在这种情况下,如果要重新打开这个已关闭的故障事件,则将此设置设为“已启用”,如果要新警报创建一个新的故障事件,则将此设置保留为“已禁用”。
如果将 Microsoft Sentinel 载入统一安全运营平台,则重新打开已关闭的事件的选项显示为不可用。
自动响应
Microsoft Sentinel 允许在执行以下操作时设置自动响应:
- 当此分析规则生成警报时。
- 从此分析规则生成的警报创建事件时。
- 当更新了包含由此分析规则生成的警报的事件时。
若要了解可以创建和自定义的不同响应类型的所有信息,请参阅使用自动化规则在 Microsoft Sentinel 中自动化威胁响应。
在“自动化规则”标题下,向导会显示整个工作区内已经定义的自定义规则列表,它们的条件均适用于此分析规则。 可以编辑这些现有规则中的任意规则,也可以创建新的自动化规则,此类规则仅适用于此分析规则。
通过从这些自动化规则调用 playbook 来自动执行更复杂的任务并调用来自远程系统的响应以修正威胁。 可以针对事件和单个警报调用 playbook。
有关创建 playbook 和自动化规则的详细信息和说明,请参阅自动执行威胁响应。
有关事件创建的触发器、事件更新的触发器或警报创建的触发器的适用场景的详细信息,请参阅在 Microsoft Sentinel playbook 中使用触发器和操作。
在“警报自动化(经典)”标题下,可能会看到使用计划是于 2026 年 3 月弃用的旧方法配置为自动运行的手册列表。 无法向此列表添加任何内容。 这里列出的任何手册均应根据警报创建的触发条件来创建自动化规则,用来调用手册。 完成此操作后,选择此处列出的 playbook 行尾的省略号,然后选择“删除”。 有关完整说明,请参阅将 Microsoft Sentinel 警报触发器 playbook 迁移到自动化规则。
后续步骤
在整个环境下使用 Microsoft Sentinel 分析规则检测来自 Microsoft Sentinel 的威胁时,请务必启用与连接的数据源关联的所有规则,以确保环境的全方位安全性。
若要自动启用规则,可以通过 API 和 PowerShell 将规则推送到 Microsoft Sentinel,但这样做需要付出额外的工作。 使用 API 或 PowerShell 时,必须先将规则导出到 JSON,然后才能启用规则。 在 Microsoft Sentinel 的多个实例(每个实例的设置都相同)中启用规则时,API 或 PowerShell 可能会有所帮助。
有关详细信息,请参阅: