通过Webhook发送CMA通知

Prev Next

概概览

卡托管理应用程序(CMA)为您账户中广泛的安全和网络事件生成通知。 您可以使用webhook集成自动将这些通知发送到第三方平台,例如ServiceNow、Jira、Slack或Zendesk。 这允许外部系统实时消费卡托事件数据,并触发自动化工作流程进行事件跟踪和响应。

卡托支持两种类型的webhook集成:

  • 标准webhook使用HTTP请求上传在外部平台中创建或更新项目。 

  • 关联webhook与XOps服务集成。 他们使用关联ID创建和更新表示XOps安全和网络故事生命周期的项目在第三方工具中。 需要XOps许可证。

Webhook集成是完全可配置的。 您可以定义HTTP方法(POST或PUT)、目标URL、身份验证方法和请求主体。 模板和字段变量使您可以根据第三方平台的要求定制有效载荷结构。

理解卡托Webhook集成

Webhook集成类型

卡托支持这些类型的webhook,以将您的账户与第三方平台集成并创建自动化流:

  • 标准webhook支持广泛的CMA通知,例如基于账户或系统警报、策略驱动的通知。 他们允许您将这些数据发送到外部平台,并配置webhook是创建新记录还是更新现有记录。

  • 关联webhook是为XOps服务设计的。 他们扩展了webhook功能到安全和网络故事,使每个故事在CMA中映射到外部系统中的记录,并在故事进展时更新。 需要XOps许可证。

Webhook流——创建或更新

Webhook流定义CMA如何与第三方平台通信,无论是创建新记录还是更新现有记录:

  • POST(创建)- 每次触发webhook时,在第三方平台中创建新项。 例如:每次互联网防火墙规则阻止流量流时,打开一个新的ServiceNow工单。

  • PUT(更新)– 更新第三方平台中的现有项目。 请求包含URL或主体中的有效项目ID。

身份验证方法

创建Webhook集成时,有不同的身份验证方法可供选择:

  • Basic - 用户名和密码

  • Bearer - 持有者令牌

  • Custom - 服务需要独特身份验证的自定义头。 根据需要添加键值对。

注意: 如果访问第三方服务的功能仅限于特定的IP地址,请参考此文章,以获取您需要允许的Cato IP地址列表(查看此文章需要登录)。

自定义通知内容

模板中的 content 字段包含生成的可读警报摘要,类似于电子邮件警报内容。 您可以选择以下格式来定义内容:contentText、contentMarkdown 或 contentHTML。

如果您选择自定义正文,则有许多数据字段可供您在消息内容中使用。 因此您可以定义自定义主体(或结构),然后嵌入卡托数据字段。 当您输入$时,将显示可用的数据字段,然后您选择所需字段。 字段使用自动填充功能来过滤列表。 有关 Cato字段的更多信息,请参阅 了解用于警报集成的JSON字段。

Webhook字段的默认值

您可以为动态Webho字段定义自定义默认值,以在通知数据不包含值时增加灵活性。 这样,您可以覆盖webhook URL、标题或正文中的默认NA值。 使用${field:defaultValue}格式来定义备用值。 例如,如果level字段未填充,则可以设置${level:medium}。 在相关流中,您还可以在webhook URL中使用备用工单ID,例如https://EXAMPLE-INSTANCE.service-now.com/api/now/table/incident/${correlationId:12345},以便在默认ServiceNow工单中捕获未关联的通知。

标准Webhook集成

标准webhook允许您将CMA通知发送到第三方平台,适用于多种用例。 首先,定义与平台集成的webhook。 然后选择哪些CMA通知和策略规则,例如防火墙操作,将通过webhook生成通知。

定义Webhook集成

创建一个webhook集成,通过您第三方工具中的项目(工单、Slack消息等)发送通知。 您可以配置webhook通过POST请求创建新项目或通过PUT请求更新现有项目。 集成包括URL、请求主体、身份验证方法和可选的自定义头和消息主体设置。

定义详情后,您可以测试连接并验证其是否正常工作。

定义Webhook集成:

  1. 在导航菜单中,单击账户 > 订阅,然后选择Webhooks标签页。

  2. 单击新建 Webhook。 新 Webhook 集成面板打开。

  3. 配置Webhook 详情:

    1. 输入集成名称。

    2. 点击滑块以启用(绿色)或禁用(灰色)集成(默认情况下已启用)。

  4. 配置集成的 JSON 模板设置:

    • 在从模板开始中,选择默认的 JSON 模板,该模板填充集成设置。

      您可以调整和修改自定义正文的字段(请参见下面的步骤 7)。

    注意: 如果您选择不同的模板,自定义正文中的字段将被重置。 有关模板的更多信息,请参见下面的模板和字段。

  5. 配置连接详情:

    1. 输入接收 Webhook 服务的网址。

      您可以在 URL 中使用字段作为变量。 输入$查看可用字段。

    2. 在请求方法中,选择此webhook的流:POST或PUT。

    3. 如有必要,配置服务的身份验证方法和设置。

  6. (可选) 在自定义头部中,为集成定义每个额外 HTTP 头部的键和值。

  7. 在自定义正文中定义 Webhook 通知的内容:

    1. (可选) 在编辑正文中自定义内容。

      • 输入/作为转义字符以在正文中使用$

      • 输入$以嵌入其他字段

      响应关联ID不适用于标准webhook集成

    2. 要定义默认值,请使用格式${field:defaultValue},例如${ID:12345}

  8. 单击测试。 CMA 发送带有字段自动生成内容的测试 HTTP 请求。

    如果集成可以连接到服务,则显示测试成功通过消息。

    如果有连接错误,页面将显示服务报告的 HTTP 错误代码和消息。

  9. 单击 保存。 Webhook 集成已保存并添加到订阅页面的集成标签页。

定义标准网络钩子订阅的触发器

标准 Webhook 由 CMA 的通知激活。 您可以配置两种类型的通知:

  1. CMA 通知:CMA 可以主动发送有关您账户的通知,例如锁定用户和管理员或许可证更新。 这些通知可以直接通过 Webhook 集成发送。

    有关更多信息,请参阅账户级别警报和系统通知。

  2. 策略规则通知:您可以在策略规则中配置跟踪设置,以便每当规则匹配时向 Webhook 发送通知。

在策略中定义规则时,您可以使用操作区域通过 Webhook 集成发送通知。

rule_webhook.png

关联Webhook集成

XOps服务支持关联webhook,允许您将XOps安全和网络故事的生命周期与第三方平台集成。 配置集成后,第三方平台在故事开始时自动创建新工单、问题或消息,并在故事进展或解决时更新它。

这些集成使用XOps事件中的关联字段将CMA中的每个故事映射到外部平台中的工单、问题或消息。 这确保更新始终应用于正确的项目。 需要XOps许可证。

这些集成要求:

  • 一个标准网络钩子订阅

  • 一个关联网络钩子订阅

  • 两种触发器(每个集成一个)

定义标准网络钩子

创建标准 Webhook 集成,以在第三方工具中创建初始项目(工单、Slack 消息等)。 然后,这些项目将由关联的 Webhook 集成更新。

定义详情后,您可以测试连接并验证其是否正常工作。

定义标准 Webhook 集成:

  1. 在导航菜单中,单击账户 > 订阅,然后选择Webhooks标签页。

  2. 单击新建 Webhook。 新 Webhook 集成面板打开。

  3. 配置Webhook 详情:

    1. 输入集成名称。

    2. 点击滑块以启用(绿色)或禁用(灰色)集成(默认情况下已启用)。

  4. 配置集成的 JSON 模板设置:

    • 在从模板开始中,选择默认的 JSON 模板,该模板填充集成设置。

      您可以调整和修改自定义正文的字段(请参见下面的步骤 7)。

    注意: 如果您选择不同的模板,自定义正文中的字段将被重置。 有关模板的更多信息,请参见下面的模板和字段。

  5. 配置连接详情:

    1. 输入接收 Webhook 服务的网址。

      您可以在 URL 中使用字段作为变量。 输入$查看可用字段。

    2. 在请求方法中,选择POST。

    3. 如有必要,配置服务的身份验证方法和设置。

  6. (可选) 在自定义头部中,为集成定义每个额外 HTTP 头部的键和值。

  7. 在自定义正文中定义 Webhook 通知的内容:

    1. 在响应关联 ID中,定义您将在 URL 中用于关联的项目。 例如,在 ServiceNow 中,这可能是 result.sys_id,而在 Zendesk 中,这可能是 ticket.id。

    2. (可选) 在编辑正文中自定义内容。

      • 输入/作为转义字符以在正文中使用$

      • 输入$以嵌入其他字段

    3. 要定义默认值,请使用格式${field:defaultValue},例如${ID:12345}

  8. 单击测试。 CMA 发送带有字段自动生成内容的测试 HTTP 请求。

    如果集成可以连接到服务,则显示测试成功通过消息。

    如果有连接错误,页面将显示服务报告的 HTTP 错误代码和消息。

  9. 单击 保存。 Webhook 集成已保存并添加到订阅页面的集成标签页。

定义关联Webhook

创建关联的 Webhook 集成,通过更新先前程序中创建的现有项目,在第三方工具中通过项目发送通知(工单、Slack 消息等)。

配置相关webhook时,URL使用关联ID更新第三方平台中的正确项目。 如果关联ID值为空,则无法将更新匹配到现有项目,并将丢失。 为避免这种情况,请将项目ID添加到创建原始工单、问题或消息的标准webhook的自定义正文中。 这使相关webhook可以将该ID用作关联字段的备用值,因此以后的更新在整个生命周期中继续应用于原始项目。

定义详情后,您可以测试连接并验证其是否正常工作。

定义关联的 Webhook 集成:

  1. 在导航菜单中,单击账户 > 订阅,然后选择Webhooks标签页。

  2. 单击新建 Webhook。 新 Webhook 集成面板打开。

  3. 配置Webhook 详情:

    1. 输入集成名称。

    2. 点击滑块以启用(绿色)或禁用(灰色)集成(默认情况下已启用)。

  4. 配置集成的 JSON 模板设置:

    • 在从模板开始中,选择默认的 JSON 模板,该模板填充集成设置。

      您可以调整和修改自定义正文的字段(请参见下面的步骤 7)。

    注意: 如果您选择不同的模板,自定义正文中的字段将被重置。 有关模板的更多信息,请参见下面的模板和字段。

  5. 配置连接详情:

    1. 输入接收 Webhook 服务的网址。 通过添加关联项目 ID字段,与现有项目关联。

      您可以在 URL 中使用字段作为变量。 输入$查看可用字段。

    2. 在请求方法中,选择PUT。

    3. 如有必要,配置服务的身份验证方法和设置。

  6. (可选) 在自定义头部中,为集成定义每个额外 HTTP 头部的键和值。

  7. 在自定义正文中定义 Webhook 通知的内容:

    1. (可选) 在编辑正文中自定义内容。

      • 输入/作为转义字符以在正文中使用$

      • 输入$以嵌入其他字段

    2. 要定义默认值,请使用格式${field:defaultValue},例如${ID:12345}

  8. 单击测试。 CMA 发送带有字段自动生成内容的测试 HTTP 请求。

    如果集成可以连接到服务,则显示测试成功通过消息。

    如果有连接错误,页面将显示服务报告的 HTTP 错误代码和消息。

  9. 单击 保存。 Webhook 集成已保存并添加到订阅页面的集成标签页。

定义标准 Webhook 集成的触发条件

标准 Webhook 由 CMA 的通知激活。 您可以配置两种类型的通知:

  1. CMA 通知:CMA 可以主动发送有关您账户的通知,例如锁定用户和管理员或许可证更新。 这些通知可以直接通过 Webhook 集成发送。

    有关更多信息,请参阅账户级别警报和系统通知。

  2. 策略规则通知:您可以在策略规则中配置跟踪设置,以便每当规则匹配时向 Webhook 发送通知。

在策略中定义规则时,您可以使用操作区域通过 Webhook 集成发送通知。

rule_webhook.png

使用定义检测和响应通知定义相关集成的触发器

通过检测与响应策略,您可以自动化在第三方平台创建和更新关联XOps事件的项目。 从而确保您的外部系统始终反映当前故事状态。

您可以在策略中配置规则:

  • 故事创建:触发关联webhook,创建新项目

  • 故事更新:触发关联webhook,随着故事进展更新相同项目

为了保持故事同步,配置两个规则:一个在故事开始时创建项目,一个在故事改变时更新项目。

定义webhook通知的触发器:

  1. 从导航菜单中,点击主页 > 检测 & 响应策略。

  2. 选择响应策略选项卡。

  3. 单击 新建。 添加到响应策略面板打开。

  4. 为规则输入一个名称。

  5. 在来源部分,选择类型(例如:主机、IP范围、站点),然后为此规则的故事来源选择一个或多个对象(或者您可以输入IP地址)。

    默认来源值是任何。

  6. (可选)定义标准,指定事件必须具备的特性以匹配规则。

  7. 选择规则的触发器。 

    • 故事创建用于创建新项目

    • 故事更新用于更新现有项目

  8. 在响应标签中,选择发送通知。

  9. 在发送通知到中,选择集成。

  10. 在集成中,选择发送通知的webhook集成。

  11. 应用程序在 集成的应用程序 表中显示,状态为 已连接。 该规则已添加到策略中。

模板和字段

每个webhook可以完全自定义以匹配您的第三方系统的格式和行为。 webhook以JSON格式提供,可以调整以适应目标平台结构。 为静态和动态有效载荷使用卡托字段变量。

选择模板后,您可以编辑主体作为JSON有效载荷并将其保存为自定义模板。 您还可以选择在 JSON 中嵌入数据字段,这将把相关值放入负载中(如果不可用,则放入 NA)。

输入$时,显示可用字段。 有关 Cato字段的更多信息,请参阅 了解用于警报集成的JSON字段。

创建 webhook 时,您可以从这些模板中进行选择:

  • 所有字段 - 包括所有可用字段

  • 基本 - 最常用字段的模板

  • Jira - 基本的Jira模板

  • ServiceNow 新建票证 - 在ServiceNow中创建新票证

  • ServiceNow 更新票证 - 更新ServiceNow中现有票证

  • Slack - 向Slack频道发送消息

  • Zendesk 新建票证 - 在Zendesk中创建新票证

  • Zendesk 更新票证 - 更新Zendesk中的现有票证

  • 自定义 - 自定义模板设置

您还可以在定义 webhook 集成的 URL 时使用字段。