解读ZipperDown漏洞对支付行业的影响 附:漏洞详细原理
近日,安全分析人员披露ZipperDown漏洞,波及Android和iOS平台,通过对iOS应用市场中168,951个iOS应用进行审核,发现15,979个应用可能受此漏洞的影响,占比高达10%。攻击者可以利用此漏洞对受影响用户进行任意代码执行,严重危及应用业务场景,破坏业务,造成损失。该漏洞利用应用对下载的zip压缩包解压文件路径校验不严的问题,构建非法路径实现路径穿越,从而替换原程序内容,进行远程任意代码非法执行,造成破坏。
安天移动安全团队针对事件深度分析之后认为,该漏洞的真实影响还需结合应用自身业务场景进一步排查,不能简单粗暴判定该漏洞一定会真实危及业务场景,附录中有详细的技术分析和修复建议。同时,有部分应用是由于采用第三方库而引入该漏洞,其风险也需要进一步评估后跟第三方库开放者沟通。
同时针对支付行业应用进行摸底测试后发现,在当前智能POS支付类应用、非支付类应用以及手机相关支付类应用中,均发现部分应用存在ZipperDown漏洞,虽然智能POS应用较之手机应用业务场景相对简单,但是结果显示仍然近三成的智能POS应用存在相应安全隐患。
zip文件路径穿越问题不是一个新问题。很早之前就已经被安全分析人员披露,但是一直未引起行业广泛重视。本次ZipperDown漏洞爆出,披露的相关数据就能说明问题。安全无小事,即使很小的一个安全隐患,没有严肃认真对待,也可能引发严重的安全后果。同时第三方库导致ZipperDown漏洞的引入,也揭示了现如今,安全已不单单是一个单点问题,它需要生态的参与各方一同携手联动,共同构建安全生态,避免风险的引入。
网络安全和信息化是相辅相成的。安全是发展的前提,发展是安全的保障,安全和发展要同步推进。智能商业终端做为金融领域中的关键信息基础设施,更加应当成为是网络安全的重中之重。引入产业的参与各方应当携手多方联动,切实做好国家关键信息基础设施安全防护。
附录:漏洞详细原理
下图为一个安卓程序正常解压缩代码示例:
在标注处可以看出,当对一个zip文件进行解压时,通过遍历获得zip包中的压缩文件文件名,通过路径拼接获取解压目标路径。但是由于zip包中允许存在类似“../”的文件路径格式,因此拼接出来的路径可以实现路径穿越,将zip包中的文件解压缩到外面的路径。
攻击者通过构建如下图所示的热修复升级包update.zip,其中存在路径穿越的恶意运行库libpay.so,解压后替换本地原来的libpay.so,攻击者就成功的在当前程序中插入了自己恶意运行库,后续可以尝试窃取信息,业务劫持等操作。
漏洞修复建议
参考修复建议如下,开发者可以根据自身业务场景需求,选择最适合自身业务的修复建议。
1. 应用在加载外部zip压缩包时,需要对压缩包中解压路径进行校验。
2. 应用在加载外部zip包,可以采用校验机制,确保加载的zip包确实为合法zip,没有被替换。
3. 应用下载zip包的通信信道,采用安全通信通道确保不存在被篡改、劫持、替换的可能。