猜你喜欢
Android移动安全攻防实战(微课视频版)(计算机科学与技术丛书·新形态教材)

Android移动安全攻防实战(微课视频版)(计算机科学与技术丛书·新形态教材)

书籍作者:叶绍琛 ISBN:9787302602224
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:10072
创建日期:2023-04-03 发布日期:2023-04-03
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

本书向读者呈现了Android移动应用安全攻防与逆向分析的立体化教程(含纸质图书、电子资料、教学课件、源代码与视频教程),全书共4篇。

第一篇基础篇(第1章和第2章),目的是让读者快速建立对Android应用安全分析的基本概念,介绍了构建Android分析环境的一些基本方法与工具,以及通过对一个Android应用Apk文件进行反编译,并篡改中间状态的Smali代码,再重编译签名打包全过程的介绍,帮助读者进入Android应用逆向分析的大门。第二篇理论篇(第3章和第4章),目的是通过介绍Android操作系统常见的安全漏洞,帮助读者树立Android应用安全开发的意识,从而构建Android应用安全的一个具体框架。介绍了App安全基线,包括应用的评估思路、Android系统的安全问题与常见漏洞。通过分析一个Android静态逆向和动态调试自动化分析框架MobSF的功能,使读者全面了解Android逆向分析过程中的关注点。第三篇工具篇(第5~8章),介绍静态逆向和动态调试所使用的工具,以及常见的Hook工具和针对Native层的C++代码的调试手段。第四篇实战篇(第9~13章),包括脱壳实战,针对Java层与Native层的逆向实战,使用工具篇介绍的两种主流Hook框架进行具体的实战操作,使用静态和动态两种方式分析复杂功能App的业务逻辑,使用抓包的方式对物联网移动应用进行分析实战。

为方便读者高效学习,快速掌握Android移动安全理论与逆向分析的实践,作者精心制作了电子资料(超过500页)、教学课件(全13章,超过400页)、参考开源项目源代码(超过70万行)及配套视频教程(21个微课视频)等资源。

本书适合作为广大高校信息安全相关专业中软件逆向、代码安全、安全开发等课程的专业课程教材,也可以作为信息安全研究员与Android应用开发者的自学参考用书。


作者简介

叶绍琛 网络安全攻防技术专家,极牛网技术委员会主席,CTFWAR网络安全攻防对抗联赛发起人,社群期刊《网安观察》总顾问,大中华区前50位RHCA系统架构师,曾任网易互娱云计算平台技术负责人,曾获国家科技部和教育部联合颁发的教育信息化发明创新奖。

陈鑫杰 网络安全技术专家,极牛网总编辑,网络安全在线教育平台“拼客学院”院长,国家网安基地战略合作讲师,Bilibili、知乎网站的优质UP主,51CTO学院金牌讲师,全网学员超300万人,摇光安全实验室总顾问,多地网警技术顾问,多次协助抓获大型网络诈骗团伙。

蔡国兆 移动应用安全技术专家,Android APT攻击资深研究员,极牛网移动安全版块主编,浩海云攻防实验室技术主管,负责Android/iOS移动应用自动化安全评估和移动应用安全加固体系的研发,对Android操作系统内核安全及恶意代码逆向分析有多年研究经验。

编辑推荐

网络空间是继陆海空天后的第五主权空间,网络空间安全事关国家安全。近年来,随着《网络安全法》和网络安全等级保护标准的推进落实,我国网络空间安全产业逐渐发展成熟,广大高等院校也相继开设网络安全相关专业,由于软件逆向工程方向技术原理复杂、实战难度大,导致市场上缺少既重视理论技术、又重视攻防实战的技术书籍。本书分4篇(基础篇、理论篇、工具篇、实战篇),立体化呈现了Andriod移动应用安全攻防与逆向分析。

为方便读者高效学习,快速掌握Android移动安全理论与逆向分析的实践,作者精心制作了教学课件(全13章,超过400页)、参考开源项目源代码(超过70万行)、电子资料(超过500页)及配套视频教程(21个微课视频)等资源。


前言

在5G时代,移动终端的应用场景及应用深度将进一步提升,移动应用已经完全渗透到人们的工作和生活中。随着移动终端的发展,移动应用所隐含的安全问题逐渐浮出水面并对人们的生活产生越发深远的影响。

据统计,全球每年至少新增150万种移动端恶意软件,至少造成了超过1600万件的移动恶意攻击事件。近年来,工业和信息化部针对移动应用长期存在的违规收集用户个人信息、违规获取终端权限、隐私政策不完整等行为进行了多次综合整治行动,国家“等级保护2.0”标准中也增加了移动安全拓展条款,移动安全将会成为未来我国网络安全人才培养的一个核心内容板块。

笔者作为移动安全一线的资深工程师,将通过简洁干练的语言、理论与实战结合的讲解、案例化分析的逻辑,全面展现移动安全攻防的魅力。

本书内容及结构

本书分为4篇,共13章。

基础篇

基础篇包括第1章和第2章,目的是让读者快速建立对Android应用安全分析的基本概念。第1章简单介绍了构建Android应用安全分析环境的一些基本方法与工具。通过第1章的学习,能够掌握如何给Android手机刷机,虽然在日常生活中我们已经不需要给Android手机刷各种第三方ROM,但无论是Android开发还是Android逆向分析,有一个具有Root权限的真机能避免许多由模拟器导致的麻烦。

第2章通过对一个简单的Android应用Apk文件的反编译,简单修改Smali代码文件,再重编译并签名的过程的介绍,帮助读者进入Android应用逆向分析的大门。这个过程是Android应用逆向工程的一个基本操作。读者跟着第2章的内容实践一遍,就可以建立起对于Android应用逆向的整体概念。

理论篇

理论篇包括第3章和第4章,目的是通过介绍Android操作系统常见的安全漏洞,帮助读者树立Android应用安全开发的意识,从而构建Android应用安全的一个具体框架。

第3章主要介绍移动应用安全基线,包括应用的评估思路,Android系统的安全问题与常见漏洞。读者通过本章的学习,既可以掌握Android应用逆向分析的常见切入点,也可以从中得到警示,在开发移动应用的时候规避这些安全问题。

第4章主要对MobSF移动应用安全测试框架进行分析。该框架是面向移动应用静态逆向和动态调试的自动化分析调试框架,通过对该框架的拆解,使读者全面了解Android应用逆向分析全过程中的关注点,掌握在逆向一个具有多个功能模块的复杂应用时应该注意应用的哪些行为容易导致应用遭到恶意攻击,哪些代码实现使用了不安全的API,进而造成数据的泄露或者文件被篡改等。通过对MobSF框架的二次开发改造,可以帮助我们快速对上万行代码的App进行安全概况排查,以便后续有的放矢地进行深度分析。





工具篇

工具篇包括第5~8章的内容。俗话说: “工欲善其事,必先利其器”。工具虽然不是解决问题的唯一决定因素,但是一个合适的工具往往能达到事半功倍的效果。

第5章介绍静态逆向所使用的工具。静态逆向是最简单、最直接的逆向方式,主要的目的是将Apk软件包进行解包,将包内的文件逐一进行解码,最关键的是将保存着代码的二进制文件反编译成我们能直接阅读的源代码形式。

第6章介绍动态调试所使用的工具。这些工具和开发环境中的断点调试功能类似,可以让我们看到程序运行过程中的各种变化,只不过在开发环境中我们面对的是自己编写的源代码,逆向时我们面对的是反编译的伪源代码,甚至是汇编代码。

第7章主要介绍两种最常见的Hook工具。Hook是一种可以在不直接修改程序源代码的前提下改变程序运行逻辑的手段,能够避免为了动态调试而将Apk拆得七零八落又费尽心思组装回去的复杂操作,提高动态调试的效率。

第8章介绍针对Native层的C++代码的调试手段。Unicorn Engine是一个神奇的工具,它可以模拟各种CPU平台、内存与堆栈。逆向工程师不需要运行整个App,使用Unicorn就可以单独运行调试so文件的一部分汇编代码,而且可以随意设置寄存器与堆栈的值。

实战篇

实战篇包括第9~13章,是整本书的重点内容。读者在这部分将运用前面理论篇与工具篇的知识点进行实操,在操作的过程中加深对Android应用逆向分析与安全开发的理解。

第9章的主要内容是脱壳实战。本章也是移动应用逆向攻防色彩最重的一章。我们在进行Android应用逆向分析的时候通常通过反编译的手段来获取代码逻辑,从代码逻辑中找到程序的漏洞或者恶意行为,而Android应用加固会将App的代码逻辑隐藏起来,虽然加固手段本身是一种安全性保护,但是这种保护是不会分辨应用本身是否存在恶意行为的。因此,如果需要通过逆向分析判断应用是否是木马,就需要对加固壳进行破解。本章针对两种Java代码加固方案以及C++混淆方案探讨对抗破解的方法。

第10章的主要内容是逆向实战,介绍了针对Android应用中Java层与Native层的逆向手段,包括逆向分析Smali代码并进行篡改重编译、逆向分析so文件等。本章结合两个经典的CTF比赛题目进行实战讲解。

第11章的主要内容是Hook实战,介绍了在不改变Android应用程序代码的情况下修改程序逻辑,使用工具篇介绍的两种主流Hook框架——Xposed框架和Frida框架进行具体的攻防实战。本章结合一个经典的CTF比赛题目进行分析讲解。

第12章的主要内容是调试实战,本章将使用网络上已发布且功能复杂的App作为例子,使用静态逆向和动态调试两种方式分析该App的具体业务逻辑。同时也会在本章介绍使用一个基于Unicorn的代码调试工具Unidbg,通过该工具来对Native层逻辑进行逆向调试实战。

第13章的主要内容是IoT(物联网)安全分析实战。当前大量的物联网设备采用Android操作系统,本章通过对物联网移动应用进行逆向调试分析实战,介绍如何使用抓包的方式截取应用的互联网请求。读者在本章中将了解到物联网应用安全的重要性。

什么人适合阅读本书

本书主要讲解与Android移动安全逆向分析与攻防实战相关的技术,需要读者具有一定的Java编程语言基础和Android开发基础。由于本书包含“攻”和“防”两部分实战内容,故在安全攻防和软件开发领域有不同的读者定位。

在“安全攻防”领域,适合阅读本书的读者包括:

高校信息安全相关专业的学生;

软件安全研究员;

软件逆向工程师。

在“软件开发”领域,适合阅读本书的读者包括:

高校信息安全相关专业的学生;

高校软件工程相关专业的学生;

Android应用开发工程师。

实例代码与勘误

为方便读者高效学习,快速掌握Android移动安全理论与逆向分析的实践,作者精心编辑了参考学习电子资料(超过500页)、完整的教学课件PPT(共13章,超过400页)、参考开源项目源代码(超过70万行)及丰富的配套视频教程(21个微课视频,见正文)等资源。请访问清华大学出版社官网本书页面下载地址。


虽然笔者在Android操作系统安全攻防领域从业超过7年,但是由于知识储备、技术能力、时间等限制,书中难免会有疏漏和错误的地方,欢迎读者反馈斧正,也请同行给予宝贵的建议。

请关注微信公众号“移动安全攻防”(微信号: mobsecx),单击菜单“更多”→“书籍勘误”,在本书勘误页面提交你的宝贵意见。

叶绍琛2021年9月1日







目录

基础篇

第1章构建Android安全分析环境

1.1常用adb命令一览

1.2NDK命令行编译Android动态链接库

1.3NDK工具链常用工具

1.4解除手机BL锁

1.5给手机刷入工厂镜像

1.6Root Android系统

1.7本章小结

第2章破解第一个Android应用

2.1反编译Apk

2.2分析包内文件

2.3修改Smali代码文件

2.4重编译并签名

2.5本章小结

理论篇

第3章移动应用安全基线

3.1移动应用评估思路

3.1.1移动应用可能面临的威胁

3.1.2移动应用的评估方向

3.1.3移动应用自动化检测思路

3.2安全检测的要点

3.2.1Android常见漏洞分析

3.2.2Android权限安全

3.3OWASP移动平台十大安全问题

3.4本章小结

第4章MobSF移动安全框架

4.1安装部署MobSF

4.2功能及源代码讲解

4.2.1MobSF功能模块分析

4.2.2一般功能分析

4.2.3静态扫描功能分析

4.2.4动态扫描功能分析

4.3Apk静态分析流程

4.4Apk动态分析流程

4.5规则自定义开发

4.6本章小结

工具篇

第5章静态逆向工具

5.1Apktool工具

5.1.1Apktool基础与用法

5.1.2Apktool源码分析

5.2JEB工具

5.2.1JEB安装

5.2.2JEB静态分析

5.3Jadxgui工具

5.4010editor工具

5.4.1010editor解析so文件

5.4.2010editor解析Dex文件

5.5本章小结

第6章动态调试工具

6.1动态调试介绍

6.2IDA Pro工具

6.2.1IDA简介以及基本用法

6.2.2IDA动态调试Apk

6.2.3IDA Dump Android应用内存

6.3JDB调试器

6.4JEB调试工具

6.5本章小结

第7章Hook工具

7.1Frida

7.1.1Frida简介

7.1.2Frida安装运行

7.1.3Frida程序编写与运行

7.2Xposed框架

7.2.1Xposed简介

7.2.2Xposed框架的安装

7.2.3Xposed程序的编写与运行

7.3本章小结

第8章Unicorn框架

8.1Unicorn基础

8.1.1Unicorn简介

8.1.2Unicorn快速入门

8.2Unicorn HelloWorld

8.2.1编译与安装

8.2.2编写HelloWorld程序

8.2.3使用Unicorn Hook函数

8.2.4利用Unicorn优化程序运行

8.3Unicorn与Android

8.3.1Unicorn建立ARM寄存器表

8.3.2Unicorn加载调用so文件

8.3.3Unicorn调试so文件

8.4本章小结

实战篇

第9章脱壳实战

9.1Frida脱壳

9.1.1Frida脱壳原理

9.1.2编写脱壳脚本

9.1.3执行脱壳脚本

9.2FART脱壳

9.2.1ART的脱壳点

9.2.2FART脱壳原理

9.2.3脱壳实践

9.3OLLVM脱壳

9.3.1指令替换混淆还原

9.3.2控制流平展的还原

9.3.3伪造控制流的还原

9.4本章小结

第10章逆向实战

10.1逆向分析Smali

10.1.1逆向分析Apk

10.1.2修改smali代码

10.1.3重编译运行

10.2逆向分析so文件

10.2.1逆向分析Apk

10.2.2使用IDA Pro分析so文件

10.2.3插入调试语句运行

10.3本章小结

第11章Hook实战

11.1Xposed Hook

11.1.1JEB分析Apk

11.1.2编写Xposed模块

11.1.3获取Flag

11.2Frida Hook

11.2.1JEB解析Apk

11.2.2使用IDA Pro分析foo.so

11.2.3编写Frida脚本

11.2.4获取flag

11.3本章小结

第12章调试实战

12.1静态调试

12.1.1从Activity切入分析应用

12.1.2使用Jadxgui分析应用

12.2动态调试

12.2.1获取目标逻辑的函数调用

12.2.2使用Android Studio调试

12.3Native调试

12.3.1Unidbg工具的介绍

12.3.2Unidbg工具的安装测试

12.3.3利用Unidbg直接调用so文件方法

12.4本章小结

第13章IoT安全分析实战

13.1IoT移动应用威胁建模

13.2反编译Android应用包

13.3Android代码静态分析

13.4Android数据存储分析

13.5动态分析测试

13.6本章小结

参考文献

短评

很给力的攻防实战教程,值得学习

2022-05-23 06:45:31

书不错,好好学习天天向上

2022-05-17 22:24:28

讲解的很细,很好理解,作者用心了

2022-04-29 09:58:20

产品特色