Compartir a través de

使用自动化规则在 Microsoft Sentinel 中自动响应威胁

本文介绍什么是 Microsoft Sentinel 自动化规则,以及如何使用它们来实现安全业务流程、自动化和响应 (SOAR) 操作。 自动化规则可提高 SOC 的有效性,并节省时间和资源。

什么是自动化规则?

自动化规则是一种在 Microsoft Sentinel 中集中管理自动化的方法,它允许你定义并协调一小组可应用于不同场景的规则。

自动化规则适用于以下类别的用例:

  • 在不使用 playbook 的情况下执行用于事件处理的基本自动化任务。 例如:

    • 添加事件任务,供分析师遵循。
    • 抑制干扰事件。
    • 通过将新事件的状态从“新建”更改为“活动”并分配所有者,对新事件进行分类。
    • 标记事件以对其进行分类。
    • 通过分配新的所有者来升级事件。
    • 关闭已解决的事件,指定原因并添加注释。
  • 一次自动对多个分析规则进行响应。

  • 控制所执行的操作的顺序。

  • 检查事件的内容(警报、实体和其他属性),并通过调用 playbook 采取进一步的操作。

  • 自动化规则也可以是为了响应与事件无关的警报而运行 playbook 的机制。

简而言之,自动化规则简化了 Microsoft Sentinel 中自动化的使用,使你能够简化威胁响应业务流程的复杂工作流。

组件

自动化规则由多个组件组成:

  • 触发器,用于定义哪种类型的事件将根据条件导致规则运行。
  • 条件,用于确定规则运行和执行操作的确切环境。
  • 操作,以某种方式更改事件,或调用 playbook 以执行更复杂的操作并与其他服务进行交互。

触发器

创建或更新事件时或创建警报时将触发自动化规则。 回想一下,事件包括警报,并且警报和事件都由分析规则创建,如 Microsoft Sentinel 中的威胁检测中所述。

下表显示了会导致自动化规则运行的各种可能情况。

触发器类型 导致规则运行的事件
创建事件时
  • 分析规则创建新事件。
  • 从 Microsoft Defender XDR 引入事件。
  • 手动创建新事件。
  • 更新事件时
  • 更改事件的状态(关闭/重新打开/会审)。
  • 分配或更改事件的所有者。
  • 提升或降低事件的严重性。
  • 将警报添加到事件中。
  • 将注释、标记或策略添加到事件中。
  • 创建警报时
  • 警报由 Microsoft Sentinel 预定规则或 NRT 分析规则创建
  • 基于事件的自动化还是基于警报的自动化?

    在自动化规则集中处理事件和警报响应的情况下,你应该如何选择哪些任务进行自动化,以及在什么情况下进行自动化?

    对于大多数用例,事件触发的自动化是首选方法。 在 Microsoft Sentinel 中,事件是一个“案例文件”- 特定调查的所有相关证据的聚合。 它是警报、实体、注释、协作和其他项目的容器。 与警报这种单条证据不同,事件是可修改的,具有最新状态,并且可以通过注释、标记和书签来扩充。 通过事件,可以跟踪随着新警报的添加而不断发展的攻击情况。

    出于这些原因,围绕事件构建自动化更有意义。 因此,创建 playbook 的最合适方法是使它们基于 Azure 逻辑应用中的 Microsoft Sentinel 事件触发器。

    使用“警报触发的自动化”的主要原因是为了响应分析规则生成的警报,这些规则不创建事件(也就是说,在分析规则向导的“事件设置”选项卡中禁用了事件创建)。

    如果想要使用其他外部逻辑来决定是否且何时从警报创建事件,以及如何将警报一起分组中,那么可能会决定使用警报触发的自动化。 例如:

    • 由没有关联事件的警报触发的 playbook 可使用来自其他源的信息扩充警报,根据一些外部逻辑决定是否创建事件。

    • 由警报触发的 playbook 可查找相应的现有事件以将警报添加到其中,而不是创建事件。 详细了解事件扩展

    • 由警报触发的 playbook 可向 SOC 人员通知该警报,以便团队可以决定是否创建事件。

    • 由警报触发的 playbook 可将警报发送到用于创建和管理事件的外部票证系统,该系统将为每个警报创建一个新票证。

    注意

    警报触发的自动化仅适用于由计划分析规则、NRT 分析规则和 Microsoft 安全分析规则创建的警报。

    条件

    可以定义复杂的条件集来管理何时应运行操作(参见以下内容)。 这些条件包括触发规则的活动(创建或更新了事件,或者创建了警报)、事件属性和实体属性(仅适用于事件触发器)的状态或值,以及生成事件或警报的分析规则。

    触发自动化规则时,它会根据规则中定义的条件检查触发事件或警报。 对于事件,基于属性的条件根据评估发生时属性的当前状态或根据属性的状态变化进行评估(有关详细信息,请参阅下文)。 由于单个事件创建或更新事件可能触发多个自动化规则,因此它们的运行顺序(见下文)在确定条件评估的结果时会有所不同。 规则中定义的操作只有在满足所有条件时才会执行。

    事件创建触发器

    对于使用触发器“创建事件时”定义的规则,可以使用以下一个或多个运算符定义条件来查看给定事件属性列表的值的当前状态:

    • “等于”或“不等于”条件中定义的值。
    • “包含”或“不包含”条件中定义的值。
    • “开头为”或“开头不为”条件中定义的值。
    • “结尾为”或“结尾不为”条件中定义的值。

    例如,如果将 Analytic 规则名称定义为包含 == 针对云电脑的暴力攻击,则对 Azure 门户具有暴力攻击的分析规则不符合条件。 但是,如果将 Analytic 规则名称定义为不包含 == 用户凭据,则针对云电脑的暴力攻击针对 Azure 门户的暴力攻击分析规则都满足条件。

    注意

    此上下文中的当前状态是指评估条件的时刻,即自动化规则运行的时刻。 如果定义了多个自动化规则以响应此事件的创建,则较早运行的自动化规则对事件所做的更改被视为以后运行规则的当前状态。

    事件更新触发器

    使用触发器“更新事件时”定义的规则中评估的条件包括为事件创建触发器列出的所有条件。 但更新触发器包含可以评估的更多属性。

    其中一个属性为“更新者”。 此属性让你能够跟踪在事件中进行更改的源类型。 可创建一个条件来评估事件是否由以下值之一更新:

    • 应用程序
    • Microsoft Sentinel 用户
    • 由分析规则完成的警报分组(向事件添加警报)。
    • Playbook
    • 自动化规则

    例如,使用此条件,可以指示此自动化规则在对事件所做的任何更改上运行,除非该更改是由另一个自动化规则进行的。

    更重要的是,更新触发器还使用其他运算符来检查事件属性值的状态更改及其当前状态。 在以下情况下,将满足状态更改条件:

    事件属性的值

    • “已更改”(无论之前或之后的实际值如何)。
    • “更改自”条件中定义的值。
    • “更改为”条件中定义的值。
    • “已添加”到(这适用于具有值列表的属性)。

    标记属性:单个与集合

    标记这一事件属性是单个项目的集合 - 可以为单个事件应用多个标记。 可以定义单独检查集合中各个标记的条件,以及将标记集合作为一个单元进行检查的条件。

    • 任何单独的标记运算符都会根据集合中的每个标记检查条件。 当“至少一个标记”满足条件时,评估结果为 true
    • 所有标记的集合”运算符会针对作为一个整体的标记集合检查条件。 仅当“整个集合”满足条件时,评估结果才为 true

    当条件是否定形式的(不包含)并且集合中的某些标记满足条件而其他标记不满足时,这种区别很重要。

    让我们看一个示例,你的条件是标记不包含“2024”,并且你有两个事件,每个事件都有两个标记:

    \ 事件 ▶
    条件 ▼ \
    事件 1
    标记 1:2024
    标记 2: 2023
    事件 2
    标记 1:2023
    标记 2:2022
    任何单个标记
    都不包含“2024”
    TRUE TRUE
    所有标记的集合
    不包含“2024”
    FALSE TRUE

    在此示例中,在事件 1 中:

    • 如果条件单独检查每个标记,则由于至少有一个标签满足条件包含“2024”),因此总体条件为 true
    • 如果条件将事件中的所有标记作为一个单元进行检查,则由于至少有一个标记不满足条件(包含“2024”),因此总体条件为 false

    事件 2 中,无论定义哪种类型的条件,结果都是相同的。

    支持的实体属性

    有关支持用作自动化规则条件的实体属性列表,请参阅 Microsoft Sentinel 自动化规则参考

    “警报创建”触发器

    目前,可以为“警报创建”触发器配置的唯一条件是要运行自动化规则的分析规则集。

    操作

    可以定义在满足条件(参见上述内容)时运行的操作。 可以在规则中定义许多操作,还可以选择它们的运行顺序(参见以下内容)。 可以使用自动化规则定义以下操作,而无需使用 playbook 的高级功能

    • 向事件添加任务 - 可以创建供分析师在会审、调查和修正事件的整个过程中遵循的任务清单,以确保不会遗漏任何关键步骤。

    • 更改事件的状态,使工作流保持最新。

      • 当更改为“已关闭”时,指定关闭原因并添加注释。 这有助于跟踪性能和有效性,并进行优化以减少误报
    • 更改事件的严重性 - 可以基于事件中所涉及实体的现状、缺席、值或属性重新评估,以及重新确定优先级。

    • 将事件指派给所有者 - 这样有助于将事件类型转给最适合处理它们的人员,或可用的最恰当人员来处理它们。

    • 对事件添加标记 - 有利于按主题、攻击者或任何其他常见标准对事件进行分类。

    此外,还可以定义操作来运行 playbook,以便执行更复杂的响应操作,包括涉及外部系统的任何操作。 可在自动化规则中使用的 playbook 取决于 playbook 和自动化规则所基于的触发器:只有“事件触发”playbook 可以从“事件触发”自动化规则运行,并且只有“警报触发”playbook 可以从“警报触发”自动化规则运行。 可以定义调用 playbook 的多个操作,也可以定义 playbook 和其他操作的组合。 操作按其在规则中的列出顺序执行。

    使用 Azure 逻辑应用的 Playbook 可用于根据自动化规则运行。

    到期日期

    可以对自动化规则定义到期日期。 规则在该日期之后将被禁用。 该项适用于处理(即关闭)因计划的有时限的活动(如渗透测试)导致的“噪音”事件。

    订单

    你可以定义运行自动化规则的顺序。 后面的自动化规则根据之前自动化规则对事件采取行动后的状态来评估事件状况。

    例如,如果“第一个自动化规则”将事件严重性从“中”变为“低”,而“第二个自动化规则”定义为仅对中高危险性事件运行,则不会对该事件运行第二个自动化规则。

    添加事件任务的自动化规则的顺序决定了任务在给定事件中的显示顺序。

    基于更新触发器的规则有自己单独的订单队列。 如果(通过另一个自动化规则所做的更改)触发此类规则以在刚刚创建的事件上运行,则这些规则仅在基于创建触发器的所有适用规则完成运行后才会运行。

    有关执行顺序和优先级的说明

    • 在自动化规则中设置“顺序”编号决定了其执行顺序。
    • 每个触发器类型都维护其自己的队列。
    • 对于在 Azure 门户中创建的规则,“顺序”字段中将自动填入相同触发器类型的现有规则使用的最大编号之后的编号。
    • 但是,对于以其他方式(命令行、API 等)创建的规则,必须手动分配“顺序”编号。
    • 没有任何验证机制用来防止多个规则具有相同的顺序编号,即使在相同的触发器类型中也是如此。
    • 如果不在意它们的运行顺序,则可以允许相同触发器类型的两个或多个规则具有相同的顺序编号。
    • 对于具有相同顺序编号的相同触发器类型的规则,执行引擎会随机选择按哪个顺序运行哪些规则。
    • 对于不同“事件触发器”类型的规则,所有具有“事件创建”触发器类型的适用规则将首先运行(根据其顺序编号),然后,只有具有“事件更新”触发器类型的规则将运行(根据其顺序编号)。
    • 规则始终按顺序运行,永不并行运行。

    常见用例和场景

    事件任务

    利用自动化规则,可以对事件会审、调查和修正所需的步骤进行标准化和规范化处理,具体方法是根据在自动化规则中设置的条件和基础分析规则中的威胁检测逻辑,创建可应用于单个事件、所有事件或跨事件组应用的任务。 由于应用于事件的任务显示在事件页面中,因此分析师需要采取的操作的整个列表就在他们面前,他们也就不会错过任何关键步骤。

    事件触发的自动化和警报触发的自动化

    自动化规则可以通过事件的创建或更新触发,也可以通过警报的创建触发。 这些情况都可触发自动响应链,其中可包括 playbook(需要特殊权限)。

    适用于 Microsoft 提供程序的触发 playbook

    自动化规则提供一种自动处理 Microsoft 安全警报的方法,即对基于警报生成的事件应用这些规则。 自动化规则可以调用 playbook(需要特殊权限),并将事件及其所有详细信息(包括警报和实体)传递给它们。 通常,Microsoft Sentinel 最佳做法规定使用事件队列作为安全操作的焦点。

    单个规则中包含多个排序的 playbook/操作

    现在,可以在单个自动化规则中近乎完全地控制操作和 playbook 的执行顺序。 此外,还可以控制自动化规则本身的执行顺序。 这样,可以大大简化 playbook,将其缩减为单个任务或一系列简单的小任务,并将这些小 playbook 组合到不同自动化规则的不同组合中。

    一次将一个 playbook 分配给多个分析规则

    如果有任务需要自动执行所有分析规则(例如,在外部票证系统中生成支持票证),可以一次将单个 playbook 应用于任何或所有分析规则(包括未来建立的任何规则)。 这样一来,简单的重复性维护和整理任务则变得轻松很多。

    自动分配事件

    可以自动将事件分配给适当的所有者。 如果 SOC 有一位专门从事特定平台工作的分析师,则与该平台相关的任何事件都可以自动分配给该分析师。

    事件抑制

    可以使用规则来自动解析已知属于误报/良性警报的事件,而无需使用 playbook。 例如,在运行渗透测试、执行计划内维护或升级或测试自动化过程时,可能会产生许多 SOC 想要忽略的误报事件。 有时限的自动化规则可以在这些事件产生时自动将其关闭,同时为它们标记生成原因描述符。

    有时限的自动化

    可以为自动化规则添加到期日期。 除事件抑制之外,可能有些情况下还需要有时限的自动化。 你可能希望在特定期限内,将特定类型的事件分配给特定用户(例如实习生或顾问)。 如果事先知道期限,则可以有效地使该规则在其相关性结束后处于禁用状态,而无需再记着去做这件事。

    自动标记事件

    可以对事件自动添加任意文本标记,以便根据所选的任何标准对它们进行分组或分类。

    更新触发器添加的用例

    现在,对事件所做的更改可能会触发自动化规则,因此更多场景可以实现自动化。

    在事件演变时扩展自动化

    可以使用更新触发器将上述许多用例应用于事件,因为调查正在进行中,分析师可以添加警报、评论和标记。 控制事件中的警报分组。

    更新业务流程和通知

    在对事件进行更改时通知各个团队和其他人员,这样他们就不会错过任何关键更新。 通过将事件分配给新所有者并将分配情况通知新所有者来升级事件。 控制重新打开事件的时间和方式。

    保持与外部系统的同步

    如果在创建事件时使用了 playbook 在外部系统中创建工单,则可以使用更新触发器自动化规则来调用更新这些工单的 playbook。

    执行自动化规则

    自动化规则可以按确定顺序连续运行。 每个自动化规则在前一规则运行完成后执行。 在自动化规则中,所有操作都按其定义的顺序连续运行。

    在某些情况下,可能会根据以下条件以不同方式处理自动化规则中的 playbook 操作:

    Playbook 运行时 自动化规则前进到下一个操作...
    不到 1 秒 Playbook 完成后立即
    不到 2 分钟 在 playbook 开始运行后最多 2 分钟,
    但在 playbook 完成后不超过 10 秒
    超过 2 分钟 Playbook 开始运行 2 分钟后,
    无论其是否已完成

    自动化规则运行 playbook 的权限

    当 Microsoft Sentinel 自动化规则运行 playbook 时,它将使用专门为此操作而获得授权的特殊 Microsoft Sentinel 服务帐户。 使用此帐户(相对于你的用户帐户)可提高服务的安全级别。

    为使自动化规则运行 playbook,此帐户必须被授予访问 playbook 所在资源组的显式权限。 届时,任何自动化规则都将能够运行该资源组中的任何 playbook。

    在配置自动化规则和添加“运行 playbook”操作时,将显示一个 playbook 的下拉列表。 Microsoft Sentinel 没有权限访问的 playbook 将显示为不可用(“灰显”)。 可以通过选择“管理 playbook 权限”链接,现场对 Microsoft Sentinel 授予访问 playbook 资源组的权限。 若要授予这些权限,需要对这些资源组拥有“所有者”权限请参阅完全权限要求

    多租户体系结构中的权限

    自动化规则完全支持跨工作区和多租户部署(对于多租户,使用 Azure Lighthouse)。

    因此,如果 Microsoft Sentinel 部署使用多租户体系结构,则可以用一个租户中的自动化规则运行其他租户中的 playbook,但必须在 playbook 所在的租户中(而不是在定义自动化规则的租户中)定义 Sentinel 运行该 playbook 的权限。

    在安全托管服务提供商 (MSSP) 的特定情况下,服务提供商租户将管理客户租户中的 Microsoft Sentinel 工作区,但有两种特殊情况值得注意:

    • 在客户租户中创建的自动化规则配置为运行位于服务提供商租户中的 playbook。

      这种方法通常用于保护 playbook 中的知识产权。 此方案无需进行特殊设置即可运行。 在自动化规则中定义 playbook 操作时,如果进入为 Microsoft Sentinel 授予对 playbook 所在的相关资源组的权限的阶段(使用“管理 playbook 权限”面板),则你可以看到属于服务提供商租户的资源组,可从中进行选择查看此处概述的整个过程

    • 在客户工作区中创建(同时登录到服务提供商租户)的自动化规则配置为运行位于客户租户中的 playbook

      无需保护知识产权时使用此配置。 要使此方案有效,需要在这两个租户中为 Microsoft Sentinel 授予执行 playbook 的权限。 在客户租户中,可在“管理 playbook 权限”面板中授予权限,就像上述方案一样。 要在服务提供商租户中授予相关权限,需要添加一个额外的 Azure Lighthouse 委派,该委派将在 playbook 所在的资源组上使用 Microsoft Sentinel 自动化参与者角色授予对 Azure Security Insights 应用的访问权限 。

      场景如下所示:

      多租户自动化规则体系结构

      请参阅相关说明进行设置。

    创建和管理自动化规则

    可以根据特定需要和用例,在 Azure Sentinel 中的不同方面创建和管理自动化规则

    • “自动化”页

      在“自动化规则”选项卡下的“自动化”页中,可以集中管理自动化规则。在那里,可以创建新自动化规则和编辑现有的规则。 此外,还可以拖动自动化规则来更改其执行顺序,以及启用或禁用它们。

      在“自动化”页中,可以看到在工作区上定义的所有规则及其状态(已启用/已禁用),以及它们适用于哪些分析规则。

      如果需要一个自动化规则来根据 Microsoft Sentinel 中的许多分析规则应用于事件,请直接在“自动化”页中创建该规则。

    • 分析规则向导

      在 Microsoft Sentinel analytics 分析规则向导的“自动响应”选项卡的“自动化规则”下,可以查看、编辑和创建适用于要在向导中创建或编辑的特定分析规则的自动化规则

      从此处创建自动化规则时,“创建新自动化规则”面板会显示“分析规则”条件不可用,这是因为此规则已设置为仅应用于在向导中编辑的分析规则。 所有其他配置选项仍可使用。

    • “事件”页

      另外,还可以在“事件”页中创建自动化规则,以响应单个重复出现的事件。 在创建抑制规则自动关闭“干扰”事件时,这种方法非常有用。

      从此处创建自动化规则时,“创建新自动化规则”面板使用来自事件的值填充所有字段。 它将为规则命名与事件相同的名称,将其应用于生成该事件的分析规则,并使用该事件中所有可用的实体作为规则条件。 此外,它还提供了建议的默认抑制(关闭)操作以及建议的规则到期日期。 可以根据需要添加或删除条件和操作,以及更改到期日期。

    后续步骤

    在本文档中,你了解了自动化规则如何帮助你集中管理 Microsoft Sentinel 事件和警报的响应自动化。