《APP審計之白帽必殺技-凌遲(52頁).pdf》由會員分享,可在線閱讀,更多相關《APP審計之白帽必殺技-凌遲(52頁).pdf(52頁珍藏版)》請在三個皮匠報告上搜索。
1、姓名姓名凌遲APP審計之白帽必殺技前言移動端APP的滲透在滲透測試這個領域早已是常態,在大部分白帽子的視角下,APP的安全審計工作,主要還是趨于網絡接口層面的 OWASP TOP10,本次議題旨在從白帽子的視角下展開描述當涉及到APP的審計項目時,如何在除了常規web滲透的其他層面發現安全風險。目錄1.移動APP架構中的威脅目標2.業務場景中的審計流程3.未來展望移動APP架構中的威脅目標風控安全通信安全運行時安全應用組件安全應用自身安全OWASPTOP 10何為安全風險?大部分是由于開發人員在開發APP的過程中不安全的代碼編寫方式或沒有考慮相應的安全性導致。應用自身安全證書存儲風險證書存儲風
2、險完整性校驗完整性校驗二進制文件安全性二進制文件安全性敏感數據檢測敏感數據檢測敏感資源文件未加密敏感資源文件未加密敏感資源文件未加密App使用了第三方的代碼執行引擎編寫客戶端的業務邏輯代碼,這些代碼以腳本的形式保存在App的資源文件中。由于沒有對這些文件進行加密保護,攻擊者可以直接從資源中獲取本地業務邏輯代碼,并發起其他攻擊,如篡改、植入惡意代碼、網絡協議分析等。完整性校驗攻擊者可以篡改應用(插入惡意代碼、木馬、后門、廣告等),重新簽名并且二次發布,導致應用程序完整性被破壞。證書存儲風險APP中使用的數字證書可被用來校驗服務器的合法身份,以及在與服務器進行通信的過程中對傳輸數據進行加密、解密運
3、算,保證傳輸數據的保密性、完整性。明文存儲的數字證書如果被篡改,客戶端可能連接到假冒的服務端上,導致用戶名、密碼等信息被竊??;如果明文證書被盜取,可能造成傳輸數據被截獲解密,偽造客戶端向服務器發送請求,篡改服務器中的用戶數據或造成服務器響應異常。二進制文件安全性代理檢測代理檢測反調試反調試環境檢測環境檢測反反注入注入二進制文件安全性代理檢測代理檢測反調試反調試環境檢測環境檢測反注入反注入二進制文件安全性代理檢測代理檢測反調試反調試環境檢測環境檢測反注入反注入二進制文件安全性代理檢測代理檢測反調試反調試環境檢測環境檢測反注入反注入反調試反調試代理檢測代理檢測反調試反調試環境檢測環境檢測代理檢測代
4、理檢測反調試反調試反調試反調試反調試反調試反調試反調試代理檢測代理檢測反調試反調試反調試、反注入抓包問題現階段,客戶端會校驗服務器的證書如果直接安裝charles或burp的證書,會導致校驗失敗,無法抓包抓包問題解決方案:patch掉相關流程,忽略校驗過程Android端:構造HttpClient,設置HostnameVerifier時參數使用ALLOW_ALL_HOSTNAME_VERIFIER或空的HostnameVerifier,關閉主機名校驗即可iOS端:hookTCPIOConnection即可Android:justTrustMeiOS:SSL Kill Switch代理檢測安裝了
5、https證書,開了繞過ssl的插件,但提示網絡請求失???代理檢測環境檢測ROOT檢測模擬器檢測越獄檢測敏感數據檢測IPA/APK包中的敏感包中的敏感數據數據代碼中殘留的敏感代碼中殘留的敏感URL通用解密算法參數通用解密算法參數通用加密算法參數代碼中往往會出現一些包含敏感信息的常量字符串,例如:在代碼中硬編碼AES加密的key、iv等,或用戶的VPN密碼等。APP包中的敏感數據代碼中敏感的URLURLScheme應用組件安全serviceactivitycontent providerbroadcast receiver第三方第三方SDKservice第三方第三方SDKAndroid 四大組件
6、四大組件的安全問題,一般檢測方式就是直接通過在線工具直接進行檢測FFMpegffmpeg在處理 HLS 播放列表文件的過程中,由于支持非常多的協議,如http、file、concat等等,導致可以構造惡意的url造成 SSRF 攻擊和本地文件泄露FFMpegZipperDown使用第三方zip庫在解壓zip文件過程中沒有考慮文件名中帶有”././”這樣的情況,從而產生了目錄穿越漏洞。因此,如果一個iOS 應用下載了惡意的zip文件,并且使用ziparchive庫解壓,利用漏洞可以做到app container目錄下的任意文件覆蓋,如果覆蓋了應用重要的文件會造成應用崩潰,如果覆蓋了app的hot
7、patch文件則會造成代碼執行。UIWebview攻擊者可利用App文件下載機制將惡意文件寫入沙盒內并誘導用戶打開,當用戶打開惡意文件時,其中的惡意代碼可通過AJAX向“file:/”域發起請求,從而遠程獲取App沙盒內所有的本地敏感數據。運行時安全后臺快照后臺快照日志輸出日志輸出數據存儲數據存儲手勢密碼手勢密碼日志輸出日志文件中會泄露敏感信息,包括但不限于:1.用戶名2.密碼3.函數調用棧4.Token、Cookies5.網絡請求UR后臺快照系統會對我們的App做截圖展示,同時這些截圖會存放在所有App都能訪問到的路徑內。如果這些截圖中包含敏感數據,就可能會造成敏感信息泄露。通過分析系統截圖
8、,可以獲取到截圖中包含的用戶數據。手勢密碼數據存儲數據存儲在沙盒路徑下的preferences目錄下,存儲的plist文件中,泄露了用戶手機號、身份證號、密碼、姓名等敏感信息通信安全加密參數可破解加密參數可破解數據傳輸未加密數據傳輸未加密通信安全通信安全破解后的參數為password:123456,deviceId:11A135BF-A481-4C8E-8BFB-4A8D26E333E1,tid:a7e1ee6f40d6502fabf4878fa0ea2584,deviceModel:iPhone6,code:,userName:18888888888風控安全大部分廠商都使用了自研或采購的第三方風控產品風 控數據包重放抵抗黑灰產薅羊毛推廣流量作弊刷單批量注冊、登錄高價值內容惡意盜爬業務場景中的審計流程內購破解對于某理財記賬APP的收費功能做破解,原理上來說就是通過對其二進制進行逆向分析,通過反編譯、靜態分析、調試等手段,對其收費功能在邏輯上進行修改,從而達到攻擊的需求。未來展望frida是目前用于hook的輕量級的框架,可以在iOS、Android、macos、Windows上使用,主要通過將動態庫注入到進程的方式進行hook。除此之外,frida也可以借鑒fuzz的原理:1、對APP中的接口進行輕量化的模糊測試工作;2、對APP中的so文件或dylib進行測試