NPM 包裹恶意软件攻击及 LavaMoat 防御
2025-09-09
近期,一个名为 `is-arrayish` 的 NPM 包裹被发现包含恶意代码,攻击者试图窃取用户交易中的 ETH。该恶意软件通过覆盖浏览器中的 `fetch`、`XMLHttpRequest` 和 `window.ethereum.request` 等方法实现。文章作者并没有详细分析攻击过程,而是演示了如何使用 LavaMoat 来防止此类攻击。LavaMoat 通过将每个依赖项的模块放入单独的词法全局上下文(称为 Compartment)中,并仅允许访问策略中列出的全局变量和导入来限制恶意代码的访问权限,从而有效阻止了恶意代码修改交易地址。即使恶意软件编写得更好,也难以绕过 LavaMoat 的防御。