#科技资讯 开发者请注意:Polyfill.js 出现供应链攻击调用该脚本会跳转到非法网站,请立即删除该脚本并清理网页缓存。Polyfill.js 在全球被超过 10 万个网站使用,2 月份项目域名和 Github 账号被某个公司买下,之后就被投毒用于跳转非法网站,有开发者发现问题提交了 issues 结果直接被删除。查看全文:https://ourl.co/1046
Polyfill.js 是个非常流行的第三方开源库,网站可以通过集成该开源库实现支持旧版浏览器,例如古老的 Microsoft IE 6.0~10 等浏览器。
该开源库的拥有者使用 cdn.polyfill.io 向网站开发者提供集成,开发者只需要调用这个 js 即可实现兼容,目前全球有超过 10 万个网站使用该脚本。
从 2024 年 2 月起,某个公司购买了这个域名和 Github 账户,接着该公司修改脚本开始投毒,当用户通过搜索引擎进入带有该脚本的网站时,则会随机跳转到非法网站。
在 Github 上已经有不少开发者提交这个问题的反馈,但这些反馈都会删除,因为这不是中毒,而是现在拥有该账户的公司故意而为之,所以他们尽可能避免让更多开发者知道这个情况。
为了尽可能坑害更多最终用户,Polyfill.js 脚本设置了多种技术措施避免被发现,例如直接访问网站时不会跳转,通过谷歌等搜索引擎进入网站就会跳转;检测到网站管理员访问时不会跳转;设置了延时跳转避免有人尝试进行分析;随机性跳转而非每次都跳转避免被分析。
这是一种非常典型的供应链攻击,即通过篡改常用的上游软件包投毒实现攻击,相比之下攻击开发者账户进行投毒费时费力可能效果还不好,所以这家公司选择直接购买域名和 Github 账号,这样就可以为所欲为。
Polyfill.js 开发者也在 X 平台上发布消息建议所有网站都不要使用 Polyfill.js,因为现代浏览器已经不需要这个老旧的脚本,他本人没有域名和项目的控制权,因此不能做任何事。
此次供应链攻击在互联网领域引起了非常大的麻烦,因为使用 Polyfill.js 的网站实在是太多了,尤其是很多电商网站为了兼容老旧的浏览器一直使用该脚本,这极大地放大了攻击范围。
如果 Web 开发者现在才知道消息那么赶紧去删掉 Polyfill.js 吧,以免出现跳转非法网站引起投诉或其他问题。
最后谷歌也已经知道这件事,现在谷歌正在 Google Ads 广告系统里批量屏蔽所有调用 Polyfill.js 的网站,即避免网站使用谷歌广告系统投放广告,结果用户在其他网站上点击广告进入非法网站。