ZipperDown漏洞怎么解決

針對zipperdown安全漏洞的攻擊條件:

1、App用了ZipArchive

2、App下發的某個zip包傳輸過程沒加密,zip包也沒加密?

3、App使用了JSPatch或其他執行引擎,且本地腳本沒有加密,只要把腳本放指定目錄即可執行,且未對本地腳本進行合法性驗證

4、用戶連接不可靠WIFI熱點進行網絡通信

針對此漏洞的規避方法;開發者自身規避方法:

1、對SSZipArchive庫進行修復,在unzipFileAtPath解壓函數中,對可能造成目錄穿越的”../”字符串時進行攔截。

2、客戶端與服務端通信時,使用https安全傳輸協議,確保APP與服務端交互中的數據有經過HTTPS協議加密;

3、對APP下載的zip包文件進行傳輸過程中的加密保護,并在客戶端對此zip包進行完整性、合法性驗證,防止被替換;

4、對APP中本地腳本進行加密,并對本地腳本進行完整性、合法性驗證,防止被替換;

擴展:ZipperDown并不是新漏洞,而是“非常經典的安全問題”,其影響主要取決于具體App和它所獲取的權限,并且也同樣在android平臺發現了類似漏洞“文件目錄遍歷漏洞”

關于文件目錄遍歷漏洞,漏洞產生前提:

Android應用中使用了解壓縮文件,比如動態加載機制,下載apk/zip,然后本地做解壓工作;

漏洞出現原因

因ZipOutputStream類對文件進行壓縮時,未對文件名做任何限制,如果下載的zip包被惡意攔截,進行修改,即可將文件名命名為“../../../../data/data/xxx.xxx.x/xxx”,因為Android是基于linux系統的,在Linux系統中../這個符號代表是回到上層目錄,那么這里可以多弄幾個這個符號,這樣就會回到Android系統的根目錄,然后在進入當前應用的沙盒目錄下,寫一個文件。

ZipperDown漏洞存在的風險

攻擊者通過該漏洞可以破壞應用數據、獲取用戶隱私數據甚至可獲取任意代碼執行的能力。

規避措施;開發者自身規避方法:

1、對ZipEntry進行解壓時,過濾對具有特殊字符的文件進行解壓,或者解壓到本地文件名稱不能包含特殊字符;

2、客戶端與服務端通信時,使用HTTPS安全傳輸協議,確保APP與服務端交互中的數據有經過HTTPS協議加密;

3、對APP下載的zip包文件進行傳輸過程中的加密保護,并在客戶端對此zip包進行完整性、合法性驗證,防止被替換;

愛加密安全解決方案

1、愛加密提供針對此漏洞評測方案,檢測App是否存在此漏洞;

2、使用愛加密通訊協議加密SDK,對通信過程中的數據進行加密,并保證數據不被篡改;

用戶安全解決方案

不要使用未經認證的WIFI熱點,并及時更新手機中的App。

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享