Cloudflare

集成版本:2.0

产品使用场景

丰富实体信息

在 Google Security Operations 中配置 Cloudflare 集成

有关如何在 Google SecOps 中配置集成的详细说明,请参阅配置集成

集成参数

使用以下参数配置集成:

参数显示名称 类型 默认值 是否为必需属性 说明
API 根 字符串 https://api.cloudflare.com Cloudflare 实例的 API 根。
API 令牌 密码 不适用 Cloudflare 实例的 API 令牌。
账号名称 字符串 不适用 集成中需要使用的账号的名称。
验证 SSL 复选框 勾选 如果启用,则验证与 Cloudflare 服务器的连接所用的 SSL 证书是否有效。

如何配置令牌

  1. 前往个人资料设置,然后点击 API 令牌
  2. 依次前往 Create Token > Create Custom Token,然后选择以下权限:
账号 账号 WAF 读取
账号 规则政策 读取
账号 账号过滤条件列表 修改
账号 账号防火墙访问权限 修改
账号 DNS 防火墙 读取
账号 账号设置 读取
可用区 可用区 WAF 修改
可用区 区域设置 读取
可用区 可用区 读取
可用区 日志 读取
可用区 防火墙服务 修改
可用区 防火墙服务 读取
可用区 分析 读取

所需权限列表

操作

将 IP 添加到规则列表

说明

将 IP 地址添加到 Cloudflare 中的规则列表。支持的实体:IP 地址。

参数

参数显示名称 类型 默认值 是否为必需属性 说明
规则名称 字符串 不适用 指定要向其添加规则列表项的规则列表的名称。
说明 字符串 不适用 为新添加的规则列表项指定说明。

运行于

此操作在 IP 地址实体上运行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_success True/False is_success:False
JSON 结果
{
    "result": {
        "operation_id": "f16b978552ca49f88b36fe628de31142"
    },
    "success": true,
    "errors": [],
    "messages": []
}
案例墙
结果类型 值 / 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行

如果一个实体的状态代码为 200(is_success=true):“已成功将以下实体添加到 Cloudflare 中的 {name} 规则列表:{entity.identifier}。”

如果某个实体未成功添加(is_success=true):“无法将以下实体添加到 Cloudflare 中的 {name} 规则列表:{entity.identifier}。”

如果并非所有实体都成功添加(is_success=false):“未将任何提供的实体添加到 {name} 规则列表。”

操作应失败并停止 playbook 执行

如果报告了致命错误(例如凭据错误、无法连接到服务器或其他错误):“Error executing action "Add IP To Rule List"”(执行操作“将 IP 添加到规则列表”时出错)。原因:{0}''.format(error.Stacktrace)

如果找不到列表:“Error executing action "Add IP To Rule List"(执行操作“将 IP 添加到规则列表”时出错)。原因:在 Cloudflare 中找不到规则列表“{name}”。

如果列表不是有效类型:“执行操作‘将 IP 添加到规则列表’时出错。原因:规则列表 {name} 的类型不是“IP”。

常规

将网址添加到规则列表

说明

在 Cloudflare 中将网址添加到规则列表。支持的实体:网址。

参数

参数显示名称 类型 默认值 是否为必需属性 说明
规则名称 字符串 不适用 指定要向其添加规则列表项的规则列表的名称。
源网址 字符串 不适用 为规则列表项指定来源网址。
说明 字符串 不适用 为新添加的规则列表项指定说明。
状态代码 DDL

301

可能的值:

  • 301
  • 302
  • 307
  • 308
指定规则列表项的状态。
保留查询字符串 复选框 尚未核查 如果启用,规则列表项会保留查询字符串。
包含子网域 复选框 尚未核查 如果启用,规则列表项将包含子网域。
子路径匹配 复选框 尚未核查 如果启用,规则列表项与子路径匹配。
保留路径后缀 复选框 尚未核查 如果启用,规则列表项会保留路径后缀。

运行于

此操作在 IP 地址实体上运行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_success True/False is_success:False
JSON 结果
{
    "result": {
        "operation_id": "f16b978552ca49f88b36fe628de31142"
    },
    "success": true,
    "errors": [],
    "messages": []
}
案例墙
结果类型 值 / 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行

如果一个实体的状态代码为 200 (is_success=true):“已成功将以下实体添加到 Cloudflare 中的‘{name}’规则列表:{entity.identifier}。”

如果某个实体未成功添加(is_success=true):“无法将以下实体添加到 Cloudflare 中的 {name} 规则列表:{entity.identifier}。”

如果所有实体的结果都不是成功 (is_success=false):“未将任何提供的实体添加到 {name} 规则列表中。”

操作应失败并停止 playbook 执行

如果报告了致命错误(例如凭据错误、无法连接到服务器或其他错误):“Error executing action "Add 网址 To Rule List".”(执行“将网址添加到规则列表”操作时出错)。原因:{0}''.format(error.Stacktrace)

如果找不到列表:“执行操作‘将网址添加到规则列表’时出错。原因:在 Cloudflare 中找不到规则列表“{name}”。

如果列表类型无效:“执行操作‘将网址添加到规则列表’时出错。”原因:规则列表 {name} 的类型不是“重定向”。

常规

创建防火墙规则

说明

在 Cloudflare 中创建防火墙规则。

参数

参数显示名称 类型 默认值 是否为必需属性 说明
地区名称 字符串 不适用 指定包含防火墙规则的区域的名称。
名称 字符串 不适用 指定防火墙规则的名称。
操作 DDL

屏蔽

可能的值:

  • 允许
  • 屏蔽
  • 绕过
  • 日志
  • 旧版 CAPTCHA
  • 托管式挑战
  • JS 挑战赛

指定防火墙规则的操作。

如果选择“屏蔽”,您需要在“商品”参数中提供值。

表达式 字符串 不适用 指定防火墙规则的表达式。
产品 CSV 不适用

以逗号分隔列表的形式指定防火墙规则所适用的产品。

注意:仅当为“操作”参数选择“绕过”时,此参数才是必需参数。

可能的值:zoneLockdown、uaBlock、bic、hot、securityLevel、rateLimit、waf

优先级 整数 不适用 指定防火墙规则的优先级。
参考标记 字符串 不适用

为防火墙规则指定参考标记。

注意:该名称的长度上限为 50 个字符。

运行于

此操作不会在实体上运行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_success True/False is_success:False
JSON 结果
{
        {
            "id": "b520c154bdeb4fe2a1f647b2c6b35829",
            "paused": false,
            "description": "Blocks traffic identified during investigation for MIR-31",
            "action": "block",
            "priority": 50,
            "filter": {
                "id": "fc6dfad848c24a42ae5be0114db09fb9",
                "expression": "(ip.geoip.continent eq \"ASIA\")",
                "paused": false
            },
            "created_on": "2022-07-25T11:19:22Z",
            "modified_on": "2022-07-25T11:19:22Z",
            "index": 0
        }
}
案例墙
结果类型 值 / 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行

如果报告了 200 状态代码 (is_success=true):“已在 Cloudflare 的‘{zone_name}’区域中成功创建新的防火墙规则。”。

操作应失败并停止 playbook 执行

如果报告了致命错误(例如凭据错误、无法连接到服务器、其他错误):“Error executing action "Create Firewall Rule". 原因:{0}''.format(error.Stacktrace)

如果错误列表不为空:“执行操作‘创建防火墙规则’时出错。原因:{0}''.format(errors/message)

如果找不到区域:“执行操作‘创建防火墙规则’时出错。原因:在 Cloudflare 中找不到地区 {zone_name}。

常规

创建规则列表

说明

在 Cloudflare 中创建规则列表。

参数

参数显示名称 类型 默认值 是否为必需属性 说明
名称 字符串 不适用 指定规则列表的名称。
类型 DDL

IP 地址

可能的值:

  • IP 地址
  • 重定向
指定规则列表的类型。
说明 字符串 不适用 指定规则列表的说明。

运行于

此操作不会在实体上运行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_success True/False is_success:False
JSON 结果
{
    "id": "d19589d629f140c0b961c467feadf99d",
    "name": "123",
    "kind": "ip",
    "num_items": 0,
"description": "description",
    "num_referencing_filters": 0,
    "created_on": "2022-07-25T12:13:46Z",
    "modified_on": "2022-07-25T12:13:46Z"
}
案例墙
结果类型 值 / 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行

如果报告了 200 状态代码 (is_success = true):“已在 Cloudflare 中成功创建规则列表。”

操作应失败并停止 playbook 执行

如果系统报告了致命错误(例如凭据错误、无法连接到服务器或其他错误):“Error executing action "Create Rule List".”(执行操作“创建规则列表”时出错。)原因:{0}''.format(error.Stacktrace)

如果错误列表不为空:“执行操作‘创建规则列表’时出错。原因:{0}''.format(errors/message)

常规

丰富实体

说明

使用 Cloudflare 中的信息丰富实体。支持的实体:网址、IP、主机名。

参数

不适用

运行于

此操作适用于以下实体:

  • IP 地址
  • 网址
  • 主机名

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_success True/False is_success:False
JSON 结果
IP 地址的 JSON 结果
{
    "ip": "192.0.2.0",
    "belongs_to_ref": {
      "id": "autonomous-system--2fa28d71-3549-5a38-af05-770b79ad6ea8",
      "value": 13335,
      "type": "hosting_provider",
      "country": "US",
      "description": "CLOUDFLARENET"
    },
    "risk_types": [
      {
        "id": 131,
        "super_category_id": 21,
        "name": "Phishing"
      }
    ]
}
网址的 JSON 结果
{
    "url": "https://www.cloudflare.com",
    "phishing": false,
    "verified": false,
    "score": 0.99,
    "classifier": "MACHINE_LEARNING_v2"
}
主机名的 JSON 结果
{
    "domain": "cloudflare.com",
    "created_date": "2009-02-17",
    "updated_date": "2017-05-24",
    "registrant": "DATA REDACTED",
    "registrant_org": "DATA REDACTED",
    "registrant_country": "United States",
    "registrant_email": "https://domaincontact.cloudflareregistrar.com/cloudflare.com",
    "registrar": "Cloudflare, Inc.",
    "nameservers": [
      "ns3.cloudflare.com",
      "ns4.cloudflare.com",
      "ns5.cloudflare.com",
      "ns6.cloudflare.com",
      "ns7.cloudflare.com"
    ]
}
案例墙
结果类型 值 / 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行

如果一个实体的状态代码为 200(is_success=true):“已成功在 Cloudflare 中丰富以下实体:{entity.identifier}。”

如果一个实体的操作未成功 (is_success=true):“Action wasn't able to enrich the following entities in Cloudflare: {entity.identifier}.”

如果并非所有实体的富集都成功 (is_success=false):“未富集任何提供的实体。”

如果针对 IP 报告了 403 状态代码(如果至少有一个实体的 is_success 为 true,否则为 false):“如需丰富 IP,您需要在 Cloudflare 账号中启用‘IP 概览’功能。”

如果系统报告主机名的状态代码为 403

(如果至少有一个实体的 is_success 为 true,则为 true;否则为 false):“如需丰富域名,您需要在 Cloudflare 账号中启用‘WHOIS’功能。”

如果系统针对网址报告 403 状态代码(如果至少有一个实体的 is_success 为 true,否则为 false):“如需扩充网址,您需要在 Cloudflare 账号中启用‘网络钓鱼网址扫描器’功能。”

操作应失败并停止 playbook 执行

如果系统报告了致命错误(例如凭据错误、未连接到服务器或其他错误):“执行操作‘丰富实体’时出错。原因:{0}''.format(error.Stacktrace)

如果所有实体都报告了 403 状态代码 (is_success=false):“您需要在 Cloudflare 账号中启用‘网络钓鱼网址扫描器’、‘WHOIS’和‘IP 概览’功能。”

常规

列出防火墙规则

说明

列出 Cloudflare 中的可用防火墙规则。

参数

参数显示名称 类型 默认值 是否为必需属性 说明
地区名称 字符串 不适用 指定将包含防火墙规则的区域的名称。
过滤键 DDL

选择一项

可能的值:

  • 选择一项
  • 名称
  • ID
  • 操作
指定需要用于过滤{商品类型}的键。
过滤逻辑 DDL

选择一项

可能的值:

  • 请选择一项
  • 等于
  • 包含

指定应应用的过滤条件逻辑。

过滤逻辑基于“过滤键”参数中提供的值。

过滤条件值 字符串 不适用

指定应在过滤条件中使用的值。

如果选择“等于”,操作会尝试在结果中查找完全匹配项。

如果选择“包含”,该操作会尝试查找包含相应子字符串的结果。

如果此参数中未提供任何内容,则不会应用过滤条件。

过滤逻辑基于“过滤键”参数中提供的值。

要返回的记录数上限 整数 50

指定要返回的记录数。

如果未提供任何内容,该操作会返回 50 条记录。

运行于

此操作不会在实体上运行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_success True/False is_success:False
JSON 结果
{
    "id": "55ec8db30f9e4640b5d0d13cff6b5429",
    "paused": false,
    "description": "rulle2",
    "action": "allow",
    "filter": {
        "id": "2bb05df8c4f547bd9792d8dc38a86b81",
        "expression": "(ip.geoip.country eq \"BG\")",
        "paused": false
    },
    "created_on": "2022-07-05T13:53:39Z",
    "modified_on": "2022-07-05T13:53:39Z"
}
案例墙
结果类型 值 / 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行

如果数据可用(is_success=true):“已在 {product name} 中成功找到符合所提供条件的 {item name}”。

如果数据不可用 (is_success=false):“{product name} 中未找到符合所提供条件的{item name}”

如果“过滤条件值”参数为空 (is_success=true)

“未应用过滤条件,因为参数‘过滤条件值’的值为空。”

操作应失败并停止 playbook 执行

如果“过滤键”形参设置为“选择一个”,并且“过滤逻辑”形参设置为“等于”或“包含”

“执行操作‘{action name}’时出错。原因:您需要从“过滤键”参数中选择一个字段。

如果为“要返回的最大记录数”参数提供的值无效:“执行操作‘{action name}’时出错。原因:为“要返回的最大记录数”提供的值无效:。应提供正数。”

如果报告了致命错误(例如凭据错误、无法连接到服务器、其他错误):“Error executing action "{action name}". 原因:{0}''.format(error.Stacktrace)

常规
“案例墙”表格

表格名称:Available {item group}

表格列:{fields}

常规

Ping

说明

使用 Google Security Operations Marketplace 标签页中的集成配置页面上提供的参数测试与 Cloudflare 的连接。

参数

不适用

运行于

该操作不使用任何 Google SecOps 范围实体,也没有强制性输入参数。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_success True/False is_success:False
JSON 结果
N/A
案例墙
结果类型 值 / 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行

如果成功:“Successfully connected to the SpyCloud server with the provided connection parameters!”

操作应失败并停止 playbook 执行

如果未成功:“Failed to connect to the SpyCloud server! 错误为 {0}".format(exception.stacktrace)

如果未找到相应账号,系统会显示以下消息:“Failed to connect to the Cloudflare server!提供的账号名称无效。请检查拼写。”

常规

更新防火墙规则

说明

更新 Cloudflare 中的防火墙规则。

运行于

此操作不会在实体上运行。

参数

参数显示名称 类型 默认值 是否为必需属性 说明
规则名称 字符串 不适用 指定需要更新的规则的名称。
地区名称 字符串 不适用 指定包含防火墙规则的区域的名称。
操作 DDL

屏蔽

可能的值:

  • 允许
  • 屏蔽
  • 绕过
  • 日志
  • 旧版 CAPTCHA
  • 托管式挑战
  • JS 挑战赛

指定防火墙规则的操作。

如果选择“屏蔽”,您需要在“商品”参数中提供值。

表达式 字符串 不适用 指定防火墙规则的表达式。
产品 CSV 不适用

以逗号分隔列表的形式指定防火墙规则所适用的产品。

注意:仅当为“操作”参数选择“绕过”时,此参数才是必需参数。

可能的值:zoneLockdown、uaBlock、bic、hot、securityLevel、rateLimit、waf

优先级 整数 不适用 指定防火墙规则的优先级。
参考标记 字符串 不适用

为防火墙规则指定参考标记。

注意:该名称的长度上限为 50 个字符。

运行于

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_success True/False is_success:False
JSON 结果
{
        {
            "id": "b520c154bdeb4fe2a1f647b2c6b35829",
            "paused": false,
            "description": "Blocks traffic identified during investigation for MIR-31",
            "action": "block",
            "priority": 50,
            "filter": {
                "id": "fc6dfad848c24a42ae5be0114db09fb9",
                "expression": "(ip.geoip.continent eq \"ASIA\")",
                "paused": false
            },
            "created_on": "2022-07-25T11:19:22Z",
            "modified_on": "2022-07-25T11:19:22Z",
            "index": 0
        }
}
案例墙
结果类型 值 / 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行

如果报告了 200 状态代码 (is_success=true):“已成功更新 Cloudflare 中“{zone_name}”区域的防火墙规则。”

操作应失败并停止 playbook 执行

如果报告了致命错误(例如凭据错误、无法连接到服务器等):“Error executing action "Update Firewall Rule". 原因:{0}''.format(error.Stacktrace)

如果错误列表不为空:“执行操作‘更新防火墙规则’时出错。原因:{0}''.format(errors/message)

如果找不到相应区域:“执行操作‘更新防火墙规则’时出错。原因:在 Cloudflare 中找不到地区 {zone_name}。

常规

需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。