本文采集于 念茜
攻易防難假抄,唯有縝密、多層的防護網(wǎng)絡(luò)才能可靠的保護我們iOS應(yīng)用程序的安全踏志。那么阀捅,一個完善的iOS應(yīng)用安全防護框架都要寫哪些東西呢? 首先针余,先梳理一下常見的逆向及攻擊工具饲鄙。
iOS應(yīng)用逆向常用工具
- Reveal-UI分析工具
- Cycript-運行時工具
- Class-dump -->看名字你應(yīng)該懂的
- Keychain-Dumper -->不解析
- gdb -->調(diào)試器
- iNalyzer -->滲透測試框架
- introspy -->滲透工具
- Fishhook
- removePIE
- IDA pro or Hopper
- snoop-it //非常強大,不過要翻&墻
- iDB -->這個自己找
- Charles -->青花瓷
- SSL Kill Switch
裸奔app的安全隱患
一部越獄的iOS設(shè)備,外加上述的逆向工具涵紊,給裸奔的iOS應(yīng)用程序帶來哪些威脅呢傍妒?
- 任意讀寫文件系統(tǒng)數(shù)據(jù)
- HTTP(S)實時被監(jiān)測
- 重新打包ipa
- 暴露的函數(shù)符號
- 未加密的靜態(tài)字符
- 篡改程序邏輯控制流
- 攔截系統(tǒng)框架API
- 逆向加密邏輯
- 跟蹤函數(shù)調(diào)用過程(objc_msgSend)
- 可見視圖的具體實現(xiàn)
- 偽造設(shè)備標識
- 可用的URL schemes
- runtime任意方法調(diào)用
……
iOS應(yīng)用安全防護開源工具
- ios-class-guard 是對抗class-dump的利器幔摸,作用是將ObjC類名方法名等重命名為難以理解的字符摸柄。
iOS應(yīng)用安全防護框架概述
針對上述安全隱患,我們的iOS應(yīng)用安全防護框架需實現(xiàn)的任務(wù)大致如下:
- 防護
- ObjC類名方法名等重命名為難以理解的字符
- 加密靜態(tài)字符串運行時解密
- 混淆代碼使其難于反匯編
- 本地存儲文件防篡改
- 檢測
- 調(diào)試狀態(tài)檢測
- 越獄環(huán)境檢測
- ObjC的Swizzle檢測
- 任意函數(shù)的hook檢測
- 指定區(qū)域或數(shù)據(jù)段的校驗和檢測
- 自修復(fù)
- 自修復(fù)被篡改的數(shù)據(jù)和代碼段
此外既忆,還需要多層的防護驱负,通過高層保護低層的方式來保證整個防護機制不失效。
參考IBM移動終端安全防護框架解決方案: