《Android應(yīng)用安全測試與防護》全面介紹了 Android 應(yīng)用安全測試與防護技術(shù),主要內(nèi)容包括安全基礎(chǔ)、測試工具、安全測試和安全防護四個部分。第一部分簡要介紹了 Android 應(yīng)用的安全基礎(chǔ),包括 Android 應(yīng)用的生成和運行過程、Android 系統(tǒng)的安全模型;第二部分詳細介紹了靜態(tài)分析、動態(tài)分析、抓包分析、掛鉤框架等常用的安全測試基本工具;第三部分重點介紹了 Android 應(yīng)用安全測試內(nèi)容,包括 Android 應(yīng)用涉及的信息資產(chǎn)和安全測試框架,分別從程序代碼、服務(wù)交互、本地數(shù)據(jù)、網(wǎng)絡(luò)傳輸和鑒權(quán)認證 5 個方面介紹 App 的安全要求和測試方法;第四部分全面介紹了 Android 應(yīng)用的安全防護技術(shù),重點闡述靜態(tài)防護和動態(tài)防護等應(yīng)用安全加固涉及的多種技術(shù)原理。
本書側(cè)重從實際應(yīng)用的角度來講解如何運用安全技術(shù)開展應(yīng)用安全測試與防護工作,適合有一定 Android 開發(fā)經(jīng)驗或安全基礎(chǔ)的開發(fā)者、安全測試工程師、對 Android 應(yīng)用安全測試感興趣的業(yè)務(wù)人員、在校大學生等參考和閱讀。
國家互聯(lián)網(wǎng)應(yīng)急中心運行部主任嚴寒冰、清華大學電子工程系教授任勇作序推薦
·源于業(yè)務(wù),注重實踐,Android應(yīng)用安全入門必讀;
·涵蓋Android應(yīng)用5大類55項安全測試的要求與方法;
·安全測試+安全加固,全方位精準提升App安全;
·市場上第-一本詳細講解Android應(yīng)用安全評測技術(shù)的書;
·從實際應(yīng)用出發(fā),側(cè)重實戰(zhàn),深入淺出地講解應(yīng)用安全測試內(nèi)容。
何能強,博士,畢業(yè)于清華大學電子工程系,國家互聯(lián)網(wǎng)應(yīng)急中心(CNCERT/CC)高級工程師,長期從事國家級移動互聯(lián)網(wǎng)網(wǎng)絡(luò)安全應(yīng)急響應(yīng)和安全防護工作,出版網(wǎng)絡(luò)安全領(lǐng)域的著作1部、譯著1部,牽頭發(fā)布通信行業(yè)標準十余項,以第一作者獲得國家發(fā)明專利授權(quán)4項,出版移動互聯(lián)網(wǎng)安全年報3本,發(fā)表SCI、EI等學術(shù)論文十余篇,負責中國互聯(lián)網(wǎng)網(wǎng)絡(luò)安全威脅治理聯(lián)盟、中國反網(wǎng)絡(luò)病毒聯(lián)盟等主要工作。
闞志剛,博士,梆梆安全董事長兼首席執(zhí)行官,于2010年創(chuàng)立梆梆安全,一直致力于為用戶打造安全的移動應(yīng)用生態(tài)環(huán)境,保障萬物互聯(lián)時代下的智能生活。2018年當選國家“萬人計劃”科技創(chuàng)業(yè)領(lǐng)軍人才,2016年當選科技部“科技創(chuàng)新創(chuàng)業(yè)人才”,2012年當選中關(guān)村“高端領(lǐng)軍人才”。
馬宏謀,某知名互聯(lián)網(wǎng)安全公司安全部門副主任,參與過多個安全評測和惡意代碼深度逆向分析項目,具有8年以上的PC端和移動端病毒分析經(jīng)驗,逆向分析實戰(zhàn)經(jīng)驗豐富。
第 1 章 Android App 的安全基礎(chǔ) 1
1.1 Android App 的生成 1
1.2 Android App 的運行 4
1.3 Android 系統(tǒng)的安全模型 7
1.3.1 Android 用戶管理 7
1.3.2 Android 系統(tǒng)沙箱 9
1.4 小結(jié) 10
第 2 章 安全測試工具 12
2.1 靜態(tài)分析工具 13
2.1.1 Apktool 13
2.1.2 baksmali 15
2.1.3 smali 15
2.1.4 dex2jar+JD-GUI 15
2.1.5 JEB 17
2.2 動態(tài)分析工具 19
2.2.1 DDMS 19
2.2.2 gdb 22
2.2.3 IDA Pro 25
2.2.4 Drozer 28
2.3 抓包分析工具 30
2.3.1 組網(wǎng)環(huán)境 30
2.3.2 Fiddler 33
2.3.3 Wireshark 38
2.4 掛鉤框架 39
2.4.1 Xposed 框架 40
2.4.2 Frida 43
2.4.3 inject 46
2.5 小結(jié) 47
第3 章 安全測試基礎(chǔ) 48
3.1 信息資產(chǎn) 49
3.2 安全測試框架 51
3.3 小結(jié) 54
第4 章 程序代碼安全測試 55
4.1 安全測試要求 56
4.1.1 運行環(huán)境 56
4.1.2 防反編譯 58
4.1.3 防篡改 60
4.1.4 防調(diào)試 61
4.1.5 防注入 63
4.2 安全測試方法 64
4.2.1 運行環(huán)境 64
4.2.2 防反編譯 68
4.2.3 防篡改 72
4.2.4 防調(diào)試 74
4.2.5 防注入 84
4.3 小結(jié) 84
第5 章 服務(wù)交互安全測試 85
5.1 安全測試要求 85
5.1.1 進程間交互 85
5.1.2 屏幕交互 86
5.1.3 WebView 交互 87
5.1.4 接口端口交互 88
5.2 安全測試方法 90
5.2.1 進程間交互 90
5.2.2 屏幕交互 91
5.2.3 WebView 交互 96
5.2.4 接口端口交互 100
5.3 小結(jié) 103
第6 章 本地數(shù)據(jù)安全測試 104
6.1 安全測試要求 106
6.1.1 數(shù)據(jù)創(chuàng)建 106
6.1.2 數(shù)據(jù)存儲 107
6.1.3 數(shù)據(jù)處理 108
6.1.4 數(shù)據(jù)共享 109
6.1.5 數(shù)據(jù)備份 109
6.1.6 數(shù)據(jù)銷毀 110
6.2 安全測試方法 110
6.2.1 數(shù)據(jù)創(chuàng)建 110
6.2.2 數(shù)據(jù)存儲 119
6.2.3 數(shù)據(jù)處理 124
6.2.4 數(shù)據(jù)共享 126
6.2.5 數(shù)據(jù)備份 128
6.2.6 數(shù)據(jù)銷毀 129
6.3 小結(jié) 131
第7 章 網(wǎng)絡(luò)傳輸安全測試 132
7.1 安全測試要求 133
7.1.1 安全傳輸層 134
7.1.2 數(shù)據(jù)加密 136
7.1.3 中間人攻擊 137
7.2 安全測試方法 138
7.2.1 安全傳輸層 138
7.2.2 數(shù)據(jù)加密 140
7.2.3 中間人攻擊 142
7.3 小結(jié) 146
第8 章 鑒權(quán)認證安全測試 147
8.1 安全測試要求 150
8.1.1 注冊過程 151
8.1.2 登錄過程 152
8.1.3 會話過程 153
8.1.4 登出過程 157
8.1.5 注銷過程 158
8.2 安全測試方法 158
8.2.1 注冊過程 159
8.2.2 登錄過程 163
8.2.3 會話過程 171
8.2.4 登出過程 173
8.2.5 注銷過程 174
8.3 小結(jié) 175
第9 章 安全防護基礎(chǔ) 176
9.1 App 加固技術(shù)簡介 179
9.2 第 一代加固技術(shù) 181
9.3 第二代加固技術(shù) 183
9.4 第三代加固技術(shù) 184
9.5 第四代加固技術(shù) 185
9.6 小結(jié) 186
第 10 章 靜態(tài)防護技術(shù) 188
10.1 源代碼保護 188
10.1.1 控制流平坦化 189
10.1.2 不透明謂詞 192
10.1.3 字符串加密 193
10.2 dex 文件加固 194
10.2.1 dex 文件整體加殼 195
10.2.2 程序方法抽取加固 197
10.2.3 VMP 加固 198
10.2.4 字符串加密 201
10.3 資源文件加固 204
10.4 so 文件加固 205
10.5 小結(jié) 209
第 11 章 動態(tài)防護技術(shù) 210
11.1 防調(diào)試 210
11.2 防日志輸出 212
11.3 安全軟鍵盤 214
11.4 防界面劫持 215
11.5 防篡改 216
11.6 防截屏/錄屏 218
11.7 模擬器檢測 218
11.8 應(yīng)用多開檢測 219
11.9 ROOT 環(huán)境檢測 221
11.10 掛鉤框架檢測 222
11.11 小結(jié) 223
第 12 章 應(yīng)用脫殼基礎(chǔ)與實踐 224
12.1 脫殼基礎(chǔ) 225
12.1.1 加殼的基本思路 225
12.1.2 dex 文件格式解析 226
12.1.3 dex 文件加載原理 230
12.1.4 so 文件加載過程 253
12.1.5 脫殼思路 260
12.2 脫殼實踐 261
12.2.1 環(huán)境搭建 261
12.2.2 編寫脫殼代碼 264
12.2.3 脫殼 266
12.3 結(jié)束語 268
附錄A 安全測試項索引 269
附錄B Dalvik 所有的操作碼 275
附錄C 安全測試工具參考 280