Cloudflare Precursor: 通过持续的客户端信号检测代理行为

Cloudflare Precursor: 通过持续的客户端信号检测代理行为

Cloudflare 推出了 Precursor,这是一个基于会话的客户端验证系统,旨在通过在访客与 Web 应用程序交互时持续收集行为信号来检测代理行为。与依赖孤立检查点的传统机器人检测不同,Precursor 通过评估整个用户旅程来区分人类流量与能够在短时间内模仿合法行为的高级自动化程序。

持续行为分析 vs. 孤立挑战

Precursor 将机器人检测从单点检查转变为持续评估。虽然像 Cloudflare Turnstile 这样的工具会在特定的高风险端点(如登录或结账)验证用户,但 Precursor 提供了对整个会话的可见性。这一点至关重要,因为现代机器人通常可以执行 JavaScript、使用真实的浏览器环境并通过单个 CAPTCHA,但它们很难在一段时间内复制一致的人类行为。

人类交互的物理特性

Precursor 通过分析受人类生理和认知过程约束的信号来识别自动化程序。关键指标包括:

  • 腕部转动 (Wrist Pivot): 人类的鼠标移动通常遵循基于腕部和前臂旋转范围的弧线,而机器人通常使用线性插值或 Bézier 曲线。
  • 认知负荷 (Cognitive Load): 人类在感知视觉元素(如复选框)与与其交互之间存在可衡量的延迟。
  • 生理震颤 (Physiological Tremor): 人类手部表现出一种自然的振荡频率,机器人很难在整个会话期间令人信服地模拟这种频率。

技术架构

Precursor 通过一个四阶段过程运行,无需网站所有者进行手动配置即可评估行为。

1. 注入与收集

Cloudflare 会在 HTML 响应通过网络时自动注入一个轻量级、经过混淆的 JavaScript bundle。该脚本通过附加事件监听器来捕获诸如指针移动、键盘活动、焦点变化和页面可见性等信号。这些事件在发送到评估层之前会被序列化并在内存中进行缓冲。

2. 评估层

在边缘服务器上,一个调度器运行一系列评估器来处理传入的行为流。这些评估器会交叉引用数据——例如,验证键盘事件是否仅在文本字段获得焦点时发生——以生成用于共享检测注册表的信号。

3. 会话集成

由于数据是会话范围的,机器人无法通过简单地刷新页面来重置其行为特征。这些数据会输入到下游的检测层,包括机器人评分和会话违规启发式算法,以实时调整会话的机器人评分。

4. 隐私框架

为了维护隐私,Precursor 收集最少的信息。键盘活动被记录为时机和节奏,而不是实际的按键内容。行为信号被处理为聚合模式,并且不会与用户账户、持久化配置文件或在客户仪表板中公开。

基于会话的安全分析

除了检测系统,Cloudflare 还在 Security Analytics 中引入了基于会话的视图。这允许管理员超越单次请求日志,转而分析完整的访客旅程,识别会话何时偏离了预期的行为模式,以及哪些会话在一段时间内表现出自动化的迹象。

社区观点与技术批判

在发布公告后,技术社区针对该方法的有效性和包容性提出了几点担忧:

可访问性与包容性

批评者认为,依赖鼠标移动模式可能会在无意中惩罚依赖辅助技术或非传统输入方式的用户。

"I can 1000% guarantee this will adversely impact assistive technology. You can tell it will because they don't mention any testing with regards to assistive technology."

模拟的对抗性博弈

有些开发者建议,类似人类的 "jitter"(抖动)和行为数据语料库可能会允许高级机器人绕过这些检查,类似于 RuneScape 等游戏中的游戏机器人如何进化以模仿人类行为。

"What prevents bots/agents from just adding 'jitter' to their movements that mimics how humans move their cursor?"

监控与中心化

存在关于机器人仲裁中心化以及这些数据可能被用于监控的更广泛担忧。

"It's a bit alarming how cloudflare is establishing itself as arbiter of all things bots...both on blocking and allowing. Doesn't seem healthy for the internet as a whole."

实施

Precursor 目前正在逐步推出,并可通过 Cloudflare dashboard 可用。它在今年晚些时候发布 General Availability (GA) 版本之前是免费使用的。用户可以在低摩擦的后台模式下启用它,或者通过 Challenges 强制执行完整的会话验证。

Sources