Bot 反馈回路 (Bot Feedback Loop) 允许您报告 Bot Management 评分不正确的请求。当您提交漏报 (false negative) 或误报 (false positive) 报告时,Cloudflare 会分析该数据并将其用于训练下一个机器学习模型。
Bot 反馈回路适用于 Enterprise Bot Management 客户。有关更多信息,请访问套餐 (Plans)。
如果 Cloudflare 将使用浏览器、移动端应用程序或桌面端应用程序的人员发送的请求评分在自动化 (automated) 或可能为自动化 (likely automated) 的范围内,则可能会发生误报。
如果 Cloudflare 无法检测到您网站上的部分自动化流量,提交漏报报告将有助于我们未来对其进行捕获。
| 子类型 | 定义 |
|---|---|
| Account Creation Abuse | 自动化创建大量新账户以获取网站资源的滥用行为。 |
| Ad Fraud | 欺诈性地增加广告被点击或显示的次数。 |
| Credit Card Abuse | 尝试重复验证大量信用卡卡号,或使用不同的验证详情验证同一个信用卡卡号。 |
| Cashing Out | 滥用目标互联网应用程序以获取有价值商品的行为。 |
| Login Abuse | 尝试使用许多不同的用户名和密码组合,来获取对互联网应用程序中受密码保护部分的访问权限。 |
| Inventory Abuse | 与购买限购库存或保留库存以阻止他人进行交易相关的自动化滥用行为。 |
| Denial of Service | 旨在耗尽服务器资源以阻止互联网应用程序运行的自动化请求。 |
| Expediting | 自动化使用互联网应用程序以进行比人类访问者更快的交易,从而获得不公平优势的行为。 |
| Fuzzing | 通过以自动化方式注入格式错误的数据来寻找实现漏洞。 |
| Scraping | 从互联网应用程序中自动化检索有价值或专有的信息。 |
| Spamming | 滥用内容表单以发送垃圾信息。 |
| Token Cracking | 识别有效的令牌代码,从而在应用程序内提供某种形式的用户利益。 |
| Vulnerability Scanning | 对可识别的、可预测的和未知的页面位置、路径、文件名、参数进行系统枚举和检查,以寻找弱点和可能存在安全漏洞的点。 |
-
在 Cloudflare 仪表板中,前往 Security Analytics(安全分析) 页面。
Go to Analytics ↗ -
应用一个或多个过滤器。
-
在 Request activity(请求活动) 下,按 Bot analysis(Bot 分析) 过滤。
-
选择 Report incorrect data(报告不正确的数据) 并填写表单。
-
选择 Submit(提交)。
- 登录到 Cloudflare 仪表板 ↗,然后选择您的账户和域。
- 前往 Security(安全) > Bots。
- 应用一个或多个 bot 分数过滤器。
- 选择 Report incorrect data(报告不正确的数据) 并填写表单。
- 选择 Submit(提交)。
curl 'https://api.cloudflare.com/client/v4/zones/{zone_id}/bot_management/feedback' \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>" \
--header "Content-Type: application/json" \
--data '{
"type": "false_positive",
"description": "Legitimate customers having low score",
"expression": "(cf.bot_management.score le 46 and ip.src.asnum eq 132892 and http.host eq \"api-discovery.theburritobot.com\" and cf.bot_management.ja3_hash eq \"3fed133de60c35724739b913924b6c24\")",
"first_request_seen_at": "2022-08-01T00:00:00Z",
"last_request_seen_at": "2022-08-10T00:00:00Z",
"requests": 100,
"requests_by_score": {
"1": 50,
"10": 50
},
"requests_by_score_src": {
"heuristics": 25,
"machine_learning": 75
},
"requests_by_attribute": {
"topIPs": [
{
"metric": "10.75.34.1",
"requests": 100
}
],
"topUserAgents": [
{
"metric": "curl/7.68.0",
"requests": 100
}
]
}
}'curl 'https://api.cloudflare.com/client/v4/zones/{zone_id}/bot_management/feedback' \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>"[
{
"created_at": "2022-08-19T00:05:24.749712Z",
"type": "false_positive",
"description": "Legitimate customers having low score",
"expression": "(cf.bot_management.score le 46 and ip.src.asnum eq 132892 and http.host eq \"api-discovery.theburritobot.com\" and cf.bot_management.ja3_hash eq \"3fed133de60c35724739b913924b6c24\")",
"first_request_seen_at": "2022-08-01T00:00:00Z",
"last_request_seen_at": "2022-08-10T00:00:00Z",
"requests": 100,
"requests_by_score": {
"1": 50,
"10": 50
},
"requests_by_score_src": {
"heuristics": 25,
"machine_learning": 75
},
"requests_by_attribute": {
"topIPs": [
{
"metric": "10.75.34.1",
"requests": 100
}
],
"topUserAgents": [
{
"metric": "curl/7.68.0",
"requests": 100
}
]
}
}
]| 字段 | 类型 | 描述 | 值示例 |
|---|---|---|---|
type |
字符串 | 反馈报告类型。 | false_positive |
description |
字符串 | 包含有关该问题的更多详细信息的反馈报告描述。 | Legitimate customers having low scores. |
expression |
字符串 | 匹配所报告请求的 wirefilter 表达式。 | (cf.bot_management.score le 46 and ip.src.asnum eq 132892 and http.host eq "app.example.com" and cf.bot_management.ja3_hash eq "3fed133de60c35724739b913924b6c24") |
first_request_seen_at |
字符串 | 首次看到请求的时间范围开始,RFC 3339 格式。 | 2022-08-01T00:00:00Z |
last_request_seen_at |
字符串 | 最后一次看到请求的时间范围结束,RFC 3339 格式。 | 2022-08-10T00:00:00Z |
requests |
整数 | 报告的请求总数。 | 100 |
requests_by_score |
对象 | 按分数细分的请求数。 | 请参阅下面的示例。 |
requests_by_score_src |
对象 | 按分数来源细分的请求数。 | 请参阅下面的示例。 |
requests_by_attribute |
对象 | 按属性细分的请求数(可选)。 | 请参阅下面的示例。 |
requests_by_score
{
"1": 50,
"10": 50
}requests_by_score_src
{
"machine_learning": 75,
"heuristics": 25
}requests_by_attribute
{
"topIPs": [
{
"metric": "10.75.34.1",
"requests": 100
}
],
"topUserAgents": [
{
"metric": "curl/7.68.0",
"requests": 100
}
]
}| 字段 | 类型 | 描述 |
|---|---|---|
cf.bot_management.ja3_hash |
字符串 | 提供 SSL/TLS 指纹以帮助您识别潜在的 bot 请求。 |
cf.bot_management.score |
整数 | 表示请求来自 bot 的可能性,使用 1-99 的分数。 |
http.host |
字符串 | 表示完整请求 URI 中使用的域/主机名。 |
http.request.uri.path |
字符串 | 表示请求的 URI 路径。 |
http.user_agent |
字符串 | 表示 HTTP 用户代理,这是一个请求标头,包含一个特征字符串,允许识别客户端操作系统和网页浏览器。 |
ip.src.asnum |
整数 | 表示 16 位或 32 位整数,表示与客户端 IP 地址关联的自治系统 (AS) 号码。 |
ip.src.country |
字符串 | 表示 ISO 3166-1 Alpha 2 格式的 2 字母国家/地区代码。 |
ip.src |
字符串 | IP 的源地址。 |
当您提交报告时,请使用 Bot 分析仪表板中可用的过滤器,以确保您的报告仅包含获得错误评分的流量。除了按分数进行过滤(必填)之外,您可能还希望按用户代理、IP、ASN 或 JA3 进行过滤,以更精确地突出评分不正确的流量部分。
如果您不确定某些流量是否获得了错误的评分,请将这些流量保留在报告中。
我们非常感谢您在说明字段中留下的任何评论,这些评论可能会帮助我们的团队更好地在针对您域名的典型流量上下文中理解这些请求。
在提交误报后,如果您确信此流量来源将来不会被用于滥用,则可以明确允许该流量。要允许流量,您可以使用与您的误报报告特征匹配的跳过其余自定义规则操作来创建 WAF 自定义规则。我们建议您创建的任何跳过规则都使用尽可能窄的范围,包括限制预期流量可以访问的请求方法和 URI,以限制潜在的滥用。
- 允许 JA3/JA4 指纹:如果您想允许访问不来自专用 IP 的稳定软件客户端,您可以通过在 Bot 分析仪表板中查找该客户端使用的 JA3 指纹,并创建 WAF 自定义规则以允许基于该 JA3 指纹的流量。JA3 指纹只会匹配客户端的 TLS 库,因此在寻找与其他客户端的重叠以及基于操作系统的变动时要小心。
Cloudflare 不建议对于可能会被滥用的移动端应用程序依赖 JA3 规则。如果您对如何安全地允许来自移动端应用程序的流量有疑问,请联系您的账户团队。
- 允许 IP 地址:仅当 IP 地址是仅属于您希望允许的流量来源的专用资源时,才使用 IP 地址来允许流量。
如果您想允许的流量与其他流量来源共享 IP,或者 IP 更改频繁,请考虑允许 IP 地址以外的替代方案。
在提交漏报报告后,您可以使用 IP 地址、JA3 指纹、ASN 和用户代理等特征组合,明确阻止评分错误的流量或对其进行速率限制。在基于 JA3 指纹进行阻止或速率限制之前,请使用 Bot 分析确认该指纹没有被合法流量来源使用。