XCSSET v40回归:macOS开发者遭遇新型无文件供应链攻击
XCSSET v40 macOS恶意软件通过Xcode项目供应链攻击开发者,采用无文件内存执行和Chrome CDP劫持模块,窃取凭据与加密货币。本文分析其感染链、新模块及检测缓解措施,帮助安全团队防范这一高级macOS威胁。
⛓️ High 供应链攻击
沉寂数月后,XCSSET恶意软件发布v40版本,针对macOS生态中的开发者,通过污染Xcode项目和Git仓库发起供应链攻击。新版本采用内存驻留、多态载荷与文件less持久化机制,显著增强隐身能力,并新增Chrome劫持后门及Telegram木马化模块。Palo Alto Unit42披露其攻击链包含四个阶段,最终在内存中执行核心模块并清除磁盘痕迹。
来源:Palo Alto Unit42 | 2026-07-31 | 原文链接
🔍 关键发现
- XCSSET v40将核心逻辑隐藏在内存空间,采用无文件持久化和动态内存执行,大幅降低数字足迹
- 新增基于Chrome DevTools Protocol(CDP)的Chrome劫持后门,可拦截流量、篡改加密货币交易并窃取凭据
- 新增Telegram木马化模块,扩展了针对开发者的攻击面
- 攻击者使用多层密文移位混淆技术,并轮换C2基础设施以规避检测
- 自2026年4月起通过数十个合法应用(含数千活跃用户)的Xcode项目传播,且能感染目标系统上所有现有Xcode项目
⚔️ 攻击链分析
1. 恶意脚本注入良性Xcode项目或Git仓库,开发者本地构建时触发感染 2. 初始loader建立C2通信,收集系统指纹并下载后续模块 3. 投放临时staging小程序,将最终核心模块加载至内存 4. 核心boot模块在内存中加载专门模块(键盘记录、浏览器劫持等),终止自身进程并删除磁盘文件
🚩 失陷指标 (IOC)
暂无公开具体IoC(文章中未披露C2域名或哈希)可检测异常Xcode项目脚本、Chrome启动参数中的--remote-debugging-port及非授权CDP连接
🛡️ 缓解建议
- ✅ 审查Xcode项目中的构建脚本和Run Script阶段,警惕可疑的下载器或混淆代码
- ✅ 监控Chrome进程启动参数,尤其防止被注入--remote-debugging-port等DevTools远程调试参数
- ✅ 部署EDR(如Cortex XDR)检测进程注入、内存驻留及无文件攻击行为
- ✅ 对开发者机器实施应用白名单,限制未签名二进制或临时脚本执行
- ✅ 定期审计Git仓库依赖及第三方开源项目,防止恶意代码混入供应链
涉及漏洞:[]
⚠️ 本文仅供安全研究与学习,IOC 信息请勿用于非法目的。
🤖 常见问题解答(FAQ)
❓ 如何早期发现XCSSET v40感染?
监控Xcode项目的构建阶段脚本是否包含网络下载或加密载荷;检测Chrome启动参数是否含--remote-debugging-port;使用EDR监控进程注入和内存异常,以及敏感API(window.fetch)挂钩行为。
❓ XCSSET v40的持久化机制是什么?
采用无文件持久化,核心模块仅在内存运行。它通过Chrome包装器在浏览器启动时重新启动boot模块,同时利用CDP实现持久控制,磁盘上不保留恶意文件。
❓ Chrome劫持模块如何窃取数据?
恶意二进制连接受害者本机的CDP端口,建立WebSocket连接至C2获取动态JS脚本。注入到每个新标签页后,覆盖fetch/XMLHttpRequest、MetaMask provider和密码填充字段,实现流量拦截、加密货币地址篡改及凭据盗窃。