摘要
当今智能手机普及程度已经很高,在全球手机操作系统市场上 Android 系统的占有率高达 83.6%,由于 Android 系统的开放性和普及性,导致 Android 应用遭受的攻击非常严重,诸如静态逆向分析、恶意代码植入、盗版侵权等,这都为软件开发商和手机用户造成了极大的损失。由于 Android 系统本身未采取更多针对应用的安全防护措施,并且 ART 虚拟机取代 Dalvik 虚拟机已成为未来不久的必然趋势,使得基于 ART 虚拟机的 Android 应用安全成为亟待研究的课题。
针对 Android 应用易被静态逆向分析,提出了一种基于不透明谓词的隐藏分支路径代码混淆方案,增强了应用抵御静态逆向分析的能力。针对 ART 虚拟机代替Dalvik 虚拟机导致部分原有的软件防护机制失效的问题,提出了一种在该运行机制下切实可行的应用加固方案,该方案基于分包技术,在不影响应用运行效率的前提下,对应用核心代码经行加固处理,在应用运行时再进行动态加载,保证了应用代码的机密性和完整性,同时不影响该运行机制下的高效性。
设计并实现了基于 ART 虚拟机的 Android 应用安全防护系统,并从可行性、兼容性、安全性和运行效率方面对其进行了实验分析,实验结果表明,该系统有效提升了应用安全防护性能并保证了其对应用启动效率的影响是在可接受范围之内的。
关键词: Android,ART, 动态加载, 应用加固, 代码混淆
ABSTRACT
Smartphone has been widely used nowadays, and the global mobile phone market share of the Android operating system is even up to 83.6%. Since Android is open and widespread, attacks suffered by the Android applications are particularly serious, such as static inverse analysis, malicious code injection, piracy and copyright infringement and so on, which cause great loss to the software firms and users. Android itself has not taken more security measures for the applications, and the ART virtual machine replacing the Dalvik virtual machine has become an inevitable trend in the near future. Now more and more security research institutions begin to pay more attention to the ART-based Android applications security.
The dissertation suggests the hidden path branch obfuscation method based on the opaque predicate to enhance the ability to resist static reverse analysis since that Andriod applications are easy to reverse analysis.For the problems caused by the failure o f part of the original software protection mechanism when the ART virtual machine takes place of the Dalvik virtual machine,this dissertation puts forward a feasible application protection scheme under the ART operating mechanism. The scheme is based on packet technology and reinforces the core codes of the application, on the premise of not affecting the operation efficiency. The scheme also ensures the confidentiality and integrity of the application code in the run-time dynamic loading, and not affecting the efficiency of the operation mechanism.
The dissertation designs and implements the ART-based Android applications security protection system,and makes an experimental analysis to the feasibility, compatibility,security and operating efficiency.The finds indicate this system not only effectively improves the applications security protection performance but also ensures the impact of the applications startup efficiency within the acceptable range.
Key words: Android ART, Dynamic loading, Applications reinforcement, Code obfuscation
随着近年来的移动互联网蓬勃发展,智能手机已经成为现在人们生活必不可少的一部分,这其中扮演重要角色的就是手机应用,手机软件的安全性直接影响着软件开发商和手机用户的隐私财产安全。由于网络共享技术的不断提升,做“黑客”
成本变的越来越低,在利益的驱使下,越来越多的人从软件入手通过逆向分析,恶意代码注入、重打包等技术严重危害软件的安全,使得反软件防护和软件防护两种技术在矛与盾的对抗中螺旋升级,移动应用防护工作仍然是热门的研究课题。
二十一世纪初,在科技水平的飞速发展中,手机的概念已被重新定义,它不再仅仅是通话发短信的工具,更是集通信、办公、多媒体、社交、生活、娱乐等于一体的智能随身设备,重要性不言而喻。然而提供这一切人机交互的平台就是移动应用软件,2015 年中,百度公司公布了《2015 年上半年中国互联网安全报告》 ,报告中指出,智能手机病毒迅猛增长,病毒应用新增的数量高达到 127.31 万个,环比增长了 240%。其中金融支付类盗版应用中,购物类应用占 32%,银行类应用占31%,其中,某装机量排名靠前的团购应用盗版甚至正版与盗版比例接近 1:1。移动应用安全形势非常严峻,不容轻视,严重影响着开发商和手机用户的隐私财产安全[1]。
目前全球智能手机市场基本被谷歌公司的 Android 系统和苹果公司的 iOS 系统所统治,根据 StrategyAnalytics 发布的最新数据显示,到 2015 年第三季度,Android和 iOS 两款操作系统总共占了全球智能手机市场近 96%的份额。其中 iOS 占有了12.3%的市场份额,而 Android 则占了 83.6%的市场份额,依旧保持其霸主地位[2]。
当然,Android 系统的开放性也是把双刃剑,相比于非开源的 iOS 系统,Android更易遭受移动应用攻击,开发者能够任意修改系统代码,造成代码分裂,使得现有的安卓系统更加混乱,为各种安全漏洞与恶意程序的入侵提供了可乘之机。
同时,Google 公司也在为 Android 应用安全不懈努力,不断更新迭代版本替换老旧版本修复之前系统存在的漏洞,解决系统安全存在的问题,按照谷歌 2015 年11 月份公布的最新统计数据显示, Android 4.4 是使用率最高的版本,该版本的市场占有率高达 36.6%。Android 5.0 处于第二位,市场占有率为 16.3%,Android 5.1排第三位,市场占有率为 13.2%,由数据分析看出不久以后,低于 4.4 的版本将很快推出历史舞台[3]。
Android 系统在 4.4 版本以前的使用 Dalvik 虚拟机,在该应用运行机制下,软件防护研究者们提供了诸多防护措施,譬如代码混淆、加壳技术、网络完整性验证等。这些应用防护措施基本上取得了比较有效的效果,使得软件破解盗版的成本极高,一定程度上起到了很好的防护效果。在 4.4 系统以上版本中,ART 虚拟机取代Dalvik 虚拟机已成为主流,当迭代到 5.0 版本时,ART 虚拟机已成为默认虚拟机完全取代了 Dalvik 虚拟机[4-6]。该项改进极大的提升了 Android 系统常被诟病的应用运行效率,使得其在与 iOS 分庭抗争时候取得了重要的筹码,但是在这种应用运行机制下导致了之前许多应用防护手段纷纷失效,并且目前主流的防护产品商们也仍未能拿出一套针对该运行机制的切实可行的加固方案,使得基于 ART 虚拟机的Android 应用安全防护技术成为亟待研究的课题[7]。
安卓应用安全防护系统技术解析:
Dalvik 和 ART 虚拟机下性能比较
原 Java 代码
反编译后的代码
Android 应用 APK 包内结构
BaseDexClassLoader 类中的 findClass 方法代码
目 录
摘 要
Abstract
1 绪论
1.1 研究背景
1.2 国内外研究现状
1.3 论文主要工作及论文组织结构
2 Andorid 应用安全威胁及安全防护技术
2.1 Android 系统的虚拟机
2.2 Android 应用安全威胁
2.3 Android 应用安全防护技术
2.4 本章小结
3 基于 ART 虚拟机的应用安全防护技术研究
3.1 基于不透明谓词的隐藏分支代码混淆技术
3.2 基于 ART 虚拟机的应用加固技术
3.3 本章小结
4 基于 ART 虚拟机的应用安全防护系统实现
4.1 应用防护系统架构设计
4.2 应用防护系统模块实现
4.3 应用防护系统总体流程
4.4 本章小结
5 实验与分析
5.1 实验环境准备
5.2 可行性分析
5.3 兼容性分析
5.4 安全防护可靠性分析
5.5 防护前后效率分析
5.6 本章小结
6 总结与展望
6.1 论文工作总结
6.2 后续工作的展望
致 谢
参考文献
(如您需要查看本篇毕业设计全文,请您联系客服索取)