文档详情

基于流量指纹的安卓恶意软件分类方法研究.pdf

发布:2025-03-29约8.7万字共74页下载文档
文本预览下载声明

摘要

摘要

随着移动终端的发展,智能手机以它强大的功能吸引了非常庞大的用户,其

中Android系统因为其开源、自由的特性深受开发人员的喜爱,占据了很大的市场

份额,但这也为安卓恶意软件敞开了大门,所以研究一个有效的恶意软件检测方

法非常有必要。目前通过流量分析来检测恶意代码的研究并不多,常见的Android

恶意软件识别与分类方法多是基于静态程序分析,通过分析Android软件的API

调用、权限等特征来识别和分类。此类分析方法需要对软件进行逆向工程、反编

译等操作且容易被基于混淆代码的恶意软件轻易的绕过检测。而本文采用动态分

析的流量分析方法,通过获取Android软件运行期间产生的流量,并使用机器学习

和深度学习对Android恶意软件进行识别和分类,该方法具有识别及分类准确率

高,灵活且适用性强以及对于基于代码层面的静态混淆具有抵抗力的优点,本文

主要工作包括以下几点:

1、选择机器学习算法构建有效的流量指纹检测模型,并且该模型还适用于

加密流量。我们模拟了两种场景来分别区分良性流量和恶意流量并对恶意流量的

类别进行了区分。为了更好地区分恐吓类和广告类这两种混淆度较高的模糊流量,

我们加入了一层额外的混淆分类器来帮助进一步进行恶意软件分类。该框架主要

包括应用程序通信流量获取、流量文件以会话或流为单位进行切分、预处理、特

征工程、基于机器学习算法的分类过程。在面对混淆分类的问题上引入了混淆分

类器构成多级分类器从而提升分类的准确率。

2、构建深度学习检测模型时,引入去除第三方流量的方式,提高模型的运行

效率和检测准确率,再按会话为单位对流量原始数据进行切分,进而转为能够代

表流量原始数据特征的灰度图,用二维矩阵作为灰度图的数据结构。在分类领域,

由于CNN网络能够较好的学习二维矩阵中具有的空间结构信息,因此采用CNN

作为神经网络模型自主地获取流量灰度图中的空间特征。此外,由于会话的内容

本质是按照流量交互时间所产生的线性排列数据的分组序列构成,所以采用RNN

中的两阶段双向LSTM自主地获取流量中的时序特征,最后通过这两种训练好的

深度学习模型对待检测的恶意软件进行识别与分类。

3、本文采用的实验数据是真实环境下采集的CICAndMal2017数据集,在机

器学习模型下分别在两种场景对该模型进行了评估,实验结果显示在恶意流量与

良性流量的二分类中准确率达到了98.8%,在具体的恶意流量分类中也有95.2%

的准确率;在深度学习模型的CNN和两阶段双向LSTM下,第三方流量去除之后

I

摘要

对测试集中的样本进行恶意软件的分类与识别的效果均大幅提高,将CNN的准确

率从88.2%上升至96.8%,而LSTM的上升效果更加明显,准确率从89.2%上升

至98.3%。不过深度学习模型需要大量的训练数据,才能展现出较好的结果,而现

实生活中会遇到许多小样本问题,此时机器学习比深度学习更适用于此类情况。

关键词:流量分析,Android恶意软件,机器学习,深度学习

II

ABSTRACT

ABSTRACT

Withthedevelopmentofmobileterminals,smartphoneshaveattractedaverylarge

numberofusersbecauseoftheirpowerfulfunctions.TheAndroidsystemiswelcomed

bydevelopersbecauseofitsopensourceandfreefeatures,anditoccupiesalargemar­

ketshare.ButthisalsoopensthedoortoAndroidmalware,soitisnecessarytoresearch

aneffectivemalwaredetection

显示全部
相似文档