最强iOS和macOS安全宝典
  • 推荐0
  • 收藏4
  • 浏览7.1K

最强iOS和macOS安全宝典

Jonathan Levin (作者)  郑旻 (译者)

  • 丛  书:安全技术大系
  • 书  号:978-7-121-41401-5
  • 出版日期:2021-08-04
  • 页  数:516
  • 开  本:16(210*297)
  • 出版状态:上市销售
  • 原书名: MacOS and iOS Internals, Volume III: Security & Insecurity
  • 原书号:0991055535
  • 维护人:刘皎
纸质版 ¥179.00
《最强iOS和macOS安全宝典》以苹果操作系统的安全为主题,主要面向苹果高级用户、系统管理员、安全研究人员和黑客。
本书主要分三个部分:第一部分重点介绍了苹果公司在macOS和iOS上部署的安全服务和安全防护机制,通过学习这些技术,读者可以更好地了解苹果操作系统;第二部分介绍了如何绕过这些安全机制并最终实现iOS越狱。在某种意义上,可以把第二部分看成是一份迷你的“iOS黑客越狱手册”,里面介绍了历年来极经典的苹果系统漏洞和越狱程序;第三部分提供了一份macOS安全加固指南,可以帮助系统管理员和用户更好地加固自己的操作系统、从而有效地抵御黑客的攻击。

深度剖析苹果底层系统,盘古团队专序推荐
这本书是我计划写的Mac OS X and iOS Internals, 2nd Edition系列中的第3本。然而,它不仅早于第1本和第2本出版,而且我原来的计划中根本就没有它。我最初计划的是将第1版的Mac OS X and iOS Internals扩充成2本,结果变成3本。由于涉及watchOS和tvOS,本书就不再只是关于iOS的了。因此,我选择了*OS作为书名的一部分。后来,苹果公司将Mac OS X中的“X”去掉了(但不是10?!)。因此,现在书名只能变成*OS Internals。
当我开始写Mac OS X and iOS Internals的时候,很快就意识到,最初想写成一个(很长的)章节的内容完全有能写成一本书。这一章初稿的篇幅在以惊人的速度增加。然而,越深入探究苹果公司精心设计的体系结构中隐藏的细节,就越认识到需要详尽讨论安全(我在第1版的附言中曾涉及的主题)的必要性,以便展示这无数个小片如何整合为一个整体,而这个整体要远大于其各部分之和。
因此,我决定重新调整该书的结构,将本来应该出现在第1本(用户模式)和第2本(内核模式)中的相应内容移到本书。仅仅这些内容就有十几章。但随后我想到,如果写一本以安全为主题的书,为什么不讲一讲风险呢?为什么不讨论结构的缺陷(主要指实现中的缺陷,以及程序中存在了几十年的漏洞)?这些缺陷可以用来突破系统安全防护,首先也是最重要的,就是用于对防守严密的*OS变体(iOS、watchOS和tvOS)越狱。
如果你读过前一个版本(那时书名还叫作Mac OS X and iOS Internals),就会发现本书有极大的不同——它已从各种限制中解脱出来。第1版的篇幅受到了我(当时)的出版商的限制。起初,我愚蠢地估计为500页,但实际上有800页左右,而他们拒绝了我增加篇幅的请求。最终的结果是,后面的章节越来越短,讲IOKit的那一章甚至不足30页。众多有深度的资料我想放入书中,都未能如愿。
另一个限制主要在于我被要求只能讨论苹果公司操作系统的非机密问题。从本质上讲,就是只能讨论从各种开放源码中获取的内容。我尽量突破各种限制,但总的来说,仍在界限之内。私有框架属于禁区,例如通过逆向工程获取的内容,都不能出现在书中。
但是现在,我自己就是出版商。我需要买回自己的出版权(我知道这事很恐怖),但打破这个桎梏的代价很小。在这一点上,仅有的枷锁,如果有的话,也是我加给自己的。我却因此获得了更大的自由。第一个限制——篇幅,使我将本书分为3本,每一本都相当于或多于第1版的篇幅。然而,更重要的是,我可以自由讨论每一件事情。利用配套网站的论坛,我收集了许多对主题有帮助的建议并加到书中,它们大多是没有正式文档描述的主题,绝对不是你可以在苹果公司开源网站上发现的内容。的确,这里所涉及的主题,特别是*OS领域,都是关于代码的,其来源绝不会冒险超出苹果公司的网络和VPN(虚拟专用网络)。同样,对提供安全特性的守护进程、框架、内核扩展的逆向工程方面的内容,书中都有详细的讲解。这也是本书需要这么长时间撰写的原因。
是的,写本书(第3卷)花了很长时间,我还要用更长的时间来写第1本和第2本。没有限制也有缺点——没有截稿日期。另一方面,花这么长的时间写作,能够使我确定再确定,你在书中读到的任何东西都适用于iOS 10。事实上,苹果公司在iOS 10b1中提供了一个未加密的64位内核缓存,我从中提取了真实的汇编代码片段,而不是内核内存转储。
当第1本出版时,你会看到关于XPC、launchd(很快,朋友们,很快就会出版)、dyld、Mach消息和用户模式中的API的详细讲解,以及关于Grand Central Dispatcher、Objective-C和Swift的讲解,还有很多其他重要的系统方面知识的讲解,而后者要么那时已经不是目前的形式(大约是OS X 10.7/iOS 5.x),要么由于严格的篇幅限制而被省略——可能到那时本书的页数已经超出范围了。同样,第2本将深入讲解内核,覆盖新增的内容,例如Mach vouchers和活动率追踪,以及苹果公司引入的重要的QoS增强措施。我将第一次分析内核区域(zone)管理、电源管理和图像处理等细节,并且进一步讲解IOKit,这是它的重要性所决定的:不但详细解释它的实现和数据结构,而且对一些突出的IOFamily进行探索。还将有专门的一章探索Mac和苹果设备。
这一次,我尝试采用类似《最强Android书:架构大剖析》一书的风格,那本书旨在模拟Russinovich、Solomon和Ionescu所著的传奇般的Windows Internals一书。与第1版不同——第1版中许多页面被代码所占据(特别是XNU的代码),这一版尽可能回避代码片段,选择用框图来展示通过精心编写的代码搜集到的信息。然而,下列情况则属于例外:
1. 如果是一个特别相关而且很重要的代码片段时。例如该片段含有一个漏洞。这种情况在第二部分相对常见,该部分讨论程序漏洞和对这个漏洞的利用。
2. 如果正在讨论的代码反汇编或反编译自苹果公司操作系统的二进制文件或越狱软件,而该代码并没有开放源码时。如果是后者,我会在代码中添加注释,以方便阅读。
3. 如果该代码是“实验”的一部分时。该实验为了获得想要的输出结果,要求按照特别的顺序输入指令。
总而言之,我想你会发现这个新版——所有的3本——是值得从头阅读的,它完全淘汰了前一版。随着macOS和iOS家族不断升级版本,我计划不断更新本书,使它“保持活力”,像我对Android Internals一书所做的一样。尽管本书出版后内容就无法再更改了,但由于每次印数较少,使我能在随后每个印次的版本中都进行少量的更新和修改。如果iOS 13出现时,我仍在做这些工作(谁知道呢?),就有可能撰写本书的第3版。
┃ 目标读者
尽管本书是*OS Internals三部曲中的一本,但它几乎是独立且完整的,而且依然以安全为主题。因此,有安全意识的人会最先发现这本书有用。本书的第一部分面向macOS系统管理员、高级用户、安全研究人员和审计员。我已经公开和记录下来的关于内部API的内容可以作为模糊测试的基础,对于希望使用这些子系统接口的程序员,这部分内容也可能是有用的。
第二部分讲了很多底层的内容,有很强的技术性,可能不适合心理脆弱的初学者,或者对英特尔和(或)ARM64框架深恶痛绝的人。然而,逆向工程师和黑客可能会喜欢这个部分。它不仅讲述了漏洞形成的原因和越狱的深层细节,而且给出了使用调试器逐步跟踪的步骤,以及大量的反汇编例子。
┃ 本书内容概览
本书分为两个部分。老实说,其中的内容足够写两本书了,但与《英特尔架构手册》不同,我决定不再进一步划分内容的组织结构了。
第一部分
第一部分重点介绍苹果公司为macOS中的安全服务和/或锁定*OS系统而提供的安全机制和技术。大多数的实现在所有平台(特别是从macOS 10.11开始)都是相同的,但*OS仍然是苹果公司投入最大的部分。
? 第1章讲述身份验证,它基本是macOS的特性,因为*OS(目前)是单用户系统。虽然我们讨论了传统的master.passwd文件,但重点在于macOS可插拔认证模块(PAM)和OpenDirectory的实现,以及与外部域(即NIS)和Microsoft的Active Directory的集成。
? 第2章讨论了审计,即追踪用户或进程的操作(无论是授权还是尝试),并提供详细的日志跟踪记录。macOS中的审计是从Solaris借过来的一个功能,实际上是默认开启的——但几乎无人知晓。审计为其客户(通常是管理人员或监控软件)对系统所有方面(无论大的方面还是小细节,用户还是内核)进行前所未有的监控。
? 第3章通过探索身份验证——允许或拒绝用户或进程(第1章中所讲的身份验证)的操作来完成AAA(Authentication、Auditing和Authorization)三位一体。有一个KPI(内核编程接口)被称为KAuth (由于它是对内核扩展的非官方支持,因此在*OS中不可用)。
? 第4章将进一步深入探讨身份验证和内核,并详细介绍强制性访问控制框架,通常称为MACF。这是借用了其他系统的另一个功能(来自TrustedBSD)。MACF比审计的功能更强大,后者在事件发生之后发送通知,而MACF实际上可以拦截操作(允许或拒绝操作,甚至修改它们)。苹果系统所有的安全都建立在MACF提供的基石之上,特别是*OS。迄今为止,它是最强大的授权机制(能力远远超过KAuth),但不幸的是,它被认为是苹果公司的私有KPI。
? 第5章讨论代码签名,它是MACF最直接的应用,是苹果公司自iOS以来在*OS中一直执行的安全措施,最近也开始在macOS上实施。虽然苹果公司的操作系统不是唯一使用代码签名的操作系统,但它们的实现迄今为止是最先进的。代码签名与授权配合,成为应用级安全的基础。
? 第6章是关于macOS的,讨论了其软件限制机制:从macOS GateKeeper开始,苹果公司在macOS 10.7.5中引入这个机制,试图打击针对macOS的恶意软件。GateKeeper与诸如authd和syspolicyd等守护进程,以及一个名为Quarantine隔离区的专用内核扩展互通。随后,讨论的话题转到macOS的“托管客户端扩展”,它们被用于企业环境和家长控制。
? 第7章讨论AppleMobileFilelntegrity(AMFI),一个它的朋友和敌人都知道的名字。虽然名字中有“Mobile”,其实作为iOS代码签名的执行者,AMFI从macOS 10.10开始就在macOS中出现,而且它在macOS 10.11中还有更大的作用,也就是所谓的SIP(系统完整性保护)。本章将通过逆向MACF策略、MIG消息和IOUserClient,深入探索iOS和macOS版本的实现。
? 第8章讨论了苹果公司的沙盒,这也是一个基于MACF的应用程序,苹果公司早在macOS 10.5时首次尝试该应用程序,那时将其命名为“SeatBelt”。尽管当初的实现相当幼稚,而且还是选择性实施的,但是现在它已经有相当大的发展,并成为iOS上最强大的监狱。对沙盒的介绍先从其基础开始,到macOS的“AppSandbox”,再到加固的iOS实现。第8章详细介绍了其配置文件、容器和其他构建模块,为讨论macOS 10.11的SIP和iOS 10的平台配置文件奠定了基础。
? 第9章讨论macOS的SIP:一旦建立基础设施(AMFI和沙盒),SIP就只是一种全系统政策的定义而已。虽然iOS 9.x中不存在SIP,但其在*OS上的使用只是时间问题,并且iOS 10的平台策略已经显著加固了。
? 第10章讨论隐私,在所有操作系统中,它都是由一个小型的无文档描述的守护进程TCCd处理的。该守护进程驻留在一个数据库中,该数据库定义了哪些应用可以访问哪些存储,并提供一个由私有TCC.framework包装的XPC API。这一章进一步分析了唯一标识符(尤其是在iOS上),因为许多软件供应商都要寻找并识别他们的软件安装在什么设备上。
? 第11章的重点是数据保护。关于这个特性,macOS的实现与*OS的实现再次有所不同。macOS的解决方案是FileVault 2,它与CoreStorage一起在macOS 10.7中引入。*OS的解决方案更加深入,通过硬件支持的密钥来增强加密,有时候对每个文件都进行加密。
第二部分
第二部分审视了第一部分介绍的所有精巧构造——苹果工程师最好的设计,讨论了它们是如何出其不意被利用的。这部分中的每一章都会剖析以前出现过的(不同类型的)漏洞(现在均已被修补),并且这些漏洞可能被macOS中的恶意软件或iOS越狱软件利用。
对于macOS漏洞,我会强调那些主要困扰macOS 10.10(在其每个次要版本中都有重要意义)的漏洞,以及几个macOS 10.11的漏洞。对于iOS漏洞,我决定按照越狱软件的时间表进行跟踪:没有比越狱更好的例子来展示这些漏洞以及其利用方法了。每个越狱软件都是在用多个漏洞构建巧妙的拼贴组合,以正确的方式利用它们就能解除iOS(及其衍生系统)的束缚。
在某种意义上,可以把第二部分看成是一份迷你的“黑客手册”,我认为我所提供的细节有足够的深度,知识覆盖面也很广,相对很多逆向工程或安全类图书来说算是前所未有了。虽然我认识不少越狱天才,但是我仍然抵制了“作弊”的冲动,从研究人员的角度逆向了越狱软件的二进制文件。在这个过程中,我用的是自己的工具,并且在本书的配套网站提供了这些工具。
最后,本书附录包含一个macOS安全加固指南。最初我认为不会写这么多,但是Sebastien Volpe提的一个问题让我觉得这是个好主意——在详细介绍许多安全功能并分析漏洞后,用这个内容作为本书的非正式“总结”是有道理的。
┃ 阅读建议
如果第一部分各章所讲的内容是专门针对mac OS或*OS的主题,则会在标题中指出;否则,这些内容可能适用于所有操作系统。在某些情况下,某一章中特定的小节也会有类似的标注。仅对某个操作系统感兴趣的读者可以轻松选择阅读哪些章节。
如果你只重点关注*OS,可以跳过专门讲述macOS的章节(第1~3章、第6章和第9章),但绝对应该阅读其余的章节。关注macOS的读者应该阅读第一部分的所有内容,也许可以跳过特定于*OS的那些部分(当然,章名中也有标记)。虽然第二部分主要讲的是越狱,但我确实希望关注macOS的读者能稍微提起一点兴趣看一眼这部分,因为在越狱软件中利用的许多XNU漏洞也是macOS的常见代码。
第二部分的大部分内容涉及越狱,主要是由逆向工程驱动的。越狱软件(除了一些已经开源的老项目)仍然是闭源的,其中一些(特别是Pangu)甚至对代码做了混淆。这可能是为了劝阻他人窃取代码或将他们的产品作为武器,以及阻止苹果公司立即修复和更新系统。
对于越狱软件,我“专门”在配套网站上提供了逆向时所使用的确切版本的二进制文件,因此你可以按照示例进行操作——主要是使用jtool进行反编译和逆向。为了让你做起来更简单,我还提供了jtool的配套文件,所以如果你用-d进行反汇编,jtool会自动标注符号并插入注释。
不幸的是,对于动态分析(即使用调试器),你的选择可能会很有限,因为苹果公司对iOS的严格升级政策使其(在很大程度上)是不可逆向的。我自己不得不通过eBay才找到足够的“样本”设备(从iOS 6.0到iOS 9.x的不同版本),分别进行越狱和调试。不管怎样,如果你手头有指定iOS版本的越狱设备,而我在书中展示的特定二进制文件足够详细,且与你使用的越狱二进制文件足够相似(越狱软件的内部版本可能有细微差异),这样你就可以(仔细地)在设备上跟随书中的步骤进行操作。
注意事项:如果你想实时调试越狱二进制文件,记得提前设立断点,并记住有可能要重新启动越狱软件(特别是在苹果设备上的untether组件)。大多数越狱软件检测到该设备已经越狱,就不会重新越狱,但是如果你使用调试器更改越狱流程,则有可能再次启动越狱。
本书不可避免地引用了第1本和第2本中的内容。这不是说让你阅读前两本,而是一些主题,主要是dyld、XPC和iCloud(在第1本中讲述),以及内核原理、扩展、网络连接和引导(在第2本中讲述)涉及的内容太深了,无法在本卷中重新介绍一遍。第2本还讨论了应用程序防火墙,无疑这是一个以安全为中心的主题,但由于该主题与网络堆栈的关系太过错综复杂,难以在本卷中解释。
一些约定
? 书中的文件名是这样指定的:苹果公司极长的路径名称已被缩写,只要可以,我会将/System/Library/Frameworks缩写为/S/L/F,PrivateFrameworks缩写为PF,Caches缩写为C,等等。com.apple.通常被缩写为c.a。对于#include后尖括号中的内容,可以在相应的SDK目录中找到与之相关的文件。GUID(引用它并没有什么用,还占用大量空间)被缩写为几个字符,因此可以遵循GUID的唯一性。来自项目(通常是XNU)的文件通常在其上下文中提及,并以相对路径而不是绝对路径显示。
? comands(1)、systemCalls(2)或classes框架类都采用这种方式指定:括号中的数字代表使用macOS的man(1)时,描述它们的查询条目的类别(如果有的话)。
此外,本书中有很多图、代码清单和输出清单。图用来显示组件或消息流。代码清单通常是静态文件,而输出清单通常是一个命令序列,属于实验的一部分。我希望用输出清单来显示命令的流程和使用情况,所以输出清单中有完整的注释。例如:
# Comment, explaining what's being done
user@hostname (directory)$/# User input
Output...
Output.. # Annotation, explaining output
请注意,用户提示符(和终止符“$”或“#”)会告诉你该命令是否需要root权限。主机名告诉你尝试启动命令的设备。“Zephyr”是macOS 10.10,如果在它上面尝试过某个命令,则表示可以在任何macOS 10.10及更高版本的macOS上尝试该命令。“Simulacrum”是macOS 10.12(在虚拟机中),而其他所有的主机名都是各种苹果设备。在讲越狱的章节中,通过上下文可以知道该设备上运行的越狱软件所涉及的特定iOS版本。
对于苹果公司最喜欢的XML格式的属性列表,我选择使用自己的工具进行演示。我称之为“SimPLISTic”,它类似于macOS的plutil(1),可以处理所有格式(binary1、json和xml1,以及NSXPC中使用的无文档说明的bplist16),它也可以大大简化这些烦人的、麻烦的和占用空间的XML标签。和我的大部分工具一样,我已经将这个工具为*OS甚至Linux(有意不使用简单但不可移植的CF * API)开源,并使其可编译。希望读者(甚至是苹果公司)会发现它很有用。
最后,你应该知道,“*OS”是指iOS及其变体(即iOS、watchOS和tvOS),而不是macOS。当macOS还是“Mac OS X”时,一切简单明了,但是Craig Federighi毁了我这个不错的区分方式。面对是改为“^[^M].*OS”还是保持简单的抉择时,为了可读性我选择了后者。
请注意,我尽可能准确地记录(注:记录什么?最好加上几个字。每页的批注好像有限制,这里没法再批注了。我试了一下,下一页又可以了),但是对于快速变化的版本而言(尤其是iOS变体),这太难了。因此,具体案例,特别是逆向的案例,通常需要引用与其源头一模一样的iOS版本。即使如此,请记住,XPC接口、Mach消息、IOUserClient调用和其他的调用会经常更改,而不另行通知。
┃ 最后……
与《最强Android书:架构大剖析》一样,这本书完全是“我自己”出版的,也就是“独奏”。我又一次使用vim以及手工输入HTML5标签 ,这绝对是一项望不到头的工作,因为我不得不使用标签对代码示例进行注释和着色。幸运的是还可以使用jtool的--html选项,而且效果不错。尽管如此,原始的HTML文件只是稍微超过1 MB的ASCII文本,直到最后一个标签都是手工输入的。你正在阅读的实际上是由Safari的“打印”选项生成的PDF文件转换的A4开本页面,每一页的容量更大 。这次书中的插图是从Microsoft PowerPoint提取的纯嵌入式PNG格式截图,大部分借鉴了我为Technologeeks的macOS/iOS安全培训班制作的幻灯片。因为没有与出版商合作,所以本书没有索引——我只能做到这个程度了,抱歉!
我的插图技巧还不如4岁小孩,所以对于封面设计,我寻求了帮助,找的不是别人,正是Jon Hooper,Hexley(Darwin吉祥物)的创作者。Hooper不仅允许我使用他的毛茸茸的小恶魔 (它的三叉戟为封面增加了神韵),还同意为所有三卷图书提供封面!
特别感谢我亲爱的朋友Ronnie Federbush,在他的帮助下,“自我出版”的书诞生了,我打破了传统出版的枷锁。最初是《最强Android书:架构大剖析》,现在是这本书。一旦走上这条路,你就永远回不去了。我感谢Eddie Cornejo(和那本关于安卓的书一样),他发现了无数的输入错误,并提出了非常好的建议(我在本书的1.1版中采纳了这些建议)。1.1版中的拼写错误也是@Timacfr发现并报告的,在1.2版中它们已被修正。
虽然苹果公司从来没有感谢过我(并无视我的电子邮件,现在我对他们不抱希望了),但是我应该感谢Cupertino 的优秀的工程师们,实际上是他们编写的软件在进行大冒险,而我只是谦卑的抄写员。macOS和iOS真的是“世界上最先进的操作系统”,这种说法并不夸张。如果这些系统更加开放,那么其他人肯定会惊叹于这些贯穿于核心的创新!
再次感谢Amy!她容忍我日日夜夜粘在Mac电脑边、容忍我不停出差,很多日夜不在她身边。当我对日益增加的工作量感到沮丧时(写书通常都是这样子!),从未对我失去信心。她给予我无限的支持和理解(以及偶尔的刺激)来鞭策我前进。
与第1版一样,你可以在本书的配套网站上找到大量的资源、文章和工具。尽管它现在是一本“新书”,如果你想参与讨论和(或)询问我任何问题,仍然可以去NewOSXBook论坛。
我在Twitter上的账号为@Morpheus_____,尽管我并没有怎么使用Twitter交流,而是用它来发布我的工具或文章的更新。主要的更新通常由我公司的账号@Technologeeks转发。Mac OS X and iOS Internals是我们的“深入macOS/iOS逆向工程师”培训的基础,本书是我们最新的培训内容——*OS应用安全。你可以在Technologeeks的网站上找到完整的课程列表。我经常自己负责这门课,所以如果你喜欢本书,并想要相对有经验的人授课,请考虑注册一个公共课程,或者为你的公司申请一个私人课程。
好吧,我说的够多了。请开始阅读吧!

目录

最强iOS 和macOS 安全宝典
XIV
目录
1 身份认证 2
密码文件(*OS) 2
setuid 和setgid(macOS) 4
可插拔认证模块(macOS) 5
opendirectoryd(macOS) 9
Apple ID 20
外部账号 22
2 审计(macOS) 24
设计 24
审计会话 28
实现 29
系统调用接口 33
OpenBSM API 36
审计的注意事项 38
3 认证框架(KAuth) 39
设计 39
实现 40
KAuth 身份解析器(macOS) 45
调试KAuth 47
4 强制访问控制框架(MACF) 49
背景 49
MACF 策略 52
设置MACF 57
MACF callout 58
MACF 系统调用 64
小结 65
5 代码签名 66
代码签名的格式 67
代码签名需求 76
Entitlement(授权) 80
强制验证代码签名 82
代码签名API 89
6 软件限制(macOS) 94
认证 94
authd 96
GateKeeper(macOS) 98
目录
XV
libquarantine 101
Quarantinekext 102
执行隔离 103
syspolicyd 105
应用程序转移 109
托管客户端(macOS) 111
7 AppleMobileFilelntegrity 121
AppleMobileFileIntegritykext 121
MACF 策略 123
amfid 136
配置描述文件 144
AMFI 信任缓存 152
AMFI 用户客户端 153
小结 154
8 沙盒 155
沙盒的演变 155
App Sandbox(macOS) 157
移动容器(* OS) 161
沙盒配置文件 163
用户模式API 174
mac_syscall 176
Sandboxkext 177
配置文件评估 185
sandboxd(macOS) 186
9 系统完整性保护(macOS) 189
设计 190
实现 191
API 196
10 隐私 199
透明度、许可和控制 199
唯一设备标识符 207
11 数据保护 211
卷级别加密(macOS) 211
文件级加密(*OS) 218
mobile_obliterator 223
授权 225
密钥包 226
AppleKeyStorekext 230
密钥链(keychain) 232
小结 237
12 macOS 漏洞 240
macOS 10101:ntpd 远程代码执行漏洞(CVE-2014-9295) 241
最强iOS 和macOS 安全宝典
XVI
macOS 10102:rootpipe 权限提升(CVE-2015-1130) 242
macOS 10103:kextd 竞争条件漏洞(CVE-2015-3708) 245
macOS 10104:DYLD_PRINT_TO_FILE 权限提升漏洞(CVE-2015- 3760) 247
macOS 10105:DYLD_ROOT_PATH 权限提升 250
macOS 10110:tpwn 提权和(或)SIP 阉割 252
macOS 10113:“Mach Race”本地提权(CVE-2016-1757) 254
macOS 10114:LokiHardt 的Trifecta(CVE-2016-1796、CVE-2016-1797 和
CVE-2016-1806) 256
小结 261
13 越狱 263
神话揭密 263
越狱过程 265
内核补丁 270
内核补丁保护 278
iOS 越狱软件的进化 286
14 Evasi0n 287
加载器 288
untether 程序 294
内核模式的漏洞利用程序 296
苹果公司的修复方案 306
15 evasi0n 7 309
加载器 310
untether 文件 318
内核模式漏洞利用 320
苹果公司的修复方案 326
16 Pangu 7(盘古斧) 328
加载器 329
证书注入 330
越狱有效载荷 331
untether 文件 332
内核模式的漏洞利用 334
苹果公司的修复方案 342
17 Pangu 8(轩辕剑) 344
加载器 344
用户模式的漏洞利用 345
untether 文件 350
苹果公司的修复方案 351
18 TaiG(太极) 353
加载器 353
untether 文件 360
内核模式的漏洞利用 362
苹果公司的修复方案 373
目录
XVII
19 TaiG 2 376
代码签名绕过 377
untether 文件 384
内核漏洞利用 385
苹果公司的修复方案 388
20 Pangu 9(伏羲琴) 391
加载器 391
Pangu 9 的有效载荷 398
内核模式的漏洞利用 399
绕过代码签名 405
untether 文件 408
苹果公司的修复方案 410
21 Pangu 93(女娲石) 412
内核模式的漏洞利用 413
苹果公司的修复方案 417
22 Pegasus(三叉戟) 418
漏洞利用流程 419
读取内核内存和绕过KASLR 422
写任意内核内存 424
持久性 425
苹果公司的修复方案 428
225 Phoenix 430
信息泄露 430
Zone 梳理 433
mach_ports_register 434
把它们放在一起就是Phoenix 435
苹果公司的修复方案 437
23 mach_portal 438
漏洞利用流程 439
Mach 端口名称的urefs 处理 440
将攻击应用于launchd 442
powerd 崩溃 443
XNU 中的set_dp_control_port UaF 漏洞 446
禁用保护机制 448
苹果公司的修复方案 452
24 Yalu(iOS 100~ iOS 102) 453
附录A macOS 安全加固指南 475
附录B 词汇表 489
后记 492

读者评论

  • 注册下载,等书到货👨🏿‍💻👨🏿‍💻👨🏿‍💻👨🏿‍💻

    qq发表于 2021/8/13 0:16:53

图书类别

相关博文

  • 地表最强:iOS安全黑宝书中文版来袭

    地表最强:iOS安全黑宝书中文版来袭

    博文小编 2021-08-20

    iOS和macOS的系统原理与逆向基础,以及由此展开的漏洞分析挖掘与恶意代码分析检测,一直是安全技术里一个独特有魅力的领域,也是一个值得投入的领域。 不得不提,Jonathan Levin的中文版新书来了!这次是《最强iOS和ma...

    博文小编 2021-08-20
    1268 0 0 0

同系列书

  • Android软件安全权威指南

    丰生强 (作者)

    本书从平台搭建和语言基础开始,循序渐进地讲解了Android平台上的软件安全技术,提供了对Windows、Linux、macOS三个平台的支持,涉及与Andro...

     
  • 极限黑客攻防:CTF赛题揭秘

    王新辉 天融信阿尔法实验室 张黎元 郭勇生 (作者)

    CTF在网络安全领域特指网络安全技术人员之间进行技术竞技的一种比赛。CTF代替了以往黑客通过互相发起真实攻击进行技术比拼的方式,题目来自日常工作环境,并将其中的...

    ¥99.00
  • 网页木马攻防实战

    罗诗尧 (作者)

    介绍网页木马发展的历史、网页木马剖析、调试器与脚本语言、缓冲区溢出的概念、shellcode的编写、网马免杀方法、网马实例编写与分析、网页木马的防范等内容。 ...

    ¥48.00
  • 代码优化:有效使用内存(含光盘1张)

    Kris Kaspersky(克瑞丝·凯斯宾革)著 (作者) 谭明金 谭明金 (译者)

    本书主要介绍该书作者对计算机底层有深入的了解,市面上没有很好的这方面的书籍。这本书将和上一本一起组成我们的安全精品系列。 本书关注代码的优化,有效的内存使用。...

    ¥48.00
  • 数据恢复技术(经典重现版)

    戴士剑 (作者)

    数据恢复技术逐渐成为一门常用技术,它通过各种手段把丢失和遭到破坏的数据还原为正常数据。本书通过多个典型实例详细介绍了Windows系统下数据恢复技术的原理和方法...

    ¥99.00

相关图书

极限黑客攻防:CTF赛题揭秘

王新辉 天融信阿尔法实验室 张黎元 郭勇生 (作者)

CTF在网络安全领域特指网络安全技术人员之间进行技术竞技的一种比赛。CTF代替了以往黑客通过互相发起真实攻击进行技术比拼的方式,题目来自日常工作环境,并将其中的...

¥99.00

大型互联网企业安全架构

石祖文 (作者)

本书全面阐述了新一代安全理论与安全架构,并结合作者自身经验层层剖析了包括Google 公司在内的各大互联网企业所应用的各种关键安全技术的原理及具体实现。全书分为...

¥55.30

Spring Security实战

陈木鑫 (作者)

Spring Security 是一个强大且高度可定制的安全框架,致力于为Java 应用提供身份认证和授权。 本书通过4 部分内容由浅入深地介绍了Spring...

 

Android软件安全权威指南

丰生强 (作者)

本书从平台搭建和语言基础开始,循序渐进地讲解了Android平台上的软件安全技术,提供了对Windows、Linux、macOS三个平台的支持,涉及与Andro...

 

加密与解密(第4版)

段钢 (作者)

本书以软件逆向为切入点,讲述了软件安全领域相关的基础知识和技能。读者阅读本书后,很容易就能在逆向分析、漏洞分析、安全编程、病毒分析等领域进行扩展。这些知识点的相...

¥198.00

Kali Linux大揭秘

(美国)Raphael Hertzog,(美国)Jim O'Gorman (作者) 诸葛建伟 (译者)

Kali Linux是设计用于数字取证和渗透测试的操作系统,本书是官方出版的仅有的一本著作。讲述了如何上手、配置、安全加固、自定义、安全评估等概念。<br>在本...

¥59.00