Android程序的静态分析方法主要是两种:基于签名等特征值的黑白名单检测方法,和基于模糊哈希的相似度检测方法。[6]每一个Android程序都具有一个唯一的数字签名,当程序的数字签名改变时,一定表示该程序发生了变化。而其他的特征值包括运行权限、Dalvik可执行文件等。综合选取多种样本作为特征码可以有效地避免因在不同层次修改源代码和故意混淆等造成的误报和漏报。基于模糊哈希的相似度检测法是基于文件哈希特征来选取的,一般,在检测Android应用的时候会将代码分割成代码块,通过不同的代码块的哈希值来构成整个程序的哈希特征,生成对应的“程序指纹”。[15]
学界现在也有很多新的研究,探讨使用模糊散列函数以外的方法检测Android程序之间的相似性。比如左玲[7]在其论文中探究提取Android程序的特征属性,通过建立特征属性的结构模型,使用多种算法比较特征属性之间的相似性。并且,她还建立了具有相似特征属性的程序的“族”,可以有效地检测未发现的与该家族相似的虚假软件。27684
同样,为克服传统的特征选择方法在不均衡数据集上检测效果不佳的缺陷,乔静静[5]以 Android 系统为研究对象,借鉴集成方法的思想,提出一种基于集成式特征选择方法。通过调整训练样本集中样本分布得到多个均衡的训练样本子集,采用传统的特征选择方法从每个训练样本子集中选取特征,得到特征子集。对得到的多个特征子集以集成学习的方式进行结合,从中再次选取特征,得到用于检测恶意软件的特征集。实验结果表明,该方法能够缓解传统特征选择方法在不均衡数据集上检测效果不理想的现象。论文网
王浩宇等[10] 提出了一种基于代码克隆检测技术的移动应用重打包检测方法, 并且实现了该方法的一个原型系统. 这种检测方法利用基于计数的方法来计算代码块中每个变量的特征计数向量, 计算代码块的特征计数矩阵, 从而将每个应用程序由一系列的特征计数矩阵表示. 两个应用程序之间的相似度可以通过比较它们的特征计数矩阵中相似的比例来进行计算。
在目前学术界提出的,将机器学习算法应用于Android平台上恶意代码检测的基础上, 郑吉飞[4]改进了检测框架,在机器学习算法的特征选择上,加入基于逆向工程的Android应用的启发式信息。他使用了朴素贝叶斯算法、人工神经网络算法、决策树算法、K-近邻算法对恶意代码的样本进行机器学习。Android软件进行字节码级别的静态分析后,提取出软件的启发式信息,作为样本特征。基于这种原理实现的对Android应用进行恶意代码检测的框架,对Android软件进行特征码扫描后,通过基于机器学习的分类器的判别,从而有效提高了恶意代码检测的精确度,降低了误报率。
以上所有方法都是基于行为的检测和者动态行为的分析,通过对行为序列进行预处理得到行为序列特征,比较行为序列特征的距离得到应用相似性的量化数据.该方法可以检测应用代码的改变,解决包括代码重用、剽窃和重打包等问题,但是行为序列特征的提取容易受到代码混淆技术的影响,因而在针对实际问题进行分析时具有一定的局限性。[17]
基于文件的检测是根据应用文件目录结构或者文件内容来提取特征,其优势在于不受代码混淆的影响,但是该方法容易受垃圾文件的干扰,应用在重打包时被恶意插入大量垃圾文件后,文件目录结构和文件数量会发生变化,进而大幅度影响相似性检测结果.
针对目前比较突出的Android代码混淆造成的难以检测虚假应用的问题,焦四辈等[17]提出了一种抗混淆的应用相似性检测方法.通过分析Android应用的文件属性,选取具有普遍性、代表性和可度量性的文件类型提取内容特征,并根据文件类型采用不同的内容特征提取算法,通过机器学习对其相似度赋予权重,从而提高应用相似性检测的准确性和运算效率。
- 上一篇:微光夜视仪图像数字增强技术国内外研究现状
- 下一篇:人脸识别技术国内外研究现状和发展趋势
-
-
-
-
-
-
-
大众媒体对公共政策制定的影响
乳业同业并购式全产业链...
中考体育项目与体育教学合理结合的研究
电站锅炉暖风器设计任务书
河岸冲刷和泥沙淤积的监测国内外研究现状
酸性水汽提装置总汽提塔设计+CAD图纸
java+mysql车辆管理系统的设计+源代码
当代大学生慈善意识研究+文献综述
杂拟谷盗体内共生菌沃尔...
十二层带中心支撑钢结构...