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

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

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

什么是 playbook?

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

这些警报和事件中的许多(如果不是大多数)警报和事件都符合定期模式,可通过特定的修正操作集和定义的修正操作集进行处理。

playbook 是可以作为例程从 Microsoft Sentinel 运行的修正操作的集合。 playbook 可以帮助自动执行和协调威胁响应;可以手动运行或设置为自动运行以响应特定警报或事件(当由分析规则或自动化规则触发时)。

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

paybook 可以在它们所属的订阅中使用,但 Playbook 选项卡(在“自动化”边栏选项卡中)显示所有选定订阅中可用的所有 paybook。

paybook 模板

重要

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

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

除非从 playbook 模板创建了一个 playbook(模板的可编辑副本),否则这些模板本身并非活动 playbook。

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

  • “playbook 模板”选项卡位于“自动化”下,它显示了 Microsoft Sentinel 社区贡献的主流方案 。 可以从同一个模板创建多个活动 playbook。

    发布新版模板后,(在“Playbook”选项卡中)从该模板创建的活动 playbook 将标有一则通知,其中指出有可用的更新。

  • 在特定产品的上下文中,playbook 模板还可作为 Microsoft Sentinel 解决方案的一部分获取。 部署该解决方案会生成活动 playbook。

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

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

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 连接器当前有两个触发器:

    • 警报触发器:playbook 接收警报作为输入。
    • 事件触发器:playbook 接收事件作为输入,同时接收其包含的所有警报和实体。
  • 操作: 操作是在触发器之后发生的所有步骤。 它们可以按顺序排列、并行排列或以复杂条件矩阵排列。

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

逻辑应用类型

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。
  • “Microsoft Sentinel 自动化参与者”允许自动执行规则以运行 playbook。 它不用于任何其他用途。

了解更多

创建 playbook 的步骤

playbook 的用例

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

扩充

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

例如:

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

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

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

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

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

双向同步

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

例如:

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

资源协调

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

例如:

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

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

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

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

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

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

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

响应

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

两个示例:

示例 1: 响应指示遭入侵的用户的分析规则,如 Azure AD 标识保护所发现的:

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

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

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

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

      注意

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

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

如何运行 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

虽然完全自动化是许多事件处理、调查和缓解任务的最佳解决方案,但在某些情况下,你可能希望分析师有更多的人工输入和对情况的控制。 此外,你可能希望 SOC 工程师能够在将他们编写的 playbook 完全部署到自动化规则中之前对这些 playbook 进行测试。

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

  • 要对特定事件运行 playbook,请在“事件”边栏选项卡的网格中选择事件。 从事件详细信息窗格中选择“操作”,然后从上下文菜单中选择“运行 playbook (预览)”。 这会打开“对事件运行 playbook”面板。

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

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

  • 在“Playbook”选项卡中,你将看到所有 playbook 的列表,你有权访问这些 playbook,并且它们使用相应的触发器:用于事件 playbook 的“Microsoft Sentinel 事件”触发器和用于警报 playbook 的“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 连接”。

以下建议的 playbook 和其他相似 playbook 在 Microsoft Sentinel GitHub 存储库中提供:

后续步骤