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

在 Microsoft Sentinel 中使用 playbook 自动响应威胁

本文介绍了什么是 Microsoft Sentinel playbook,以及如何使用它们来实现安全业务流程、自动化和响应 (SOAR) 操作,在节省时间和资源的同时获得更好的结果。

重要

Microsoft Sentinel 作为 Microsoft Defender 门户中统一安全运营平台的公共预览版的一部分提供。 有关详细信息,请参阅Microsoft Defender 门户中的 Microsoft Sentinel

什么是 playbook?

SOC 分析人员通常会定期收到大量的安全警报和事件,数量之多甚至超出了可用人员的处理能力。 因此频繁出现许多警报被忽视、许多事件未调查的窘境,导致组织很容易在未注意到的情况下受到攻击。

这些警报和事件中的许多(如果不是大多数)警报和事件都符合定期模式,可通过特定的修正操作集和定义的修正操作集进行处理。 分析人员还负责对他们设法解决的事件进行基本修正和调查。 在可以自动执行这些活动的范围内,SOC 可以更加高效,使分析人员能够将更多的时间和精力投入到调查活动中。

而 playbook 是这些修正操作的集合,你可以将这些修正操作作为例程从 Microsoft Sentinel 运行,从而帮助自动执行协调威胁响应。 它可以通过两种方式运行:

  • 根据特定实体或警报手动按需运行
  • 自动响应由自动化规则触发的特定警报或事件。

例如,如果帐户和计算机受到损害,playbook 可以将计算机和网络隔离,并在 SOC 团队收到事件通知时阻止帐户。

虽然“自动化”页上的“活动 playbook”选项卡显示任何所选订阅提供的所有活动 playbook,但默认情况下,playbook 只能在其所属的订阅中使用,除非专门向 playbook 的资源组授予 Microsoft Sentinel 权限。

载入统一安全运营平台后,活动 playbook选项卡显示具有已载入工作区订阅的预定义筛选器。 在 Azure 门户中,使用 Azure 订阅筛选器为其他订阅添加数据。

paybook 模板

Playbook 模板是预生成的、已经过测试且随时可用的工作流,你可以根据自己的需求对其进行自定义。 在从头开发 playbook 时,还可以将这些模板作为最佳做法参考;或者,可以通过模板获得灵感以实现新的自动化方案。

Playbook 模板本身不能作为 playbook 使用。 你可以根据模板创建一个 playbook(模板的可编辑副本)。

可以从以下来源获取 playbook 模板:

  • 在“自动化”页的“Playbook 模板”选项卡中列出了已安装的 playbook 模板。 可以从同一个模板创建多个活动 playbook。

    发布新版模板后,从该模板创建的活动 playbook 会显示在“活动 playbook”选项卡中,并显示一个标签,指出有可用的更新。

  • Playbook 模板作为从 Microsoft Sentinel 的“内容中心”页安装的产品解决方案或独立内容的一部分提供。 有关更多信息,请参阅 Microsoft Sentinel 内容和解决方案以及发现和管理 Microsoft Sentinel 现成内容

  • Microsoft Sentinel GitHub 存储库包含许多 playbook 模板。 可以选择“部署到 Azure”按钮将这些模板部署到 Azure 订阅。

从技术上讲,playbook 模板是一个 ARM 模板,它由多个资源组成:Azure 逻辑应用工作流,以及每个相关连接的 API 连接。

重要

playbook 模板目前以预览版提供 。 请参阅 Microsoft Azure 预览版的补充使用条款,了解适用于 beta 版、预览版或其他尚未正式发布的 Azure 功能的其他法律条款。

Azure 逻辑应用的基本概念

Microsoft Sentinel 中的 playbook 基于在 Azure 逻辑应用中构建的工作流,这是一项云服务,可帮助计划、自动执行和编排整个企业范围内系统中的任务和工作流。 这意味着 playbook 可以利用 Azure 逻辑应用中内置模板的所有强大功能。

注意

Azure 逻辑应用会创建单独的资源,因此可能会产生额外费用。 有关详细信息,请访问 Azure 逻辑应用定价页面

Azure 逻辑应用使用连接器与其他系统和服务通信。 下面是连接器及其一些重要属性的简要说明:

  • 托管连接器:一组将 API 调用封装到特定产品或服务的操作和触发器。 Azure 逻辑应用提供数百个连接器,用于与 Microsoft 和非 Microsoft 服务进行通信。 有关详细信息,请参阅 Azure 逻辑应用连接器及其文档

  • 自定义连接器:你可能希望与那些无法用作预生成连接器的服务通信。 自定义连接器可以解决这个需求,因为它可以让你创建甚至共享连接器并定义其自己的触发器和操作。 有关详细信息,请参阅创建自己的自定义 Azure 逻辑应用连接器

  • Microsoft Sentinel 连接器:若要创建与 Microsoft Sentinel 交互的 playbook,请使用 Microsoft Sentinel 连接器。 有关详细信息,请参阅 Microsoft Sentinel 连接器文档

  • 触发器:启动工作流的连接器组件,在本例中为 playbook。 Microsoft Sentinel 触发器定义了 playbook 在触发时期望接收的架构。 Microsoft Sentinel 连接器当前有三个触发器:

  • 操作: 操作是在触发器之后发生的所有步骤。 它们可以按顺序排列、并行排列或以复杂条件矩阵排列。

  • 动态字段: 临时字段,由触发器和操作的输出架构确定,由它们的实际输出进行填充,可在后续操作中使用。

逻辑应用类型

Microsoft Sentinel 现支持以下逻辑应用资源类型:

  • 消耗型:此类应用在多租户 Azure 逻辑应用中运行并使用经典原始 Azure 逻辑应用引擎。
  • 标准型:此类应用在单租户 Azure 逻辑应用中运行并使用重新设计的 Azure 逻辑应用引擎。

标准逻辑应用类型提供更高的性能、固定的价格、多工作流功能、更轻松的 API 连接管理、本地网络功能(例如对虚拟网络和专用终结点的支持(请参阅下面的说明)、内置 CI/CD 功能、更好的 Visual Studio Code 集成、更新的工作流设计器等等)。

若要使用此逻辑应用版本,请在 Microsoft Sentinel 中创建新的标准 playbook(请参阅下面的说明)。 使用这些 playbook 的方式与使用消耗型 playbook 的方式相同:

  • 将 playbook 附加到自动化规则和/或分析规则。
  • 从事件和警报按需运行 playbook。
  • 在“活动 Playbook”选项卡中管理 playbook。

注意

  • 标准工作流当前不支持 Playbook 模板,即无法直接在 Microsoft Sentinel 中直接创建基于标准工作流的 playbook。 与之相对的是必须在 Azure 逻辑应用中创建工作流。 创建的工作流会在 Microsoft Sentinel 中显示为 playbook。

  • 如上所述,逻辑应用的标准工作流支持专用终结点,但 Microsoft Sentinel 要求在逻辑应用中定义访问限制策略,才能支持在基于标准工作流的 playbook 中使用专用终结点。

    如果未定义访问限制策略,则从 Microsoft Sentinel 的列表中选择 playbook 时(无论是手动运行、添加到自动化规则还是在 playbook 库中),你可能仍然能看到且能选择具有专用终结点的工作流,但在选择后,这些工作流的执行将失败。

  • 指示器将标准工作流标识为“有状态”或“无状态”。 Microsoft Sentinel 目前不支持无状态工作流。 了解有状态和无状态工作流之间的差异。

这两种资源类型之间存在许多差异,其中一些差异会影响它们在 Microsoft Sentinel 的 playbook 中的使用方式。 对于这种情况,文档中会指出需要知道的方面。 有关详细信息,请参阅 Azure 逻辑应用文档中的资源类型和主机环境差异

所需的权限

为了使 SecOps 团队能够使用 Azure 逻辑应用在 Microsoft Sentinel 中创建和运行 playbook,请将 Azure 角色分配给安全运营团队或团队中的特定用户。 下面介绍了应分配给他们的不同的可用角色和任务:

Azure 逻辑应用的 Azure 角色

  • “逻辑应用参与者”允许管理逻辑应用和运行 playbook,但不能更改对它们的访问(为此,需要“所有者”角色)。
  • “逻辑应用操作员”允许读取、启用和禁用逻辑应用,但不能对其进行编辑或更新。

Microsoft Sentinel 的 Azure 角色

  • “Microsoft Sentinel 参与者”角色允许将 playbook 附加到分析或自动化规则。

  • “Microsoft Sentinel 响应方”角色允许访问事件,以便手动运行 playbook。 但是,若要实际运行 playbook,还需要......

    • “Microsoft Sentinel Playbook 操作员”角色允许手动运行 playbook。
    • “Microsoft Sentinel 自动化参与者”允许自动执行规则以运行 playbook。 它不用于任何其他用途。

了解更多

创建 playbook 的步骤

playbook 的用例

Azure 逻辑应用平台提供数百个操作和触发器,因此几乎可以创建任何自动化方案。 Microsoft Sentinel 建议从以下 SOC 方案开始,其中现成的 playbook 模板可供立即使用:

扩充

收集数据并将其附加到事件,以便做出更明智的决策。

例如:

Microsoft Sentinel 事件由生成 IP 地址实体的分析规则从警报创建。

此事件将触发一个自动化规则,该规则使用以下步骤运行 playbook:

  • 创建新的 Microsoft Sentinel 事件时启动。 事件中表示的实体存储在事件触发器的动态字段中。

  • 对于每个 IP 地址,查询外部威胁情报提供程序(如 Virus Total)来检索更多数据。

  • 添加返回的数据和见解作为事件的注释。

双向同步

Playbook 可用于将 Microsoft Sentinel 事件与其他票证系统同步。

例如:

为所有事件创建创建自动化规则,并附加一个在 ServiceNow 中打开票证的 playbook:

资源协调

使用 SOC 聊天平台更好地控制事件队列。

例如:

Microsoft Sentinel 事件由生成用户名和 IP 地址实体的分析规则从警报创建。

此事件将触发一个自动化规则,该规则使用以下步骤运行 playbook:

  • 创建新的 Microsoft Sentinel 事件时启动。

  • Microsoft TeamsSlack 中的安全操作通道发送一条消息,确保你的安全分析师注意到此事件。

  • 将警报中的所有信息通过电子邮件发送给高级网络管理员和安全管理员。该电子邮件中会包含“阻止”和“忽略”用户选项按钮 。

  • 等到管理员收到回复,再继续运行。

  • 如果管理员选择了“阻止”,则向防火墙发送一条命令以阻止警报中的 IP 地址,再向 Microsoft Entra ID 发送一条命令以禁用该用户。

响应

以最少人为依赖项立即响应威胁。

两个示例:

示例 1:响应指示遭入侵的用户的分析规则,如 Microsoft Entra ID 保护所发现的:

  • 创建新的 Microsoft Sentinel 事件时启动。

  • 对于事件中怀疑遭入侵的每个用户实体:

    • 向用户发送一条 Teams 消息,请求确认用户采取了可疑操作。

    • 检查 Microsoft Entra ID 保护,将用户的状态确认为遭入侵。 Microsoft Entra ID 保护会将用户标记为“有风险”,并应用已配置的任何强制策略 - 例如,要求用户在下次登录时使用 MFA。

      注意

      此特定 Microsoft Entra 操作不会对用户启动任何强制活动,也不会启动强制策略的任何配置。 它只会告诉 Microsoft Entra ID 保护根据需要应用任何已定义的策略。 所有强制操作都完全取决于在 Microsoft Entra ID 保护中定义的相应策略。

示例 2: 响应指示遭入侵的计算机的分析规则,如 Microsoft Defender For Endpoint 所发现的:

调查期间或搜寻过程中的手动响应

在主动调查活动的过程中响应威胁,而不脱离上下文。

由于新的实体触发器(现在为预览版),你可以直接在调查中立即对在调查过程中发现的单个威胁参与者采取措施(一次一个)。 该选项也可用于威胁搜寻上下文,与任何特定事件无关。 可以在上下文中选择实体,并直接对其执行操作,从而节省时间并降低复杂性。

可使用此 playbook 类型对实体执行的操作包括:

  • 阻止遭到入侵的用户。
  • 阻止来自防火墙中恶意 IP 地址的流量。
  • 隔离网络上遭到入侵的主机。
  • 将 IP 地址添加到安全/不安全地址监视列表或外部 CMDB。
  • 从外部威胁情报源获取文件哈希报告,并将其作为注释添加到事件。

如何运行 playbook

Playbook 既可“手动”运行,也可“自动”运行。

Playbook 设计为自动运行,理想情况下,在正常操作过程中它们也应该自动运行。 可以通过将 playbook 定义为分析规则中的自动响应(对于警报)或自动化规则中的操作(对于事件)来自动运行 playbook

不过,在某些情况下需要手动运行 playbook。 例如:

  • 在创建新的 playbook 时,你希望先测试该 playbook,然后再将其放入生产环境。

  • 在某些情况下,你希望拥有更好的控制度,并通过人工输入来指定何时以及是否运行某个 playbook。

    可以通过打开事件、警报或实体,然后选择并运行其中显示的关联 playbook,来手动运行 playbook。 目前,此功能对于警报已正式发布,而对于事件和实体则处于预览状态。

设置自动响应

安全运营团队可以大幅减少其工作量,因为他们可以完全自动化对重复出现的事件和警报类型的常规响应,从而让你可以更专注于处理独特事件和警报,分析模式和搜寻威胁等活动。

设置自动响应意味着每次触发分析规则时,除了创建警报,规则还会运行 playbook,该 playbook 将接收由规则创建的警报作为输入。

如果警报创建事件,该事件将触发自动化规则,自动化规则反过来又可能运行 playbook,playbook 将接收由警报创建的事件作为输入。

警报创建自动响应

对于通过创建警报触发并接收警报作为其输入的 playbook(其第一步是“Microsoft Sentinel 警报”),将此 playbook 附加到分析规则:

  1. 编辑生成要为其定义自动响应的警报的分析规则

  2. 在“自动响应”选项卡的“警报自动化”下,选择在创建警报时此分析规则将触发的 playbook。

事件创建自动响应

对于由创建事件触发并接收事件作为其输入的 playbook(其第一步是“Microsoft Sentinel 事件”),创建自动化规则并在其中定义“运行 playbook”操作。 可以通过两种方法实现此目的:

  • 编辑生成要为其定义自动响应的事件的分析规则。 在“自动响应”选项卡的“事件自动化”下,创建一个自动化规则。 这只会为此分析规则创建自动响应。

  • 自动化页的自动化规则选项卡中,创建新的自动化规则并指定合适的条件和所需的操作。 此自动化规则将应用到满足指定条件的任何分析规则。

    注意

    Microsoft Sentinel 需要运行事件触发器 playbook 的权限。

    要运行基于事件触发器的 playbook(无论是手动运行还是通过自动化规则运行),Microsoft Sentinel 需使用专门授权执行此操作的服务帐户。 使用此帐户(与用户帐户相对)可提高服务的安全性,并使自动化规则 API 能够支持 CI/CD 用例。

    必须在 playbook 驻留的资源组中为此帐户授予显式权限(驻留)角色(以 Microsoft Sentinel 自动化参与者角色的形式)。 届时,你将能够运行该资源组中的任何 playbook(无论是手动运行还是通过任何自动化规则运行)。

    如果向自动化规则添加运行 playbook 操作,将显示 playbook 的下拉列表以供选择。 Microsoft Sentinel 没有权限访问的 playbook 将显示为不可用(“灰显”)。 可以通过选择“管理 playbook 权限”链接,当场向 Microsoft Sentinel 授予权限。

    在多租户 (Lighthouse) 情况下,必须在 playbook 所在的租户上定义权限,即使调用 playbook 的自动化规则在其他租户中。 为此,必须拥有 playbook 的资源组的“所有者”权限。

    托管安全服务提供程序 (MSSP) 具有一种独特方案,其中,服务提供商在登录自己的租户时,会使用 Azure Lighthouse 在客户工作区创建自动化规则。 然后,此自动化规则会调用属于客户租户的 playbook。 在这种情况下,必须为 Microsoft Sentinel 授予对两个租户的权限。 在客户租户中,可在“管理 playbook 权限”面板中授予权限,就像常规多租户方案一样。 要在服务提供商租户中授予相关权限,需要添加一个额外的 Azure Lighthouse 委派,该委派将在 playbook 所在的资源组上使用 Microsoft Sentinel 自动化参与者角色授予对 Azure Security Insights 应用的访问权限 。 了解如何添加此委派

请参阅创建自动化规则的完整说明

手动运行 playbook

完全自动化是你可以自动执行的尽可能多的事件处理、调查和缓解任务的最佳解决方案。 话虽如此,但有充分的理由采用某种混合自动化:使用 playbook 将针对一系列系统的一系列活动合并为单个命令,但仅在决定的时间和位置运行 playbook。 例如:

  • 你可能更希望 SOC 分析人员对某些情况有更多的人力投入和控制。

  • 你可能还希望他们能够在调查或威胁搜寻过程中,按需对特定威胁参与者(实体)采取措施,而无需转到另一个屏幕。 (此功能现在为预览状态。)

  • 你可能希望 SOC 工程师编写对特定实体(现在处于预览状态)有用并且只能手动运行的 playbook。

  • 你可能希望工程师能够在将他们编写的 playbook 完全部署到自动化规则中之前对这些 playbook 进行测试。

出于这些原因和其他原因,Microsoft Sentinel 允许你按需手动运行 playbook,以处理实体和事件(现在均处于预览状态)以及警报。

  • 要对特定事件运行 playbook,请在事件页的网格中选择事件。 在Azure 门户中,从事件详细信息窗格中选择“操作”,然后从上下文菜单中选择“运行 playbook(预览版)”。 在Defender 门户中,直接从事件详细信息页选择“运行 playbook(预览版)”

    这会打开“对事件运行 playbook”面板。

  • 要对警报运行 playbook,请选择事件,输入事件详细信息,然后从“警报”选项卡中选择一个警报,然后选择“查看 playbook”。

    这将打开“警报 playbook”面板。

  • 若要对实体运行 playbook,请通过以下任一方式选择实体:

    • 在事件的“实体”选项卡中,从列表中选择实体,然后选择列表中其行末尾的“运行 playbook (预览版)”链接。
    • 在“调查图”中,选择一个实体,然后选择实体侧面板中的“运行 playbook (预览版)”按钮。
    • 从“实体行为”中选择一个实体,然后从实体页中选择左侧面板中的“运行 playbook (预览版)”按钮。

    所有这些操作将打开“对<实体类型>运行 playbook”面板。

在任一面板中,你将看到两个选项卡:“Playbook”和“运行”。

  • 在“Playbook”选项卡中,你将看到所有 playbook 的列表,你有权访问这些 playbook,并且它们使用相应的触发器:“Microsoft Sentinel 事件”、“Microsoft Sentinel 警报”或“Microsoft Sentinel 实体”。 列表中的每个 playbook 都有一个“运行”按钮,可以选择该按钮来立即运行 playbook。
    如果要运行在列表中没有看见的事件触发器 playbook,请参阅上述有关 Microsoft Sentinel 权限的注释

  • 在“运行”选项卡中,你将看到对所选事件或警报运行任何 playbook 的所有时间的列表。 任何刚完成的运行都可能需要几秒钟才能出现在此列表中。 选择特定的运行会在 Azure 逻辑应用中打开完整运行日志。

管理 playbook

“活动 Playbook”选项卡中会显示你有权访问的所有 playbook 的列表,该列表按当前显示在 Azure 中的订阅进行筛选。 全局页眉中的“目录 + 订阅”菜单中提供订阅筛选器。

单击 playbook 名称可打开 playbook 在 Azure 逻辑应用中的主页。 “状态”列指示它已启用还是已禁用。

“计划”列指示 playbook 是在 Azure 逻辑应用中使用“标准”还是“消耗”资源类型。 可以按计划类型筛选该列表,以便仅查看某一种类型的 playbook。 你将发现,“标准”类型的 playbook 使用 LogicApp/Workflow 命名约定。 此约定反映这一事实:标准 playbook 代表某个工作流,该工作流与单个逻辑应用中的其他工作流共存。

“触发器种类”表示启动此 playbook 的 Azure 逻辑应用触发器。

触发器种类 指示 playbook 中的组件类型
Microsoft Sentinel 事件/警报/实体 playbook 使用其中一个 Sentinel 触发器(事件、警报、实体)启动
使用 Microsoft Sentinel 操作 playbook 使用非 Sentinel 触发器启动,但使用 Microsoft Sentinel 操作
其他 playbook 不包括任何 Sentinel 组件
未初始化 playbook 已创建,但不包含组件(触发器或操作)。

在 playbook 的“Azure 逻辑应用”页中,可以看到有关 playbook 的详细信息,包括所有运行时间的日志和结果(成功或失败以及其他详细信息)。 如果你有适当的权限,还可以在 Azure 逻辑应用中打开工作流设计器,并直接编辑 playbook。

API 连接

API 连接用于将 Azure 逻辑应用连接到其他服务。 每次对 Azure 逻辑应用中的连接器进行新的身份验证时,都会创建一个类型为“API 连接”的新资源,其中包含在配置对服务的访问时提供的信息。

若要查看所有 API 连接,请在 Azure 门户的标头搜索框中输入“API 连接”。 请注意相关列:

  • 显示名称 - 每次创建连接时为连接指定的“友好”名称。
  • 状态 - 表示连接状态:错误、已连接。
  • 资源组 - 在 playbook(Azure 逻辑应用)资源的资源组中创建 API 连接。

查看 API 连接的另一种方式是转到所有资源页,按类型API 连接进行筛选。 这样可以一次选择、标记和删除多个连接。

若要更改现有连接的授权,请输入连接资源,然后选择“编辑 API 连接”。

你可以在内容中心Microsoft Sentinel GitHub 存储库中找到以下建议的剧本和其他类似的剧本:

后续步骤