论文部分内容阅读
当今我们生活在移动数字时代,廉价、快速、小巧的手机已经成为人们在生活和工作中的必需品。互联网分析公司Statcounter在2017年3月的一份统计结果显示,截止目前,在全球所有的上网设备中,Android的份额为37.93%,而Windows的份额为37.91%。然而,2016年爆发了一个被称作“Quadrooter”的Android漏洞,全球超过9亿台运行Android系统的智能手机和平板有被感染的风险,一旦中招,攻击者可获取root权限,完全控制用户的手机,可以轻易窃取Android手机上的各种资料,对用户的隐私和财产安全造成不可估量的损害。 Android系统的终端数量庞大,提高其安全性具有重要意义。漏洞挖掘是提高安全性的一个可行方案。在硬件产品或者软件产品发布之前,通过漏洞挖掘技术,预先发现产品的安全问题,可以尽量降低发布产品潜在的漏洞数量,提高产品的安全性,并降低维护成本。实现漏洞挖掘的技术有很多种,主要包含有动态检测、静态检测等技术。 在动态检测技术上,本文主要针对Android平台的漏洞触发原理及检测进行研究,制定了二进制和app两种测试方式,设计了基于python语言的自动检测框架。该框架通过远程命令控制实验机,通过二进制和app两种测试方式,可以对Android系统的内核漏洞、服务漏洞、app漏洞进行动态检测,可检测20余种漏洞。 在静态检测技术上,本文主要针对Clang编译前端工具进行研究,基于符号执行技术,设计了一种针对Android系统的攻击面进行检测的源代码静态检测方法。该方法通过污点传播的方式,对Android系统攻击面的污点数据进行传播,利用新加入的stp求解器进行约束求解,结合加入的敏感函数污点检测、敏感规则污点检测、类型转换污点检测这3种检测规则,实现了对Android的漏洞代码的静态检测。该检测方法现可分析出5个CVE漏洞。 文本对Android系统漏洞的动态检测和静态检测的关键技术进行研究和创新,通过实践证明了新的改进方法的可行性和可用性。在未来的Android产品发布前,这两项检测技术的改进和探索对于降低产品的漏洞风险和开发成本节约有着重要的意义。