iOS应用安全攻防实战 pdf下载pdf下载

iOS应用安全攻防实战百度网盘pdf下载

作者:
简介:本篇提供书籍《iOS应用安全攻防实战》百度网盘pdf下载
出版社:电子工业出版社京东自营官方旗舰店
出版时间:2015-07
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

编辑推荐

适读人群 :开发人员,安全技术从业人员。
  

 

一本物有超值的实用好书!集思想与实践于一体!

唐巧说“看过本书的朋友,能将自己的iOS应用在安全方面的得分,从不及格提升到80分”。

iOS应用安全攻防实战》的特色在于:结合攻击和防御(反攻击)的双向思路,从iOS应用安全的实例出发,演示了多重iOS攻击方式,以及黑客常用的工具和技术,帮助读者从思路和具体实践上全面提升自己的iOS应用安全水平。

iOS应用安全攻防实战》提供了一个全面了解和学习安全攻防的体系。了解攻-防的思路,可以帮助读者以不变应万变,超出iOS版本的限制,并且更清晰地从版本更迭中了解系统的变化和新特性,从而不断提升自己分析和解决问题的能力。

为了帮助读者更好地理解书中思想,译者在书末增加了附录详细介绍iOS系统的变化及其影响。

内容简介

  数据被盗等安全问题已经不再是一件罕见的事情了。在这个信息化的时代里,数据就是价值,而且有越来越多的迹象表明,攻击者也正逐步将攻击目标转到移动端。如何保障自己的应用数据安全?《iOS应用安全攻防实战》将会提供一些用于防御常见攻击方法的方式。安全专家Jonathan Zdziarski将演示攻击者用来窃取数据、操控软件的许多技术,并向开发者介绍如何避免在件中犯下各类常见的错误,以及避免软件被轻易地受到攻击。

作者简介

  肖梓航(Claud Xiao),Palo Alto Networks高级研究员,主要方向是移动平台反病毒和软件安全。HITCON、XCON、ISC等会议讲师,看雪论坛版主。曾发现和分析Oldboot、WireLurker、CoolReaper等恶意代码,向十余家互联网企业报告安全漏洞,其研究成果获得全球1500多家媒体的报道。

  李俱顺,
杭州云柚科技架构师、联合创始人,多年安全从业经验,先后就职于百度、支付宝等互联网公司,研究方向包括Windows底层安全、逆向工程、移动和硬件安全等方面,业余兴趣是一个动漫迷。现在专注于云柚科技产品设计和技术架构搭建,尝试用一己之力做一些可以改变行业的事。

目录

前言 xv

第1章你所知道的一切都是错的 1

单一化方案的误解 2

iOS安全模型 4

iOS安全模型的组件 4

钥匙和锁存在一起 7

密码等于弱安全 8

数字取证击败加密 9

外部数据同样也有风险 10

劫持流量 10

数据可能很快就被偷走 11

谁都不要信,包括你的应用软件 12

物理访问并非必需的 13

总结 14

第1篇攻击

第2章 iOS攻击基础 17

为什么要学习如何破解一台设备 xv

第1章你所知道的一切都是错的 1

单一化方案的误解 2

iOS安全模型 4

iOS安全模型的组件 4

钥匙和锁存在一起 7

密码等于弱安全 8

数字取证击败加密 9

外部数据同样也有风险 10

劫持流量 10

数据可能很快就被偷走 11

谁都不要信,包括你的应用软件 12

物理访问并非必需的 13

总结 14

第1篇攻击

第2章 iOS攻击基础 17

为什么要学习如何破解一台设备 17

越狱解析 18

开发者工具 18

终端用户越狱 20

越狱一台 iPhone 21

DFU模式 22

不完美越狱和完美越 24

攻破设备并注入代码 24

构建定制代码 25

分析你的二进制程序 27

测试你的二进制程序 29

代码守护化 31

以 tar归档包的形式部署恶意代码 35

以 RAM 磁盘形式部署恶意代码 36

练习 50

总结 50

第 3章窃取文件系统 53

全盘加密53

固态 NAND 53

磁盘加密 54

iOS硬盘加密会让你在哪里失败 55

复制实时文件系统 56

DataTheft载荷 56

定制 launchd 66

准备 RAM磁盘 72

创建文件系统镜像 73

复制原始文件系统 75

RawTheft载荷75

定制 launchd 80

准备RAM磁盘 81

创建文件系统镜像 82

练习 83

社会工程学的作用 83

法正常使用的诱饵设备 84

未激活的诱饵设备 85

包含恶意代码的诱饵 86

密码工程学软件 86

总结 87

第 4章取证跟踪和数据泄露 89

提取照片的地理标签 90

被合并到一起的GPS缓存91

SQLite数据库 93

连接到一个数据库 93

SQLite内建命令 94

执行 SQL查询 95

重要的数据库文件 95

联系人地址簿 95

地址簿头像 97

Google地图数据 99

日历事件 105

通话记录 105

电子邮件数据库 106

笔记 107

照片元数据 108

短信 108

Safari书签 109

短信 spotlight缓存 109

Safari Web缓存 110

Web应用缓存 110

WebKit存储 110

语音邮件 110

对残余的数据库记录进行逆向 111

短信草稿 113

属性列表 113

重要的属性列表文件 114

其他重要的文件 119

总结 121

第 5章对抗加密 123

Sogeti数据保护工具 123

安装数据保护工具 124

构建暴力破解器 125

构建需要的

Python库 126

提取加密密钥 126

KeyTheft载荷 126

定制launchd 127

准备 RAM磁盘 128

准备内核 129

执行暴力破解 130

解密钥匙链 133

解密原始磁盘 135

解密iTunes备份文件 137

通过间谍件对抗加密 137

SpyTheft载荷 138

将spyd守护化 143

定制 launchd 144

准备 RAM磁盘 145

执行载荷145

练习 146

总结 146

第6章法销毁的文件 147

刮取HFS日志 148

还原闲置空间 150

常被还原出来的数据 150

应用软件屏幕截图 150

已删除的属性列表 152

已删除的语音邮件和录音 152

以删除的键盘缓存 152

照片和其他个人信息 152

总结 153

第 7章操作运行时环境 155

分析二进制软件 156

Mach-O文件格式 156

class-dump-z简介 160

符号表 161

加密的二进制文件 163

计算偏移值 164

转储内存 165

将解密的代码复制回文件 167

重置 cryptid 168

利用 Cycript操作运行时 170

安装Cycript 171

使用 Cycript 171

破解简单的锁 173

替换方法 180

撒网搜寻数据 182

记录数据 185

更多严重的隐含问题 186

练习 194

SpringBoard动画 194

接听来电 195

屏幕截图 195

总结 195

第 8章操纵运行时库 197

Objective-C程序解析 197

类实例变量 199

类方法200

类方法缓存 200

反汇编与调试 201

监视206

底层Objective-C框架 208

Objective-C接口 210

恶意代码注入 212

CodeTheft载荷 212

使用调试器注入 213

使用动态连接攻击注入 215

全设备感染 216

总结 217

第9章劫持流量 219

APN劫持 219

交付载荷 222

清除 224

简单的代理设置 225

攻击 SSL 225

SSLStrip 225

Paros Proxy 227

浏览器警告 228

攻击应用软件级别的SSL验证 231

SSLTheft载荷 233

劫持基础 HTTP类 238

POSTTheft载荷 238

分析数据 241

Driftnet 243

构建 243

运行 244

练习 246

总结 246

第2篇防护

第10章加密实现 249

密码强度 249

当心随机密码生成器 252

Common Crypto介绍 253

状态操作 253

有状态加密 258

主密钥加密 261

地理加密 266

使用口令的地理加密 269

拆分服务器端密钥 271

安全内存 273

清除内存 274

公钥加密体系 275

练习 280

第11章反取证 281

安全的文件擦除 281

美国国防部 522022-M标准擦除 282

Objective-C 284

擦除SQL记录 286

键盘缓存 292

随机化PIN码 292

应用程序屏幕快照 294

第12章运行时库安全 297

篡改响应 297

擦除用户数据298

禁止网络访问 298

报告机制 299

启用日志记录 299

第2篇防护

第10章加密实现 249

密码强度 249

当心随机密码生成器 252

Common Crypto介绍 253

状态操作 253

有状态加密 258

主密钥加密 261

地理加密 266

使用口令的地理加密 269

拆分服务器端密钥 271

安全内存 273

清除内存 274

公钥加密体系 275

练习 280

第11章反取证 281

安全的文件擦除 281

美国国防部 522022-M标准擦除 282

Objective-C 284

擦除SQL记录 286

键盘缓存 292

随机化PIN码 292

应用程序屏幕快照 294

第12章运行时库安全 297

篡改响应 297

擦除用户数据 298

禁止网络访问298

报告机制 299

启用日志记录 299

暗桩和自杀分支 299

进程调试检测 300

阻挡调试器 302

运行时库类完整性检查 304

检查内存地址空间 304

内联函数 316

反汇编复杂化 324

优化标记 324

去除符号 329

循环展开 -funroll-loops 336

练习 339

第 13章越狱检测 341

沙盒完整性检测 341

文件系统检测 343

越狱文件是否存在 343

/etc/fstab文件大小 344

符号链接检测 345

分页执行检查 345

第 14章下一步 347

像攻击者一样思考 347

其他逆向攻击 347

安全对抗代码管理 348

灵活的方式实现安全 349

其他不错的书籍 349

附录 A 新的起点 351

前言/序言

  数据被盗了,这并不是一件罕见的事。在这个信息化的时代,窃取数据成为一件非常有利可图的事情。无论是钓鱼还是大规模的数据泄露,罪犯都可以从电子犯罪中大量获利,并且其收益远超因此承担的风险。当我说这件事并不罕见时,不是在表示不屑,而是在向你发出警告。你的企业中所使用的应用软件里存在可攻击漏洞的可能性非常高。恶意攻击者使用已有军火库中的一系列工具可以对应用软件进行逆向工程、跟踪和操纵,而这些是绝大部分程序员所没有意识到的,甚至许多加密实现都非常脆弱,一个训练有素的攻击者可以从这样或者那样的角度渗透进入,许多次都凸显出软件开发者对安全的错误认识。

  攻击者可以采用已经被广泛所知的关于安全漏洞的知识,将其用于长期连接到公共网络的设备、用于可以从你口袋里窃取出来的设备、用于经常被遗忘在吧台上的设备。攻击者只需要花几分钟的时间就可以复制出设备中的文件,或者恶意地注入间谍件或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 章介绍用于让攻击软件变得更复杂和困难的许多实践方法。

  第13 章给出了一些技术,软件可以用它们来检测是否运行在一台越狱后的设备中,以及是否存在一些流行的越狱工具。

  第14 章总结全书,说明理解问题并制定战略的重要性。

  本书约定

  本书中使用下列字体约定:

  斜体(Italic)

  用于表示网址(URL)、邮箱地址、文件名和文件扩展名等。

  楷体

  用于表示新的术语。

  等宽字体(Constant width)

  用于列举代码,以及对变量名、函数名、数据库、数据类型、环境变量、声明语句、

  关键词等代码元素的行内引用。

  等宽加粗字体(Constant width bold)

  用于显示要输入的命令,或者其他应该引起读者注意的文本。

  等宽斜体(Constant width italic)

  用于说明这部分文本应该由读者根据上下文提供新的值来替换。

  这类标注通常是一个技巧、建议或者一般性标注。

  这类标注用于警告或提醒。

  使用示例代码

  本书就是为了帮助你完成手头工作的,因此,一般情况下,你可以将本书中的代码直接用于你的程序或文档中。你不需要再次联系我们获得授权,除非你一次性复制其中的绝大部分代码。例如,在编写的程序中使用了来自本书的多个代码块是不需要授权的,但是将O’Reilly 公司图书的示例代码作为CD-ROM 形式销售或者分发必须经过授权许可。引用这本书来回答一个问题或者引用其中的示例代码并不需要授权,但是在你产品的文档中一次性使用大量来自本书的示例代码必须经过授权许可。

  我们感谢你引用本书,但并不强行要求这么做。引用通常包括书名、作者、出版社和ISBN。例如:“Hacking and Securing iOS Applications by Jonathan Zdziarski. Copyright2012 Jonathan Zdziarski, (ISBN 9781449318741).”如果你觉得自己使用代码的方式超出了合理使用或者上述权限的范围,请与我们联系。

  法律免责申明

  本书中所讨论的技术、技术和内容所有者对使用技术的限制,以及限制使用这些技术的相关法律在不断地变化。因此,本书中所述的一些攻击方法可能已经无法正常工作,可能导致对它们所作用的设备或系统的意外损坏,或者违反相关法律与用户协议。你在使用这些技术时需要自己承担风险,O’Reilly Media, Inc. 对造成的任何损坏以及使用这些技术导致的损失不承担任何责任。任何情况下,你应该注意使用这些技术可能导致违反一些法律,包括版权法。

  Safari? Books Online

  Safari Books Online 是一个按需数字化图书馆,你可以在这里找到7500 本技术和创造类图书或视频,快速找到你想要的答案。

  通过订阅,你可以从我们的在线图书馆中阅读任何页面或者观看任何视频,通过移动设备阅读数据,在书籍还未正式印刷之前访问到,特别是能访问到作者撰写中的手稿并且发送反馈,复制和粘贴代码示例,组织收藏夹,下载章节,设置关键内容的书签,创建笔记,打印页面等一系列节省时间的功能。

  O’Reilly Media 已经将这本书上传到Safari Books Online 服务。要获得对这本书的完整电子版访问权限,或者阅读其他来自O’Reilly 或其他出版社的类似主题的书籍,可以到网站免费注册。