摘要:

随着移动互联网以及智能终端的发展和普及,人们使用手机的应用软件比例大大增加,其中由于Android系统庞大的市场占有率使得Android App的使用极为普遍.然而Android应用由于获取渠道多样,系统碎片化等问题,正面临着复杂多变的攻击挑战状况,这其中包括对应用软件的逆向分析,二次打包,恶意代码注入等攻击手段,基于这样的背景需求,移动应用中的加固保护技术研究尤为迫切.论文针对Android应用的安全性和遭受的软件攻击进行了分析,指出现有的Android应用受到的静态攻击,动态攻击情况,并介绍了已有的一些Android加固技术.在现有的基础上设计了针对Android应用的加固技术方案及系统实现.在Android技术加固方案设计中,以Dex动态加载技术为基础,设计了基于AES白盒加密保护的Dex隐藏技术,将源Dex文件加密保护透明化,使得攻击者无法在磁盘上直接获取到完整的源Dex文件;同时针对So文件受到的静态攻击,提出一套So文件静态防御方案,从Ndk代码混淆,So代码加密以及软件加壳的角度进行分析并做出防御保护,使得对So文件的逆向分析难以实现,并针对加固后的内部代码增量问题,采用相应的压缩算法对加固之后的代码结构做出优化处理;随后针对静态保护的缺陷以及现有动态保护的不足,设计了一套基于信号机制与ptrace的反调试技术保护,采用检测进程与监测进程相互通信保护以及对主进程的Ptrace来实现多进程保护,提高了攻击者进行动态分析的难度;针对Android受到的篡改及二次打包攻击,设计了基于Hash散列算法的代码完整性保护方案,将关键So代码以及源Dex文件进行完整性保护,在校验完整性不一致的情况下中止程序运行,防止其受到攻击者的篡改攻击.最后,根据所设计的Android应用加固保护方案,设计并实现一套完整的Android应用加固系统,该加固系统从静态防御及动态防御上对Apk进行加固保护服务,实现对Dex的安全保护,对So文件的安全加固,对反调试攻击的有效防御以及篡改攻击的抵制保护.此外对系统的安全性以及各个子模块的功能性进行了测试验证以及效果评估,对加固系统目前存在的不足进行了展望和讨论,为以后的研究了方向.