美国国家安全局全球网络漏洞攻击分析师、连续4年Pwn2Own黑客竞赛大奖得主Charlie Miller主笔
作者阵容超级豪华,6位均为信息安全领域大名鼎鼎的专家,各有所长,且多有专著出版
国内专注iOS平台漏洞、破解及安全攻防的中文专著
如果你也像我们一样,那么只要拿到新设备就会想要了解它的安全性。这里的“设备”当然也包括iPhone。它不再只是带有小型Web浏览器的手机,与老式手机相比,它更像是计算机。当然,这些(以及将来的)设备可能存在与台式机中相似的安全问题。为了避免这些设备受到危害,苹果公司为它们内置了怎样的预防措施和安全机制呢?我们眼前是一个开启计算领域全新分支的机会。安全性对这些新兴智能设备来说有多重要呢?
本章会就iOS设备回答这些问题。首先,我们要看看各种iOS设备上使用的硬件,然后介绍iOS 5的安全架构。重点讲一讲现有设备为了防范恶意软件攻击和攻击者利用漏洞所内嵌的多层防御手段。接着,介绍一些已经发生的针对iOS设备的攻击,从而说明这些防御手段在现实世界中是如何起效(或失效)的。还将按照时间先后顺序,介绍从最早的iPhone到iOS 5设备受到的各种攻击。阅读过程中,大家会看到iOS设备的安全性有了多大的提高。最初版本的iOS几乎没有安全性可言,但iOS 5相对而言则既强大又可靠。
1.1 iOS硬件/设备的类型
几年来,iOS一直在发展,各种苹果设备中的硬件也不断推陈出新。随着智能手机和平板电脑的普及,人们都希望拥有一台强大的计算设备。从某种意义上讲,他们期望自己口袋里装着的是一台电脑。
iPad的问世就是在这一方向上迈出的第一步。第一代iPad使用了ARM Cortex-A8架构的CPU,它的速度大约是第一代iPhone所使用CPU速度的两倍。
iPad 2和iPhone 4S则是另一个巨大跨越。它们都使用了ARM Cortex-A9架构的双核处理器,就CPU运算的速度而言,要比A8架构的处理器快20%。更惊人的是,A9的GPU要比A8的快9倍。
从安全的角度看,硬件上差异最大的是iPhone 3GS和iPad 2。iPhone 3GS是第一种支持Thumb2指令集的设备。这种新型指令集改变了创建ROP有效载荷的方式。之前设备中出现的代码序列在iPhone 3GS中突然发生了改变。
另一方面,iPad 2使用了双核处理器,它让iOS的分配程序可以全力运行。这样就对漏洞攻击的构造带来了巨大影响,因为漏洞攻击在多处理器环境下的可靠性要弱很多。
另一项与安全相关的硬件是基带。其实,在大多数国家,苹果公司的设备都是与运营商绑定(锁定)的。
为了解锁iPhone,多数漏洞攻击都会利用手机基带部件的漏洞。之前的几代iPhone一直使用英飞凌公司的基带固件。而CDMA版本的iPhone 4以及各版本的iPhone 4S转为使用高通公司的基带固件。
已经公开的若干种漏洞攻击都是针对英飞凌固件的,但针对高通固件的漏洞攻击尚未出现。
……
第1章 iOS安全基础知识
1.1 iOS硬件/设备的类型
1.2 苹果公司如何保护App Store
1.3 理解安全威胁
1.4 理解iOS的安全架构
1.4.1 更小的受攻击面
1.4.2 精简过的iOS
1.4.3 权限分离
1.4.4 代码签名
1.4.5 数据执行保护
1.4.6 地址空间布局随机化
1.4.7 沙盒
1.5 iOS攻击简史
1.5.1 Libtiff
1.5.2 短信攻击
1.5.3 Ikee蠕虫
1.5.4 Storm8
1.5.5 SpyPhone
1.5.6 Pwn2Own 2010
1.5.7 Jailb 2(“Star”)
1.5.8 Jailkme 3(“Saffron”)
1.6 小结
第2章 企业中的iOS
2.1 iOS配置管理
2.1.1 移动配置描述文件
2.1.2 iPhone配置实用工具
2.2 移动设备管理
2.2.1 MDM网络通信
2.2.2 Lion Server描述文件管理器
2.3 小结
第3章 加密
3.1 数据保护
3.2 对数据保护的攻击
3.2.1 对用户密码的攻击
3.2.2 iPhone Data Protection Tools
3.3 小结
第4章 代码签名和内存保护
4.1 强制访问控制
4.1.1 AMFI钩子
4.1.2 AMFI和execv
4.2 授权的工作原理
4.2.1 理解授权描述文件
4.2.2 如何验证授权文件的有效性
4.3 理解应用签名
4.4 深入了解特权
4.5 代码签名的实施方法
4.5.1 收集和验证签名信息
4.5.2 如何在进程上实施签名
4.5.3 iOS如何确保已签名页不发生改变
4.6 探索动态代码签名
4.6.1 MobileSafari的特殊性
4.6.2 内核如何处理即时编译
4.6.3 MobileSafari内部的攻击
4.7 破坏代码签名机制
4.7.1 修改iOS shellcode
4.7.2 在iOS上使用Meterpreter
4.7.3 取得App Store的批准
4.8 小结
第5章 沙盒
5.1 理解沙盒
5.2 在应用开发中使用沙盒
5.3 理解沙盒的实现
5.3.1 理解用户空间库的实现
5.3.2 深入内核
5.3.3 沙盒机制对App Store应用和平台应用的影响
5.4 小结
第6章 对iOS应用进行模糊测试
6.1 模糊测试的原理
6.2 如何进行模糊测试
6.2.1 基于变异的模糊测试
6.2.2 基于生成的模糊测试
6.2.3 提交和监测测试用例
6.3 对Safari进行模糊测试
6.3.1 选择接口
6.3.2 生成测试用例
6.3.3 测试和监测应用
6.4 PDF模糊测试中的冒险
6.5 对快速查看(Quick Look)的模糊测试
6.6 用模拟器进行模糊测试
6.7 对MobileSafari进行模糊测试
6.7.1 选择进行模糊测试的接口
6.7.2 生成测试用例
6.7.3 MobileSafari的模糊测试与监测
6.8 PPT模糊测试
6.9 对SMS的模糊测试
6.9.1 SMS基础知识
6.9.2 聚焦协议数据单元模式
6.9.3 PDUspy的使用
6.9.4 用户数据头信息的使用
6.9.5 拼接消息的处理
6.9.6 其他类型UDH数据的使用
6.9.7 用Sulley进行基于生成的模糊测试
6.9.8 SMS iOS注入
6.9.9 SMS的监测
6.9.10 SMS bug
6.10 小结
第7章 漏洞攻击
7.1 针对bug类的漏洞攻击
7.2 理解iOS系统自带的分配程序
7.2.1 区域
7.2.2 内存分配
7.2.3 内存释放
7.3 驯服iOS的分配程序
7.3.1 所需工具
7.3.2 与分配/释放有关的基础知识
7.4 理解TCMalloc
7.4.1 大对象的分配和释放
7.4.2 小对象的分配
7.4.3 小对象的释放
7.5 驯服TCMalloc
7.5.1 获得可预知的堆布局
7.5.2 用于调试堆操作代码的工具
7.5.3 堆风水:以TCMalloc对算术漏洞进行攻击
7.5.4 以TCMalloc就对象生存期问题进行漏洞攻击
7.6 对ASLR的挑战
7.7 案例研究:Pwn2Own 2010
7.8 测试基础设施
7.9 小结
第8章 面向返回的程序设计
8.1 ARM基础知识
8.1.1 iOS的调用约定
8.1.2 系统调用的调用约定
8.2 ROP简介
8.2.1 ROP与堆bug
8.2.2 手工构造ROP有效载荷
8.2.3 ROP有效载荷构造过程的自动化
8.3 在iOS中使用ROP
8.4 iOS中ROP shellcode的示例
8.4.1 用于盗取文件内容的有效载荷
8.4.2 利用ROP结合两种漏洞攻击程序(JailBreakMe v3)
8.5 小结
第9章 内核的调试与漏洞攻击
9.1 内核的结构
9.2 内核的调试
9.3 内核扩展与IOKit驱动程序
9.3.1 对IOKit驱动程序对象树的逆向处理
9.3.2 在内核扩展中寻找漏洞
9.3.3 在IOKit驱动程序中寻找漏洞
9.4 内核漏洞攻击
9.4.1 任意内存的重写
9.4.2 未初始化的内核变量
9.4.3 内核栈缓冲区溢出
9.4.4 内核堆缓冲区溢出
9.5 小结
第10章 越狱
10.1 为何越狱
10.2 越狱的类型
10.2.1 越狱的持久性
10.2.2 漏洞攻击程序的类型
10.3 理解越狱过程
10.3.1 对bootrom进行漏洞攻击
10.3.2 引导ramdisk
10.3.3 为文件系统越狱
10.3.4 安装完美越狱漏洞攻击程序
10.3.5 安装AFC2服务
10.3.6 安装基本实用工具
10.3.7 应用转存
10.3.8 应用包安装
10.3.9 安装后的过程
10.4 执行内核有效载荷和补丁
10.4.1 内核状态修复
10.4.2 权限提升
10.4.3 为内核打补丁
10.4.4 安全返回
10.5 小结
第11章 基带攻击
11.1 GSM基础知识
11.2 建立OpenBTS
11.2.1 硬件要求
11.2.2 OpenBTS的安装和配置
11.3 协议栈之下的RTOS
11.3.1 Nucleus PLUS
11.3.2 ThreadX
11.3.3 REX/OKL4/Iguana
11.3.4 堆的实现
11.4 漏洞分析
11.4.1 获得并提取基带固件
11.4.2 将固件镜像载入IDA Pro
11.4.3 应用/基带处理器接口
11.4.4 栈跟踪与基带核心转储
11.4.5 受攻击面
11.4.6 二进制代码的静态分析
11.4.7 由规范引路的模糊测试
11.5 对基带的漏洞攻击
11.5.1 本地栈缓冲区溢出:AT+XAPP
11.5.2 ultrasn0w解锁工具
11.5.3 空中接口可利用的溢出
11.6 小结
附录 参考资料
——读者
★“本书是企业用户保护iOS设备的必读之作,它用通俗易懂的语言介绍了常见的iOS设备入侵技术及相应的基础防护知识。 ”
——读者
★“本书是完美的iOS安全指南。6位作者全力介绍了不同的安全主题,让读者对iOS安全模型和现今安全隐患有一个良好的理解与认识。 ”
——读者
★“本书为读者准备了开发漏洞攻击程序及越狱工具的相关知识与技术,建议想要尝试开发越狱工具或了解其原理的朋友购买阅读。”
——读者
★“本书深入探讨了iOS安全,不仅介绍其现状,而且审视了iOS面世以来的受攻击情况……如果你想对移动安全有更多的了解,本书不会让你后悔。”
——读者