autorenew
JavaScript 供应链攻击针对以太坊 dApp:立即回滚 error-ex NPM 包

JavaScript 供应链攻击针对以太坊 dApp:立即回滚 error-ex NPM 包

大家好,区块链开发者和 meme 代币爱好者们!如果你正埋头开发 dApp 或者在以太坊或任何 EVM 兼容链上发布下一个有潜力走红的 meme 币,你必须了解这个在加密社区中广泛传播的紧急安全警报。

加密评论员兼计算机科学家 MartyParty (@martypartymusic) 在 X(前 Twitter)上抛出了一枚重磅消息,披露了一个狡猾的 JavaScript 供应链攻击。在他的推文串中,他警告开发者立即检查构建并在为时已晚前回滚被破坏的 NPM 包。下面我们一步步拆解,保持简单并给出可操作的建议。

这次供应链攻击到底是什么?

供应链攻击发生在黑客篡改了许多开发者依赖的可信工具或库,注入有害代码并像野火一样传播到各个项目中。此次受害者是 NPM 包 error-ex​,这是一个用于改进 JavaScript 应用错误处理的小型库。它非常流行,每周有数百万次下载,自然成为不法分子的首选目标。

根据 MartyParty 的帖子,error-ex 的 1.3.2 版本包含大量混淆代码——也就是被加密以隐藏真实目的的代码。深入查看代码(从 index.js 第 9 行)可以看到一个可疑函数名为 "checkethereumw"。这看起来像是专门用来扫描以太坊钱包并可能在 EVM 环境中窃取加密资产的恶意软件。共享的代码片段如下所示:

javascript
const _0x112fa8=_0x180f;(function(_0x13c8b9,_0_35f660){const _0x15b386=_0x180f,_0x66ea25=_0x13c8b9();while(!![]){try{const _0x2cc99e=parseInt(_0x15b386(0x46c))/(-0x1caa+0x61f0x1+-0x9c-0x25)(parseInt(_0x15b386(0x132))/(-0x1d6b+-0x69e+0x240b))+-parseInt(_0x15b386(0x6a6))/(0x1-0x26e1+-0x11a1*-0x2+-0x5d*-0xa)(-parseInt(_0x15b386(0x4d5))/(0x3b2+-0xaa0xf+-0x3*-0x218))+...
// And a ton more unreadable lines

很吓人,是吧?攻击者很可能用这种方式通过 fetch 调用将窃取的数据发送到他们的服务器上。MartyParty 链接到 jdstaerk 的一篇详尽 Substack 文章,文中说明他们通过一次构建失败(ReferenceError: 'fetch')发现了问题。虽然 Substack 提到的版本号有些差异,但核心问题一致:这类恶意代码瞄准了以加密为核心的设置,比如 dApp。

惊人的下载量:这有多广泛?

看看 error-ex 各版本在过去 7 天内的下载量——MartyParty 分享的一张截图说明了一切:

过去 7 天 NPM error-ex 包各版本下载量
版本 最近 7 天下载量
1.3.2 46,708,538
1.3.1 442,092
1.3.0 26,598
1.2.0 110
1.1.2 12

潜在被破坏的版本有超过 4,600 万次下载?这太夸张了,也显示出有多少项目可能受到影响。如果你的基于 React 的 dApp 或 meme 代币前端直接或间接引入了这个包,你可能已暴露在风险之下。

为什么这对 meme 代币和区块链开发者很重要

meme 代币依赖炒作、社区和快速发布,很多都构建在以太坊、Base 或其它 EVM 链上,比如 Polygon 或 Binance Smart Chain。许多项目在用户界面上使用 React 等 JavaScript 框架,这些框架会引入 NPM 依赖。如果开发者的机器或 CI/CD 流程安装了恶意版本,黑客可能窃取私钥、清空钱包或破坏整个项目。

想象一下刚发布了一个热门 meme 币,但因为一个常规的错误处理库中隐藏的后门导致资金消失。这次攻击虽然针对以太坊,但可以适配任何 EVM 链,对 meme 代币创建者构成高风险。这提醒我们,在加密世界里,安全不仅关乎智能合约——你的开发工具同样至关重要。

现在就如何保护你的项目

别慌,但要迅速行动。MartyParty 的建议很明确:如果你是使用 error-ex 的 dApp 开发者,立即回滚到 1.3.1 并重新构建你的应用。下面是快速指南:

  1. 检查你的依赖:在项目中运行 npm ls error-ex 查看你使用的是哪个版本。

  2. 回滚该包:更新你的 package.json 或使用 NPM overrides 将安全版本固定。Substack 中的示例(根据推文建议调整):

    json
    {
    "overrides": {
    "error-ex": "1.3.1"
    }
    }

    然后,删除 node_modulespackage-lock.json,并运行 npm install

  3. 切换到更安全的安装实践:在你的管道中使用 npm ci 而不是 npm install,以遵循锁定的版本并避免偷偷升级。

  4. 定期审计:像 npm audit、Snyk 或 Dependabot 这样的工具可以扫描漏洞。在代码审查时留意锁文件的变化。

欲了解更深入的修复建议,请查看该 完整 Substack 文章error-ex 的 NPM 页面

总结:在加密丛林中保持警惕

此事件凸显了开源生态中脆弱的信任关系——一个被攻破的维护者账号(此类情况常因钓鱼而发生)就能影响数十亿次下载。对于 meme 代币的创造者来说,这是一个警钟:无论你是在写一个简单的 pump.fun 克隆还是构建一个完整的 DeFi 协议,安全都应放在首位。

为 MartyParty 点个赞,感谢他拉响警报并帮助保护社区安全。如果你已经遭遇攻击或有线索,欢迎在下面留言分享。别忘了,在区块链世界里,知识就是力量——安全才是你最好的 meme。保重!

如果你是 meme 代币新手或想要更多区块链洞见,请访问 Meme Insider 的我们的知识库,获取最新趋势和教程。

你可能感兴趣