對于所有希望保護用戶免受惡意攻擊的開發者來說,消除iOS應用當中的安全漏洞至關重要。在本書中,移動端安全專家戴維·希爾向你揭示了那些會導致嚴重安全問題的常見iOS編碼漏洞,并闡述了該如何找到并修復這些漏洞的方法。避免在應用的安全漏洞方面出現重大紕漏很重要。無論是需要加強應用的防御能力,還是要在他人的代碼當中尋找安全漏洞,本書都能幫助你很好地完成這項工作。
無論你是要通過探尋、修復編碼漏洞為應用設防,還是想通過探究iOS應用結構及Objective-C設計模式捕獲他人APP漏洞,本書都會借由以下內容幫助你很好地完成工作。
√ iOS 安全模型及其內置保護模式的局限
√ 無數種會導致敏感數據泄漏的方式,例如剪貼板導致的泄漏
√ 如何使用鑰匙串、數據保護 API 及 CommonCrypto 實現加密
√ 由于 C 語言本身所遺留的缺陷,從而導致 iOS 應用如今會遇到的一些問題
√ 收集用戶數據所帶來的隱私問題,以及如何避免在收集過程中會遇到的潛在陷阱
程偉,SwiftGG 翻譯組核心成員,曾做過路由器、防火墻等安全硬件產品的 firmware 研發工作,對 iOS 開發也頗有研究,自 Swift 發布以來一直關注著它的發展,并保持有對新技術的熱忱。目前就職于某國企負責項目管理工作,業余時間喜歡看書、跑步、燒菜,研究大前端技術棧,希望能通過自己的努力為國內的技術發展添磚加瓦。馬超,iOS 開發工程師,目前就職于某金融公司手機炒股部門,SwiftGG 翻譯組核心成員。自 Apple 推出 Swift 語言之后開始學習并應用到 iOS 項目開發中,已上架多款應用到 App Store,目前專注于 Server-Side Swift 的開發,正在構思實現一個底層開源庫;業余時間喜歡逛技術博客,翻譯外文以及和技術大牛交流學習。新浪微博@Ninth_Day。李俊陽(星夜暮晨),Realm 中文翻譯,SwiftGG 翻譯組核心成員,《Xcode 江湖錄》作者之一。沉迷 Swift,自 Swift 發布以來一直在探索和學習 Swift 的開發和使用;熱愛開源,多次向 Swift、Realm Cocoa 開源庫貢獻代碼;喜歡獨辟蹊徑,目前在 App Store 上架了專門為彝族同胞開發的「彝文輸入法」,希望通過自己的努力讓所有人都能享受科技帶來的便利。 戴維?希爾在計算機安全領域有近20年的經驗,他的研究成果和著作Mobile Application Security(麥格勞-希爾出版公司)促進了iOS應用安全領域的誕生,他還多次在安全大會(比如Black Hat和DEF CON)上進行演講。希爾曾在iSEC擔任多年應用安全顧問,目前就職于Internet.org的Connectivity實驗室。
作者簡介
David Thiel在計算機安全領域有近 20年的經驗,他的研究成果和著作
Mobile Application Security(McGraw-Hill出版社出版)促進了 iOS應用安全領域的發展,他還多次在安全大會(比如 Black Hat和 DEF CON)上進行演講。 Thiel曾在 iSEC擔任多年應用安全顧問,目前就職于 Internet.org的 Connectivity實驗室。
技術評審者
Alban Diquet是軟件工程師和安全研究員,主要研究領域包括 iOS安全協議、數據隱私和移動安全。Diquet曾發布過幾個開源的安全工具,包括 SSLyze、iOS SSL Kill Switch和 TrustKit。此外,他也經常出席各種安全會議,包括 Black Hat、 Hack in the Box和 Ruxcon。
目錄
推薦序 ......................................................................................................................... V
譯者序 ....................................................................................................................... VII
作者簡介 ..................................................................................................................... IX
前言 ............................................................................................................................ XI
致謝 ......................................................................................................................... XXI
第一部分 iOS 基礎
第1 章 iOS 安全模型 ................................................................................................ 2
安全啟動 ........................................................................................................................... 3
沙盒機制 ........................................................................................................................... 3
數據保護和全盤加密 ........................................................................................................ 4
加密密鑰的層級........................................................................................................ 5
鑰匙串API ................................................................................................................ 7
數據保護API ............................................................................................................ 7
防御代碼漏洞:ASLR、XN 和其他機制 ....................................................................... 8
越獄檢測 ........................................................................................................................... 9
蘋果商店的審查是否有用 .............................................................................................. 10
WebKit 橋接 ............................................................................................................ 11
XXIV iOS應用安全權威指南
動態修復 ................................................................................................................. 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
聲明并遵守協議....................................................