iOS 應用安全權威指南電子書 PDF 分享

目錄

推薦序 V
譯者序 VII
作者簡介 IX
前言 XI
致謝 XXI
第一部分 iOS 基礎
第1 章 iOS 安全模型 2
安全啓動 3
沙盒機制 3
數據保護和全盤加密 4
加密密鑰的層級 5
鑰匙串API7
數據保護API7
防禦代碼漏洞:ASLR、XN 和其他機制 8
越獄檢測 9
蘋果商店的審查是否有用 10
WebKit 橋接 11
動態修復 11
故意植入不安全的代碼 12
內嵌解釋器 12
小結 12
第2 章 Objective-C 簡明教程 13
關鍵的iOS 編程技術 14
消息傳遞 14
剖析Objective-C 程序 15
聲明一個接口 15
具體實現 16
使用block 指定回調 18
Objective-C 如何管理內存 19
自動引用計數 19
委託和協議 20
should 消息 20
will 消息 21
did 消息 21
聲明並遵守協議 21
category 的潛在問題 23
方法swizzling24
小結 26
第3 章 iOS 應用剖析 27
對plist 文件進行處理 29
設備目錄 32
Bundle 目錄 34
Data 目錄 35
Documents 和Inbox 目錄 35
Library 目錄 36
tmp 目錄 38
Shared 目錄 38
小結 39
第二部分 安全性測試
第4 章 構建測試平臺 42
拆掉輔助輪 42
推薦幾個測試設備 43
使用設備測試與使用模擬器測試 44
網絡和代理設置 45
繞過TLS 驗證 45
用stunnel 繞過SSL47
設備上的證書管理 49
在設備上設置代理 50
Xcode 和構建設置 53
爲生活增加點挑戰 53
啓用完整的ASLR55
Clang 和靜態分析 56
Address Sanitizer 和動態分析 57
使用Instruments 監控程序 58
激活工具 59
用Watchdog 監視系統活動 61
小結 62
第5 章 使用lldb 和其他工具進行調試 63
lldb 中有用的特性 64
操作斷點 64
查看幀和變量 66
可視化查看對象 70
操作變量和屬性 71
斷點行爲 73
使用lldb 進行安全分析 75
錯誤注入 75
追蹤數據 77
查看核心框架 77
小結 78
第6 章 黑盒測試 79
安裝第三方應用程序 80
使用.app 目錄安裝 80
使用.ipa 程序包安裝 82
解密二進制文件 82
啓動設備上的debugserver83
定位加密字段 86
轉儲應用程序內存 90
逆向解密後的二進制文件 93
使用otool 檢查二進制文件 93
使用class-dump 獲得類信息 95
使用Cycript 從運行程序中提取數據 96
使用Hopper 反彙編 97
繞過證書鎖定 99
使用Cydia Substrate 工具 100
使用Introspy 自動攔截 104
小結 107
第三部分 Cocoa API 的安全怪癖
第7 章 iOS 網絡通信 110
使用iOS 自帶的URL 加載系統 110
正確使用傳輸層安全協議 111
NSURLConnection 的基本身份驗證策略 113
在NSURLConnection 中實現TLS 認證 115
修改重定向行爲 117
TLS 證書鎖定 117
使用NSURLSession120
NSURLSession 配置 120
執行NSURLSession 任務 121
如何繞過NSURLSession 的TLS 驗證 122
NSURLSession 中的基本身份驗證 123
管理已存儲的URL 憑證 125
使用第三方網絡API 的風險 126
如何正確使用AFNetworking126
ASIHTTPRequest 的錯誤使用方式 128
多點連接 129
使用NSStream 操作底層網絡 131
使用CFStream 操作更加底層的網絡 133
小結 134
第8 章 進程間通信 135
URL scheme 和openURL 方法 135
定義URL scheme136
發送和接收URL/IPC 請求 137
驗證URL 和發送者 138
劫持URL scheme140
通用鏈接 141
使用UIActivity 共享數據 143
應用程序擴展 145
檢查應用程序是否實現了擴展 146
限制和驗證可共享的數據 147
禁止應用和擴展交互 148
失敗的IPC 技巧:剪貼板 149
小結 150
第9 章 適用於iOS 的Web 應用 151
使用(並濫用)UIWebView151
UIWebView 的使用方式 152
在UIWebView 中執行JavaScript 代碼 153
橋接JavaScript-Cocoa 的收益和風險 154
應用與JavaScriptCore 交互 155
使用Cordova 執行JavaScript 代碼 159
使用WKWebView163
WKWebView 的使用方式 163
WKWebViews 的安全性優勢 164
小結 166
第10 章 數據泄漏 167
揭祕NSLog 和蘋果系統日誌 167
在發佈版本中禁用NSLog169
使用斷點行爲來記錄日誌 170
敏感數據如何通過剪貼板泄漏 171
不受限制的系統剪貼板 171
命名剪貼板的風險 172
剪貼板數據保護策略 174
查找並修復HTTP 緩存泄漏 176
緩存管理 177
如何刪除緩存數據 179
HTTP 本地存儲和數據庫中的數據泄漏 182
按鍵記錄及自動糾錯數據庫 183
用戶偏好設置的錯誤用法 185
處理截屏中的敏感數據 186
屏幕遮擋策略 187
遮擋原理解析 190
隱藏視圖的常見問題 191
阻止應用掛起,從而避免截屏 191
狀態保存導致的泄漏 192
安全的狀態保存 194
遠離iCloud196
小結 197
第11 章 C 語言的遺留問題 198
格式化字符串 199
預防傳統的C 格式化字符串*** 200
預防Objective-C 格式化字符串*** 201
緩衝區溢出及棧空間 202
strcpy 緩衝區溢出 203
預防緩衝區溢出 204
整數溢出和堆 206
malloc 引發的整數溢出 206
預防整數溢出 208
小結 208
第12 章 注入*** 209
客戶端的跨站腳本*** 209
輸入審查 210
輸出編碼 212
SQL 注入*** 213
斷言注入*** 214
XML 注入*** 216
通過XML 外部實體實現注入*** 216
第三方XML 庫的問題 217
小結 218
第四部分 保證數據安全
第13 章 加密與認證 220
使用鑰匙串 220
用戶備份中的鑰匙串 221
鑰匙串保護屬性 221
鑰匙串基礎用法 223
封裝鑰匙串 226
共享鑰匙串 227
iCloud 同步 228
數據保護API228
保護等級 229
DataProtectionClass 權限 232
檢查保護數據是否可用 233
使用CommonCrypto 加密 235
避免弱算法 236
正確使用初始化向量 236
破碎的熵 237
弱密鑰 237
執行散列操作 238
使用HMAC 確保消息的可靠性 239
使用RNCryptor 封裝CommonCrypto240
使用TouchID 進行本地驗證 241
指紋是否足夠安全 242
小結 242
第14 章 移動端隱私問題 243
唯一設備標識符隱患 243
官方解決方案 244
使用唯一標識符的規則 246
移動端Safari 及請勿追蹤header 標籤 246
Cookie 接受策略 247
位置和行動監控 249
地理位置定位的工作原理 249
存儲位置數據的風險 250
限制定位精度 250
請求位置數據 251
健康與運動信息管理 252
通過HealthKit 讀寫數據 252
M7 協處理器 254
申請收集數據 254
使用iBeacon 追蹤距離 255
iBeacon 監測功能 256
將iOS 設備變爲iBeacon258
iBeacon 注意事項 259
建立隱私策略 259
小結 260

下載地址:http://www.ioshacker.net/forum.php?mod=viewthread&tid=16&extra=page%3D1

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