创建和管理 Microsoft Sentinel playbook
playbook 是可在 Microsoft Sentinel 中运行以响应整个事件、单个警报或特定实体的一个流程集合。 playbook 可以帮助自动处理和编排响应,并且可以附加到自动化规则,以便在生成特定警报或者创建或更新事件时自动运行。 还可以针对特定事件、警报或实体手动运行 Playbook。
本文介绍如何创建和管理 Microsoft Sentinel playbook。 稍后可将这些 playbook 附加到分析规则或自动化规则,或者对特定事件、警报或实体手动运行它们。
注意
Microsoft Sentinel 中的 playbook 基于 Azure 逻辑应用内置的工作流,这意味着你可获得逻辑应用的所有功能、自定义能力和内置模板。 可能会收取额外费用。 有关定价信息,请访问 Azure 逻辑应用定价页面。
先决条件
Azure 帐户和订阅。 如果没有订阅,可以注册 Azure 试用帐户。
若要创建和管理 playbook,需要使用以下 Azure 角色之一访问 Microsoft Sentinel:
逻辑应用 Azure 角色 说明 消耗 逻辑应用参与者 编辑和管理逻辑应用。 消耗 逻辑应用操作员 读取、启用和禁用逻辑应用。 Standard 标准型逻辑应用操作者 启用、重新提交和禁用工作流。 Standard 标准型逻辑应用开发者 创建和编辑工作流。 Standard 标准型逻辑应用参与者 管理工作流的所有方面。 有关详细信息,请参阅以下文档:
在创建 playbook 之前,建议阅读适用于 Microsoft Sentinel playbook 的 Azure 逻辑应用。
创建 playbook
按照以下步骤在 Microsoft Sentinel 中创建新的 playbook:
在 Azure 门户中导航到 Microsoft Sentinel 工作区。 在工作区菜单上的“配置”下,选择“自动化”。
从顶部菜单中选择“创建”,然后选择以下选项之一:
如果要创建“消耗”playbook,请选择以下选项之一,具体取决于要使用的触发器,然后按照“消耗”逻辑应用的步骤进行操作:
- 带有事件触发器的 Playbook
- 带有警报触发器的 Playbook
- 带有实体触发器的 Playbook
本指南继续介绍带有实体触发器的 Playbook。
如果要创建“标准”playbook,请选择“空白 playbook”,然后按照“标准”逻辑应用类型的步骤进行操作。
有关详细信息,请参阅支持的逻辑应用类型和 Microsoft Sentinel playbook 中支持的触发器和操作。
准备 playbook 的逻辑应用
选择以下选项卡之一,详细了解如何为 playbook 创建逻辑应用,具体取决于使用的是“消耗”还是“标准”逻辑应用。 有关详细信息,请参阅支持的逻辑应用类型。
提示
如果 playbook 需要访问 Azure 虚拟网络内部或连接到 Azure 虚拟网络的受保护资源,请创建标准逻辑应用工作流。
标准工作流在单租户 Azure 逻辑应用中运行,并支持对入站流量使用专用终结点,使工作流可私密且安全地与虚拟网络通信。 标准工作流还支持出站流量的虚拟网络集成。 有关详细信息,请参阅使用专用终结点保护虚拟网络和单租户 Azure 逻辑应用之间的流量。
选择触发器(包括事件、警报或实体触发器)后,“创建 playbook”向导随即显示,例如:
请按以下步骤创建 playbook:
在“基本信息”选项卡中提供以下信息:
对于“订阅”和“资源组”,从各自的列表中选择所需的值。
“区域”值设置为与关联的 Log Analytics 工作区相同的区域。
对于“Playbook 名称”,输入 playbook 的名称。
若要出于诊断目的监视此 playbook 的活动,请选择“在 Log Analytics 中启用诊断日志”复选框,然后选择“Log Analytics 工作区”(除非已选择一个工作区)。
选择“下一步: 连接 >”。
在“连接”选项卡上,建议保留默认值,这将逻辑应用配置为使用托管标识连接到 Microsoft Sentinel。
有关详细信息,请参阅向 Microsoft Sentinel 验证 playbook。
若要继续,请选择“下一步: 审阅并创建 >”。
在“审阅并创建”选项卡上,查看配置选择,然后选择“创建 playbook”。
Azure 需要几分钟的时间来创建和部署 playbook。 部署完成后,playbook 将在 Azure 逻辑应用的消耗工作流设计器中打开。 先前选择的触发器自动显示为工作流中的第一步,因此现在你可从此处继续构建工作流。
在设计器上,选择“Microsoft Sentinel 触发器”(如果尚未选择)。
在“创建连接”窗格上,按照以下步骤提供连接到 Microsoft Sentinel 所需的信息。
对于“身份验证”,从以下方法中进行选择,这些方法会影响后续连接参数:
方法 说明 OAuth Open Authorization (OAuth) 是一种技术标准,使你能够授权一个应用或服务登录到另一个应用或服务,而不会公开私人信息(如密码)。 OAuth 2.0 是用于授权的行业协议,授予对受保护资源的有限访问权限。 有关详细信息,请参阅以下资源:
- 什么是 OAuth?
- 使用 Microsoft Entra ID 的 OAuth 2.0 授权服务主体 服务主体表示需要访问由 Microsoft Entra 租户保护的资源的实体。 有关详细信息,请参阅服务主体对象。 托管的标识 Microsoft Entra ID 中自动管理的标识。 应用可使用此标识访问支持 Microsoft Entra 身份验证的资源,并获取 Microsoft Entra 令牌,而无需管理任何凭据。
为了获得出色的安全性,Azure 建议尽可能使用托管标识进行身份验证。 此选项提供卓越的安全性并有助于保护身份验证信息的安全,使你不必管理此敏感信息。 有关详细信息,请参阅以下资源:
- 什么是 Azure 资源的托管标识?
- 使用 Azure 逻辑应用中的托管标识对 Azure 资源的访问和连接进行身份验证。有关详细信息,请参阅身份验证提示。
根据所选的身份验证选项,为相应选项提供必要的参数值。
有关这些参数的详细信息,请参阅 Microsoft Sentinel 连接器参考。
对于“租户 ID”,选择你的 Microsoft Entra 租户 ID。
完成后,选择“登录”。
如果之前选择了“带有实体触发器的 Playbook”,请选择希望此 playbook 作为输入接收的实体类型。
身份验证提示
添加需要身份验证的触发器或后续操作时,系统可能会提示你从相应资源提供程序支持的可用身份验证类型中进行选择。 在此示例中,Microsoft Sentinel 触发器是添加到工作流的第一个操作。 因此,资源提供程序为 Microsoft Sentinel,它支持多个身份验证选项。 有关详细信息,请参阅以下文档:
向 playbook 添加操作
现在,你有了一个 playbook 的工作流,请定义调用 playbook 时会发生什么情况。 通过在设计器上选择加号 (+),添加操作、逻辑条件、循环或 switch case 条件。 有关详细信息,请参阅使用触发器或操作创建工作流。
此选择会打开“添加操作”窗格,可在其中浏览或搜索服务、应用程序、系统、控制流操作等。 输入搜索词或选择所需的资源后,结果列表显示可用的操作。
在每个操作中,当你在一个字段内选择时,你会得到以下选项:
动态内容(闪电图标):从工作流中前述操作的可用输出列表中进行选择,包括 Microsoft Sentinel 触发器。 例如,这些输出可以包括传递到 playbook 的警报或事件的特性,包括警报或事件中所有映射实体和自定义详细信息的值和特性。 可通过选择这些输出来添加对当前操作的引用。
有关演示使用动态内容的示例,请参阅以下部分:
表达式编辑器(函数图标):从大型函数库中中进行选择,以向工作流添加更多逻辑。
有关详细信息,请参阅 Microsoft Sentinel playbook 中支持的触发器和操作。
动态内容:没有事件 ID 的实体 playbook
使用“Microsoft Sentinel 实体”触发器创建的 playbook 通常使用“事件 ARM ID”字段(例如,为了在对实体执行操作后更新事件)。 如果在与事件无关的场景(例如,在搜寻威胁时)中触发此类 playbook,则没有事件 ID 来填充此字段。 而是使用 null 值填充该字段。 因此,playbook 可能无法运行到完成。
为防止此失败,建议创建一个条件,在工作流执行任何其他操作之前检查“事件 ID”字段中的值。 如果由于 playbook 未从某个事件运行,该字段的值为 null,则可规定一组不同的操作来执行。
在工作流中,在引用“事件 ARM ID”字段的第一个操作之前,按照以下常规步骤添加一个“条件”操作。
在“条件”窗格中,在条件行上,选择左侧的“选择值”字段,然后选择动态内容选项(闪电图标)。
在动态内容列表中,在“Microsoft Sentinel 事件”下,使用搜索框查找并选择“事件 ARM ID”。
提示
如果输出未显示在列表中,请在触发器名称旁边,选择“查看更多”。
在中间字段中,从运算符列表中,选择“不等于”。
在右侧的“选择值”字段中,选择表达式编辑器选项(函数图标)。
在编辑器中,输入“null”,然后选择“添加”。
完成后,条件类似于以下示例:
动态内容:处理自定义详细信息
在“Microsoft Sentinel 事件”触发器中,“警报自定义详细信息”输出是一个 JSON 对象数组,其中每个对象表示一个警报的自定义详细信息。 自定义详细信息是键值对,使你可从警报中的事件呈现信息,以便可将它们作为事件的一部分来表示、跟踪和分析。
警报中的此字段是可自定义的,因此其架构取决于呈现的事件的类型。 若要生成用于确定如何分析自定义详细信息输出的架构,请提供此事件实例的数据:
在 Microsoft Sentinel 工作区菜单上的“配置”下,选择“分析”。
在“设置规则逻辑”选项卡上,展开“自定义详细信息”部分,例如:
下表提供了有关这些键值对的详细信息:
项 位置 说明 键 左侧的列 表示创建的自定义字段。 值 右侧的列 表示填充自定义字段的事件数据中的字段。 若要生成架构,请提供以下示例 JSON 代码:
{ "FirstCustomField": [ "1", "2" ], "SecondCustomField": [ "a", "b" ] }
代码将键名称显示为数组,并将值显示为数组中的项。 值显示为实际值,而不是包含值的列。
若要对事件触发器使用自定义字段,请对工作流执行以下步骤:
在工作流设计器中的“Microsoft Sentinel 事件”触发器下,添加名为“分析 JSON”的内置操作。
在操作的“内容”参数内选择,并选择动态内容列表选项(闪电图标)。
从列表中,在事件触发器部分,找到并选择“警报自定义详细信息”,例如:
此选择会自动围绕“分析 JSON”添加一个“For each”循环,因为一个事件包含一个警报数组。
在“分析 JSON”信息窗格中,选择“使用示例有效负载生成架构”,例如:
在“输入或粘贴示例 JSON 有效负载”框中,提供示例有效负载,然后选择“完成”。
例如,可通过在 Log Analytics 中查找此警报的另一个实例,然后复制自定义详细信息对象(可在“扩展属性”下找到),来查找示例有效负载。 若要访问日志分析数据,请转到 Azure 门户中的日志页。
以下示例演示了之前的示例 JSON 代码:
完成后,“架构”框现包含基于你提供的示例生成的架构。 “分析 JSON”操作创建自定义字段,现可在工作流的后续操作中将这些字段用作“数组”类型的动态字段。
以下示例演示了名为“撰写”的后续操作的架构和动态内容列表中同时存在的数组及其项:
管理 playbook
选择“自动化”>“活动 playbook”选项卡以查看你有权访问的所有 playbook(按订阅视图筛选)。
从全局 Azure 页面标题的订阅菜单中编辑显示的订阅。
虽然“活动 playbook”选项卡显示任何所选订阅提供的所有活动 playbook,但默认情况下,playbook 只能在其所属的订阅中使用,除非专门向 playbook 的资源组授予 Microsoft Sentinel 权限。
“活动 playbook”选项卡显示具有以下详细信息的 playbook:
列名称 | 说明 |
---|---|
Status | 指示 playbook 已启用还是禁用。 |
计划 | 指示 playbook 是使用“标准”还是“消耗”Azure 逻辑应用资源类型。 “标准”类型的 playbook 使用 LogicApp/Workflow 命名约定,其反映了标准 playbook 如何表示单个逻辑应用中与其他工作流共存的工作流。 有关详细信息,请参阅适用于 Microsoft Sentinel playbook 的 Azure 逻辑应用。 |
触发器种类 | 指示 Azure 逻辑应用中启动此 playbook 的触发器: - Microsoft Sentinel 事件/警报/实体:playbook 使用其中一个 Sentinel 触发器(包括事件、警报或实体)启动 - 使用 Microsoft Sentinel 操作:playbook 使用非 Microsoft Sentinel 触发器启动,但使用 Microsoft Sentinel 操作 - 其他:playbook 不包含任何 Microsoft Sentinel 组件 - 未初始化:已创建 playbook,但不包含任何组件,也不触发任何操作。 |
选择一个 playbook 以打开其 Azure 逻辑应用页,其中显示了有关 playbook 的更多详细信息。 在 Azure 逻辑应用页上:
- 查看运行 playbook 的所有时间的日志
- 查看运行结果,包括成功和失败以及其他详细信息
- 如果具有相关权限,请在 Azure 逻辑应用中打开工作流设计器以直接编辑 playbook
相关内容
创建 playbook 后,将其附加到由环境中的事件触发的规则,或针对特定事件、警报或实体手动运行 playbook。
有关详细信息,请参阅: