机器人缓解是一场对抗游戏:攻击者适应,防御者回应,循环往复。在Cloudflare,我们通过结合全球网络的可见性与客户端环境的信号来保持领先。在网络层面,我们每天分析超过1万亿次请求,以了解超过20%网络流量的声誉、模式和异常。在客户端,我们通过__Cloudflare Turnstile__将检测推向了更深层次,它已从__CAPTCHA替代方案__演变为基于风险的管理挑战,根据验证用户真实性所需的自适应摩擦程度进行调整。
如今,Turnstile每天在互联网上一些最敏感的端点上运行近30亿次,帮助在登录、注册和结账等关键时刻验证用户。这改善了对客户应用程序最重要区域的保护,但仍对应用程序的其余部分——人类和机器人如何在完整的用户旅程中实际交互——的可见性有限。
这就是我们今天通过推出Precursor来弥补的可见性差距。
__Precursor__是一个基于会话的客户端验证系统,以隐私为设计理念,使用动态注入的JavaScript在访问者与您的应用程序交互时持续收集行为信号。这些信号被实时处理并整合到Cloudflare的机器人防护中,使我们能够持续区分人类流量与自动化或代理流量。
这将__Challenge__提供的客户端检测扩展到您的整个Web应用程序。Precursor是Turnstile的可选补充——两者都是我们企业级机器人管理功能的一部分。
这种基于用户旅程的检测之所以强大,是因为现代自动化越来越能够在短时间内表现得合法。机器人可以执行JavaScript,使用真实的浏览器环境,并通过单个CAPTCHA而不引起怀疑。但难以复制的是随时间推移的一致人类行为。
Precursor旨在捕捉这一交互层面,将行为本身转化为检测欺诈和滥用的可靠信号。通过评估整个会话中的行为,Precursor为每个决策增加了显著更多的信号。这提高了检测精度,使得在不依赖激进挑战的情况下更容易区分真实用户与自动化。对于合法用户,Precursor意味着更少的不必要中断。对于机器人开发者,它通过要求模拟完整会话提高了运营自动化的成本。这构建起来更加困难,维护成本更高,且大规模运营的可靠性远低于前者。
当机器人开发者试图让鼠标移动看起来像人类时,他们通常会添加__高斯噪声__或均匀随机延迟。但人类移动不仅仅是“有噪声”,它还受到物理约束:
手腕枢轴: 人类的鼠标移动通常是一条弧线,受手腕范围和前臂旋转的限制。
认知负荷: 从人类看到复选框到点击它之间存在可测量的延迟。
手部震颤: 即使是最稳定的人类手也会以生理性震颤频率振荡。
相比之下,机器人往往以暴露自身的方式行动。它们沿线性插值或数学上理想的贝塞尔曲线移动。它们点击的精度是人类无法复制的。即使它们成功模拟了人类错误,人类动作的节奏也只有通过检查整个会话才能看出。
鼠标移动只是 Precursor 评估的信号之一,但它清楚地说明了差异。下面是一个鼠标自动化库与网站交互的示例。你可以看到鼠标如何以完美的直线移动,总是返回原点,并以相同的速度做出反应。
现在,将其与人类浏览同一网站进行对比:你会看到不规则的路径、小的修正和过冲,以及速度、时间和方向的变化。
单独来看,这些交互可能看起来合理。但在整个会话过程中,这些模式会以难以伪造的方式产生差异。Precursor 旨在捕获和评估这些行为特征,这些特征在访问者与应用程序交互过程中逐渐形成。
为了随时间评估行为,Precursor 在客户端持续收集交互数据,并为该网站构建会话级别的活动视图。
1. 注入与收集层
当在您的应用程序上启用 Precursor 时,Cloudflare 会自动将一个轻量级脚本注入来自您网站的 HTML 响应中,这些响应在通过我们的网络时无需额外配置、网络连接或第三方嵌入。注入的 Precursor 包是紧凑的、经过混淆的,并为每个响应动态组装。该包设计为不干扰托管 Web 应用程序的任何额外页面逻辑。
该脚本附加轻量级事件监听器,以捕获交互信号,如指针移动、键盘活动、焦点变化和可见性。这些事件被序列化为紧凑格式并在内存中缓冲。定期将缓冲数据发送回评估层进行分析。
2. 评估层
在边缘服务器上,传入的 Precursor 负载被反序列化为行为输入。一个调度器在输入数据上运行一组评估器。每个评估器读取其关心的 Precursor 流,并可以将信号提升到共享检测注册表中。
评估器设计用于交叉引用数据。例如,它们确认指针活动与页面可见性持续时间相关,或者键盘事件仅在文本字段聚焦时触发。然后,这些信息流被整合为单个信号,用于加权检测。
3. 会话集成
Precursor 数据是会话范围的,意味着它在整个会话中累积。会话范围很重要,因为这意味着机器人无法通过刷新页面或重新开始新挑战来重置其行为特征。该系统还会将会话元数据馈送到下游检测层,用于额外的影子模式启发式和会话分析、预测与实际完成度以及会话违规启发式。这些边缘侧观察结果被记录下来,用于改进检测并调整会话的 机器人分数。
4. 隐私设计
Precursor 旨在收集有助于区分人类模式与自动化和滥用模式的信号。
事件监听器仅捕获检测自动化和滥用所需的最小有用信号。例如,键盘活动以时间和节奏的形式捕获,而非实际按下的按键。此外,行为信号作为聚合模式而非单个行为进行评估,并由Cloudflare的机器人检测系统内部使用;它们不会暴露给客户仪表板,也不会关联到用户账户、登录身份或持久化配置文件。
综上所述,这使得Precursor能够持续演进地评估行为,在最大化精度的同时最小化对正常用户的干扰。
为支持这一新的检测层,我们在安全分析中引入了基于会话的视图。这些仪表板将视角从单个请求转变为完整的访客旅程。您现在可以回答以下问题:
我的网站上的典型会话是什么样的?
会话在哪些方面偏离了预期行为?
哪些会话随时间推移显示出自动化的迹象?
使用安全分析探索基于会话的视图,以管理您的机器人流量。
这些分析现在能够捕获单个请求分析无法获取的信息——尤其是请求之间发生的行为。Precursor直接输入到现有系统(如机器人评分、挑战决策和安全规则)中,因此您可以立即受益于这一新增的上下文。
Precursor是将机器人检测扩展到整个应用程序的基础。我们正在继续扩展安全行为信号的范围和深度,会话级洞察如何影响我们的机器人管理保护,以及可视化和操作会话数据的新方法。随着机器人的演变,检测需要超越孤立的检查点,进入用户活动的完整流程。
Precursor现已推出,您可以直接从Cloudflare仪表板启用。Precursor将在今年晚些时候正式发布前免费使用。入门很简单:为您的区域__开启Precursor__,并选择您希望验证会话的严格程度。您可以以低摩擦模式运行,在后台观察行为,或者通过强制执行挑战(如果会话不存在)来要求完全验证的会话。
启用后,Precursor会立即增强您现有的机器人防御,无需对应用程序进行任何更改。如果您已经在使用Bot Management或Turnstile,Precursor会将保护扩展到挑战之外,覆盖会话的其余部分。启用Precursor,将检测扩展到完整的用户会话,包括您已保护的时刻之间的活动。
