APP下载

基于TensorFlowOnSpark分布式平台的恶意代码检测方法

2022-03-18周显春史路遥

网络安全技术与应用 2022年3期
关键词:实时性特征提取静态

◆周显春 史路遥

基于TensorFlowOnSpark分布式平台的恶意代码检测方法

◆周显春 史路遥

(三亚学院信息与智能工程学院 海南 572022)

针对大部分恶意代码检测技术在检测时存在检测精度与实时性、鲁棒性之间的矛盾,提出基于TensorFlowOnSpark分布式平台的恶意代码检测方法。在TensorFlowOnSpark平台上二次开发,运用RNN+ LSTM提取有效特征,利用CNN完成分类检测,改善了恶意代码检测时的实时性和精度,增强了检测效果的鲁棒性。实验对比结果显示:与其他检测方法相比,该方法检测效果大幅提升并且可行性好,减少检测时间约6分钟,提升检测效果超过40%。

深度学习;TensorFlowOnSpark;恶意代码检测;精度;实时性;鲁棒性

近年来,反恶意软件行业已拥有一个组织良好的市场,不仅吸引了大量资金投入,而且大量企业、研究机构开始研究新的恶意代码检测技术和开发出新的应用产品。目前,大量含有恶意代码的数据和文件需要检测是恶意代码检测技术面临的主要挑战之一。例如,微软需要在全球超过1.6亿台计算机上实时检测包含恶意代码的软件产品,每月检查超过7亿台计算机[1]。面对每日产生数以千万计的数据点,快速而有效地找到恶意代码典型特征非常有研究意义。为了逃避检测,恶意代码开发者会引入加密、变形、多态等变形技术[2],这造成了大量含有恶意代码的文件涌现。如果分析这些恶意代码,就会发现其中的大多数恶意代码的功能结构相同,属于同源恶意代码[3]。

目前,恶意代码检测过程可以分为特征提取、特征检测两个阶段[4],国内外学者分别对此进行了比较深入的研究。特征提取,根据提取特征是静态、动态特征还是静态、动态的组合特征,分别采用静态技术、动态技术及混合技术。静态技术主要采用IDA、CWSandbox静态反汇编工具提取API调用序列[5]、N-Gram[6]、纹理熵值图[7]等静态特征。文献[1]和文献[8]分别运用机器学习、深度学习提取静态单一特征进行检测,文献[9]把纹理、Opcode和API特征组合分析,虽然检测效果提高了,但是检测效果缺乏健壮性和检测数据量太少;与静态技术相比,动态技术比较复杂,文献[10]在用虚拟的沙箱环境中对恶意代码模拟运行特征进行分析,检测效果提升了,但分析时间也变长了。为了弥补静态或动态技术的不足,文献[11]同时提取静态和动态特征,尽可能完整刻画恶意代码的画像,提高了检测精度,但是,随着恶意代码类型和包含恶意代码的文件量增多,检测实时性得不到保证。

以上方法都未解决恶意代码检测技术在检测时存在检测精度与实时性、鲁棒性之间的矛盾。本研究通过二次开发TensorFlowOnSpark[12]分布式计算框架,提出RNN+ LSTM+CNN恶意代码特征提取、检测模型设计,充分利用了RNN+ LSTM智能提取功能、卷积神经网络CNN较好的分类预测性能和Spark平台的迭代计算优势,改善恶意代码检测实时性和精度,增强了检测效果的鲁棒性。

1 检测系统模型设计

在TensorFlowOnSpark分布式平台上,利用深度学习方法来对恶意软件进行检测和分析,模型设计如图1所示。

该模型分为恶意代码特征提取和分析与预测两部分。在恶意代码特征提取阶段,先把数据集提交到Cuckoo Sandbox沙箱中模拟运行并获取恶意代码的API调用序列运行状态构成的日志文件,接着在TensorFlowOnSpark平台上利用RNN+LSTM提取日志文件中恶意代码的有效特征并转换成图像[13],然后建立恶意代码特征图像库。在恶意代码检测与分析阶段,通过训练数据训练基于TensorFlowOnSpark 的CNN[8]算法检测模型,反复调参和评估优化,确定最优检测模型并检测效果。

图1 基于TensorFlowOnSpark的恶意代码检测模型设计

1.1 特征提取环境设计

Cuckoo Sandbox[14]是跨Windows、Linux、macOS和Android的虚拟化环境,开源和模块化,能够自动对EXE、办公文档、pdf文件、Email以及恶意网站进行恶意代码软件分析,能够跟踪API调用、文件的普通行为和转储、分析网络流量,即使使用SSL/TLS对数据加密[15]也不影响正常使用。现在,该软件最新版本2.0.7,支持Python3进行二次开发。

本实验搭建了一个基于Cuckoo Sandbox管理软件的分布式虚拟环境,由4台计算机组成,1台主机3台客户机,CPU最大频率4.4 GHz,其他重要配置参数如表1所示。

在管理端的主机运行核心组件,它管理、接受客户机的分析报告,在客户机群则创建了一个恶意代码运行的隔离环境,让恶意软件样本在其中得到实际安全的执行、分析并生成病毒分析报告。

表1 Cuckoo Sandbox集群的配置

机器名及角色系统内存容量处理器数目 MasterWindows108G2 slave1、slave2、slave3CentOS 83*4G2

1.2 TensorFlowOnSpark分布式架构

TensorFlowOnSpark是由Yahoo开发的,在Yahoo私有云中对Hadoop集群进行大规模分布式深入学习。它融入、拓展了TesnorFlow的功能,能够轻松部署机器学习算法和支持Python3,不仅代码简洁,还能上云部署。本文的实验环境配置情况与表1的配置基本相同。

1.3 RNN+LSTM+CNN模型设计[13]

在RNN中,它有一个特殊循环结构或存储单元,是保留以前输入或状态的信息隐藏层,它的输出取决于前面的输入,为了解决RNN在反向传播过程中要不断地传播梯度,Gers等人提出LSTM[16]。因此,本恶意代码检测系统的特征提取部分采用RNN+LSTM结构,有输入层x、普通隐藏层h1,两个LSTM层h2和h3以及一个输出层y,在训练阶段,使用了Dropout[17]方法避免过拟合现象。其结构设计如图2前部分所示。输入向量x代表在日志文件上提取的动作序列集,经过提取有效特征后转换为1-hot向量,标识单个API动作,经过RNN+LSTM方法进一步处理,转换成RGB图像[7]并作为检测部分的输入特征。

检测部分的CNN,包括输入层(1个)、滤波器(2个)、卷积池层(2个)、连接层(1个)和输出层(1个)组成,其结构如图2后部分所示。第一卷积层滤波器10维输入图像内核。每层滤波器都把数据维数减少为原来的二分之一。为了减少计算量,每个池层大小设置减小为输入的1/2,步幅为2。因为预测输出结果为数值,需要使用sigmoid函数计算恶意软件出现的概率p。

图2 RNN+LSTM+CNN模型设计

2 实验结果

2.1 训练数据集

(1)MIST数据集,作为训练集,由Marco Ramilli提供。它包含API 1292 Samples、Crypto 2024 Samples、Locker 434 Samples,Zeus 2014 Samples等4个不同系列的组合。整个数据集包括静态和动态特征JSON文件,主要包括CWSandbo交互式反汇编工具从二进制文件中提取的各种元数据信息,如函数调用、字符串和动态行为特征。

(2)测试数据集,Windows平台上恶意样本。主要从https://virusshare.com以及www.malware-traffic-analysis.net两个公开网站下载Windows恶意PE文件集;另外从360官方应用商城下载正常样本集,一共12360个样本[8]。

2.2 不同算法的对比检测效果

先用N-Gram方法对样本提取特征后使用TF-IDF处理,接着测试支持向量机、XGBoost、MLP以及有Spark平台情况下训练模型预测效果。为了对比检测效果,在有无Spark平台下,分别利用RNN+ LSTM提取日志文件中恶意代码的有效特征并转换成图像和使用CNN训练并检测恶意代码检测效果。模型性能量化评估指标使用Accuracy,Recall和F1-score。检测结果如表2所示。

由表2可以发现在此实验环境下,检测效果最好的模型是CNN和基于TensorFlowOnSpark的CNN,并且检测效果比较稳定。把这两种检测方法进行对比,基于分布式架构的方法可以有效降低训练时间,时间节省可以达到6分钟。

表2 不同条件下检测算法的检测效果

特征提取方法检测算法SparkAcurrayRecallF1-score检测算法训练时间 2-GramSVM无0.9120.9070.9095m34s XGBoost0.9510.9480.95912m45s MLP0.9350.9320.9337m13s RNN+ LSTMCNN0.9620.9460.95320m16s 2-GramSVM有0.9130.9100.9113m13s XGBoost0.9570.9540.9559m25s MLP0.9320.9360.9336m31s RNN+ LSTMCNN0.9680.9570.96214m53s

2.3 对未知病毒检测效果

为检测模型自我学习能力,需与其他产品比较对未知恶意代码的检测能力。随机取样了测试数据集中1000个恶意代码文件,选取两款杀毒软件与本研究模型检测效果相对比。其检测效果如表3所示。

表3 与两款杀毒软件检测效果对比

检测算法Recall TotalDefense0.556 Malwarebytes0.486 TensorFlowOnSpark+RNN+ LSTM+CNN0.921

由表3可知,对于没有参与模型训练的测试文件,基于TensorFlowOnSpark的RNN+LSTM+CNN模型的恶意代码检测率高达92.1%以上,远远高于其他杀毒软件。

3 结论

针对大部分恶意代码检测技术在检测时存在检测精度与实时性、鲁棒性之间的矛盾,通过在TensorFlowOnSpark分布式计算框架上二次开发,充分利用了神经网络的自我学习、较好的分类预测能力和Spark的基于内存快速迭代计算优势,改善恶意代码检测的实时性和精度,增强了检测效果的稳定性。实验结果证实,与基于Spark平台的MLP、XGBoost、SVM、RNN检测方法对比,该方法检测精度、实效性大幅提升、效果稳定,而且可行。因为实验数据不足,并没有完全体现分布式计算的优势,而且训练数据的恶意代码的类型少、数据不平衡处理、恶意代码类别识别都是下一步研究方向。

[1]陆中州. 基于机器学习的恶意软件分类研究[D]. 兰州:兰州大学,2018.

[2]周梅红,胡晓雯,王娟,等. 恶意代码多态变形技术的研究[J]. 计算机与数字工程,2008,036(010):149-153.

[3]钱雨村,彭国军,王滢,等. 恶意代码同源性分析及家族聚类[J]. 计算机工程与应用,2015(18):76-81.

[4]王楠楠. 无线网络中基于CDS的拓扑控制算法研究[D]. 曲阜:曲阜师范大学,2011.

[5]Ding,Yuxin & Siyi,Zhu. Malware detection based on deep learning algorithm[J].Neural Computing and Applications,2019,31(2):461-472.

[6]Nix R,Zhang J. Classification of Android apps and malware using deep neural networks[C].International Joint Conference on Neural Networks,2017,1871-1878.

[7]蒋晨,胡玉鹏,司凯,等.基于图像纹理和卷积神经网络的恶意文件检测方法[J].计算机应用,2018:1-6.

[8]傅依娴,芦天亮,马泽良. 基于One-Hot的CNN恶意代码检测技术[J]. 计算机应用与软件,2020,037(001):304-308,333.

[9]Liu LIU,Bao-sheng WANG,Bo YU,Qiu-xi ZHONG.Automatic malware classification and new malwaredetection using machine learning[J].Frontiers of Information Technology & Electronic Engineering,2017,18(9):1336-1347.

[10]Gui X,Liu J,Chi M,et al. Analysis of Malware Application Based on Massive Network Traffic[J].China Communications,2016,13(8):209-221.

[11]Kolosnjaji B,Zarras A,Lengyel T K,et al. Adaptive Semantics-Aware Malware Classification[C]//International Conference on Detection of Intrusions and Malware,and Vulnerability Assessment. Springer,Cham,2016.

[12]yahoo.https://github.com/yahoo/TensorFlowOnSpark/wiki/GetStarted.

[13]Tobiyama S,Yamaguchi Y,Shimada H,et al. Malware Detection with Deep Neural Network Using Process Behavior[C].Computer Software and Applications Conference,2016:577-582.

[14]Cuckoo Foundation. Cuckoo Sandbox[EB/OL].https://cuckoosandbox.org/.

[15]田小娣. Word和PDF文档的恶意性检测算法研究[D].西安:西安电子科技大学.

[16] Gf A,Schmidhuber J,F Cummins . Learning to Forget: Continual Prediction with LSTM[C]. Istituto Dalle Molle Di Studi Sull Intelligenza Artificiale. Istituto Dalle Molle Di Studi Sull Intelligenza Artificiale,1999.

[17] Hinton G E,Srivastava N,Krizhevsky A,et al.Improving neural networks by preventing co-adaptation of feature detectors[J].Computer Science,2012,3(4),212-223.

三亚市院地科技合作资助项目(2019YD26);海南省自然科学基金资助(620MS064);三亚学院2019年度一流本科课程建设教学专项研究项目:人工智能课程群教学团队(syxyylbkkc01-10)

猜你喜欢

实时性特征提取静态
最新进展!中老铁路开始静态验收
静态随机存储器在轨自检算法
空间目标的ISAR成像及轮廓特征提取
基于Gazebo仿真环境的ORB特征提取与比对的研究
基于特征提取的绘本阅读机器人设计方案
基于Daubechies(dbN)的飞行器音频特征提取
航空电子AFDX与AVB传输实时性抗干扰对比
计算机控制系统实时性的提高策略
可编程控制器的实时处理器的研究
油罐车静态侧倾稳定角的多体仿真计算