Android安全技術揭祕與防範——APK動態分析

代碼安全分析

1 四大權限組件權限和安全檢測,特別是廣播容易被惡意發送,可以採用應用內部廣播LocalBroadcastManager來規避
2 存儲安全檢測,內存存儲不設置全局可讀可寫,不將隱私數據明文保存在外部存儲。
3 通信安全,採用HTTPS+證書+強加密傳輸來保證安全

調試安全

關閉debuggable

項目發佈前需要在application節點或者release配置中設置debuggable屬性爲true,否則會顯示出Log並且可被外界調試。

發佈之前最好進行測試,使用aapt工具:
aapt list -v -a myfile.apk
這個命令將會打印和apk相關的所有詳細信息,找到“android:debuggable",它的值分爲:
0x0: debuggable false
0xffffffff: debugabble true
例如打印結果:
android ebuggable(0x0101000f)=(type 0x12)0x0
說明Release Build已經關閉了debuggable

注入Log調試

爲了動態逆向分析其他APP,可以修改smali,加入invoke語句調試

性能分析工具

TraceView

函數性能分析
代碼前後加入語句(可以注入其他應用smail分析)
Debug.startMethodTracing("loveworld");
Debug.stopMethodTracing();
在sd卡根目錄可以獲得圖形化表,展示了方法調用的時間和CPU消耗等信息

而DDMS中的Method Profiling則可以手動控制時間段內的性能變化

Android網絡抓包工具——Fiddler

Fiddler 支持瀏覽器和智能設備抓包
實質是中間使用了一個Web代理服務器,所以可以中途攔截請求和修改請求,甚至可以改變本地返回結果
Android抓包:要求設備與PC同一局域網,設備設置爲本地地址,PC修改抓包配置即可。
Request斷點:選擇Before Requests-disabled,可以攔截住請求並修改,包括修改請求地址和所有參數
AutoResponse:重新設定返回結果,例如將百度網頁的圖標替換爲本地圖標。

注意:非正常退出可能會影響網頁正常瀏覽,重啓Fiddler可修復

無源碼應用調試工具——AndBug

環境:android開發環境、bottle庫、python

AndBug可以在不擁有項目源碼的情況下hookDalvik方法,進行斷點。

運用範例:破解一個未知源碼的應用內部參數加密方式
1 通過dumpsys命令可以獲得包名、類名、方法名
2 猜測加密方法,設置方法斷點,跳到斷點將打印出線程參數信息
3 可以推測出簡單加密算法規則,例如 字符串+ID+密碼的總和來MD5

IDA pro 動態調試

可以調試原生so庫,獲取設備root權限後遠程運行android_server,通過端口轉發數據到PC進行調試
需要深入理解硬件、虛擬機、C、C++、linux

WebView安全問題

遠程代碼執行漏洞

android 4.2以前網頁可以通過addJavaScriptInterface方法執行本地命令
後加入@JavaScriptInterface已修復

UXSS漏洞

android 4.4之前的Webkit出現的瀏覽器同源策略漏洞,危害極大,可竊取用戶隱私,之後轉chromium內核解決
二位

二維碼釣魚

通過生成虛假二維碼替換應用二維碼竊取資料,人們一般無法分辨二維碼的區別,應用會跳轉到相應釣魚網址

SQL注入***

把SQL命令插入Web表單或者請求字符串,欺騙服務器執行惡意SQL
例如巧妙替換登錄查詢語句達到強行登陸賬號

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章