Cloudflare
集成版本:2.0
产品使用场景
丰富实体信息
在 Google Security Operations 中配置 Cloudflare 集成
有关如何在 Google SecOps 中配置集成的详细说明,请参阅配置集成。
集成参数
使用以下参数配置集成:
参数显示名称 | 类型 | 默认值 | 是否为必需属性 | 说明 |
---|---|---|---|---|
API 根 | 字符串 | https://api.cloudflare.com |
是 | Cloudflare 实例的 API 根。 |
API 令牌 | 密码 | 不适用 | 是 | Cloudflare 实例的 API 令牌。 |
账号名称 | 字符串 | 不适用 | 是 | 集成中需要使用的账号的名称。 |
验证 SSL | 复选框 | 勾选 | 否 | 如果启用,则验证与 Cloudflare 服务器的连接所用的 SSL 证书是否有效。 |
如何配置令牌
- 前往个人资料设置,然后点击 API 令牌。
- 依次前往 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 可能的值:
|
否 | 指定规则列表项的状态。 |
保留查询字符串 | 复选框 | 尚未核查 | 否 | 如果启用,规则列表项会保留查询字符串。 |
包含子网域 | 复选框 | 尚未核查 | 否 | 如果启用,规则列表项将包含子网域。 |
子路径匹配 | 复选框 | 尚未核查 | 否 | 如果启用,规则列表项与子路径匹配。 |
保留路径后缀 | 复选框 | 尚未核查 | 否 | 如果启用,规则列表项会保留路径后缀。 |
运行于
此操作在 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 | 屏蔽 可能的值:
|
否 | 指定防火墙规则的操作。 如果选择“屏蔽”,您需要在“商品”参数中提供值。 |
表达式 | 字符串 | 不适用 | 是 | 指定防火墙规则的表达式。 |
产品 | 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 地址 可能的值:
|
否 | 指定规则列表的类型。 |
说明 | 字符串 | 不适用 | 否 | 指定规则列表的说明。 |
运行于
此操作不会在实体上运行。
操作执行结果
脚本结果
脚本结果名称 | 值选项 | 示例 |
---|---|---|
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 | 选择一项 可能的值:
|
否 | 指定需要用于过滤{商品类型}的键。 |
过滤逻辑 | 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 | 屏蔽 可能的值:
|
否 | 指定防火墙规则的操作。 如果选择“屏蔽”,您需要在“商品”参数中提供值。 |
表达式 | 字符串 | 不适用 | 是 | 指定防火墙规则的表达式。 |
产品 | 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 专业人士那里获得解答。