Introducing Precursor: 检测代理行为的连续客户端信号

发布于

Bot 减少是一场对抗游戏:攻击者适应,防御者回应,循环不断。在 Cloudflare,我们通过结合全球网络的可见性和客户端环境的信号,保持领先。在网络层面,我们每天分析超过 1 万亿个请求,以了解声誉、模式和超过 20% 网络的异常。而在客户端,我们通过 [Cloudflare Turnstile](https://developers.cloudflare.com/turnstile/) 更深入地推动检测,Turnstile 从 [CAPTCHA 替代方案](https://blog.cloudflare.com/turnstile-private-captcha-alternative/) 进化为基于风险的管理挑战,可以适应验证用户真实性所需的摩擦量。

如今,Turnstile 在互联网一些最敏感的终端上每天运行近 30 亿次,帮助在关键时刻如登录、注册和结账时验证用户。这提高了对客户应用程序最重要领域的保护,但仍然对应用程序的其余部分缺乏可见性——人和机器人如何在整个用户旅程中真正互动。

这是我们今天通过推出 **Precursor** 正在弥补的可见性缺口。

### 介绍 Precursor

[Precursor](https://developers.cloudflare.com/cloudflare-challenges/precursor) 是一种基于客户端、会话的验证系统,旨在保护隐私,使用动态注入的 JavaScript 持续收集访客与应用程序交互时的行为信号。这些信号实时处理并整合到 Cloudflare 的机器人保护中,使我们能够持续区分人类流量与自动化或代理流量。

这将通过 [Challenge](https://developers.cloudflare.com/cloudflare-challenges/) 提供的客户端检测扩展到整个 Web 应用程序。Precursor 是 Turnstile 的可选补充——两者都是我们企业机器人管理的功能。

基于用户旅程的检测非常强大,因为现代自动化在短时间内越来越能够看起来合法。机器人可以执行 JavaScript,使用真实的浏览器环境并通过个别测试而不引起怀疑。然而,持续的人类行为在时间上是很难复制的。

Precursor 的设计旨在捕捉这一交互层次,将行为本身转化为用于检测欺诈和滥用的可靠信号。通过评估整个会话的行为,Precursor 为每个决策增加了显著的信号。这提高了检测的精度,使我们更容易区分真正的用户与自动化,不依赖于激进的挑战。对于合法用户来说,Precursor 意味着更少不必要的干扰。对于机器人开发者来说,这提高了操作自动化的成本,要求他们模拟完整的会话。这显著更难构建、更昂贵维护且在规模操作时可靠性更差。

### 人之常情

当机器人开发者试图使鼠标移动看起来像人类时,他们通常会添加 [高斯噪声](https://en.wikipedia.org/wiki/Gaussian_noise) 或均匀随机延迟。但人类运动不仅仅是“嘈杂的”,它还受到物理的限制:

- **手腕旋转**:人类鼠标移动通常是弧形的,受到手腕的活动范围和前臂的旋转限制。
- **认知负荷**:人类在看到复选框和点击间存在可测量的延迟。
- **手颤**:即使是最稳的手也会以生理颤动频率波动。

相反,机器人往往以暴露他们的方式行为。它们以线性插值或数学理想的贝塞尔曲线移动。它们点击的精度人类根本无法复制。即使它们确实设法模拟人类的错误,人的动作也有一种节奏,只有通过检查整个会话才能看到。

鼠标移动只是 Precursor 评估的信号之一,但它清楚地说明了差异。下面是一个鼠标自动化库与网站交互的例子。你可以看到鼠标以完美的直线移动,总是返回到原点,并以相同的速度反应。

现在对比一下一个人在同一网站上导航的情况:你会看到不规则的路径、小修正和超调,以及速度、时机和方向的变化。

单独看,这些交互可能看起来似乎是合理的。但在一次会话中,这些模式以难以伪造的方式发散。Precursor 被设计为捕捉和评估这些行为特征,在访客与应用程序的交互过程中发展。

### Precursor 的工作原理

为了评估行为随时间的变化,Precursor 在客户端持续收集交互数据,并建立该站点的会话活动视图。

**1. 注入和收集层**
当 Precursor 在你的应用程序上启用时,Cloudflare 会在经过我们网络的 HTML 响应中自动注入轻量级脚本,无需额外配置、网络连接或第三方嵌入。注入的 Precursor 包是紧凑的、模糊的,并为每个响应动态组装。该包的设计不会干扰托管 Web 应用程序的任何额外页面逻辑。

该脚本附加轻量级事件监听器,以捕捉交互信号,如指针移动、键盘活动、焦点变化和可见性。这些事件被序列化为紧凑格式并缓存在内存中。在规定的间隔内,缓冲的数据被发送回评估层进行分析。

**2. 评估层**
在边缘服务器上,传入的 Precursor 有效载荷被反序列化为行为输入。调度程序在输入数据上运行评估器列表。每个评估器读取其关心的 Precursor 数据流,并可以在共享检测注册表中提出信号。

评估器的设计用于交叉引用数据。例如,它们确认指针活动与页面可见性持续时间的相关性,或者键盘事件仅在文本字段聚焦时触发。这一信息流随后整合为用于加权检测的单个信号。

**3. 会话集成**
Precursor 数据是会话范围的,这意味着它在整个会话中积累。会话范围很重要,因为它意味着机器人不能通过刷新页面或重新开始新挑战来重置其行为特征。该系统还将会话元数据馈送到下游检测层,以进行额外的影子模式启发式和会话分析、预测与实际完成,以及会话不当行为启发式。这些边缘侧观察被记录用于检测改进目的,并调整 [机器人评分](https://developers.cloudflare.com/bots/concepts/bot-score/)。

**4. 隐私设计**
Precursor 的设计旨在收集信号,以帮助区分人类模式与自动化和滥用模式。

事件监听器捕捉识别自动化和滥用所需的最小信息。例如,键盘活动作为时间和节奏捕捉,而不是实际按下的键。此外,行为信号被评估为聚合模式,而非个别行为,并内部为 Cloudflare 的机器人检测系统所使用;它们不会暴露给客户仪表板或与用户账户、登录身份或持久性配置文件相关联。

综合来看,这允许 Precursor 维护一个持续发展的行为评估,最大限度地提高精度,同时最小化对良好用户的摩擦。

### 每会话分析

为了支持这一新的检测层,我们正在引入基于会话的视图的安全分析。这些仪表板将视角从单个请求转向完整的访客旅程。你现在可以回答如下问题:
1. 我的站点上典型会话是什么样的?
2. 会话在哪些地方偏离了预期的行为?
3. 哪些会话在一段时间内显示出自动化的迹象?

![使用安全分析探索你唯一的机器人流量的基于会话的视图。](http://pic.zhso.org/2026/07/13/edaabff4adc9.png)
*使用安全分析探索你唯一的机器人流量的基于会话的视图。*

这些分析现在捕获每请求分析无法捕捉到的信息——尤其是请求之间发生的行为。Precursor 直接馈入现有系统,如机器人评分、挑战决策和安全规则,因此您可以立即受益于这一附加上下文。

### 下一步

Precursor 是扩展整个应用程序机器人检测的基础。我们将继续扩展安全行为信号的范围和深度,了解会话级洞察如何影响我们的机器人管理保护,以及可视化和处理会话数据的新方式。随着机器人的演变,检测需要超越孤立的检查点,深入用户活动的整个流动中。

### 开始使用

Precursor 现在正在推出,可以直接通过您的 Cloudflare 仪表板启用。Precursor 将在今年晚些时候正式发布之前免费使用。开始使用非常简单:[
启用 Precursor](https://dash.cloudflare.com/?to=/:account/:zone/security/settings) 在您的区域并选择您希望如何严格验证会话。您可以以低摩擦模式在后台观察行为,或者在会话尚不存在时通过强制实施挑战来要求全面验证会话。

一旦启用,Precursor 会立即开始增强现有的机器人防御,无需对您的应用程序进行更改。如果您已经在使用机器人管理或 Turnstile,Precursor 将这些保护扩展到挑战之外,并覆盖剩余会话。启用 Precursor 以扩展检测,覆盖整个人员会话,包括您已经保护的时刻之间的活动。

---

原文链接:[点击查看](https://blog.cloudflare.com/introducing-precursor/)

评论

暂无评论。