第三方CDN资源成为前端供应链投毒攻击

最近,发现了一个关于 Ledger 前端库的安全问题。黑客获得了该库的发布权限,并在 ledgerhq/connect-kit 库中植入了恶意代码,随后发布了一个新版本。通常情况下,这不会立刻造成安全问题,因为只有那些更新了该库版本并将新版本代码集成到他们网站中的用户才会受到恶意代码的影响。

但是,这里有一个特殊的风险点。由于 ledgerhq/connect-kit 库的版本更新策略,任何依赖 ledgerhq/connect-kit-loader 库并使用 loadConnectKit 函数的网站,只要出现一个新的 1.x.x 版本,它们就会自动获取最新的代码。这是因为很多网站通过 CDN 地址的 @1 标记来引用这些库,这种做法会默认拉取 1.x.x 版本的最新代码,这是三方CDN前端资源版本控制的常见做法。

黑客可以利用这种机制,通过动态加载的代码发起欺骗性交易。这种依赖于第三方 CDN 源的 npm 包将成为新的供应链攻击渠道。更为严重的是,攻击者发布新版本后,用户无需主动更新就可能受到攻击。

以 premint 为例,许多前端网站依赖外部的 CDN 来引用 npm 上的包,例如 unpkg 或 cdnjs。正如下图所示,premint 直接依赖了 latest 版本。这就引入了一个风险:攻击者只需发布一个新版本,不需要用户更新,用户就可能遭受攻击。因此,使用外部 CDN 资源时,必须高度警惕安全风险。这种方法可能成为一种新形式的 CDN 投毒攻击。

上一篇:

下一篇:

发表回复

登录后才能评论