当前位置:首页 期刊杂志

基于深度学习的恶意代码检测技术研究进展

时间:2024-05-04

周显春,龚家浩,李芸倩,陈雪姣

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

1 研究背景及意义

随着互联网的发展,恶意代码攻击呈几何级增长,恶意代码变体是互联网安全的一个主要威胁。其中,木马、病毒、蠕虫等恶意代码造成的影响最为广泛,社会很多方面都造成损失,不仅是经济上而且还是精神层面的。通过分析腾讯安全《2017年度互联网安全报告》,可以发现:PC端病毒拦截近30亿次,近60%的恶意程序为木马,已成网络黑客首选攻击方式。其中新型勒索类病毒呈喷发状态,仅在2017年统计发现勒索类病毒样本数量达到660万,仅在我们国家的2017年5月、6月分别就发生了wannacry病毒、Petya的变种两次较大规模的传播,并且大部分受害者都不知道何时、何地、何种方式感染。与PC端相对比,无线移动端的情况也差不多,仅2017年就查杀Android病毒12.4亿次,新増病毒1545万,并且感染病毒用户超过1.88亿[1]。

五花八门变种恶意代码的数量喷发增长,爆发行为诡秘、隐形手段高明等特点,使得基于抽样技术和已有恶意代码特征的检测技术在检测准确性、时效性面临前有未有的挑战[2]。无论是政府机构,还是企业、社会团体都对此特别重视,重视、鼓励组织和个人研究恶意代码检测技术。但是,在大数据环境下,因为大多数的恶意代码检测方法都不是智能型的,尤其对海量数据下实时性的迫切需求,导致现有技术实在无法满足现实生活的需求。针对日益恶化的网络安全形势,改善或提高现有恶意代码检测的精度、实时性,增强检测技术的智能能力,无论是对净化网络安全环境,还是减少网络受害者,避免社会动荡都有非常重要的意义。

2 国内外研究现状及分析

经国内外学者的长期研究,目前恶意代码检测方法研究可以划分为:基于静态分析的方法[4]、基于动态分析的方法[5]、基于机器学习算法分析的方法[6]。

不管是动态还是静态恶意代码分析方法,面对规模庞大且增长迅速的恶意代码库,需要消耗大量的时间和资源,己经不能满足实时分析的需求,而且都很难对所有的未知恶意程序进行甄别。而机器学习分析方法,如随机森林、支持向量等算法可以区分良性代码和恶意代码[7],也可以用来检测已知的、未知的恶意代码及其变体[8]。但是要想让其保持高精度,必须让训练数据大多带有标签。在大数据的环境下,造成训练数据的人工标注标签的工作量非常大且检测效果依赖分析人员的经验和检测恶意代码的实时性差[9]。

深度学习应用于恶意代码检测方面的研究是近3年来的研究热点[2]。深度学习是机器学习中一种基于对数据进行表征学习的算法[10]。随着CPU、GPU、TPU图像处理专用处理器、分布式架构技术的发展,深度学习算法在计算机视觉、语音识别、NLP、生物医学等领域取得的最大成功,促使国内外研究人员开始尝试使用深度学习解决恶意代码识别问题[11]。尤其对其应用于恶意代码检测中存在的有效特征的提取与融合方法、恶意代码的特征与分类标签的相关性、恶意代码分布式处理等3个问题展开了重点研究。

2.1 有效特征的提取与融合方法

深度学习与传统模式识别方法的最大不同在于它是从大数据中自动学习特征,而非采用手工标注特征,因为特征工程的工作量占整个数据处理80%左右。现有的研究工作基本上都是使用现有数据集默认的N-grams[12-13]或者图像纹理熵值图[14-15]等特征来进行学习,但非融合特征不能体现数据的关键特征,影响恶意代码检测效果。

恶意代码特征的深度分析处理是恶意代码分类的重要过程之一,现有的研究面临着多维特征融合和深度分析处理的问题[16]。因为恶意代码数据具有多维特征的特点,仅仅提取单一高维度,不能完全表现其有效特征[17],需要从文件实体、文件反汇编等不同的角度来提取恶意代码样本的特征并融合,从而形成健壮性更好的特征向量[18-20]。如:国内清华大学Liu等人[18]提出融合灰度图像的纹理特征、Opcode特征和API特征等三种特征作为特征向量,采用共享近邻聚类算法来发现新的恶意代码,可以针对Windows程序文件有效地分类未知恶意代码。崔弘等人[19]提出了一种基于Sim-Hash的静态二进制文件、反汇编的高维特征融合恶意代码分析方法。该方法能够有效提高分析精度,但是该方法只适合较少的恶意代码分类场景。随着移动端的大量使用,恶意APK也成倍增长,采用上述类似方法也取得效果。王磊团队通过提取结构化、统计类、长期经验总结的特征并归一化处理,用15万个样本数据训练深度学习框架,准确率达到99.96%。他们的研究成果主要集中于静态特征的提取,仍然没有从根本上解决问题。

日本名古屋大学Tobiyama等人[20]把日志文件存在软件进程行为图像化,包括API调用序列数据,并使用RNN提取有效图像特征,然后用CNN对特征图像进行分类方法,AUC值达到了96%。可是数据量太小,把该方法应用于大规模数据集时的实时性还有待验证。

2.2 恶意代码的特征与分类标签的相关性

深度学习模型输出分类结果时,其依据对用户往往是不可见的。不可解释同样也意味着危险。例如开发一款基于深度学习模型某种疾病诊断系统,它能够帮助医生判定病人风险的应用,开发者可能还需要知道模型产生诊断结果是基于那些特征,否则影响各行各业普遍接受和应用。在分类模型准确率不降低的前提下,如何解释类型的意义和通过分类类型追朔输入数据的有效特征,破解深度学习的“黑匣子”,是近几年深度学习领域的重点解决问题[21-25]。

谷歌公司Sundararajan等人[21]虽然从经济学的角度在理解深层网络中输入特征的相对重要性方面取得了一些进展,但没有解决输入特征或网络所使用的逻辑之间的相互作用。瑞士苏黎世联邦理工大学Ancona等人[22]提出了一个称为敏感度-n的度量,它有助于发现现有属性方法的性质,同时也为更一般的属性方法追踪提供了研究方向。

在2016年KDD会议上华盛顿大学Ribeiro等人[23]提出局部解释性(LIME)模型,分析细微修改样本的局部特征值和其输出类型之间的关系。2017年在ICML会议上,美国斯坦福大学Koh等人[24]实现了分类类别和样本之间的可追溯性,利用稳健统计学中的影响函数分析训练样本数据集中对测试样本的预测类别影响最大的样本。该方案在图像处理领域已经初有成效,但是现有研究均处于起步阶段,具有运算量大、复杂性高的特点。影响函数的定义:

弄清楚神经网络做出预测分类的原因是人工智能领域最大的担忧之一。UC Berkeley、阿姆斯特丹大学、Facebook AI Research[25]团队的研究人员创建出一个AI自我解释模型,既可以对预测分类类型做出文本及配套的图像解释,还可以找到预测分类类型与训练图像样本上重要的证据。麻省理工学院林肯实验室David Mascharka等人[26]提出可解释视觉推理人工神经网络TbD网络应用于视觉问答模型,让其保持高精度同时易于解释,并且具有较强的泛化能力。但是利用深度学习在恶意代码检测中应用的可解释性和可追朔性研究,研究还不够深入,远远没有达到实际应用要求。

2.3 恶意代码分布式处理

除了检测的精度外,恶意代码检测的实时性是另一个衡量检测效果的评估指标。在大数据环境下,样本数量越大,训练神经网络模型花费时间过长;取样数量少,时间变短,但是模型分类效率不强了,准确率往往会出现明显下降。而把分布式计算框架,如Spark与深度学习相结合,能够改善数据分析的性能[27-31]。

巴基斯坦比尔泽特大学Alsheikh等人[27]、印度德里大学Gupta、新加坡南洋理工大学Gupta等人[28]已经提出了结合Apache Spark和深度学习技术的框架,实证该框架能够在短时间内执行大规模数据分析任务、具有较低的计算复杂度和显著较高的准确度。国内谢铁等人[29]、张翔等人[30]把基于Spark平台的深度学习技术应用于情感分类研究,时间效率和准确率都得到了提高。庄福振等人[31]实现的并行自动编码机,在大数据环境下可以高效地进行特征表示学习。

但是,目前国内外还没有涉及到Spark分布式计算框架和深度学习结合架构在恶意代码检测中的应用。

3 基于深度学习面向恶意代码检测的未来研究方向

综述所述,有效特征提取与融合方法、恶意代码的特征与分类标签之间的相关性、恶意代码分布式处理问题等无疑是深度学习在恶意代码检测技术中倍受国内外关注的焦点问题,但现有大部分恶意代码检测技术的精度、鲁棒性、可解释性和可追朔性与实时性之间的矛盾依然比较突出。缺乏原创性理论和方法,缺乏具有针对性的研究背景,缺乏系统性的研究思路。

(1)改进有效特征提取与融合方法。为了克服基于深度学习的在恶意代码的单一特征智能提取的片面性和静态特征的不足,本课题采用动、静态多种特征来融合更加全面地表达恶意代码样本的有效特征,从而形成具有更好的抗混淆特性和抗干扰特性的特征向量。

(2)研究恶意代码的特征与分类标签的相关性。找到恶意代码预测分类与训练样本之间的关联证据。破解深度学习的“黑匣子”是当前的研究热点,有很重要的应用价值。只有破解了“黑匣子”,AI才能让人放心使用。

(3)利用深度学习的分布式部署改善恶意代码检测的效果。如,采用二次开发TensorFlowOnSpark分布式框架改善恶意代码检测的实时性。TensorFlowOn-Spark分布式框架该库支持把现有的TensorFlow程序切换到新的API,同时实现了模型训练的性能提升,能实现更好的分布式训练和数据传输。

4 结语

本文针对基于深度学习的恶意代码检测技术中的理论和应用研究的需要,从国内外前期预研结果出发,以研究恶意代码的特征与分类标签之间的相关性为基本突破口,系统性地研究深度学习应用于恶意代码检测技术中的几个核心的关键问题——有效特征提取与融合方法、恶意代码的特征与分类标签之间的相关性、恶意代码分布式处理问题,最终形成一个集数据的输入、预处理、分析、输出为一体的初具精度、鲁棒性、可解释性和可追朔性与实时性的恶意代码检测系统。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!