在一次复杂的供应链攻击中,恶意行为者潜入了广泛使用的 JavaScript 库 lottie-player,注入了在合法网站上打开 Web3 钱包连接提示的代码。如果用户接受该提示,攻击者就可以直接从加密货币钱包中抽走资产。lottie-player 的下载量超过 400 万次,在众多高流量网站的动画嵌入中扮演着重要角色,此次事件的影响凸显了开源库固有的安全风险。
一名用户首先在 GitHub 上报告了这一漏洞,他在网站上集成 lottie-player 时发现了意外的 Web3 钱包提示。进一步调查发现,发布于格林尼治标准时间 2024 年 10 月 30 日晚上 8:12 至 9:57 之间的 lottie-player 2.0.5、2.0.6 和 2.0.7 版本已遭到入侵。攻击者在未经授权访问与该库维护者之一 Aidosmf 相关联的令牌后,成功注入了恶意代码。这样,他们就可以通过 npm 和主要 CDN 传播受攻击的版本,影响那些在没有版本锁的情况下获取最新版本的网站。
注入的代码会显示一个虚假的 Web3 钱包连接请求,试图利用受影响网站的访问者,尤其是加密货币领域的访问者。值得注意的是,去中心化金融(DeFi)平台 1inch 证实,一些用户可能遇到了钓鱼提示。据 Scam Sniffer 报道,一名受害者已经报告称,由于恶意钱包连接企图,他损失了 10 个比特币(价值约 723,436 美元)。
发现攻击后,lottie-player 团队迅速发布了一个干净的 2.0.8 版本,开发者可以用它来替换被攻击的文件。此外,2.0.5 至 2.0.7 版本已从 npm 和 CDN 提供商(如 unpkg 和 jsdelivr)中删除,以遏制漏洞并限制暴露。
但是,除非更新到安全版本(2.0.4 或 2.0.8),否则任何直接引用受影响版本的网站仍然存在漏洞。
此次攻击发生后,安全团队应采取以下措施:
- 审计依赖关系: 进行彻底审计,找出依赖于受攻击的 lottie-player 版本的任何项目。鉴于该库的广泛使用,这一步骤对于保护网络资产和用户信息至关重要。
- 更新或还原: 立即更新到安全版本 2.0.8 或恢复到受威胁前的版本 2.0.4。鼓励仍在使用受影响版本的网站立即采取行动,防止潜在的漏洞。
- 实施版本锁定: 避免在未指定安全和经过验证的版本的情况下使用最新发布的版本。将依赖关系固定到经过验证的特定版本,可以降低自动暴露于未来供应链攻击的风险。
- 监控异常交易: 鉴于至少有一起重大损失的报告,企业应积极监控用户交易中的可疑活动,尤其是 Web3 钱包连接提示和签名。
发表评论
您还未登录,请先登录。
登录