内容简介
安全一直是计算机和互联网领域最重要的话题。移动互联网时代,移动平台和设备的安全问题更加突出。IOS系统以其在移动市场的市场份额发挥着重要作用。尽管iOS系统一直以其安全性著称,但其自身漏洞造成的威胁一直存在。
《图灵程序设计丛书·网络安全系列:黑客攻防技术宝典·iOS实战篇》由美国国家安全局全球网络漏洞攻击分析师、连续四年获得Pwn2Own黑客大赛奖项的CharlieMiller,与业内六位顶尖专家共同合作,对iOS的工作原理做了全面深入的介绍、安全架构、安全性,揭示了iOS越狱的工作原理,并讨论了加密、代码签名、内存保护、沙盒机制、IPhone模糊测试、漏洞攻击程序、ROP有效载荷、基带攻击等,为深入了解和保护iOS设备提供足够的知识和工具,学习iOS设备的工作原理、理解越狱和破解、关于iOS漏洞研究的重量级专著。
《图灵程序设计丛书·网络安全系列:黑客攻防技术宝典·iOS实战篇》是国内第一部全面介绍iOS漏洞和攻防的专著作者阵容空前豪华,内容权威性毋庸置疑。CharlieMiller曾在美国国家安全局担任全球网络漏洞攻击分析师五年,并连续四年获得Pwn2Own黑客大赛冠军。DionysusBlazakis专注于漏洞攻击缓解技术,并于2010年获得PwnieAward最具创新研究奖。DinoDaiZovi是TrailofBits的联合创始人和首席技术官他在信息安全领域有十多年的经验,出版了两本关于信息安全的专著。VincenzoIozzo目前是BlackHat和Shakacon安全会议评审委员会的成员他在2010年和2011年连续两年获得Pwn2Own竞赛奖,这让他在信息安全领域声名鹊起。StefanEsser是业内知名的PHP安全专家,也是第一个从最初XBOX的硬盘直接指导Linux走向成功的人。Ralf-菲利普温曼是德国达姆施塔特理工大学的密码学博士、卢森堡大学密码学博士后、人们对移动设备的安全性进行了深入的研究。
《图灵程序设计丛书·网络安全系列:黑客攻防技术宝典·iOS实战篇》适合想了解iOS设备工作原理的人,对越狱和破解感兴趣的人,关注iOS应用和数据安全的开发者,以及公司技术经理(他们需要知道如何保护iOS设备)也适合从事iOS漏洞研究的安全研究者。
目录
- 第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 小结
- 附录 参考资料
本书看了三分之一,对里面介绍的一些技术,文字意思到能理解,但一些基础代码和基础函数就比较难以理解!边看边百度搜索一些专业术语,进度挺慢!里面有个专业术语,一直没怎么弄明白,“ROP有效载荷”这个东西,不知道是什么,百度上说的是“信息数据元什么的”,还是不理解
1、翻译质量着实不敢恭维,很多是直译的。由于英文经常习惯用长句,如果直译成中文就会变得很绕口,完全不符合国人的表达思维。英译中就该把长句变短句,否则单纯从语义表面上看都相当费劲,更不用说技术层面了。比如下面这句:“其它代码可能调用xx以调用xx函数中的函数,如果你调用原始xx,就会因为副本xx未更新造成一致性问题”,真的很绕口。
2、书中不少专业术语翻译不到位,比如"return-into-libc"利用技术居然被翻译成“返回libc中”,还有其它不少地方也是如此,表达上不过明确,可见译者对软件安全技术的不熟悉。
3、书中有少表达不明确的地方,还有笔误,这种即使是非技术人员应该也是可以看出来的,说明编辑审稿不严格,双方均有责任。