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

網易易盾發表於2018-05-18

近日,盤古實驗室對外披露了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平臺的修復方案:

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

總結


攻擊條件:

  1. 使用了第三方解壓庫。
  2. Zip包在解壓時沒有做完整性校驗。
  3. APP使用了JSPatch或其他執行引擎,且本地指令碼沒有加密,只要把指令碼放指定目錄即可執行 ,本地指令碼未做合法性校驗。
  4. 連線不可靠的WIFI熱點進行通訊。


類似解壓等通用功能的漏洞,一個平臺爆出了漏洞,其他平臺往往也受到牽連,這個ZipperDown漏洞就是這樣的。在最後,網易易盾移動安全專家也向普通使用者建議,在相關App未修復之前,不要輕易連線不受信任的公共網路。

相關文章