攻击者在与Arweave生态系统相关的36个npm包中植入了信息窃取程序。它专门针对开发者的账号信息、SSH密钥和Exodus加密钱包文件。安全公司JFrog将此次攻击追溯到被黑掉的维护者账户。 该恶意软件名为IronWorm,是用Rust写的。开发人员一安装npm包,它立马就启动。一旦运行,它会翻找受感染的计算机,搜刮86个环境变量和20个登录凭证文件,正如JFrog的 研究团队所发现的那样。它盯上的是AWS密钥、Anthropic和OpenAI的API密钥、npm登录信息以及加密钱包数据。
Arweave项目包携带隐藏的Rust恶意软件
攻击者黑掉了一个名为“asteroiddao”的npm账户,该账户属于asteroid-dao GitHub组,是Arweave/WeaveDB去中心化数据库项目的一部分。 与“asteroiddao”账户关联的所有包在短时间内被重新上传,每个新版本都藏着一个放在tools/文件夹里的976 KB Linux文件。该文件被设置为通过package.json中的预安装钩子自动运行,也就是说,在npm还没开始装任何东西之前,它就已经跑起来了。受害者只需运行npm install即可。
JFrog团队把这文件拆开看了,发现其打包方式旨在欺骗标准解包工具。内部是一个大型Rust程序,每个字符串都单独加密、单独锁死,这让分析难度大大增加。
当这些字符串最终被解码时,结果发现里面有GitHub API接口、凭据文件的路径、与真实GitHub用户ID关联的虚假机器人账户,还有往其他软件包仓库里塞恶意代码的模板。
IronWorm 窃取凭证后,利用这些凭证向受害者能访问的仓库推送提交。这些提交把同样的恶意二进制文件植入其他包中,这些包随后可能被发布到 npm,进而感染链条中的下一位开发者。
JFrog 在九个 GitHub 组织里发现了 57 个日期被篡改的恶意提交。这些提交使用作者名“claude”和邮箱 claude@users.noreply.github.com。时间戳被伪造,用来匹配每个仓库最近的合法提交。其中一个看起来像是 13 年前的,但 GitHub Actions 日志证实所有推送其实都发生在发现后的几天内。
受影响的组织有 asteroid-dao、weavedb、ArweaveOasis,还有几个和开发者“ocrybit”有关的个人账户。
IronWorm 还部署了一个 eBPF 内核 rootkit,用于藏匿于受感染机器中。它通过 Tor 网络与操作者通信。Rust 编译器将 rootkit 的源代码留在了二进制文件中,这是一个操作失误,使得安全分析更加容易。
一个奇怪之处在于,操作者将自己的加密货币钱包助记词直接写入了恶意软件。JFrog 认为,这是为了防止窃密程序在测试时偷走攻击者自己的账号信息。
恶意软件攻击接连不断,npm 屡遭殃及
应用安全公司 Ox Security 表示,这次攻击在早期就被拦截,还没来得及扩散到 npm 上的其他包。
恶意版本在一天内就被标记为已弃用,大部分倒填日期的提交也很快从 GitHub 上移除。
5月14日,黑客利用了一个不活跃的维护者账户,该账户属于 node-ipc,一个每周下载量超过82.2万次的软件包。攻击者通过重新注册该维护者已过期的电子邮件域名,并重置 npm 密码,从而得手。三个被篡改的变体包含窃取凭据的有效载荷,窃取90多类开发者机密信息。
安全公司 Endor Labs 和 StepSecurity 发现了一种同时发生但独立的攻击,使用名为 binding.gyp 的基于 JavaScript 的恶意软件,该恶意软件在同一时间段内也进行了类似的 npm 注册表投毒和 GitHub Actions 感染。
安装了任何受影响 WeaveDB 包的开发者应更换所有凭据,检查锁文件,确认版本是否有意外变动,并在 npm 和 GitHub 账户上开启两步验证。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.