基于深度学习的恶意样本行为检测(含源码) ----采用CNN深度学习算法对Cuckoo沙箱的动态行为日志进行检测和分类...

本文介绍了使用CNN深度学习算法对Cuckoo沙箱动态行为日志进行恶意样本检测和分类的研究。通过数据预处理、CNN模型构建,实现了二分类和多分类的效果。实验结果显示,算法在训练集上达到高准确率,但在测试集上仍有改进空间。
摘要由CSDN通过智能技术生成

from:http://www.freebuf.com/articles/system/182566.html

0×01 前言

目前的恶意样本检测方法可以分为两大类:静态检测和动态检测。静态检测是指并不实际运行样本,而是直接根据二进制样本或相应的反汇编代码进行分析,此类方法容易受到变形、加壳、隐藏等方式的干扰。动态检测是指将样本在沙箱等环境中运行,根据样本对操作系统的资源调度情况进行分析。现有的动态行为检测都是基于规则对行为进行打分,分值的高低代表恶意程度的高低,但是无法给出类别定义。

本文采用CNN深度学习算法对Cuckoo沙箱的动态行为日志进行检测和分类尝试,分别测试了二分类和多分类方法,效果还有不小提升空间,希望共同交流。

0×02 现有技术

在大数据环境背景下,使用机器学习算法成为选择的趋势。相比手工分析,机器学习算法更加高效。目前已经有不少采用机器学习算法对样本动态行为进行检测的研究。Malheur由Konrad Rieck等人提出并给出了相应的开源实现,以样本中API出现的相对顺序作为特征向量,利用原型和聚类算法进行检测分析,该方法的缺点是特征向量过于稀疏,在高达几万维的特征向量中往往只有几十到几百维的特征值非零。

Radu等人采用随机森林算法检测恶意动态行为,根据API调用信息提取了68维的特征向量,对四类恶意样本进行了分类。该研究没有考虑白样本,适合在对样本黑白分类后进行恶意类别细分。Ivan等人用KNN,朴素贝叶斯,SVM,J48,MLP这5种算法进行了比较分析,不过其用于实验的总样本数只有470个,其结果的可靠性不是很高。笔者也用这些算法进行了实验,其结果没有论文中的数据那么好。

上述研究方法都采用了传统机器学习算法,利用手工分析获取特征向量进行分类处理,其结果受特征向量选取的影响极大。本文采用卷积神经网络(CNN)算法,借助CNN在自然语言处理方面的研究成果,进行样本的恶意动态行为检测。特点是不需要人工提取特征向量,具体的特征是算法根据样本的动态行为信息自行学习的。

CNN即卷积神经网络,1998年Yann LeCun设计了用于手写数字识别的卷积神经网络LeNet-5,后经Hinton及其学生Alex Krizhevskyx修改,于2012年获得了ImageNet竞赛冠军。之后CNN就得到了广泛应用,检测结果十分优异。下图是经典卷积神经网络LeNet-5的网络结构,可以看到CNN主要包括卷积层,降采样层和全连接层等部分。本文采用CNN算法分别对样本的动态行为进行二分类和多分类。二分类表示只根据样本的动态行为判别样本是否为恶意的。多分类是指对于恶意样本还更详细的划分出恶意类别信息。后面给出具体的算法实现过程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值