创建和管理 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 标准型逻辑应用参与者 管理工作流的所有方面。 有关详细信息,请参阅以下文档:
在创建 playbook 之前,建议阅读适用于 Microsoft Sentinel playbook 的 Azure 逻辑应用。
创建 playbook
按照以下步骤在 Microsoft Sentinel 中创建新的 playbook:
在 Azure 门户中导航到 Microsoft Sentinel 工作区。 在工作区菜单上的“配置”下,选择“自动化”。
在顶部菜单中选择“创建”,然后选择“空白 playbook”,然后按照标准逻辑应用类型的步骤进行操作。
有关详细信息,请参阅支持的逻辑应用类型和 Microsoft Sentinel playbook 中支持的触发器和操作。
准备 playbook 的逻辑应用
基于标准工作流的 playbook 不支持 playbook 模板,因此你需要先创建一个标准逻辑应用,然后创建 playbook,最后选择 playbook 的触发器。
选择“空白 playbook”后,随即一个新的浏览器选项卡打开,且“创建逻辑应用”向导显示。 按照以下步骤创建标准逻辑应用:
创建标准逻辑应用
在“创建逻辑应用”页上,确认托管计划选择,然后选择“选择”。
在“基本信息”选项卡中提供以下信息:
对于“订阅”和“资源组”,从各自的列表中选择所需的值。
对于“逻辑应用名称”,输入逻辑应用的名称。
对于“区域”,选择逻辑应用的 Azure 区域。
对于“Windows 计划”(选定区域),创建计划或选择现有计划。
对于“定价计划”,为逻辑应用选择计算资源及其定价。
在“区域冗余”下,如果选择了支持可用性区域冗余的 Azure 区域,则可启用此功能。
对于此示例,将该选项保留为禁用状态。 有关详细信息,请参阅通过区域冗余和可用性区域保护逻辑应用免受区域故障的影响。
选择“下一页:>存储”。
在“存储”选项卡上,提供以下信息:
对于“存储类型”,选择“Azure 存储”,然后创建或选择一个存储帐户。
对于“Blob 服务诊断设置”,保留默认设置。
在“网络”选项卡上,可以保留此示例的默认选项。
对于具体的实际生产场景,确保查看并选择合适的选项。 还可以在部署逻辑应用资源后更改此配置。 有关详细信息,请参阅以下文档:
在“监视”选项卡上,执行以下步骤:
在“Application Insights”下,将“启用 Application Insights”设置为“否”。
此设置在 Azure Monitor 中禁用或启用使用 Application Insights 的性能监视。 但是,对于 Microsoft Sentinel,此功能不是必需的,而且需要额外的费用。
若要将标记应用于此逻辑应用,以进行资源分类和计费,请选择“下一步: 标记 >”。 否则请选择“查看 + 创建”。
在“审阅 + 创建”选项卡上,查看配置选择,然后选择“创建”。
Azure 需要几分钟的时间来创建和部署逻辑应用。
部署完成后,选择“转到资源”,这会打开逻辑应用资源。
与经典消耗 playbook 不同,操作尚未完成。 现在必须创建工作流。
为 playbook 创建工作流
在逻辑应用菜单上的“工作流”下,选择“工作流”。
在“工作流”页工具栏上,选择“添加”。
在“新建工作流”窗格中,提供以下信息:
properties 说明 工作流名称 有意义的工作流名称。 状态类型 选择“有状态”。 Microsoft Sentinel 不支持将无状态工作流用作 playbook。 完成后,选择“创建”。
Azure 保存你的工作流后,“工作流”页会显示该工作流。
选择工作流,以打开工作流的“概述”页。
此页面显示有关你的工作流的所有信息,包括工作流运行的所有时间的历史记录。
在工作流菜单上的“开发人员”下,选择“设计器” 。
工作流设计器打开,你可通过添加触发器开始构建工作流。
添加工作流触发器
在设计器上,选择“添加触发器”以打开“添加触发器”窗格,例如:
按照以下常规步骤查找 Microsoft Sentinel 触发器,其中包括以下触发器:
- Microsoft Sentinel 实体
- Microsoft Sentinel 警报
- Microsoft Sentinel 事件
选择要用于 playbook 的触发器。
此示例继续使用“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 令牌,而无需管理任何凭据。
为了获得最佳安全性,Microsoft 建议尽可能使用托管标识进行身份验证。 此选项提供卓越的安全性并有助于保护身份验证信息的安全,使你不必管理此敏感信息。 有关详细信息,请参阅以下资源:
- 什么是 Azure 资源的托管标识?
- 使用 Azure 逻辑应用中的托管标识对 Azure 资源的访问和连接进行身份验证。有关详细信息,请参阅身份验证提示。
根据所选的身份验证选项,为相应选项提供必要的参数值。
有关这些参数的详细信息,请参阅 Microsoft Sentinel 连接器参考。
对于“租户 ID”,选择你的 Microsoft Entra 租户 ID。
完成后,选择“登录”。
如果选择了“带有实体触发器的 Playbook”,请选择希望此 playbook 作为输入接收的实体类型。
有关详细信息,请参阅 Microsoft Sentinel 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 只能在其所属的订阅中使用,除非你向 Microsoft Sentinel 专门授予了访问 playbook 的资源组的权限。
“Playbook”选项卡显示了你的 playbook,其中包含以下详细信息:
列名称 | 说明 |
---|---|
Status | 指示 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。
有关详细信息,请参阅: