CloudFlare CDNJS 漏洞差点造成大规模的供应链攻击
编译:奇安信代码卫士
数字化时代,软件无处不在。软件如同社会中的“虚拟人”,已经成为支撑社会正常运转的最基本元素之一,软件的安全性问题也正在成为当今社会的根本性、基础性问题。
随着软件产业的快速发展,软件供应链也越发复杂多元,复杂的软件供应链会引入一系列的安全问题,导致信息系统的整体安全防护难度越来越大。近年来,针对软件供应链的安全攻击事件一直呈快速增长态势,造成的危害也越来越严重。
为此,我们推出“供应链安全”栏目。本栏目汇聚供应链安全资讯,分析供应链安全风险,提供缓解建议,为供应链安全保驾护航。
注:以往发布的部分供应链安全相关内容,请见文末“推荐阅读”部分。
上个月,Web 基础设施和网站安全公司 Cloudflare 修复了一个严重漏洞,它位于互联网12.7%的网站都在用的 CDNJS 库中。
CDNJS 是一款免费开源的内容交付网络 (CDN),为4041个 JavaScript 和 CSS 库提供服务,是继 Google Hosted Libraries 之后的第二个最流行的 JavaScript CDN。
该漏洞存在于 CDNJS 库更新服务器中,可导致攻击者执行任意命令,从而导致服务器遭完全攻陷。
安全研究员 RyotaK 在2021年4月6日发现并报告该漏洞,目前尚未发现该漏洞遭在野利用的证据。具体而言,该漏洞首先将程序包公布到使用 GitHub 和 npm 的 CDNJS 中以触发路径遍历漏洞,并最终诱骗服务器执行任意代码,从而实现远程代码执行。
值得注意的是,CDNJS 基础设施包含多个功能,可通过定期在服务器上运行脚本的方式自动更新库,从各自的用户管理 Git 仓库或 npm 包注册表下载相关文件。
RyotaK 从该机制清理包路径的过程中发现了一个问题,“从发布到 npm 的 .tgz 文件中执行路径遍历并覆写在服务器上定期执行的脚本后,可执行任意代码”。换句话说,该攻击的目标是在仓库中发布特别构造的数据包新版本,之后在将恶意包内容复制到托管在服务器上的定期执行的脚本文件过程中,通过CDNJS 库更新服务器发布,从而获得任意代码执行权限。
RyotaK 表示,“虽然利用该漏洞无需任何特殊技能,但可影响很多网站。鉴于供应链中存在很多易遭利用且影响巨大的漏洞,因此我认为这个漏洞非常恐怖。“
这并非 RyotaK 在处理软件仓库更新过程中发现的第一枚严重缺陷。2021年4月,RyotaK 在官方 Homebrew Cask 仓库中发现一个严重漏洞,本可导致攻击者在用户机器上执行任意代码。
ERP 平台Sage X3被曝多个严重漏洞,系统可遭接管,存在潜在供应链风险
NIST 按行政令关于加强软件供应链安全的要求,给出“关键软件”的定义及所含11类软件
https://thehackernews.com/2021/07/cloudflare-cdnjs-bug-could-have-led-to.html
题图:Pixabay License
本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的
产品线。