周一,一场针对npm生态的网络钓鱼攻击导致数十亿次下载的Node.js软件包被恶意代码注入,波及全球最活跃的开发者之一。据安全联盟报告,这是近年来规模最大的一次软件供应链攻击。
攻击者通过伪造的support@npmjs[.]help邮件诱骗开发者qix登录虚假双因素认证页面,该页面托管于BunnyCDN并指向俄罗斯服务器。攻击者借此获取账户凭证与2FA令牌,完全控制其维护的chalk和debug-js等高流量包。
恶意代码极为隐蔽,仅在检测到window.ethereum存在时激活,劫持approve、transferFrom等以太坊核心交易函数,将资金重定向至指定钱包地址:0xFc4a4858bafef54D1b1d7697bfb5c52F4c166976。在Solana链上,攻击则用无效字符串覆盖收款人字段,直接中断转账。
此外,攻击还通过篡改fetch和XMLHttpRequest请求,扫描响应中类似钱包地址的内容,并替换为280个预设目标之一,制造高度欺骗性的交易行为。
尽管攻击覆盖面广,链上数据显示最终收益极低:仅窃取约5美分以太币及价值20美元的非流动性memecoin,总金额不足600美元。
MetaMask团队表示,得益于严格的版本锁定机制、分阶段发布策略以及LavaMoat与Blockaid双重防护,其客户端未受波及。这两项技术分别实现运行时隔离与受感染地址实时标记,有效阻断威胁传播。
Ledger首席技术官Charles Guillemet警告称,此类恶意代码已嵌入超过十亿次下载的包中,其本质是利用开发者信任关系进行钱包地址替换,对去中心化金融生态构成持续威胁。
值得注意的是,此次事件紧随ReversingLabs披露的另一案例——攻击者利用以太坊智能合约隐藏命令与控制通道,将恶意通信伪装为正常链上调用,进一步揭示出攻击手段正向协议层渗透的趋势。