一条广告引发的手动组装线
2024年底活跃至今的 SourTrade 恶意广告行动,正在用一种前所未有的方式颠覆网络防御体系。当零售交易者在搜索引擎或社交平台上点击看似正常的金融软件广告时,终端设备并未从远程服务器直接下载固定的可执行程序,而是在浏览器内存里现场完成了一次二进制文件的「无中生有」。
安全团队 Confiant 发现,SourTrade 攻击链路的核心在于突破了传统的恶意文件传输范式。攻击者将恶意软件拆解为无害的开源运行时组件、伪随机数据流以及指令模板,借由浏览器内部的 ServiceWorker 和 SharedWorker 机制在本地拼装出最终载荷。在整个网络传输过程中,线路上流动的数据包完全不具备已知恶意文件的特征哈希。
这种「链路上只有干净代码,终端内存才合成毒弹」的设计,让建立在哈希指纹识别(Hash Fingerprinting)和静态特征库基础上的网络安全防御全面失效。任何安全沙箱和防火墙在流量层面截获的,都仅仅是合法的 Bun 运行时和一串无意义的随机字节。
三重伪装:广告、品牌与防分析过滤
SourTrade 团伙将目标锁定在零售交易员与加密货币投资者身上。他们通过 Google Ads、Meta/Facebook 以及 Twitter/X 等主流广告平台精准投放广告,伪造了 TradingView、Solana 以及 Luno 三大知名金融与加密品牌的下载页面。该行动的覆盖范围极其广泛,横跨日本、韩国、泰国、台湾、香港、澳洲、英国、土耳其、南非、巴西、尼日利亚和玻利维亚等 12 个国家和地区,支持 25 种语言界面。
为了规避安全研究人员与自动化抓取工具的检测,SourTrade 部署了严密的防分析伪装(Cloaking)机制。当浏览器访问着陆页时,服务端会实时检验访客的浏览器指纹、IP 地址段以及 HTTP 请求头特征。如果判断为安全分析师或自动沙箱,页面将仅展示完全空白或无害的内容;只有满足特定条件的真实受害者,才能看到精心设计的高仿交易平台界面。
图:SourTrade 仿冒品牌界面与真实平台对比。来源:Confiant
通过将恶意投放隐藏在合法的广告流量池深处,SourTrade 成功在主流搜索与社交平台上维持了长期的投放周期。受害者在信任品牌背书的心理下点击广告,直接触发了后续的浏览器端组装流程。
浏览器里面的自动化兵工厂
当受害者进入伪造的下载页面并点击「下载客户端」时,真正的兵工厂在浏览器后台开始运转。整个组装链路分为四个精准衔接的阶段,全过程均在内存中完成,不依赖任何外部编译工具。
第一阶段,着陆页脚本在后台静默注册一个同源 ServiceWorker(/sw.js),并从内嵌的 JavaScript 代码中衍生出一个 SharedWorker 线程。这两个后台线程构成了后续数据调度与文件交付的基础设施。
第二阶段,SharedWorker 向服务端发起对 /config 接口的请求。服务端在验证 session 状态后,返回包含三类关键数据的 JSON 载荷:
template:包含 PE 文件头、节表结构的 Base64 编码数据及字节复制配方;random:当前 session 专用的随机种子(Seed)与生成长度;standaloneUrl:指向官方或干净镜像源的 Bun 运行时(如来自purelogicbox[.]org)下载地址。
第三阶段,浏览器在内存中启动拼装。前端脚本下载并解压(gunzip)干净的 Bun 独立可执行程序,同时利用 AES-CTR(Counter 模式)密码学算法以 session 随机种子生成伪随机字节流。随后,脚本根据 template 配方所规定的偏移映射(例如 [0, 1024, X] 意为从流 0 获取偏移 X 处的 1024 字节),将干净 Bun 程序、伪随机数据段、PE 节结构以及加密的字节码切片交错重组。
这里选择 Bun 运行时有着极强的工程算计。Bun 基于 Apple 的 JavaScriptCore(JSC)引擎开发,原生支持将 JavaScript 代码编译为 JSC 字节码并打包入 Windows 单文件可执行程序(即 .bun 节区)。攻击者只需将窃密木马(如 JSCEAL 或 WeevilProxy)打包成 JSC 字节码,嵌入合法的 Bun 可执行文件框架中,即可在无需本地编译器的前提下生成功能完整的恶意软件。
图:SourTrade 在浏览器内动态组装恶意文件的攻击架构。来源:Confiant/Cyber Security News
第四阶段,拼装好的二进制流通过 ReadableStream 被传送给第一阶段注册的 ServiceWorker。隐藏的 iframe 随即导航至同源 URL,ServiceWorker 捕获该请求并返回带有 Content-Disposition: attachment 响应头的二进制数据。在 Windows 系统看来,该下载文件直接来源于当前着陆页域名,其 Mark of the Web(MotW)凭证被标记为着陆页网站,完全避开了外部未知域名的安全预警。
「哈希免疫」背后的检测断层
SourTrade 架构最显著的突破在于破坏了以文件哈希为基石的威胁情报体系。Confiant 研究团队安全专家 Michael Steele 对此总结:「网络线路上从未存在过完整的恶意软件。」(No finished malware ever exists on the network.)
因为每次 session 请求 /config 时,服务端都会下发完全不同的 seed 和 size 参数,这导致每个受害者在本地组装出的二进制文件哈希值皆不相同。传统的 EDR(端点响应与检测)设备和网关防火墙即使拿到了某次感染的文件哈希,也无法阻断下一次针对其他用户的攻击。
在网络日志层面,安全审计人员能看到的流量记录仅包含对开源 Bun 官方组件的合法 HTTP 下载请求,以及传输中高度混淆的数据配置片段。单个组件本身完全合规,只有在受害者浏览器的内存空间汇合时,才具备恶意杀伤力。
这种架构也在不断自我演进。在 2026 年 4 月 30 日之前,SourTrade 还需要依赖从 GitHub Pages 加载外部的 StreamSaver.js 库来处理大文件下载;而在最新的版本中,攻击者已将其重构为纯内嵌的 Streaming 管道,彻底摆脱了对 GitHub 等第三方 CDN 基础设施的依赖。早在 2025 年 9 月,Bitdefender 就曾将该活动的相关变体追踪命名为 Variant.DenoSnoop.Marte.1,印证了此类利用 JavaScript 运行时进行逃逸的攻击模式正在快速演变。
一场没有软件补丁的猫鼠游戏
SourTrade 的出现暴露出防御方所面临的新困境:攻击链中使用的每一种技术——无论是 ServiceWorker、SharedWorker、ReadableStream 还是 Bun 运行时——都是符合 Web 标准的正常功能。安全厂商无法通过为浏览器或操作系统发布一个简单的漏洞补丁来消除这种威胁。
单点防御策略在这种组装式攻击面前显得捉襟见肘。要有效对抗 SourTrade 类型的恶意分发,防御体系必须从关注静态文件特征转向全链路的行为关联分析。安全监测机制不仅要审查广告来源与落地页面的防抓取伪装,更需要监控浏览器进程在发起 /config 请求后的内存行为,警惕任何将网络数据流直接组合为本地可执行文件的异样操作。
对于终端用户而言,最有效的防御手段依旧是切断攻击链路的首环节。避免点击任何搜索引擎赞助广告或社交平台外链,始终通过官方固定的域名或已验证的应用商店获取交易软件,是避免落入此类浏览器自动化兵工厂陷阱的必要准则。
参考链接:
- Confiant 恶意广告研究报告
- Cyber Security News 分析报道
- Bitdefender 恶意软件家族追踪记录