16:35:21 阅读量:86

警惕 NuGet 供应链投毒:伪造 Braintree SDK 窃取支付数据与 API 密钥

#供应链攻击 #NuGet #Braintree.Net #木马投毒 #支付安全

事件背景与影响

近期,安全研究人员发现 NuGet 仓库中出现了一个恶意包“Braintree.Net”,其伪装成著名的支付服务商 Braintree 的官方 SDK。攻击者通过“拼写劫持”(Typosquatting)手法,诱导开发者在集成支付功能时错误地安装该恶意包。

从我们的应急响应经验来看,针对开发生态的供应链攻击正呈现出精准化、隐蔽化的趋势。尽管该恶意包在 NuGet 上的下载量显示极高,但据分析,其中绝大多数为攻击者刷出的虚假下载记录,真实受害者的安装量约为 334 次。虽然受害者规模看似有限,但由于其目标明确为支付集成,一旦被成功植入,商户的生产环境数据将面临极高的泄露风险。

攻击链分析与技术手法

该恶意 SDK 在伪装上下足了功夫。攻击者不仅克隆了官方 SDK 的名称,还复制了 README 文档,甚至在包元数据中填入了“Braintree”作为作者,试图通过这种“像素级”的复刻骗过开发者的警惕性。

从技术实现上看,该恶意包采用了多阶段植入手法:

首先,它植入了真实的 Braintree.dll 程序集,确保调用其 API 的应用程序能够正常处理支付流程,从而在功能层面掩盖恶意行为,让开发者难以通过业务异常察觉被攻击。

其次,它通过三个关键触发点进行数据窃取:

  1. 模块初始化:在程序集加载瞬间,自动收集系统环境变量、配置文件及云服务元数据。
  2. 密钥窃取:当程序配置生产环境网关时,恶意代码会拦截并外传商户 ID 及 API 私钥。
  3. 支付数据窃取:通过挂钩(Hook)支付操作,实时截获信用卡号、CVV 及过期日期。

值得注意的是,该攻击者采取了“生产环境优先”的策略,仅在检测到生产环境时才会触发核心的信用卡与 API 密钥泄露逻辑,这使得在沙箱或测试环境的初步审查中很难直接发现恶意行为。

隐蔽的数据外传与持久化

在数据传输方面,恶意包使用了 XOR 编码来隐藏外传的终端地址,且通信目标伪装成知名金融品牌域名,极具迷惑性。

从我们的应急响应经验来看,这一环节是很多企业容易忽视的:攻击者在代码中大量使用了空 catch 块,无论网络请求是否失败,程序都不会抛出异常或记录日志,从而确保受感染的宿主应用能够“静默”运行,不留下任何运维痕迹。

Solar 安全建议

针对此类供应链投毒事件,我们建议广大开发者及企业采取以下防护措施:

  1. 立即排查:检查项目依赖项,若发现存在“Braintree.Net”包,请务必立即卸载,并替换为官方认证的“Braintree”包。
  2. 凭证轮换:凡是引用过该恶意包的生产环境,必须视作凭证已全量泄露。请立即重置所有涉及的商户 API 密钥、连接字符串及相关云服务 IAM 凭证。
  3. 强化审计:在 CI/CD 流水线中引入依赖项锁定(Lock files)机制,并定期对依赖库进行安全审计。对于涉及支付、敏感凭据的 SDK,安装前务必核对发布者身份及仓库源信息。
  4. 网络管控:在生产环境防火墙策略中,限制服务器对不可信域名的非必要外联,重点监控出站流量中是否存在异常的 API 密钥格式或支付数据特征。

类似攻击近年来明显增加,开发者在引入第三方库时,必须保持“零信任”心态,确认来源的官方性。如果您想了解勒索病毒的最新发展趋势,或在实际业务中遇到类似安全事件,欢迎关注“Solar应急响应团队”。

全国热线:400-613-6816 官网:www.solarsecurity.cn / www.sierting.com