论文部分内容阅读
当今,智能手机由于其便利性变得越来越普及,所以智能手机的安全性问题变得尤为重要。从总体上看,Google在Android安全策略上呈现越来越严格的趋势,一方面,这说明随着Android的不断发展完善,Google越来越重视安全问题;而另一方面,这也从侧面反应了 Android系统安全问题的严重性。特别是Android系统的权限机制存在着诸多缺陷,例如它的“All-or-None”应用授权模式,即只有授予所有申请的权限才能安装成功;并且在应用安装完成后,不能再撤销或者更改授予的权限。因此,需要对Android系统的应用软件权限管理技术进行研究。针对Android系统权限机制存在的问题,本课题设计了一种基于机器学习的权限动态管理方案。该方案的独特性在于,利用机器学习的分类技术与Android的权限管理相结合,改变了 Android原有的权限机制,使得用户可以在应用安装完成之后更改授予的危险权限,用户具备了更加灵活的权限管理能力,能够随时有效的阻止恶意行为,并且还使用户尽可能多的了解权限与行为之间的对应关系,以便在做权限相关决策时尽量降低为设备带来的风险。该权限管理方案主要是通过机器学习对应用程序进行分类,然后基于不同应用类别常用权限的不同,在应用程序运行时使用权限的过程中向用户显示危险权限警示信息,并让用户选择“阻止”或者“授予”。本课题设计的权限管理方案主要包含两部分:应用程序分类模块和权限动态管理模块。其中应用程序分类模块,是通过反编译技术提取APK安装文件的权限和使用的敏感API两个信息作为应用分类的特征值,通过对这些数据集进行机器学习分类训练输出分类器模型。而权限动态管理模块,则是通过前者得到的分类器模型来判断应用所属的类别,然后基于该应用类别的权限白名单来向用户提出危险权限警示信息,最后让用户选择是否授予正在申请使用的权限。基于这个权限管理方案,本课题实现了一个基于机器学习的权限动态管理系统。该系统对Android原有的权限管理模型进行了改进与增强,即保留原有的Android权限管理机制,但当通过了原有的权限管理之后,需要再进行增强的权限管理检查,当后者通过后才能真正的授予权限的使用。利用Xposed框架来HOOK系统中权限检查的关键函数,修改它原有的权限检查逻辑,加入基于机器学习的权限管理方案,从而达到改善Android权限检查机制的缺陷。