共计 1138 个字符,预计需要花费 3 分钟才能阅读完成。
导读 | 近日,盘古实验室对外披露了 ZipperDown 漏洞,该漏洞是盘古团队针对不同客户的 iOS 应用安全审计的过程中发现的,大约有 10%的 iOS 应用会受到此漏洞的影响。利用此漏洞可以做很多事情,例如实现目录遍历攻击和 App Container 目录中任意文件覆盖风险……影响究竟有多大,取决于具体 App 和对应取得的权限。 |
ZipperDown 获得大量媒体聚焦的同时,也吸引了大量不法分子的目光,一场安全风暴隐约即将到来。
那如何防止 ZipperDown 漏洞带来的破坏呢?网易云易盾安全专家结合目前披露的信息以及自己的分析,给出了如下分析和建议:
ZipperDown 漏洞并非 iOS 平台自身问题,而是与 Zip 文件解压有关。iOS 平台没有提供官方的 unzipAPI 函数,而是引用了第三方库来实现解压功能,由于现有的 iOS App 基本上采用 SSZipArchive 或 Ziparchive 来实现解压,因此漏洞是来自使用第三方 Zip 库解压 Zip 文件的过程中没有对 Zip 内文件名做校验导致的。如果文件名中含有“../”则可以实现目录的上一级跳转,从而实现应用内任意目录的跳转,进一步可以实现文件覆盖,如果把 App 的 hotpatch 文件覆盖替换了,可以达到执行黑客指定指令,从而按照黑客的意图实现任意应用内攻击。
这个漏洞不禁让易盾联想到不久前 Android 平台上的 unZip 解压文件漏洞,和这个漏洞几乎是完全一样,只是平台和第三方解压库不同而已。Android 平台上的被称为 unZip 解压文件漏洞,网易云易盾安全检测平台已经可以实现扫描检测。
开发中在使用第三方解压库对 Zip 文件解压过程中,要对 Zip 内部文件名进行“../”过滤,另外存放关键数据的文件如 Hotpatch 记得进行加密、合法性和完整性校验,使用 HTTPS 安全传输协议通信等,也可以购买易盾的通信协议加密 SDK(点击“阅读原文”,可一键接入),做到最大程度的防范。
本漏洞的修复可以参考 Android 平台的 unZip 解压文件漏洞修复方案进行修复,下面是 Android 平台的修复方案:
攻击条件:
使用了第三方解压库。
Zip 包在解压时没有做完整性校验。
APP 使用了 JSPatch 或其他执行引擎,且本地脚本没有加密,只要把脚本放指定目录即可执行,本地脚本未做合法性校验。
连接不可靠的 WIFI 热点进行通信。
类似解压等通用功能的漏洞,一个平台爆出了漏洞,其他平台往往也受到牵连,这个 ZipperDown 漏洞就是这样的。在最后,网易易盾移动安全专家也向普通用户建议,在相关 App 未修复之前,不要轻易连接不受信任的公共网络。