当前位置:首页 > 行业动态 > 正文

CDN库破绽,我们的数据安全是否面临新威胁?

CDNJS库曾存在任意代码执行破绽,该破绽可能影响互联网上12.7%的网站。

CDN库破绽是一个严重的安全问题,它可能影响互联网上12.7%的网站,CDNJS作为Cloudflare旗下的JavaScript/CSS资料库,为数百万网站提供超过4000个JavaScript和CSS文件,这些库公开存储在GitHub上,使其成为第二大JavaScript CDN。

CDN库破绽,我们的数据安全是否面临新威胁?  第1张

破绽详情

CDNJS中的任意代码执行破绽

安全研究员RyotaK在研究供应链攻击时发现了一个路径遍历破绽,这个破绽可以通过发布特制的npm包到CDNJS来触发,当CDNJS服务器处理精心制作的“hey-sven”npm档案时,这些Bash脚本的内容将在服务器上执行,研究人员通过符号链接读取了即将覆盖的文件的内容,并利用这个破绽将敏感机密(如GITHUB_REPO_API_KEY和WORKERS_KV_API_TOKEN)转储到CDN提供的脚本中。

自动更新功能的安全隐患

CDNJS的自动更新功能通过下载用户管理的Git存储库/npm包,并从中复制目标文件来更新库,由于Go语言的archive/tar返回文档中包含的文件名而没有进行过滤,因此如果根据从archive/tar返回的文件名,将压缩文件提取到磁盘中,包含../../../../../../tmp/test等文件名的压缩文档可能会覆盖系统上的任意文件。

防护措施

修复方案

Cloudflare已经实施了一系列修复措施以防止攻击,最初的修复旨在解决符号链接破绽,但由于CDNJS生态系统的复杂性,接下来的几周内对不同的存储库应用了一系列更具体的修复,拒绝Git存储库中的符号链接,并隔离最危险的功能。

检测方法

SRI(Subresource Integrity):指浏览器通过验证资源完整性来判断其是否被改动,验证获取文件的哈希值是否和你提供的哈希值一样来判断资源是否被改动。

定期检查:定期检查CDNJS库的更新日志和安全公告,确保及时应用最新的安全补丁。

相关问答FAQs

Q1: CDNJS中的任意代码执行破绽是如何被发现的?

A1: 安全研究员RyotaK在研究供应链攻击时发现了一个路径遍历破绽,这个破绽可以通过发布特制的npm包到CDNJS来触发,当CDNJS服务器处理精心制作的“hey-sven”npm档案时,这些Bash脚本的内容将在服务器上执行。

Q2: 如何防止CDNJS中的任意代码执行破绽?

A2: 可以通过以下方式防止此类破绽:

使用SRI(Subresource Integrity)来验证资源的完整性。

定期检查CDNJS库的更新日志和安全公告,确保及时应用最新的安全补丁。

对于开发者来说,避免使用未经验证的第三方库,或者在使用前对其进行充分的安全审查。

小编有话说:CDNJS作为一个重要的JavaScript CDN服务,其安全性直接关系到全球众多网站的正常运行,此次破绽的发现和修复提醒我们,网络安全是一个持续的过程,需要不断的监测、评估和改进,希望本文能够帮助大家更好地理解CDN库破绽及其防护措施,共同维护网络空间的安全与稳定。

0