《最強(qiáng)iOS和macOS安全寶典》以蘋(píng)果操作系統(tǒng)的安全為主題,主要面向蘋(píng)果高級(jí)用戶、系統(tǒng)管理員、安全研究人員和黑客。本書(shū)主要分三個(gè)部分:第一部分重點(diǎn)介紹了蘋(píng)果公司在macOS和iOS上部署的安全服務(wù)和安全防護(hù)機(jī)制,通過(guò)學(xué)習(xí)這些技術(shù),讀者可以更好地了解蘋(píng)果操作系統(tǒng);第二部分介紹了如何繞過(guò)這些安全機(jī)制并最終實(shí)現(xiàn)iOS越獄。在某種意義上,可以把第二部分看成是一份迷你的“iOS黑客越獄手冊(cè)”,里面介紹了歷年來(lái)極經(jīng)典的蘋(píng)果系統(tǒng)漏洞和越獄程序;第三部分提供了一份macOS安全加固指南,可以幫助系統(tǒng)管理員和用戶更好地加固自己的操作系統(tǒng)、從而有效地抵御黑客的攻擊。
Jonathan Levin是一位經(jīng)驗(yàn)豐富的技術(shù)培訓(xùn)師和咨詢師,他的關(guān)注點(diǎn)是"三大系統(tǒng)"(Windows、Linux和MacOS)以及它們的移動(dòng)版本(Android和iOS)原理。20年來(lái),Jonathan堅(jiān)持傳播內(nèi)核工程和修改技術(shù)的真知灼見(jiàn),在DefCON會(huì)議上發(fā)表了很多技術(shù)演講;他是Technologeeks.com公司的創(chuàng)始人和首席技術(shù)官(CTO)這是由一些志趣相投的專家合伙創(chuàng)辦的公司,致力于通過(guò)技術(shù)培訓(xùn)傳播知識(shí),通過(guò)咨詢解決棘手的技術(shù)難題。他們的專業(yè)領(lǐng)域覆蓋軟件架構(gòu)中的實(shí)時(shí)及其他關(guān)鍵部分、系統(tǒng)/核級(jí)編程、調(diào)試、逆向工程以及性能優(yōu)化。
蒸米 螞蟻集團(tuán)高級(jí)安全專家,香港中文大學(xué)博士,阿里星,目前主要負(fù)責(zé)反入侵和安全切面相關(guān)的業(yè)務(wù)。加入螞蟻之前,曾在阿里、騰訊、百度以及硅谷FireEye工作實(shí)習(xí)。 發(fā)現(xiàn)并命名了影響上億設(shè)備的iOS病毒XcodeGhost和影響上億設(shè)備的Android app漏洞WormHole ,對(duì)安全界產(chǎn)生巨大影響,并被FIT 2016評(píng)選為”年度最佳安全研究員” ;實(shí)現(xiàn)了最新版本的iOS越獄并幫助Apple公司修復(fù)多處iOS和macOS系統(tǒng)安全問(wèn)題,獲得Apple公司的官網(wǎng)致謝; 在學(xué)術(shù)界頂會(huì)(NDSS,CCS等)和工業(yè)界頂會(huì)(Blackhat USA、DEFCON等)發(fā)表過(guò)論文和演講;業(yè)余時(shí)間多次參加信息安全競(jìng)賽 (DEFCON,AliCTF,GeekPwn等),并取得優(yōu)異成績(jī)。
最強(qiáng)iOS 和macOS 安全寶典
XIV
目錄
1 身份認(rèn)證 2
密碼文件(*OS) 2
setuid 和setgid(macOS) 4
可插拔認(rèn)證模塊(macOS) 5
opendirectoryd(macOS) 9
Apple ID 20
外部賬號(hào) 22
2 審計(jì)(macOS) 24
設(shè)計(jì) 24
審計(jì)會(huì)話 28
實(shí)現(xiàn) 29
系統(tǒng)調(diào)用接口 33
OpenBSM API 36
審計(jì)的注意事項(xiàng) 38
3 認(rèn)證框架(KAuth) 39
設(shè)計(jì) 39
實(shí)現(xiàn) 40
KAuth 身份解析器(macOS) 45
調(diào)試KAuth 47
4 強(qiáng)制訪問(wèn)控制框架(MACF) 49
背景 49
MACF 策略 52
設(shè)置MACF 57
MACF callout 58
MACF 系統(tǒng)調(diào)用 64
小結(jié) 65
5 代碼簽名 66
代碼簽名的格式 67
代碼簽名需求 76
Entitlement(授權(quán)) 80
強(qiáng)制驗(yàn)證代碼簽名 82
代碼簽名API 89
6 軟件限制(macOS) 94
認(rèn)證 94
authd 96
GateKeeper(macOS) 98
目錄
XV
libquarantine 101
Quarantinekext 102
執(zhí)行隔離 103
syspolicyd 105
應(yīng)用程序轉(zhuǎn)移 109
托管客戶端(macOS) 111
7 AppleMobileFilelntegrity 121
AppleMobileFileIntegritykext 121
MACF 策略 123
amfid 136
配置描述文件 144
AMFI 信任緩存 152
AMFI 用戶客戶端 153
小結(jié) 154
8 沙盒 155
沙盒的演變 155
App Sandbox(macOS) 157
移動(dòng)容器(* OS) 161
沙盒配置文件 163
用戶模式API 174
mac_syscall 176
Sandboxkext 177
配置文件評(píng)估 185
sandboxd(macOS) 186
9 系統(tǒng)完整性保護(hù)(macOS) 189
設(shè)計(jì) 190
實(shí)現(xiàn) 191
API 196
10 隱私 199
透明度、許可和控制 199
唯一設(shè)備標(biāo)識(shí)符 207
11 數(shù)據(jù)保護(hù) 211
卷級(jí)別加密(macOS) 211
文件級(jí)加密(*OS) 218
mobile_obliterator 223
授權(quán) 225
密鑰包 226
AppleKeyStorekext 230
密鑰鏈(keychain) 232
小結(jié) 237
12 macOS 漏洞 240
macOS 10101:ntpd 遠(yuǎn)程代碼執(zhí)行漏洞(CVE-2014-9295) 241
最強(qiáng)iOS 和macOS 安全寶典
XVI
macOS 10102:rootpipe 權(quán)限提升(CVE-2015-1130) 242
macOS 10103:kextd 競(jìng)爭(zhēng)條件漏洞(CVE-2015-3708) 245
macOS 10104:DYLD_PRINT_TO_FILE 權(quán)限提升漏洞(CVE-2015- 3760) 247
macOS 10105:DYLD_ROOT_PATH 權(quán)限提升 250
macOS 10110:tpwn 提權(quán)和(或)SIP 閹割 252
macOS 10113:“Mach Race”本地提權(quán)(CVE-2016-1757) 254
macOS 10114:LokiHardt 的Trifecta(CVE-2016-1796、CVE-2016-1797 和
CVE-2016-1806) 256
小結(jié) 261
13 越獄 263
神話揭密 263
越獄過(guò)程 265
內(nèi)核補(bǔ)丁 270
內(nèi)核補(bǔ)丁保護(hù) 278
iOS 越獄軟件的進(jìn)化 286
14 Evasi0n 287
加載器 288
untether 程序 294
內(nèi)核模式的漏洞利用程序 296
蘋(píng)果公司的修復(fù)方案 306
15 evasi0n 7 309
加載器 310
untether 文件 318
內(nèi)核模式漏洞利用 320
蘋(píng)果公司的修復(fù)方案 326
16 Pangu 7(盤古斧) 328
加載器 329
證書(shū)注入 330
越獄有效載荷 331
untether 文件 332
內(nèi)核模式的漏洞利用 334
蘋(píng)果公司的修復(fù)方案 342
17 Pangu 8(軒轅劍) 344
加載器 344
用戶模式的漏洞利用 345
untether 文件 350
蘋(píng)果公司的修復(fù)方案 351
18 TaiG(太極) 353
加載器 353
untether 文件 360
內(nèi)核模式的漏洞利用 362
蘋(píng)果公司的修復(fù)方案 373
目錄
XVII
19 TaiG 2 376
代碼簽名繞過(guò) 377
untether 文件 384
內(nèi)核漏洞利用 385
蘋(píng)果公司的修復(fù)方案 388
20 Pangu 9(伏羲琴) 391
加載器 391
Pangu 9 的有效載荷 398
內(nèi)核模式的漏洞利用 399
繞過(guò)代碼簽名 405
untether 文件 408
蘋(píng)果公司的修復(fù)方案 410
21 Pangu 93(女?huà)z石) 412
內(nèi)核模式的漏洞利用 413
蘋(píng)果公司的修復(fù)方案 417
22 Pegasus(三叉戟) 418
漏洞利用流程 419
讀取內(nèi)核內(nèi)存和繞過(guò)KASLR 422
寫(xiě)任意內(nèi)核內(nèi)存 424
持久性 425
蘋(píng)果公司的修復(fù)方案 428
225 Phoenix 430
信息泄露 430
Zone 梳理 433
mach_ports_register 434
把它們放在一起就是Phoenix 435
蘋(píng)果公司的修復(fù)方案 437
23 mach_portal 438
漏洞利用流程 439
Mach 端口名稱的urefs 處理 440
將攻擊應(yīng)用于launchd 442
powerd 崩潰 443
XNU 中的set_dp_control_port UaF 漏洞 446
禁用保護(hù)機(jī)制 448
蘋(píng)果公司的修復(fù)方案 452
24 Yalu(iOS 100~ iOS 102) 453
附錄A macOS 安全加固指南 475
附錄B 詞匯表 489
后記 492