基本信息
编辑推荐
“看过本书的朋友,能够将自己的iOS应用在安全方面的得分,从不及格提升到80分。”
——唐巧,《iOS开发进阶》作者
内容简介
作译者
目录
第1 章 你所知道的一切都是错的 ................................... 1
单一化方案的误解 ...............2
iOS 安全模型 ......................4
iOS 安全模型的组件 .....4
钥匙和锁存在一起 ...............7
密码等于弱安全 ..................8
数字取证击败加密 ...............9
外部数据同样也有风险 ......10
劫持流量 ............................10
数据可能很快就被偷走 ........................................ 11
谁都不要信,包括你的应用软件 ................................12
物理访问并非必需的 .........13
总结 ...................................14
第1 篇 攻击
第2 章 iOS 攻击基础 ......... 17
为什么要学习如何破解一台设备 ................................17
越狱解析 ............................18
开发者工具 .................18
终端用户越狱 ....................20
前言
攻击者可以采用已经被广泛所知的关于安全漏洞的知识,将其用于长期连接到公共网络的设备、用于可以从你口袋里窃取出来的设备、用于经常被遗忘在吧台上的设备。攻击者只需要花几分钟的时间就可以复制出设备中的文件,或者恶意地注入间谍件或rootkit,从而轻松地获得设备中的企业应用软件及其保护的数据--这一切甚至可以在你去别处喝了一杯返回吧台前完成。攻击者可以通过各种各样的方法窃取到移动平台的应用软件和数据,之后再悠闲地进行攻击,有时设备所有者压根就不会知道,甚至有时都不需要物理地接触到设备。
本书将演示黑帽子用来窃取数据、操纵软件的许多技术,以及向开发者介绍如何避免在软件中犯下各类常见的错误,避免软件被轻易地攻击。这些攻击并不仅限于从设备上窃取数据,还可能导致更多邪恶的攻击。本书中,你将看到一个示例说明如何攻破一些信用卡支付处理软件,这个问题不仅将存储在设备上的信用卡数据暴露给了攻击者,还可以通过操纵该软件将商户的巨额信用卡资金用于退还给其并没有实际进行过的交易,从而直接从该商户的账户上窃取资金。你还会看到其他许多示例,对这些漏洞进行利用不仅会导致那些移动应用软件的数据产生风险,还让使用这些软件的人陷入危机。读者还会了解到这些攻击是如何执行的,并看到许多示例和演示说明如何编写更安全的代码使应用软件不会受到这些攻击。
本书读者
本书适合给iOS 开发人员用于学习设计安全的应用软件,不仅针对政府或金融类软件,还包括所有开发者希望保护其中的数据或功能的软件。为了理解本书中的大部分内容,你需要对iOS 的Objective-C 开发有一定的基础。如果对C 或汇编语言有了解会更好,但并不是必需的。
虽然本书主要针对iOS,但许多材料都可以直接用于Mac OS X 计算机。因为这两个环境都是Objective-C 环境,并且有许多相同的工具,因此,从本书中你还会发现许多内容可以用于从Mac OS X 的软件中找到漏洞。
全书结构
本书分为两部分。第1 篇讨论iOS 和iOS 软件中存在的许多漏洞及其攻击方法,第2 篇介绍如何开发更安全的软件。
第1 章介绍移动安全的核心问题,并且列举出常见的误解,以及许多开发人员对安全的错误的思维方式。
第2 章向读者介绍许多攻击iOS 设备的技术,包括越狱。读者会学到如何构建一份定制的代码,并通过流行的越狱技术和定制RAM 磁盘将其注入到iOS 设备中。
第3 章介绍了如何在几分钟内窃取到iOS 设备的文件系统,以及为什么开发者不能仅仅依赖于设备厂商所提供的磁盘加密功能。你还会学到如何通过一些常见的社会工程学方法接触到一台设备而不让其所有者察觉。
第4 章介绍如何对操作系统中遗留的数据进行取证分析,以及攻击者可以从窃取到的设备中获得哪些信息。
第5 章介绍如何攻击iOS 的钥匙链加密和数据保护加密机制,以及这些机制的内在问题。
第6 章演示如何通过HFS 的日志系统获得已删除的文件,并给出如何安全地删除文件使其无法被恢复的示例。
第7 章介绍一些用于侦查和操纵运行时环境的工具,并演示攻击者可以如何操纵应用软件中的对象、变量和方法来绕过各类安全保护。
第8 章介绍许多工具和方法,可以用于反汇编和调试软件、注入恶意代码,以及开展其他底层攻击。
第9 章介绍用于劫持SSL 会话的一些工具,并说明如何防止自己的软件陷入这类攻击中。
第10 章详细介绍多种安全机制和方法,以及如何用恰当的加密技术来保护数据。
第11 章介绍如何将软件设计为残留更少的跟踪信息,从而避免数据被取证分析而泄露。
第12 章介绍用于让攻击软件变得更复杂和困难的许多实践方法。