針對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。
以上是ZipperDown漏洞怎麼解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!