iOS 套用安全權威指南

iOS 套用安全權威指南

《iOS 套用安全權威指南》一書原作者David Thiel(戴維·希爾),中文版由程偉、馬超、李俊陽譯,電子工業出版社2017年1月出版

基本介紹

  • 書名:iOS 套用安全權威指南
  • 作者:【美】David Thiel(戴維·希爾)
  • 譯者:程偉 馬超 李俊陽
  • ISBN:978-7-121-30606-8
  • 頁數:292
  • 定價:69.00
  • 出版社:電子工業出版社
  • 出版時間:2017年1月
  • 開本:16開
內容提要,目錄,

內容提要

對於所有希望保護用戶免受惡意攻擊的開發者來說,消除iOS 套用當中的安全漏洞至關重要。在《iOS 套用安全權威指南》中,移動端安全專家David Thiel 向你揭示了那些會導致嚴重安全問題的常見iOS 編碼漏洞,並闡述了找到並修復這些漏洞的方法。
避免在套用的安全漏洞方面出現重大紕漏很重要。無論是需要加強套用的防禦能力,還是要在他人的代碼當中尋找安全漏洞,《iOS 套用安全權威指南》都能幫助你很好地完成工作。
《iOS 套用安全權威指南》適合有一定經驗、正致力於探究iOS 套用漏洞的開發者,也適合對滲透測試感興趣的讀者。

目錄

推薦序 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

相關詞條

熱門詞條

聯絡我們