1. 程式人生 > >定心丸!ZipperDown漏洞分析與修復建議

定心丸!ZipperDown漏洞分析與修復建議

ZipperDown 漏洞

近日,盤古實驗室對外披露了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未修復之前,不要輕易連接不受信任的公共網絡。

定心丸!ZipperDown漏洞分析與修復建議