Zip Slip 漏洞影响重要企业数千个项目

电子说

1.2w人已加入

描述

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

影响重要企业数千个项目

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 还举例罗列了不同程序语言中易受攻击的代码以及可供检查的验证代码。

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

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分