新闻快讯
< >

Zip Slip 漏洞席卷数千个采用“压缩文件开源编码库”项目

E安全6月7日讯 英国软件公司 Snyk 的安全团队2018年 6月5日公开披露影响处理压缩文件的开源编码库的严重漏洞“Zip Slip(“压缩失误”)”,它是一种影响广泛的存档文件提取漏洞,允许攻击者在系统上编写任意文件,可引发远程命令执行问题。Snyk 已发布技术白皮书详细介绍了该漏洞。

“Zip Slip”目录遍历漏洞影响多个生态系统数千个项目-E安全

影响重要企业数千个项目

Snyk 的首席执行官盖·伯德扎尼,安全研究人员早在过去就曾注意到这个漏洞,但从未预料到它会得到如此广泛的传播。

可导致文件被解压到错误的位置

Zip Slip 属于任意文件覆盖漏洞,通过目录遍历攻击被触发,可从存档文件中提取文件,可导致攻击者将文件解压到正常的解压路径中并覆写敏感文件,例如重要的 OS 库或者服务器配置文件。该漏洞影响了大量压缩格式,包括 tar、jar、war、cpio、apk、rar和7z。

虽然该漏洞广泛存在于 JavaScript、Ruby、.NET、Go 等多种程序语言中,其影响了包括谷歌、甲骨文、IBM、Apache、亚马逊、Spring/Pivotal、Linkedin、Twitter、阿里巴巴、Eclipse、OWASP、ElasticSearch 和 JetBrains 在内的数千个项目,但该漏洞主要影响的是 Java 生态系统,因为其缺乏中心程序库对存档文件进行高级处理,导致开发人员必须自己编写代码或使用共享代码。

关于“Zip Slip”漏洞

Snyk 在技术白皮书中写道,攻击者可使用特制、含有目录遍历文件名(例如../../evil.sh)的存档文件来触发该漏洞。攻击者要利用该漏洞需具备两个前提条件:1、恶意存档文件;2、提取代码不执行验证检查。

研究人员指出,选用合适的工具创建恶意存档文件很容易,而且存在缺陷的库/代码片段相当多,因此该漏洞很容易被利用发起攻击。

伯德扎尼认为漏洞之所以存在,又两个原因:

  • 程序代码本身很复杂,不具备安全专家知识的开发人员通常将工作重点放在按时完成代码编写上,因此安全漏洞的问题容易被忽略。

  • 在不断扩展的开源世界中,开发人员严重依赖共享的库,并复制 StackOverflow 等社交网络的代码。这种重用的做法有助于加速开发,但也意味着共享代码库(或其它)中的漏洞传播速度更快,Zip Slip 就是如此。

研究人员也公布了 PoC 代码,便于开发人员检测漏洞是否存在。Snyk 还发布了利用该漏洞的视频演示:

漏洞修复可能不彻底

伯德扎尼表示,许多大型的库和项目现已修复问题,但这不意味着所有人都将使用最新版的库。

Snyk 安全团队提供了建议措施,以供检查项目是否受到 Zip Slip 漏洞影响,包括在项目中搜索易受攻击的代码。Snyk 还举例罗列了不同程序语言中易受攻击的代码以及可供检查的验证代码,具体详情见https://snyk.io/research/zip-slip-vulnerability#are-you-vulnerable。

Snyk 未提及攻击者利用该漏洞的情况。伯德扎尼指出,由于利用的结果只是简单体现在系统的文件中,因此难以检测系统是否已被利用。检测工具可检查 Zip 和通过其它来源进入网络的其它存档文件来识别攻击,检查其中列出的文件,并标记指向外部文件夹的文件(例如../../evil.exe)。值得注意的是,存档文件可上传到应用程序或从内部下载,因此应当监控这两种流量来源。

受影响的库和项目见:

https://github.com/snyk/zip-slip-vulnerability

E安全注:本文系E安全独家编译报道,转载请联系授权,并保留出处与链接,不得删减内容。联系方式:① 微信号zhu-geliang ②邮箱eapp@easyaq.com
@E安全,最专业的前沿网络安全媒体和产业服务平台,每日提供优质全球网络安全资讯与深度思考,欢迎关注微信公众号「E安全」(EAQapp),或登E安全门户网站www.easyaq.com , 查看更多精彩内容。