论文部分内容阅读
Android设备的流行与普及不仅为人们生活带来便利,同时也引来了恶意软件开发者的关注,导致恶意软件的发展呈现难以遏制的局面,日益侵害着消费者的利益。然而传统的纯静态或动态检测方法面临着要么准确率低要么计算开销过大的问题,无法同时满足人们对检测准确率和效率的要求。 鉴于此,本文提出了一个多层次混合检测系统HyDAS,结合了静态和动态检测的特点,通过多层过滤,逐层深化的方法准确、及时地发现Android应用的安全隐患和潜在攻击行为。本论文的主要工作成果如下: (1)设计并实现基于平均不纯度减少思想的特征提取与选择方法。其中特征提取的过程是首先将数据集中所有特征按照是否需要执行分为静态特征和动态特征,而静态特征根据提取流程又可分为APK特征、XML特征与代码特征,其中代码特征中,本文首次使用敏感API频繁模式作为特征之一,使分类模型更深刻理解程序行为。对于静态特征,过多的特征会导致模型发生过拟合现象,故本文通过计算Pearson系数和信息增益等特征选择方法,筛选出300维关键特征,实验结果表明该特征选择方法优于全部选择或随机选择的方法,模型准确率有显著提高,而模型训练时间上也比全部选择的方法降低了50%。另一方面,动态特征的提取通过Monkey Test自动化测试而完成,无需人工参与,极大加快检测速度。 (2)设计并实现层次化混合检测机制。一共包含三个层次,逐层往下,检测准确率越高,但检测效率越低,检测代价也就越大。首先通过特征码扫描方法快速匹配已知软件,然而对于未知软件,HyDAS系统通过SVM+GBDT分类器进行静态检测,当检测置信度不足60%时进行下一步的动态检测,基于MonkeyTest提取的动态特征以及KNN模型,得出动态检测结果与置信度,最终比较每层检测置信度给出软件类别。 (3)设计并实现完整的检测系统,包含客户端和服务器端软件,并与已有的检测系统进行实验对比,包括静态检测系统Drebin[12],ASCA[33],以及纯MonkeyTest的动态检测方式。实验结果显示HyDAS系统AUC值和误报率都是最好的,分别比第二名提高了0.8%和降低了24.2%,而检测时间比动态检测方法小了一个数量级。