论文部分内容阅读
随着日常生活网络化水平的提升和移动互联网的广泛传播,Android系统已经成为智能移动市场使用最广泛的操作系统。但与此同时,恶意软件的大肆传播也让安全问题越来越不容小觑。如何精确快速得检测恶意软件,保障移动终端用户的信息安全已然成为当前安全研究领域的重点内容。研究学界提出将人工智能巧妙地与恶意代码检测技术相结合,以期能够在检测Android恶意代码的领域有新的突破。 本文致力于Android恶意代码的图像特征提取与机器学习分类系统的设计与实现,主要贡献分为以下几点: 1.根据Android应用的二进制编码特性提取图像特征,提出相关的分析理论和方法。由于Android应用程序是一个二进制文件,它的字节范围00~FF恰好映射灰度像素0~255,所以可以将该程序直接转换为一个矩阵,然后通过该矩阵生成恰当的灰度图。为了进一步构建信息量更多的Android应用程序的特征图像,提取.dex可执行文件转换为为灰度数值向量后对其进行像素归一化处理,添加颜色通道构造出特征更加明显的像素归一RGB图。最后设计实现卷积神经网络分类系统来对Android恶意代码进行检测。 2.基于静态分析工具FlowDroid实现了Android应用程序函数调用关系图像特征的构建,该方法不仅能分析Android应用程序的函数调用关系以及获取函数之间的调用结构,而且还可以将函数之间的调用关系通过可视化处理以二维图像的形式展现出来,从而使得恶意代码特征提取的效果更为优质。最后根据相同家族恶意代码的函数调用关系相似的原理设计实现K近邻分类系统来对Android恶意代码所属的家族进行判定。 3.根据所提出的可视化技术与分类算法,本文设计了一系列的实验。实验中涵盖2700个Android应用程序,包含来自49个不同家族的1260个恶意应用和1510个非恶意应用。实验结果表明,基于数据可视化与机器学习的恶意代码检测系统能够有效地检测Android恶意代码,还可以识别恶意代码所属的家族类别,达到了预期的效果。 为了检测系统的有效性,使用交叉验证的方法对CNN分类系统进行验证,对KNN分类系统多次随机抽取测试样本进行测试,最后证明本文的结论是正确的。