以太坊和 Solana 遭遇大规模 npm 供应链攻击,损失仅限于微小金额
周一,一场网络钓鱼电子邮件引发的恶意代码注入席卷了每周下载量达数十亿次的软件包,导致 Node.js 最活跃的开发者之一受到影响。研究人员称这是近年来最大规模的软件供应链攻击。
尽管攻击范围广泛,但根据安全联盟周二发布的报告,攻击者的收益几乎可以忽略不计——仅窃取到价值约 5 美分的以太币和约 20 美元的非流动性 memecoin,交易总额不足 600 美元。然而,这次事件让安全团队面临巨大的后端系统升级压力,以抵御未来可能的类似攻击。
一位备受关注的 npmjs 开发工具维护者“qix”,负责 chalk 和 debug-js 等库(每周下载量高达数十亿次),上周因收到来自 support@npmjs[.]help 的邮件而遭到入侵。经调查发现,该域名曾指向一台俄罗斯服务器,并被重定向到托管在内容分发网络 BunnyCDN 上的一个伪造双因素身份验证页面。
攻击者通过凭证窃取程序获取了用户名、密码和 2FA 代码,并将其发送到远程主机。随后,他们获得了对 qix 账户的完全访问权限,重新发布了所有相关软件包,并植入了以加密货币为重点的有效载荷。
Node 包管理器(简称 npm,而非 NPM)就像是开发者的应用商店,程序员可以在此下载代码块(称为包),从而避免从头开始编写所有内容。维护者则是创建和更新这些软件包的个人或组织。
袭击是如何发生的
注入的恶意代码非常简单且隐蔽。它会检查 window.ethereum 是否存在,如果存在,就挂载到以太坊的核心交易函数中。对于 approve、permit、transfer 或 transferFrom 的调用会被悄无声息地重定向至一个特定钱包地址:“0xFc4a4858bafef54D1b1d7697bfb5c52F4c166976”。
在 Solana 平台上,恶意代码则会用以“1911…”开头的无效字符串覆盖收件人信息,从而彻底中断转账操作。
此外,网络请求也未能幸免。通过劫持 fetch 和 XMLHttpRequest,该恶意软件扫描 JSON 响应中的子字符串,寻找与钱包地址相似的内容,并将其替换为 280 个硬编码选项之一,使得交易看起来具有欺骗性。
袭击的影响
然而,尽管此次攻击分布广泛,其实际影响却相当有限。
根据安全联盟提供的链上数据,攻击者最终只收到了约 5 美分的以太币以及价值约 20 美元的非流动性 memecoin,总交易额不到 600 美元。
流行的浏览器钱包 MetaMask 在社交媒体平台 X 上表示,由于采用了严格的代码版本锁定机制,包括手动和自动检查、分阶段发布更新等措施,因此未受到本次 npm 供应链攻击的影响。此外,MetaMask 还结合了两项关键技术:LavaMoat(即使恶意代码插入也能拦截)和 Blockaid(快速标记受感染钱包地址),从而有效阻止了此类威胁。
Ledger 首席技术官 Charles Guillemet 同时发出警告,指出这种恶意代码已被嵌入下载量超过十亿次的软件包中,其目的在于悄悄替换交易中的钱包地址。
值得注意的是,这起事件紧随另一起由 ReversingLabs 上周披露的安全案例之后。后者涉及利用以太坊智能合约隐藏恶意软件链接的技术,将命令与控制流量伪装成普通的区块链调用。
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代币币情的观点或立场