密码学的android软件保护技术研究【字数:14147】
摘 要Android系统目前来说是当今移动端智能操作系统的佼佼者,带动了其应用程序的快速发展。但是伴随而来的是对Android平台的大量攻击。更有甚者通过一些反编译工具去盗取他人的劳动成果并以自己的名义发布。有的恶意程序可以盗取用户的个人信息,恶意扣费和广告推广等,产生一些不必要的麻烦。更有甚者可以通过对应用程序进行反向编译获取源代码,然后注入恶意代码后重新发布,一些不知情的用户在下载应用程序后会发生诸多危害。主要原因还是在以下两点首先应用开发的企业不重视APK(Android Package)的防篡改和反编译保护,导致它容易遭受恶意篡改;其次,在应用的审核上,不完善的机制导致了大量的仿冒产品流入市场。为了避免APK被恶意篡改或反向编译后打包流入市场,目前主流的做法是对文件进行代码级的混淆,主要目的是增加对代码静态分析的难度,可惜这个方法仅仅是增加了攻击者的时间成本,在技术难度上很难有质的提升,尤其重要的一点是它不能有效地阻止Android应用程序被篡改或者反编译。这篇论文是在严峻的Android应用安全问提基础上,结合自身的相关知识对Android应用进行基于密码学的加固,从而维护应开发公司和用户的合法权益。在对安全加固技术研究后提出加壳与加密相结合的方案。
目 录
1. 绪论 1
1.1 作品设计的背景和意义 1
1.2 Android应用当下的安全危机 5
1.3 本文的主要研究内容 5
1.4 本文的组织架构 5
2. Android系统架构和文件结构 7
2.1 Android体系结构 7
2.1.1 Linux内核层 7
2.1.2 系统运行库层 8
2.1.3 应用程序框架层 9
2.1.4 应用程序层 10
2.2 Android应用程序文件结构 10
2.2.1 Dex文件结构 10
2.2.2 APK文件结构 18
2.3 Android安全机制 21
2.4 本章小结 23
3. 加壳程序关键技术研究与实现 24
3.1 需求分析 24
3.2 现有安全加固技术的分 *好棒文|www.hbsrm.com +Q: @351916072@
析 24
3.2.1 防止应用程序被反向编译 24
3.2.2 防止应用程序被静态调试 25
3.2.3 防止应用程序被重新编译 25
3.3 加壳技术 25
3.4 加密算法 26
3.5 程序设计总体思路 27
3.5.1 加壳过程 27
3.5.2 脱壳过程 27
3.6 程序设计的关键技术 28
3.6.1 修复Dex头文件 28
3.6.2 通过自定义类加载器DexClassLoader动态加载源程序 30
3.7 程序模块实现 30
3.7.1 加壳模块 30
3.7.2 脱壳模块 32
3.8 本章小结 32
4. 程序测试和数据分析 33
4.1 测试标准规范 33
4.2 测试环境 33
4.3 测试用源程序APK 33
4.4 反编译工具 33
4.5 功能完整性测试 34
4.6 测试抵抗静态分析和反向编译测试 35
4.7 加密前后文件大小对比 37
4.8 本章小结 38
5. 全文总结 39
参考文献 40
致谢 41
1. 绪论
1.1 研究背景和意义
Android是一个基于Linux的自由且是开放源代码的操作系统,在当今社会它被广泛地应用在移动设备上。最早是由Andy Rubin等人创建,并由他们负责系统的开发。Google在2005年收购了Android和负责的团队。Andy Rubin之后被任命为Google公司工程部副总裁,并继续开发Android项目。到了2007年11月,Google和84家硬件制造商携手电信营运商一起建设开放手机联盟。他们的目的是为了共同研发改良的Android系统。随着时间的推移,到了2008年10月发布了第一部Android智能手机。截止2018年8月7日,最新的Android版本达到了9.0。
2018年Kantar机构发布了第二季度世界上智能手机分部统计的数据[1],从中不难发现每个市场中Android智能手机和iOS智能手机的占有率。通过对比几组数据可以看出,Android智能手机占据了绝大部份市场,在数量上碾压IOS系统和Windows系统的智能手机。从市场占有率的层面来看,基于Android系统的智能手机收到了全球各地消费者的一致认可以及广泛的称誉。
/
图11 2018年第二季度全球各个市场智能手机分布的统计数据
/
图12 2019年3月中国智能手机销售份额
除此以外,在2019年数据Kantar 调研机构[2]发布的智能手机操作系统市场份额统计报告显示:目前我国的Android市场份额远超其他系统的份额,Android系统智能手机市场份额高达78.2%,相比较之下IOS系统智能手机仅占据21.7%的市场份额。除了IOS系统智能手机外,被远远甩在后面的还有Windows,黑莓等系统的智能手机。由此可见Android系统在整个智能手机市场是当之无愧的榜首。
但是正因为占据了大部分的智能手机市场,导致Android系统往往成为恶意软件攻击的目标。除了此以外,由于它自身基于Linux高度自由开放的特点,也导致攻击Android系统手段相对容易。最后一点就是关于Android的审核机制,不完善的审核机制对于Android系统的安全来说无异于雪上加霜。
/
图13 2018年移动端各月新增恶意移动端样本数分布情况
2019年2月18日,360烽火实验室于发布了2018年Android恶意软件专题报告[3]。360烽火实验室是全球顶尖的移动安全生态研究实验室。根据报告指出,2018年全年,360互联网安全中心共截获移动端新增恶意软件样本约434.2万个,平均每天新增约1.2万个。相比2017年(757.3万个)下降了约42.7%。累计监测移动端恶意软件感染量约为1.1亿人次。
与以往不同的是,从2018年的报告中,我们不难发现移动端成为了新的攻击入口。主要原因是APT(Advanced Persistent Threat)相比较于传统的PC有更多特有的可供攻击的入口。与此同时基于移动平台的原因,对自身保护能力较弱,从而导致安全性下降。
/
图14 移动高级威胁(APT)植入方式占比
2018年公开披露的APT报告中,Google Play是最被侧重的攻击入口,占比高达26.7%。有一款篡改次数较多的游戏名为“仙境online”被二次打包篡改成病毒包的次数高达295次。篡改的次数一定上反映出其对应的山寨版本的款数。也就是说“仙境online”官方版本被二次篡改后包装成的山寨版本就有数百种。被恶意篡改后的手机游戏往往会对用户产生恶意扣费、流量消耗、读取隐私、广告弹窗等安全问题。
目 录
1. 绪论 1
1.1 作品设计的背景和意义 1
1.2 Android应用当下的安全危机 5
1.3 本文的主要研究内容 5
1.4 本文的组织架构 5
2. Android系统架构和文件结构 7
2.1 Android体系结构 7
2.1.1 Linux内核层 7
2.1.2 系统运行库层 8
2.1.3 应用程序框架层 9
2.1.4 应用程序层 10
2.2 Android应用程序文件结构 10
2.2.1 Dex文件结构 10
2.2.2 APK文件结构 18
2.3 Android安全机制 21
2.4 本章小结 23
3. 加壳程序关键技术研究与实现 24
3.1 需求分析 24
3.2 现有安全加固技术的分 *好棒文|www.hbsrm.com +Q: @351916072@
析 24
3.2.1 防止应用程序被反向编译 24
3.2.2 防止应用程序被静态调试 25
3.2.3 防止应用程序被重新编译 25
3.3 加壳技术 25
3.4 加密算法 26
3.5 程序设计总体思路 27
3.5.1 加壳过程 27
3.5.2 脱壳过程 27
3.6 程序设计的关键技术 28
3.6.1 修复Dex头文件 28
3.6.2 通过自定义类加载器DexClassLoader动态加载源程序 30
3.7 程序模块实现 30
3.7.1 加壳模块 30
3.7.2 脱壳模块 32
3.8 本章小结 32
4. 程序测试和数据分析 33
4.1 测试标准规范 33
4.2 测试环境 33
4.3 测试用源程序APK 33
4.4 反编译工具 33
4.5 功能完整性测试 34
4.6 测试抵抗静态分析和反向编译测试 35
4.7 加密前后文件大小对比 37
4.8 本章小结 38
5. 全文总结 39
参考文献 40
致谢 41
1. 绪论
1.1 研究背景和意义
Android是一个基于Linux的自由且是开放源代码的操作系统,在当今社会它被广泛地应用在移动设备上。最早是由Andy Rubin等人创建,并由他们负责系统的开发。Google在2005年收购了Android和负责的团队。Andy Rubin之后被任命为Google公司工程部副总裁,并继续开发Android项目。到了2007年11月,Google和84家硬件制造商携手电信营运商一起建设开放手机联盟。他们的目的是为了共同研发改良的Android系统。随着时间的推移,到了2008年10月发布了第一部Android智能手机。截止2018年8月7日,最新的Android版本达到了9.0。
2018年Kantar机构发布了第二季度世界上智能手机分部统计的数据[1],从中不难发现每个市场中Android智能手机和iOS智能手机的占有率。通过对比几组数据可以看出,Android智能手机占据了绝大部份市场,在数量上碾压IOS系统和Windows系统的智能手机。从市场占有率的层面来看,基于Android系统的智能手机收到了全球各地消费者的一致认可以及广泛的称誉。
/
图11 2018年第二季度全球各个市场智能手机分布的统计数据
/
图12 2019年3月中国智能手机销售份额
除此以外,在2019年数据Kantar 调研机构[2]发布的智能手机操作系统市场份额统计报告显示:目前我国的Android市场份额远超其他系统的份额,Android系统智能手机市场份额高达78.2%,相比较之下IOS系统智能手机仅占据21.7%的市场份额。除了IOS系统智能手机外,被远远甩在后面的还有Windows,黑莓等系统的智能手机。由此可见Android系统在整个智能手机市场是当之无愧的榜首。
但是正因为占据了大部分的智能手机市场,导致Android系统往往成为恶意软件攻击的目标。除了此以外,由于它自身基于Linux高度自由开放的特点,也导致攻击Android系统手段相对容易。最后一点就是关于Android的审核机制,不完善的审核机制对于Android系统的安全来说无异于雪上加霜。
/
图13 2018年移动端各月新增恶意移动端样本数分布情况
2019年2月18日,360烽火实验室于发布了2018年Android恶意软件专题报告[3]。360烽火实验室是全球顶尖的移动安全生态研究实验室。根据报告指出,2018年全年,360互联网安全中心共截获移动端新增恶意软件样本约434.2万个,平均每天新增约1.2万个。相比2017年(757.3万个)下降了约42.7%。累计监测移动端恶意软件感染量约为1.1亿人次。
与以往不同的是,从2018年的报告中,我们不难发现移动端成为了新的攻击入口。主要原因是APT(Advanced Persistent Threat)相比较于传统的PC有更多特有的可供攻击的入口。与此同时基于移动平台的原因,对自身保护能力较弱,从而导致安全性下降。
/
图14 移动高级威胁(APT)植入方式占比
2018年公开披露的APT报告中,Google Play是最被侧重的攻击入口,占比高达26.7%。有一款篡改次数较多的游戏名为“仙境online”被二次打包篡改成病毒包的次数高达295次。篡改的次数一定上反映出其对应的山寨版本的款数。也就是说“仙境online”官方版本被二次篡改后包装成的山寨版本就有数百种。被恶意篡改后的手机游戏往往会对用户产生恶意扣费、流量消耗、读取隐私、广告弹窗等安全问题。
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/wlw/178.html