当扫描器未能发现攻击时:Cloudflare 客户端安全如何保护在线商店
内容提要
Cloudflare 的客户端安全机器学习模型在真实流量中发现并拦截了四类恶意 JavaScript 操作,共八个载荷,而 VirusTotal 和 URLScan 几乎都未识别。这些脚本分别用于劫持联盟佣金、无点击盗取佣金、植入远程代码后门,以及针对付费移动流量的隐蔽监控与广告替换。它们通过设备、时间、地域等条件门控隐藏自身,传统扫描难以发现。Cloudflare 用图神经网络结合大模型分析代码结构,实现规模化检测。
延伸解读
传统扫描工具为何失效
文章指出,VirusTotal 和 URLScan 几乎都未能识别这八个恶意载荷,其中一个载荷在 URLScan 上索引了近两年半仍无分类。原因在于这些脚本通过设备、时间、地域等条件门控隐藏自身,且没有通用签名。传统扫描依赖已知哈希或静态特征,而攻击者可以轻易改变代码外观。因此,仅靠扫描工具无法应对此类威胁,需要能理解代码结构的机器学习模型。
机器学习如何识别恶意 JavaScript
Cloudflare 使用图神经网络(GNN)将 JavaScript 视为图结构,分析代码符号间的调用关系,从而识别混淆和压缩后的可疑模式。GNN 标记的恶意脚本(不到总流量的 0.3%)会交由 Workers AI 上的轻量级大模型二次确认,降低误报。对于复杂脚本,还会用多个前沿模型作为“教师”进行投票,按模型评分加权得出概率分布,并反馈给 GNN 训练,形成持续改进的闭环。
四类攻击对商家的实际影响
文章详细描述了四类操作:劫持联盟佣金、无点击盗取佣金、植入远程代码后门、针对付费移动流量的隐蔽监控与广告替换。它们分别导致商家支付不应得的佣金、失去对浏览器代码的控制、以及丧失关键会话分析和客服支持。这些攻击不仅造成直接经济损失,还可能破坏商家与合作伙伴的信任关系,且攻击者通过条件门控确保只有特定受害者会触发恶意行为,使常规检查难以发现。
防御建议与持续监控的重要性
文章强调,看到文件不等于理解文件。由于恶意脚本会等待特定条件才激活,单次页面检查远远不够。商家需要持续的浏览器可见性,以捕捉脚本何时唤醒、隐藏什么、拦截什么以及接下来获取什么。此外,应警惕供应链风险,如通过标签管理器传播的恶意脚本,以及仿冒域名(如 adtargett[.]com 模仿 adtarget[.]com)。Cloudflare 的客户端安全方案通过实时分析代码结构,能在扫描工具遗漏时发现威胁。
Q&A
Cloudflare 的客户端安全机器学习模型是如何检测恶意 JavaScript 的?
Cloudflare 使用图神经网络(GNN)将 JavaScript 代码视为图结构进行分析,识别可疑模式,不依赖已知的 URL 或字节签名。GNN 标记为恶意的脚本(不到总分析流量的 0.3%)会发送到 Workers AI 上的轻量级大语言模型(LLM)进行二次判断,以减少误报并保持高召回率。对于最复杂的脚本,还会使用多个前沿模型(称为“教师”)作为独立代理进行分析,并通过加权投票产生标签分布,反馈给 GNN 训练。
Cloudflare 发现的四类恶意 JavaScript 操作分别是什么?
四类操作是:1)下班后联盟佣金劫持者:通过设备与时间门控、动态页面监控、点击拦截和多天冷却期劫持联盟佣金;2)无点击联盟盗窃:利用屏幕外 iframe 和自动点击隐藏链接,无需用户点击即窃取佣金;3)旧搜索破坏者变种:在店铺中植入后门,可远程执行任意 JavaScript,并收集遥测数据;4)付费移动端伪装者:针对活动标记的移动访客,禁用监控工具,替换广告和分析,并隐藏支持功能。
为什么传统扫描工具如 VirusTotal 和 URLScan 难以检测这些恶意脚本?
这些脚本通过设备、时间、地域等条件门控隐藏自身,只有在特定条件下才会激活恶意行为。它们没有通用的签名或常见的隐藏技术,且会动态加载远程代码。VirusTotal 和 URLScan 几乎都未识别这些载荷,例如八个载荷中有七个完全未被 VirusTotal 收录,URLScan 也未给出恶意判定。传统扫描依赖已知签名或单次页面检查,无法捕捉条件触发和动态行为。
付费移动端伪装者(Operation 4)如何避免被检测到?
该脚本设置多层门控:仅针对特定店铺主机、移动视口宽度小于 477 像素、通过特定 UTM 媒介(如 ppc、cpc、sms 等)首次访问且为会话前两页的访客。它还会查询第三方 IP 情报 API,要求美国移动消费者连接,并排除商业网络、云提供商、VPN、Tor 等。此外,它使用包含 325 个 IP 字符串的拒绝列表,并排除特定地区和城市。这些条件使得脚本在笔记本电脑、企业网络、云环境或 VPN 上保持休眠,从而避开工程师和扫描器。
Operation 3 中的脚本如何实现远程代码执行?
该脚本通过硬编码的域名(如 scrprime[.]com、youronlinesearches[.]com、jullyambery[.]net)与远程服务器通信,可以发送访客遥测数据、请求新指令,并直接下载新的 JavaScript 到购物者浏览器中执行。攻击者无需修改服务器上的任何文件,即可在店铺前端运行任意代码,相当于一个实时后门。
这些恶意脚本对电商店铺造成了哪些具体损失?
损失包括:1)联盟佣金被劫持,导致向未带来推荐的账户支付不应得的佣金,或错误归因于合法合作伙伴;2)客户获取经济性被破坏,合法购买可能被记入未 earned 的联盟账户;3)店铺失去对客户浏览器中运行代码的控制,攻击者可跟踪会话并推送任意 JavaScript;4)付费移动流量被针对,广告归因被转移,九个监控工具的分析数据丢失,支持聊天和联系表单被隐藏,影响客户咨询和异常报告。