论文部分内容阅读
随着移动通信技术和智能终端的快速发展,移动互联网已经深入人们生活的方方面面,智能手机作为接入互联网的工具,不仅为我们提供了通信服务,而且改变了我们的生活方式,如娱乐消遣等。在智能手机领域,截至2016年11月,Android手机拥有全球88%的市场,Android系统成为用户量最大的手机操作系统。随着软硬件技术水平的不断提高,一部Android手机上运行的应用越来越多,应用的功能也更加丰富。然而,丰富的应用给用户带来便利的同时,手机也遭受各种恶意应用的攻击,例如恶意吸费、诱骗欺诈、隐私窃取等。如果Android用户在安装未知应用之前就能预知该应用是否为恶意应用,就能避免恶意攻击,基于此,本文设计了一个Android恶意应用检测模型,本模型能够对Android应用软件安装包APK文件进行检测,判别其是否为恶意应用软件。本模型包括三个模块,主要内容如下:1)数字签名检测模块。Android系统要求开发者必须对应用软件进行签名才能安装,而每一个被签名的应用都有唯一的一个MD5值。本文从VirusShare网站收集了大量的恶意应用MD5值。本模块从被检测的APK文件中解析出MD5值,并检索恶意应用MD5值数据库中是否存在该值,如果存在,则把该应用判为恶意应用软件,否则,进行机器学习判决模块的检测。2)特征提取模块。针对恶意应用软件检测问题,本文提出了一种基于应用权限和敏感API的静态检测方案。Android应用软件要进行敏感操作就必须声明应用权限和调用敏感API,单独的一项应用权限或者敏感API不一定会对用户隐私造成泄露,但是一系列的应用权限和敏感API组合就会造成用户隐私泄露。本模块主要是利用APK文件中提取出的应用权限及其调用的敏感API,生成混合特征向量数据集,以便后续采用机器学习的方法进行恶意应用软件检测。3)机器学习检测模块。本模块使用随机森林算法、K-最近邻算法和支持向量机算法分别对本文收集的恶意应用软件和正常应用软件进行特征学习,训练出三个Android应用软件分类器。当有新的待检测应用软件时,通过上述的特征提取模块生成待测应用的混合特征向量,分别使用三个分类器对该应用软件进行分类,最后根据投票法则判断被检测的应用是否为恶意应用。本文从Google应用商店33个类别中下载了142个应用软件,并从小米应用商店16个类别中下载了184个应用软件,总计326个作为正常应用软件测试样本,从VirusShare网站收集了323个恶意应用软件样本。实验结果显示,本文设计的Android恶意应用检测模型判别精确度达到95%以上,达到预期效果。