新書推薦:
《
索恩丛书·北宋政治与保守主义:司马光的从政与思想(1019~1086)
》
售價:NT$
345.0
《
掌故家的心事
》
售價:NT$
390.0
《
农为邦本——农业历史与传统中国
》
售價:NT$
340.0
《
郊庙之外:隋唐国家祭祀与宗教 增订版 (三联·哈佛燕京学术丛书)
》
售價:NT$
480.0
《
小麦文明:“黄金石油”争夺战
》
售價:NT$
445.0
《
悬壶杂记全集:老中医多年临证经验总结(套装3册) 中医医案诊疗思路和处方药应用
》
售價:NT$
614.0
《
无法忍受谎言的人:一个调查记者的三十年
》
售價:NT$
290.0
《
战争社会学专论
》
售價:NT$
540.0
編輯推薦:
推荐购买:
《iOS应用安全攻防实战》:看过本书的朋友,能够将自己的iOS应用在安全方面的得分,从不及格提升到80分!
《黑客大追踪:网络取证核心原理与实践》:一本书掌握基于大数据的智能化海量情报分析方法和技能!
《恶意代码分析实战》:迄今为止最权威的一本恶意代码分析指南,专业人士案头必备
《线上幽灵:世界头号黑客米特尼克自传》:头号黑客传奇人生的启迪!
一本极其实用的Android安全攻防快速学习手册。
《Android安全攻防实战》提供了大量攻防示例代码和实用建议,可以直接用来解决项目中遇到的实际问题。同时,书中还介绍了开源工具,帮助读者用一两个命令来解决以前需要花费很大代价才能完成的任务;在书中的指导下,读者也可以为自己定制开发针对特定问题的插件,一劳永逸地解决问题。
作者Keith Makan数次入选谷歌应用名人堂,是多个0day漏洞的发现者。
2014和2015届Pwn2own黑客大赛winner,Team509创始人赵泽光老师力荐!
內容簡介:
Android是目前最为主流的移动设备操作系统,占据了全球近84%的市场份额。因此,Android系统中的安全问题也就变得十分重要。
本书通过大量极富针对性的实验,通过对常见的安全场景中解决方案的讲解,帮助读者全面掌握各种攻-防实用技能。因而,本书的实用性也很强,即使是一时不能完全理解其中的技术原理的新手,根据作者给出的方法,也能解决实践中遇到的大部分问题;而高手也能从中借鉴到一些好的做法。
全书共分九章,涵盖了基本的Android开发环境和工具;app组件之间及它们与系统的交互方式;Android安全评估框架“drozer”;app及Android原生代码的逆向技巧;各类漏洞的利用及防护方式;使用SSL在网络通信中进行更有效的验证;利用第三方代码库或Android中新增的特性,通过加密和在开发时使用设备管理策略,加固app等内容。
關於作者:
Keith Makan
以前他是计算机科学和物理学专业的学生,现在是狂热的业余爱好者和安全研究员。他把绝大多数业余时间都用在了阅读源码、逆向工程、fuzz测试和编写Web应用技术中的相关漏洞的利用代码上。
Keith工作起来就像是一个IT安全评估专家一样专业。他的个人研究已经使他多次入选“谷歌应用安全名人堂”(Google Application Security Hall of Fame)。他还编写了谷歌Chrome的WebKitXSSAuditor,火狐浏览器的NoScript插件中漏洞的利用代码。此外,他还数次报告了WordPress插件中的漏洞,并写出了相应的利用工具。
我要感谢我的妈妈、爸爸以及其他支持我疯狂的想法,并总是给我极大鼓励的家人们。
Scott Alexander-Bown
他是一名在金融服务,软件开发和移动app客户端开发方面有着丰富经验的研发高手。他一直沉湎于Android之中,热爱移动app安全。
Scott目前是一位高级开发人员,专长于移动app的开发、逆向工程以及app加固。他也热衷于发表与app安全相关的演讲,活跃在多个国际移动app开发者大会上。
最重要的,我要感谢我的妻子Ruth,没有你的爱和鼓励,我将一事无成。我爱我们的儿子Jake,他的笑声和可爱的笑脸是我前行的动力。
此外,我还要感谢以下诸公:
Keith, Barbara,Kirk Bown,Mhairi和Robert Alexander ,感谢你们给予我的爱和支持。
Andrew Hoog和viaForensics小组的成员,感谢你们在移动安全领域的支持、洞察力和经验。
Mark Murphy, NikolayElenkov, Daniel Abraham, Eric Lafortune, RobertoTyley, YanickFratantonio, Moxie Marlinspike, the Guardian Project和the Android 安全团队,你们博客中的文章、论文、演示和或示例代码对于学习Android安全是很有趣且非常有用的。
感谢Keith Makan的热心和指导,在你的带领下,我才能完成本书的编写。
感谢本书的各位技术审校对细节的关注和极具价值的反馈意见。最后,感谢您——亲爱的读者——我希望,您能从本书中获益,并由此写出更安全的app。
审稿人简介
Miguel Catalan Ba?uls是一名年轻的工程师,他唯一的梦想是希望自己的努力能为世界的改变做出贡献。他是一名软件开发人员,也是一名团队的带头人。
他拥有工业工程学士学位,是Geeky Theory的合伙人。他还是Miguel Hernandez大学(西班牙分校)的IEEE学生分会的副会长。
我想感谢我的妻子与父母,感谢他们对于我工作的理解与宽容。
Seyton Bradford是一名在移动设备安全和取证上有着超过10年经验的软件开发人员和工程师。
目前,他在viaForensics任高级软件工程师,主攻app和移动设备的安全性。
他的作品在全球各地均有出版,同时还是多部学术期刊的评审。
感谢我的家人及朋友对我事业与工作的支持。
Nick Glynn目前受聘担任技术培训师和顾问,在英国和世界各地提供关于Android、Python和Linux的课程和专业知识。他在许多领域,无论是主板启动代码、Linux驱动程序开发和系统开发,还是全栈部署、Web应用程序开发,以及Linux和Android平台的安全强化,都拥有丰富的经验。
我要感谢我家人给我的爱,感谢我漂亮的宝贝女儿,是你照亮了我的生活。
RuiGon?alo就读于葡萄牙布拉加的Minho大学,他现在正在完成Android安全领域的硕士论文。他正在开发一项新功能,旨在使用户能以非常细的粒度,控制互联网连接。他对移动安全的浓厚兴趣源于大学里“密码学”和“信息系统安全”这两门课程,在几次有关的活动中他得到了这一领域里葡萄牙最重要的公司的支持。他建议渴望成为安全领域专家的Android安全初学者把这本书作为必读书目。
我要感谢Packt出版社负责此书的工作人员,是你们让我完全相信,对移动安全的研究会占满我对探索软件世界的所有好奇心。
Elliot Long从小在硅谷长大,2005年起就编写了多个移动app。他是移动旅游线路生成软件mycitymate SLGmbH的共同创始人。2009他加入了Intohand有限公司,负责Android和黑莓开发。
目錄 :
第1章 Android开发工具1
1.1 简介1
1.2 安装Android开发工具(ADT)2
1.3 安装Java开发包(JDK)5
1.4 更新API资源9
1.5 另一种安装ADT的方法11
1.6 安装原生开发包(Native Development Kit,NDK)15
1.7 虚拟Android设备16
1.8 使用命令行创建Android虚拟设备(AVD)19
1.9 使用Android调试桥(ADB)与AVD交互21
1.10 从AVD上复制出复制入文件22
1.11 通过ADB在AVD中安装app23
第2章实践app安全24
2.1 简介24
2.2 检查app的证书和签名24
2.3 对Android app签名33
2.4 验证app的签名37
2.5 探索AndroidManifest.xml文件37
2.6 通过ADB与activity管理器交互47
2.7 通过ADB提取app里的资源50
第3章 Android安全评估工具56
3.1 简介56
3.2 制作Santoku启动盘和安装Santoku58
3.3 安装drozer62
3.4 运行一个drozer会话71
3.5 枚举已安装的包(package)72
3.6 枚举activity78
3.7 枚举content provider80
3.8 枚举service83
3.9 枚举broadcast receiver85
3.10 确定app的受攻击面(attack surface)87
3.11 运行activity89
3.12 编写drozer模块——一个驱动枚举模块91
3.13 编写一个app证书枚举器94
第4章利用app中的漏洞98
4.1 简介98
4.2 收集logcat泄露的信息101
4.3 检查网络流量106
4.4 通过activity manager被动嗅探intent111
4.5 攻击service117
4.6 攻击broadcast receiver121
4.7 枚举有漏洞的content provider123
4.8 从有漏洞的content provider中提取数据126
4.9 向content provider插入数据129
4.10 枚举有SQL-注入漏洞的content provider131
4.11 利用可调试的app134
4.12 对app做中间人攻击139
第5章保护app146
5.1 简介146
5.2 保护app的组件147
5.3 通过定制权限保护组件149
5.4 保护content provider的路径(path)152
5.5 防御SQL注入攻击155
5.6 验证app的签名(防篡改)157
5.7 通过检测安装程序、模拟器、调试标志位反逆向工程161
5.8 用ProGuad删除所有日志消息164
5.9 用GexGuard进行高级代码混淆168
第6章逆向app173
6.1 简介173
6.2 把Java源码编译成DEX文件175
6.3 解析DEX文件的格式177
6.4 解释Dalvik字节码194
6.5 把DEX反编译回Java202
6.6 反编译app的原生库205
6.7 使用GDB server调试Android进程207
第7章网络安全211
7.1 简介211
7.2 验证SSL自签名证书212
7.3 使用OnionKit库中的StrongTrustManager221
7.4 SSL pinning——限定受信SSL的范围223
第8章原生代码中漏洞的利用与分析231
8.1 简介231
8.2 检查文件的权限232
8.3 交叉编译原生可执行程序241
8.4 利用竞争条件引发的漏洞249
8.5 栈溢出漏洞的利用254
8.6 自动fuzzing测试Android原生代码261
第9章加密与在开发时使用设备管理策略274
9.1 简介274
9.2 使用加密库275
9.3 生成对称加密密钥277
9.4 保护SharedPreferences数据281
9.5 基于口令的加密283
9.6 用SQLCipher加密数据库287
9.7 Android KeyStore provider290
9.8 在开发时使用设备管理策略293
內容試閱 :
译者序
这是一本Android安全的实训教材,你甚至可以把它当成参加一次专家手把手的专题培训!
自从Android操作系统成为移动平台上的两大主流操作系统之一后,Android系统的安全性就受到了广泛的关注,确实也出版过几本Android安全方面专著,但是这些著作实在是太高大上了一些,一般都是要从高深的原理讲起,吓跑了许多对它感兴趣的爱好者。即使有人硬着头皮看下去,也如坠云里雾里,短期内无法把学到的知识,融会贯通地运用到实践中去。更别提那些只是不想让自己的代码沦为别人的“炮灰”的程序员了,他们确实学到了一些黑客知识,但是面对这些攻击时,又该怎样防护自己编写的代码呢?
本书的英文原名为《Android security cookbook》。其中的单词“cookbook”是“菜谱”的意思,也就是在给定场景下,如何进行操作的操作指南。顾名思义,书中的内容也就是针对典型的Android安全攻-防场景,通过实验来说明Android安全技术原理的。利用这种教学方法,能使学员快速上手,通过相对简短的培训,解决大部分实践中可能遇到的问题。由于本书同时也计划作为我校“网络安全与执法”专业“移动平台安全”课程的实训教材,所以我将书名直接译为《Android安全实验教程》。
实用性是本书最大的特色。除了常规工具外,作者还介绍了开源的Android安全评估框架“drozer”,利用这个工具,你不仅可以“敲一、两个命令”就能完成以前要花很大代价才能搞定的活。有经验的安全研究人员还能为自己定制开发一些针对特定问题的插件,让自己活得更滋润些。而且,由于这个框架能够暴露出Android app内部实现的许多细节,随着你越来越熟练的掌握这一工具,你对Android的理解也一定会越来越深入。
对于想要寻找代码加固方案的程序员来说,本书中更是针对常见的攻击方法,提供了详细且极富操作性的代码加固建议,其中不光有系统中自带的库或新增的特性的使用方法,也介绍了不少开源的库,通过对它们的使用,能把你的软件的安全性提高到一个新的级别。
本书的作者也不是光说不练的嘴把式,他们都是Android安全圈中的大牛,作者Keith
Makan就是多个0day漏洞的发现者,数次入选谷歌应用安全名人堂(Google Application Security Hall of Fame);而作者Scott Alexander-Bown也是移动app开发、逆向和加固方面的专家,在多个国际会议上做过演讲。
单词“application”在书中,既是指用Java语言编写的Android应用,也指使用Android
NDK编写的原生(native)应用程序,显然,在翻译时,将它们不加区分的全部译为“应用”或“应用程序”是不合适的。为了表示其中的区别,在翻译中,我们将用Java语言编写的Android应用一律译为“Android app”,而用Android NDK编写的原生应用程序则全部译为“应用”。
全书由上海公安高等专科学校的教师教官翻译完成的,全书共九章,分工安排如下:
第一至第四章由武晓音同志翻译,第五至第九章由我翻译。全书翻译完成后由我统一审校。
本书中文版的面世,特别要感谢博文视点的各位编辑老师,特别是顾慧芳、刘皎老师,感谢你们对我的一贯支持和耐心的指导,使我从中获益良多!同时也感谢你们为本书的出版所花费的大量时间!此外,也要感谢Team509安全研究小组的朋友们在本书翻译时给予的宝贵建议!
由于翻译时间仓促,书中存在错误在所难免,敬请读者不吝指正。
崔孝晨
2015年2月