Android安全攻防权威指南pdf

图书网 2018年8月29日18:02:20
评论
2.2K
摘要

调查数据指出,Android已经赢得平台之战,未来有望成为移动操作系统领域的寡头,而安全性则有可能会成为阻碍Android发展的主要因素。由专业Android安全研究员编写,本书为白帽子提供了漏洞发现、分析和利用的使用工具。在详细介绍Android操作系统工作原理和总体安全架构后,研究了如何发现漏洞,为各种系统部件开发利用,并且进行应对。移动设备管理者、安全研究员、Android应用程序开发者和负责评估Android安全性的顾问都可以在本书中找到必要的指导和工具。

Android安全攻防权威指南 内容简介

本书是一本全面的Android系统安全手册。书中细致地介绍了Android系统中的漏洞挖掘、分析,并给出了大量利用工具,结合实例从白帽子角度分析了诸多系统问题,是一本难得的安全指南。移动设备管理者、安全研究员、Android应用程序开发者和负责评估Android安全性的顾问都可以在本书中找到必要的指导和工具。

在本书中你可以:

熟悉实现安全性的细节,以及由Android操作系统开放性带来的复杂问题;

绕开常见安全隐患,了解智能手机全新黑客攻击策略;

回顾曾成功攻破Android操作系统的各类攻击;

探索ROOT操作、分区布局和引导过程;

理解Android生态圈的复杂性,包括各个硬件厂商和软件开发者的影响。

Android安全攻防权威指南 目录

第1章 纵观Android生态圈

1.1 了解Android的根源

1.1.1 公司历史

1.1.2 版本历史

1.1.3 审视Android设备家族

1.1.4 主体开源

1.2 了解Android的利益相关者

1.2.1 谷歌

1.2.2 硬件厂商

1.2.3 移动通信运营商

1.2.4 开发者

1.2.5 用户

1.3 理解生态圈的复杂性

1.3.1 碎片化问题

1.3.2 兼容性

1.3.3 更新问题

1.3.4 安全性与开放性

1.3.5 公开披露

1.4 小结

第2章 Android的安全设计与架构

2.1 理解Android系统架构

2.2 理解安全边界和安全策略执行

2.2.1 Android沙箱

2.2.2 Android权限

2.3 深入理解各个层次

2.3.1 Android应用层

2.3.2 Android框架层

2.3.3 DalvikVM

2.3.4 用户空间原生代码层

2.3.5 内核

2.4 复杂的安全性,复杂的漏洞利用

2.5 小结

第3章 root Android设备

3.1 理解分区布局

3.2 理解引导过程

3.3 引导加载程序的锁定与解锁

3.4 对未加锁引导加载程序的设备进行root

3.5 对锁定引导加载程序的设备进行root

3.5.1 在已启动系统中获取root权限

3.5.2 NAND锁、临时性root与永久性root

3.5.3 对软root进行持久化

3.6 历史上的一些已知攻击

3.6.1 内核:Wunderbar/asroot

3.6.2 恢复:Volez

3.6.3 udev:Exploid

3.6.4 adbd:RageAgainstTheCage

3.6.5 Zygote:Zimperlich和Zysploit

3.6.6 ashmem:KillingInTheName-Of和psneuter

3.6.7 vold:GingerBreak

3.6.8 PowerVR:levitator

3.6.9 libsysutils:zergRush

3.6.10 内核:mempodroid

3.6.11 文件权限和符号链接相关的攻击

3.6.12 adb恢复过程竞争条件漏洞

3.6.13 Exynos4:exynos-abuse

3.6.14 Diag:lit/diaggetroot

3.7 小结

第4章 应用安全性评估

4.1 普遍性安全问题

4.1.1 应用权限问题

4.1.2 敏感数据的不安全传输

4.1.3 不安全的数据存储

4.1.4 通过日志的信息泄露

4.1.5 不安全的IPC端点

4.2 案例分析:移动安全应用

4.2.1 初步剖析

4.2.2 静态分析

4.2.3 动态分析

4.2.4 攻击

4.3 案例分析:SIP客户端

4.3.1 了解Drozer

4.3.2 发现漏洞

4.3.3 snarfing

4.3.4 注入

4.4 小结

第5章 理解Android的攻击面

5.1 攻击基础术语

5.1.1 攻击向量

5.1.2 攻击面

5.2 对攻击面进行分类

5.2.1 攻击面属性

5.2.2 分类决策

5.3 远程攻击面

5.3.1 网络概念

5.3.2 网络协议栈

5.3.3 暴露的网络服务

5.3.4 移动技术

5.3.5 客户端攻击面

5.3.6 谷歌的基础设施

5.4 物理相邻

5.4.1 无线通信

5.4.2 其他技术

5.5 本地攻击面

5.5.1 探索文件系统

5.5.2 找到其他的本地攻击面

5.6 物理攻击面

5.6.1 拆解设备

5.6.2 USB

5.6.3 其他物理攻击面

5.7 第三方修改

5.8 小结

第6章 使用模糊测试来挖掘漏洞

6.1 模糊测试的背景

6.1.1 选定目标

6.1.2 构造畸形输入

6.1.3 处理输入

6.1.4 监控结果

6.2 Android上的模糊测试

6.3 对Broadcast Receiver进行模糊测试

6.3.1 选定目标

6.3.2 生成输入

6.3.3 传递输入

6.3.4 监控测试

6.4 对Android上的Chrome进行模糊测试

6.4.1 选择一种技术作为目标

6.4.2 生成输入

6.4.3 处理输入

6.4.4 监控测试

6.5 对USB攻击面进行模糊测试

6.5.1 对USB进行模糊测试的挑战

6.5.2 选定目标模式

6.5.3 生成输入

6.5.4 处理输入

6.5.5 监控测试

6.6 小结

第7章 调试与分析安全漏洞

7.1 获取所有信息

7.2 选择一套工具链

7.3 调试崩溃Dump

7.3.1 系统日志

7.3.2 Tombstone

7.4 远程调试

7.5 调试Dalvik代码

7.5.1 调试示例应用

7.5.2 显示框架层源代码

7.5.3 调试现有代码

7.6 调试原生代码

7.6.1 使用NDK进行调试

7.6.2 使用Eclipse进行调试

7.6.3 使用AOSP进行调试

7.6.4 提升自动化程度

7.6.5 使用符号进行调试

7.6.6 调试非AOSP设备

7.7 调试混合代码

7.8 其他调试技术

7.8.1 调试语句

7.8.2 在设备上进行调试

7.8.3 动态二进制注入

7.9 漏洞分析

7.9.1 明确问题根源

7.9.2 判断漏洞可利用性

7.10 小结

第8章 用户态软件的漏洞利用

8.1 内存破坏漏洞基础

8.1.1 栈缓冲区溢出

8.1.2 堆的漏洞利用

8.2 公开的漏洞利用

8.2.1 GingerBreak

8.2.2 zergRush

8.2.3 Mempodroid

8.3 Android浏览器漏洞利用

8.3.1 理解漏洞

8.3.2 控制堆

8.4 小结

第9章 ROP漏洞利用技术

9.1 历史和动机

9.2 ARM架构下的ROP基础

9.2.1 ARM子函数调用

9.2.2 将gadget组成ROP链

9.2.3 识别潜在的gadget

9.3 案例分析:Android 4.0.1 链接器

9.3.1 迁移栈指针

9.3.2 在新映射内存中执行任意代码

9.4 小结

第10章 攻击内核

10.1 Android的Linux内核

10.2 内核提取

10.2.1 从出厂固件中提取内核

10.2.2 从设备中提取内核

10.2.3 从启动镜像中提取内核

10.2.4 解压内核

10.3 运行自定义内核代码

10.3.1 获取源代码

10.3.2 搭建编译环境

10.3.3 配置内核

10.3.4 使用自定义内核模块

10.3.5 编译自定义内核

10.3.6 制作引导镜像

10.3.7 引导自定义内核

10.4 调试内核

10.4.1 获取内核崩溃报告

10.4.2 理解Oops信息

10.4.3 使用KGDB进行Live调试

10.5 内核漏洞利用

10.5.1 典型Android内核

10.5.2 获取地址

10.5.3 案例分析

10.6 小结

第11章 攻击RIL无线接口层

11.1 RIL简介

11.1.1 RIL架构

11.1.2 智能手机架构

11.1.3 Android电话栈

11.1.4 对电话栈的定制

11.1.5 RIL守护程序

11.1.6 用于vendor-ril的API

11.2 短信服务

11.2.1 SMS消息的收发

11.2.2 SMS消息格式

11.3 与调制解调器进行交互

11.3.1 模拟调制解调器用于模糊测试

11.3.2 在Android中对SMS进行模糊测试

11.4 小结

第12章 漏洞利用缓解技术

12.1 缓解技术的分类

12.2 代码签名

12.3 加固堆缓冲区

12.4 防止整数溢出

12.5 阻止数据执行

12.6 地址空间布局随机化

12.7 保护栈

12.8 保护格式化字符串

12.9 只读重定位表

12.10 沙盒

12.11 增强源代码

12.12 访问控制机制

12.13 保护内核

12.13.1 指针和日志限制

12.13.2 保护零地址页

12.13.3 只读的内存区域

12.14 其他加固措施

12.15 漏洞利用缓解技术总结

12.16 禁用缓解机制

12.16.1 更改personality

12.16.2 修改二进制文件

12.16.3 调整内核

12.17 对抗缓解技术

12.17.1 对抗栈保护

12.17.2 对抗ASLR

12.17.3 对抗数据执行保护

12.17.4 对抗内核级保护机制

12.18 展望未来

12.18.1 进行中的官方项目

12.18.2 社区的内核加固工作

12.18.3 一些预测

12.19 小结

第13章 硬件层的攻击

13.1 设备的硬件接口

13.1.1 UART串行接口

13.1.2 I2C、SPI和单总线接口

13.1.3 JTAG

13.1.4 寻找调试接口

13.2 识别组件

13.2.1 获得规格说明书

13.2.2 难以识别的组件

13.3 拦截、监听和劫持数据

13.3.1 USB

13.3.2 I2C、SPI和UART串行端口

13.4 窃取机密和固件

13.4.1 无损地获得固件

13.4.2 有损地获取固件

13.4.3 拿到dump文件后怎么做

13.5 陷阱

13.5.1 定制的接口

13.5.2 二进制私有数据格式

13.5.3 熔断调试接口

13.5.4 芯片密码

13.5.5 bootloader密码、热键和哑终端

13.5.6 已定制的引导过程

13.5.7 未暴露的地址线

13.5.8 防止逆向的环氧树脂

13.5.9 镜像加密、混淆和反调试

13.6 小结

附录A 工具

附录B 开源代码库

封底

Android安全攻防权威指南 精彩文摘

信息安全与大多数领域一样,都是从家庭式手工作坊开始萌芽的。经过自主发展,这一领域已经跨越了业余消遣式的初级阶段,逐渐成为一个健全的产业。如今 的信息安全领域中,有顶着各种行政头衔的大佬们,也有从事一线研发工作的牛人们,还有来自学术圈的"眼线"们。这也是一块创新热土,能够让数论、密码学、 自然语言处理、图论、算法、理论计算机科学等一系列看似冷僻的研究方向产生重大行业影响。对于这些令人神往的科学研究而言,信息安全行业正在发展进化成为 它们的创新试验场,但与此同时,信息安全(特别是"漏洞研究")仍然受信息技术领域整体发展的限制,并与信息技术领域的热点趋势保持一致。

正 如我们每个人从个人生活中强烈感受到的那样,移动计算显然是信息技术领域近年来得到巨大发展的一个热点方向。现在,各种移动设备已经无时无刻不伴随在我们 的左右,我们花在移动设备上的时间要比花在电脑上的时间多得多:办公用的电脑在下班后就会被我们遗弃在办公桌上,而家里的电脑在我们早上急匆匆去上班时甚 至没有打开的机会,这种变化是前所未有的。与电脑不同的是,我们的移动设备始终是保持开机的,而且连接着工作与家庭这两个世界,因此也成为了坏人们眼中更 具价值的攻击目标。

不幸的是,信息安全行业适应移动化趋势的脚步有些迟缓,近期才刚刚跨出了一小步。作为一个"保守派"占多数的行业,信息安 全领域在移动与嵌入式安全研究开发上的行动在过去几年里过于缓慢(至少公开层面上是这样的),以至于移动安全在某种程度上仍然被认为是前沿研究,因为移动 设备的消费者与用户最近才开始察觉并理解日常使用移动设备所面临的安全威胁。这些威胁也随之为移动安全研究与安全产品创造了市场前景。

对于信息安全领域研究者而言,移动平台就像是一块新大陆,等待着人们去探索,其中有着各种处理器架构、硬件外设、软件栈和操作系统所构成的多样化"地理结构",它们共同构成了一个挖掘、利用和研究各类漏洞的生态系统。

根据IDC的统计,Android在2012年第三季度的全球市场份额是75%(以当季出货量计算),共出货一亿三千六百万部。苹果公司的iOS在当季 的市场份额为14.9%,黑莓与塞班则分别以4.3%和2.3%的市场份额被甩在后面。而到了2013年第三季度,Android的市场份额上升到了 81%,iOS下降至12.9%,剩余的6.1%则分散在其他移动操作系统中。在这样的市场份额分布格局下,Android世界中有着一系列有趣的信息安 全事件和研究工作,我们觉得一本能够描述该领域本质的书籍肯定是大家翘首以盼的。

Wiley出版社已经出版了Shellcoder's、Mac、Database、WebApplication、iOS和Browser等"黑客攻防技术宝典"系列图书。《Android安全攻防权威指南》是这一系列的最新图书,充分借助了整个系列的一些基础信息。

本书及相关技术概述

我们决定写这本书的主要原因是,当前移动安全研究领域的知识图谱过于稀疏,仅有的参考资源和技术资料互相孤立,甚至是相互冲突的。虽然已经有了不少专注 于Android的优秀论文和其他出版物,但其中很大一部分所涵盖的内容都非常狭窄,仅仅关注Android安全的某个特定方向,或者只是在讨论移动或嵌 入式设备的某个安全问题时将Android作为一个辅助例子予以提及。此外,Android相关的已公开漏洞信息非常稀缺,虽然现在已经有超过1000个 已公开的漏洞会影响到Android设备,但通过常见漏洞信息渠道报告的只有不到100个。我们相信,本书所介绍的相关技术、概念、工具、技巧和案例,可 以帮助你迈上改善Android安全产业态势的漫漫长路。

本书的结构

本书应该按照章节顺序进行阅读,但是对于正在钻研 Android或者进行Android设备安全研究的读者来说,也可以将本书作为一本参考资料。本书一共分为13章,几乎涵盖了安全研究人员第一次接触 Android所需要了解的所有内容。这些章节通过图表、截图、代码片段和反汇编代码等来介绍Android的软硬件环境,进而讨论在Android上进 行软件漏洞利用和逆向工程的不同之处。全书的大致结构是,从一些宽泛的话题开始,以深度的技术细节收尾。这些章节逐步具体化,最终将讨论一些安全研究的高 级话题,如发现、分析和攻击Android设备。本书尽可能地引用来自外部的各类详细文档,从而专注于阐述设备root、逆向工程、漏洞研究和软件漏洞利 用等技术细节。

第1章介绍Android移动设备的生态系统。首先回顾Android系统发展的历史,然后介绍通用软件的构成、 Android设备的市场流通情况以及供应链当中的各大关键角色,最后从较高层面上总结和讨论Android生态系统发展遭遇的挑战以及安全研究面临的困 难。

第2章阐述Android系统的基础知识。首先引入系统安全机制的基础核心概念,然后深入关键安全组件的内部机制。

第3章介绍获取Android设备完全控制权的动机与方法。首先讲授适用于众多设备的通用技术,而后逐一详细分析十几个公开的漏洞利用。

第4章涉及Android应用相关的安全概念和技术。讨论了Android应用开发过程中常见的安全错误,并介绍如何使用正确的工具和流程来找到这些问题。

第5章讨论移动设备可能遭受攻击的形式,并解释用来描述这些攻击的关键术语。

第6章讲述如何使用模糊测试技术来发现Android系统中的软件漏洞。从介绍模糊测试宏观流程入手,重点描述如何使用这些流程更好地帮助我们发现Android系统中的安全问题。

第7章介绍如何分析在Android系统中发现的缺陷和安全漏洞。本章涵盖了Android系统中不同类型与层次代码的调试技术,最后以基于WebKit引擎的浏览器中一个未修补的安全问题为案例进行深入分析。

第8章关注如何利用Android设备中发现的内存破坏漏洞,涵盖了编译器和操作系统的内部机理,例如堆的实现、ARM体系架构规范等。章节最后详细分析了几个公开的漏洞利用。

第9章介绍高级利用技术ROP(ReturnOrientedProgramming)。进一步讲述ARM体系架构,并解释为何、如何使用ROP技术,最后对一个独特的漏洞利用作了更为细致的分析。

第10章深入Android操作系统内核的内部工作原理,涵盖如何从黑客的角度来对内核进行开发和调试,本章最后还会教会你如何利用若干已公开的内核漏洞。

第11章将带你返回用户空间,来讨论一个特殊且重要的Android智能手机组件--无线接口层(RIL)。在阐明RIL的架构细节之后,教你如何通过与RIL组件的交互,对Android系统中处理短消息的模块进行模糊测试。

第12章关注目前存在于Android系统中的安全保护机制,介绍了这些保护机制是何时被发明并引入Android系统,以及是如何运作的,最后总结绕过这些保护机制的方法。

第13章深入探索通过硬件层面来攻击Android和其他嵌入式设备的方法。首先介绍如何识别、监视和拦截各种总线级别的通信,并展示如何利用这些方法来攻击那些难以触及的系统组件。最后给出了如何避免遭受这些常见硬件攻击的诀窍。

本书面向的读者

任何想要加深对Android安全认识的人都可以阅读本书,不管是软件开发者、嵌入式系统设计师、安全架构师,还是安全研究人员,本书都会帮助你拓宽对Android安全的理解。

图书网:Android安全攻防权威指南pdf

继续阅读

→→→→→→→→→→→→→→→→→→→→查找获取

操作系统/系统开发

计算机操作系统(第四版)pdf

计算机操作系统(第四版) 内容简介 由汤小丹、梁红兵、哲凤屏、汤子瀛编著的《计算机操作系统(第4版高等学校计算机类十二五规划教材)》对传统操作系统(0S)和现代操作系统均做了较为全面的介绍。全书共分1...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: