第1部分 移動平颱
第1章 移動應用主要問題及開發策略 2
1.1 移動終端麵臨的主要問題 2
1.1.1 物理安全 2
1.1.2 數據存儲安全(磁盤) 3
1.1.3 應用有限的鍵盤實現強認證 3
1.1.4 支持多用戶的安全 4
1.1.5 安全瀏覽環境 4
1.1.6 加固操作係統 4
1.1.7 應用隔離 5
1.1.8 信息泄露 5
1.1.9 病毒、蠕蟲、後門、間諜軟件和惡意軟件 5
1.1.10 艱難的補丁更新/升級過程 6
1.1.11 嚴格使用和實施SSL 6
1.1.12 釣魚攻擊 7
1.1.13 跨站請求僞造(Cross-Site Request Forgery,CSRF) 7
1.1.14 位置隱私/安全 7
1.1.15 不安全的設備驅動 8
1.1.16 多因素認證 8
1.2 移動應用安全開發中的技巧 9
1.2.1 應用TLS/SSL 9
1.2.2 遵循安全編程實踐 10
1.2.3 對輸入進行驗證 10
1.2.4 應用OS提供的控製模型 10
1.2.5 應用係統訪問的最小權限模型 11
1.2.6 恰當地存儲敏感信息 11
1.2.7 對應用代碼進行簽名 11
1.2.8 設計安全和健壯的升級過程 12
1.2.9 理解移動瀏覽器的安全功能和局限性 12
1.2.10 清除非威脅因素 12
1.2.11 應用安全/直觀的移動URL 13
1.3 小結 13
第2章 Android平颱安全 15
2.1 Android開發和調試 16
2.2 Android安全的IPC機製 19
2.2.1 活動(Activity) 19
2.2.2 廣播(Broadcast) 19
2.2.3 服務(Service) 19
2.2.4 內容提供器(ContentProvider) 20
2.2.5 Binder 20
2.3 Android安全模型 20
2.4 Android控製模型小結 21
2.5 創建新的Manifest權限控製文件 25
2.6 Intent 25
2.6.1 Intent概述 26
2.6.2 IntentFilter 26
2.7 Activity 27
2.8 Broadcast 29
2.8.1 接收廣播Intent 30
2.8.2 安全地發送廣播Intent 30
2.8.3 Sticky Broadcast 31
2.9 Service 31
2.10 ContentProvider 32
2.11 避免SQL注入 34
2.12 Intent Reflection 35
2.13 文件和優先選項 35
2.14 大容量存儲 36
2.15 Binder接口 37
2.15.1 調用者權限或者身份檢查實現安全 38
2.15.2 Binder引用安全 38
2.16 Android 安全工具 39
2.16.1 Manifest瀏覽器 39
2.16.2 Package Play 40
2.16.3 Intent Sniffer 40
2.16.4 Intent Fuzzer 42
2.17 小結 42
第3章 iPhone平颱安全 44
3.1 曆史 44
3.1.1 iPhone和OS X 45
3.1.2 “越獄”與“反越獄” 45
3.1.3 iPhone SDK 46
3.1.4 未來發展 46
3.2 開發 46
3.2.1 反編譯和反匯編 47
3.2.2 避免逆嚮工程 50
3.3 安全測試 50
3.3.1 緩衝區溢齣 50
3.3.2 整數溢齣 51
3.3.3 格式化字符串攻擊 51
3.3.4 雙重釋放(Double-Free) 53
3.3.5 靜態分析 54
3.4 應用程序格式 55
3.4.1 編譯和打包 55
3.4.2 分發:Apple Store 55
3.4.3 代碼簽名 56
3.4.4 執行未經簽名的代碼 56
3.5 權限及用戶控製 57
3.5.1 沙箱 57
3.5.2 Exploit Mitigation 58
3.5.3 權限 58
3.6 本地數據存儲:文件、權限和加密 59
3.6.1 SQLite 存儲 59
3.6.2 iPhone Keychain存儲 60
3.6.3 共享Keychain存儲 61
3.6.4 嚮證書存儲中添加證書 61
3.6.5 獲取Entropy 62
3.7 網絡 63
3.7.1 URL裝載API 63
3.7.2 NSStream 64
3.7.3 P2P 64
3.8 push 通知,復製/粘貼以及其他IPC 65
3.8.1 push通知 66
3.8.2 UIPasteboard 66
3.9 小結 67
第4章 Windows Mobile的安全性 68
4.1 平颱介紹 68
4.1.1 與Windows CE的關係 69
4.1.2 設備結構 69
4.1.3 設備存儲 71
4.2 內核構架 71
4.2.1 內存管理 72
4.2.2 Windows CE進程 73
4.2.3 服務 74
4.2.4 對象 74
4.2.5 內核模式和用戶模式 76
4.3 開發及安全測試 77
4.3.1 編碼環境和SDK 77
4.3.2 模擬器 78
4.3.3 調試 81
4.3.4 反匯編 83
4.3.5 代碼安全 86
4.3.6 應用程序打包和分發 89
4.4 權限與用戶控製 91
4.4.1 特權模式和普通模式 91
4.4.2 驗證碼、簽名和證書 92
4.4.3 運行中的應用程序 94
4.4.4 鎖定設備 95
4.4.5 管理設備安全策略 96
4.5 本地數據存儲 97
4.5.1 文件和權限 97
4.5.2 設備失竊保護 98
4.5.3 結構化存儲 99
4.5.4 加密和設備安全存儲 99
4.6 組網 100
4.6.1 連接管理器 100
4.6.2 WinSock 101
4.6.3 紅外綫 101
4.6.4 藍牙 101
4.6.5 HTTP和SSL 101
4.7 小結 102
第5章 黑莓手機的安全性 103
5.1 平颱簡介 103
5.1.1 黑莓企業服務器(BES) 104
5.1.2 黑莓的互聯網服務(BIS) 105
5.2 設備和操作係統結構 105
5.3 開發及安全測試 106
5.3.1 編碼環境 106
5.3.2 模擬器 107
5.3.3 調試 108
5.3.4 反匯編 109
5.3.5 代碼安全 111
5.3.6 應用程序打包和分發 112
5.4 權限與用戶控製 113
5.4.1 RIM的可控API 114
5.4.2 運營商和MIDlet簽名 118
5.4.3 對MIDP應用程序中的權限錯誤的處理 119
5.4.4 鎖定設備 119
5.4.5 應用程序權限管理 120
5.5 本地數據存儲 120
5.5.1 文件和權限 120
5.5.2 可編程文件係統訪問 121
5.5.3 結構化存儲 122
5.5.4 加密和設備安全存儲 122
5.6 組網 124
5.6.1 設備防火牆 124
5.6.2 SSL和WTLS 125
5.7 小結 125
第6章 Java移動版的安全性 126
6.1 標準開發 126
6.2 配置、profile和JSR 127
6.2.1 配置 128
6.2.2 profile 128
6.2.3 可選包 130
6.3 開發和安全測試 130
6.3.1 配置開發環境並安裝新平颱 131
6.3.2 模擬器 133
6.3.3 逆嚮工程和調試 134
6.3.4 代碼安全 139
6.3.5 應用程序打包和分發 141
6.4 權限和用戶控件 145
6.4.1 數據訪問 148
6.5 小結 149
第7章 塞班係統(SymbianOS)安全性 150
7.1 平颱介紹 150
7.1.1 設備架構 151
7.1.2 設備存儲器 152
7.2 開發和安全測試 153
7.2.1 開發環境 153
7.2.2 軟件開發工具 155
7.2.3 模擬器 155
7.2.4 調試 156
7.2.5 IDA Pro 157
7.3 代碼安全 158
7.3.1 Symbian C++ 158
7.3.2 P.I.P.S和OpenC 164
7.4 應用程序包 165
7.4.1 可執行的鏡像格式 165
7.4.2 安裝包 167
7.4.3 簽名 168
7.4.4 塞班簽名 169
7.4.5 安裝 170
7.5 權限和用戶控製 171
7.5.1 功能概述 171
7.5.2 可執行映像功能 173
7.5.3 進程功能 173
7.5.4 進程間的功能 173
7.6 進程間通信 174
7.6.1 客戶端/服務器會話 174
7.6.2 共享會話 179
7.6.3 共享句柄 179
7.7 永久的數據存儲 180
7.7.1 文件存儲 180
7.7.2 結構化存儲 181
7.7.3 加密存儲 182
7.8 小結 184
第8章 WebOS安全 186
8.1 平颱簡介 186
8.1.1 WebOS係統結構 187
8.1.2 模型視圖控製器(MVC) 189
8.1.3 stage與scene,assistant與view 190
8.2 開發和安全測試 191
8.2.1 開發模式 191
8.2.2 訪問Linux 192
8.2.3 模擬器 192
8.2.4 調試和反匯編 193
8.3 代碼安全 195
8.3.1 腳本注入 196
8.3.2 直接執行 196
8.3.3 編程數據注入 198
8.3.4 模闆注入 200
8.3.5 本地數據注入 201
8.3.6 應用程序打包 204
8.4 權限和用戶控製 204
8.4.1 存儲 205
8.4.2 網絡 207
8.5 小結 207
第2部分 移動服務
第9章 WAP和移動HTML安全 210
9.1 WAP和移動HTML基礎 211
9.2 WAP/移動HTML網站上的認證 212
9.3 加密 214
9.3.1 WAP 1.0 215
9.3.2 SSL和WAP 2.0 216
9.4 移動HTML網站上的應用層攻擊 216
9.4.1 跨站腳本攻擊 217
9.4.2 SQL注入 220
9.4.3 CSRF攻擊 222
9.4.4 HTTP重定嚮 225
9.4.5 釣魚攻擊 226
9.4.6 會話僞造 227
9.4.7 非SSL登錄 228
9.5 WAP和移動瀏覽器的不足 228
9.5.1 缺乏HTTPOnly標簽的支持 228
9.5.2 缺乏SECURE標簽的支持 228
9.5.3 瀏覽器緩存處理 229
9.5.4 WAP不足 229
9.6 小結 229
第10章 藍牙安全 231
10.1 藍牙技術概覽 231
10.1.1 曆史及標準 231
10.1.2 常見用途 232
10.1.3 其他類似方式 232
10.1.4 未來發展 234
10.2 藍牙技術架構 234
10.2.1 Radio operation和頻率 234
10.2.2 藍牙網絡拓撲 235
10.2.3 設備識彆 235
10.2.4 運行模式 236
10.2.5 藍牙分層模型 236
10.2.6 藍牙profile 237
10.3 藍牙安全功能 238
10.3.1 配對 239
10.3.2 藍牙傳統安全服務 240
10.3.3 非功能性安全 243
10.4 藍牙設備和網絡的威脅 244
10.5 藍牙漏洞 245
10.5.1 藍牙v1.2之前的版本 245
10.5.2 藍牙v2.1之前的版本 245
10.5.3 所有版本 245
10.6 建議 246
第11章 短信安全 247
11.1 短消息服務概覽 248
11.2 多媒體消息概覽 251
11.3 協議攻擊 253
11.3.1 濫用閤法功能 255
11.3.2 協議攻擊的實現 264
11.4 應用攻擊 266
11.4.1 iPhone Safari 267
11.4.2 Windows Mobile MMS 268
11.4.3 Motorola RAZR JPG溢齣 268
11.5 安全演練 269
11.5.1 發送PDU 269
11.5.2 XML轉換為WBXML 271
11.6 結論 271
第12章 移動地理定位 272
12.1 地理定位方法 272
12.1.1 基站三角定位 272
12.1.2 GPS定位 273
12.1.3 802.11 274
12.2 地理定位實現 274
12.2.1 Android 274
12.2.2 iPhone 276
12.2.3 Windows Mobile 276
12.2.4 Symbian 277
12.2.5 BlackBerry 277
12.3 地理定位服務的風險 278
12.3.1 最終用戶的風險 278
12.3.2 服務提供商的風險 279
12.4 地理定位最佳實踐 280
第13章 企業安全 282
13.1 設備安全選項 283
13.1.1 PIN碼 283
13.1.2 遠程刪除 284
13.2 本地存儲安全 285
13.2.1 Apple iPhone以及Keychain機製 285
13.3 安全策略實施 286
13.4 加密 287
13.4.1 全盤加密 288
13.4.2 郵件加密 288
13.4.3 文件加密 289
13.5 應用沙箱、簽名及許可 289
13.5.1 應用程序沙箱 290
13.5.2 應用程序簽名 291
13.5.3 權限控製 293
13.6 緩衝區溢齣保護 294
13.6.1 Windows Mobile 294
13.6.2 iPhone 295
13.6.3 Android 295
13.6.4 BlackBerry 296
13.7 安全功能匯總 296
13.8 結論 297
第3部分 附錄
附錄A 移動惡意軟件 300
A.1 曆史重要惡意軟件介紹 301
A.1.1 Cabir 301
A.1.2 Commwarrior 301
A.1.3 Beselo.B 301
A.1.4 Trojan.Redbrowser.A 302
A.1.5 WinCE/Brador.a 302
A.1.6 WinCE/Infojack 302
A.1.7 SMS.Python.Flocker 302
A.1.8 Yxes.A 303
A.1.9 其他 303
A.2 威脅場景 303
A.2.1 假冒固件 303
A.2.2 典型木馬 304
A.2.3 蠕蟲 304
A.2.4 勒索軟件 304
A.3 減少移動惡意軟件的破壞 305
A.3.1 終端用戶 305
A.3.2 開發人員以及平颱供貨商 305
附錄B 移動安全滲透測試工具 307
B.1 移動平颱攻擊工具 307
B.1.1 Manifest Explorer 307
B.1.2 Package Play 308
B.1.3 Intent Sniffer 309
B.1.4 Intent Fuzzer 309
B.1.5 pySimReader 311
B.2 瀏覽器擴展 311
B.2.1 WMLBrowser 311
B.2.2 User Agent Switcher 311
B.2.3 FoxyProxy 312
B.2.4 TamperData 313
B.2.5 Live HTTP Headers 313
B.2.6 Web Developer 314
B.2.7 Firebug 314
B.3 網絡工具 315
B.3.1 Wireshark 315
B.3.2 Tcpdump 316
B.3.3 Scapy 317
B.4 Web應用工具 317
B.4.1 WebScarab 318
B.4.2 Gizmo 319
B.5 Fuzzing框架 319
B.5.1 Peach 320
B.5.2 Sulley 320
B.6 通用工具 320
B.6.1 Hachoir 320
B.6.2 VbinDiff 321
· · · · · · (
收起)