论文部分内容阅读
随着移动互联网的高速发展,越来越多的应用软件从PC端转移到了智能终端上。然而,由于Android平台的开源特性和应用市场的多样性,Android应用软件面临着更大的安全风险,针对移动应用在Android平台上的安全保护技术研究,变得至关重要。在移动应用中,涉及到大量的用户敏感数据,其自身的漏洞和缺陷会导致敏感数据的泄露,从而引发安全风险。而应用软件在移动终端面临的另一个挑战,是来自于恶意攻击者的代码攻击。攻击者通过篡改应用代码,注入恶意程序,实现对应用软件的劫持,获取用户的敏感数据。本文在对Android应用软件已有的安全解决方案充分总结的基础上,针对Android应用软件面临的数据安全和代码安全等问题,进行深入的分析,分别提出基于应用层容器、基于框架层加固和基于native层加固等技术的新的安全解决方案,本文的主要研究内容和贡献包括:(1)针对密码误用漏洞的防御技术的研究。针对Android应用软件上存在的大量密码误用漏洞问题,本文在前人研究的基础上,总结了密码误用漏洞的特征和安全风险,设计密码误用漏洞的修复模型,并且在此基础上,提出了一个针对Android应用软件密码误用漏洞的安全容器。通过实验验证,该安全容器增加的额外时间和内存损耗在可以接受的范围内,并且达到了预期的检测和修复效果。(2)基于系统层加固的社交应用缓存泄露保护技术的研究。针对Android社交应用软件的缓存泄露风险,本文进行了威胁建模,对缓存泄露点的安全风险进行了评级,并且在此基础上,设计并实现了基于框架层的缓存泄露检测和加固框架,为社交应用软件的缓存文件安全提供了有效保护。实验结果显示,本框架能够在用户无感知的性能损耗的基础上,有效遏制社交应用缓存文件泄露的威胁,实现了对社交应用缓存文件的安全保护。(3)基于应用层容器的隐私泄露保护技术的研究。针对Android应用软件中存在的隐私泄露问题,本文在对隐私数据的生命周期进行风险分析的基础上,提出了一种基于应用层容器的隐私保护方案。该方案首先对Android系统漏洞进行防御,然后通过动静结合的方式,追踪应用软件中的隐私数据泄露路径,并且根据策略文件通过Java hook和本地代码Hook,对目标应用中的隐私数据进行保护。通过实验验证,隐私数据保护容器可以有效对第三方应用程序中产生和使用的用户隐私数据进行保护,并且性能损耗控制在用户可接受的范围。(4)针对代码加固的安全技术的研究。本文针对Android应用软件中native代码面临的恶意攻击,提出了基于控制流完整性保护和基于代码增强型加密保护的native代码保护框架。该框架通过对被保护应用进行静态分析,提取其native代码的控制流特征,向开发者提供可视化策略配置视图设定关键函数,并根据策略配置生成对应的加固代码,与被保护应用的其他部分一起形成目标应用;目标应用在运行时,通过对关键函数进行动态控制流完整性检查判定是否遭遇上述攻击,从而达到保护目的。实验表明,本加固框架能够通过极小的性能开销,实现对应用软件native代码的安全性保护。综上所述,针对移动应用软件在Android平台上的安全风险,本文从应用软件的密码误用漏洞防御、缓存文件泄露保护、隐私数据泄露保护和代码加固技术研究等四个方面提出了一系列的安全解决方案,使Android应用软件能够在可接受的性能开销下,大大提升自身的安全能力,抵御攻击者的恶意攻击。