论文部分内容阅读
安卓系统的发展给人们的生活带来了巨大的便利,但也带来了各种移动终端安全问题,如恶意应用盗取用户的隐私信息并危害用户的个人财产。为了扩大恶意应用的传播范围,不法分子会选择重打包知名应用迷惑使用者。重打包应用的分析和检测对于遏制这类恶意应用具有重大意义。现有重打包应用的检测方法大多基于应用成对比较相似性,在应用到几十万级应用市场上时,每对一个应用进行重打包检测,都要与全应用市场的应用进行比较,耗费大量的时间,同时其精度也有提升的空间。针对上述的问题,本文的研究内容如下:第一,现有成对比较的检测方法,无法为大型应用市场提供快速的检测服务。为解决该问题,本文设计实现了一个递进式的安卓应用相似度检测方案。方案包括粗粒度和细粒度两个阶段。其粗粒度检测阶段将应用抽象为向量,与其他向量定义方法相比,提取方式更精简,维度确定且维持在较低的水平,搜索相似应用被转化为搜索相似向量,降低了粗粒度检测的时间消耗;引入近似最近邻算法,数秒内就可以在40474个应用中通过粗粒度检测得到待测样本的疑似应用列表。经实验证明,该方法保证了不错的精度,解决了大型应用市场检测时的“组合爆炸”问题。细粒度阶段提取应用常用的敏感API作为检测特征,能够抵抗代码混淆,同时能抵抗恶意攻击者躲避检测使用的代码重排序、插入无效代码等操作带来的干扰,本文通过实验证实了细粒度检测精度优于现有两个相似度检测方法。粗细粒度检测结合,能在几分钟内找到一个应用在大型应用市场的重打包样本。第二,基于上述重打包检测方法,设计并实现了一个分布式的安卓应用相似度检测系统。该系统支持重打包应用的快速检测、多种维度的应用关联分析(包名、Logo、证书)。本文通过功能拆分、模块解耦构建了分布式的系统结构,在稳定的同时,能够保证检测效率。