论文部分内容阅读
随着移动互联网的日新月异,智能手机也渗入人们工作与生活的方方面面。由于用户对智能手机依赖性的日益增强,越来越多的用户隐私数据存放在手机当中。因为用户的隐私信息关系着个人利益,因此引起了众多攻击者的关注,带有隐私泄露的恶意软件也不断增多。Android作为当前智能移动终端的两大操作系统之一,潜在的安全威胁也逐步上升。面对Android隐私泄露问题的日益猖獗,研究者的重视程度也越来越高。且现阶段的造成隐私泄露的恶意软件与移动支付的结合越来越紧密,使得隐私泄露的问题成为目前研究的重点。综上,现阶段急需加强对Android平台隐私泄露检测技术的研究。对于隐私泄露的问题,目前研究人员开发了越来越复杂的静态或动态分析工具来检测恶意程序是否存在隐私窃取和隐私泄露等问题。然而,这些工具依靠手工配置隐私源和隐私泄露点列表。这样的列表很难实现和维护。尤其是在Android版本不断的更新,每次新产生的API会大量增加,再者,有些开发者会使用鲜为人知的隐私源或隐私泄露点。因此,本文提出了一种基于机器学习的方法从Android API中识别出隐私源和隐私泄露点,为了提供粒度更细的信息,本文的方法继续对隐私源和隐私泄露点进行细分。在Android 4.2版本的API中,本文所提出的方法具有训练速度快,高识别率的特点。并且该方法可以用在新发布的Android API上进行分类。对于隐私泄露检测的问题,本文提出了基于隐私泄露路径检测的方法来判别恶意软件是否存在隐私泄露。该方法以逆向分析后的smali代码为出发点,针对其函数调用关系图,根据隐私源和隐私泄露点的可达性,检测出Android恶意软件中存在的隐私泄露路径,从而确定其存在隐私泄露问题。本文根据隐私泄露检测的具体问题,优化了Warshall算法在隐私泄露检测情况下的时间复杂度,使得对隐私源到隐私泄露点的可达性计算更快。通过实验表明,在隐私源和隐私泄露点函数所占比例大的情况下,或者在其函数调用关系矩阵越稀疏的情况下,该方法在检测效率方面有更好的表现,并且也有较高的检测率。