收藏 分销(赏)

恶意软件检测和分类可视化技术综述.pdf

上传人:自信****多点 文档编号:1231200 上传时间:2024-04-19 格式:PDF 页数:20 大小:3.16MB
下载 相关 举报
恶意软件检测和分类可视化技术综述.pdf_第1页
第1页 / 共20页
恶意软件检测和分类可视化技术综述.pdf_第2页
第2页 / 共20页
恶意软件检测和分类可视化技术综述.pdf_第3页
第3页 / 共20页
亲,该文档总共20页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、2023 年 10 月 Chinese Journal of Network and Information Security October 2023 第 9 卷第 5 期 网络与信息安全学报 Vol.9 No.5 恶意软件检测和分类可视化技术综述 王金伟1,2,3,陈正嘉1,2,谢雪4,5,罗向阳6,马宾7(1.南京信息工程大学数字取证教育部工程研究中心,江苏 南京 210044;2.南京信息工程大学计算机学院,江苏 南京 210044;3.数学工程与先进计算国家重点实验室,河南 郑州 450001;4.中国科学技术大学网络空间安全学院,安徽 合肥 230031;5.中国航天系统科学与工程

2、研究院,北京 100048;6.信息工程大学,河南 郑州 450001;7.齐鲁工业大学网络空间安全学院,山东 济南 250353)摘 要:随着科技的不断发展,恶意软件及其变种的种类不断增多,已经成为网络安全的一个巨大挑战。这些恶意软件采用了多样的技术手段,以欺骗或规避传统检测方法,从而使得传统非可视化检测技术不再适用。近年来,数据可视化作为一种强有力的恶意软件检测和分类手段引起了学术界的广泛关注。通过以图像的方式呈现恶意软件的核心特征,这类方法能够显著提高恶意软件的检测和分类准确率,从而在网络安全领域具有广阔的研究前景。综述恶意软件检测领域的传统非可视化检测技术与可视化检测技术。介绍了恶意软

3、件检测的传统非可视化方式,包括静态检测、动态检测、混合检测;重点对一些常见的恶意软件可视化方法进行了调研和综合评述,主要包括可视化结合机器学习与可视化结合深度学习两大方向,这两种方法在恶意软件检测和分类中各有优势和特点,因此在选择检测和分类方法时,需要综合考虑多个因素,包括数据集大小、计算资源和时间限制、模型准确度以及实现复杂度等;对目前检测技术所面临的问题进行了总结,并对未来的发展方向进一步展望。关键词:机器学习;深度学习;数据可视化;恶意软件检测和分类 中图分类号:TP309 文献标志码:A DOI:10.11959/j.issn.2096109x.2023064 收稿日期:2022031

4、3;修回日期:20230810 通信作者:谢雪, 基金项目:国家自然科学基金(62072250,62172435,U1804263,U20B2065,61872203,71802110,61802212);中原科技创新领军人才项目(214200510019);江苏省自然科学基金(BK20200750);河南省网络空间态势感知重点实验室开放基金(HNTS2022002);江苏省研究生研究与实践创新项目(KYCX200974);广东省信息安全技术重点实验室开放项目(2020B1212060078);山东省计算机网络重点实验室开放课题基金(SDKLCN-2022-05)Foundation Item

5、s:The National Natural Science Foundation of China(62072250,62172435,U1804263,U20B2065,61872203,71802110,61802212),The Leading Talents Program of Scientific and Technological Innovation in Henan Province(214200510019),The Jiangsu Natural Science Foundation(BK20200750),The Open Fund of the Key Labora

6、tory of Network Space SituationAwareness(HNTS2022002),The Graduate Student Research and Practice Innovation Program of Jiangsu Province(KYCX200974),The Open Project of Guangdong Provincial Key Laboratory of Information Security Technology(2020B1212060078),The Open Re-search Fund of Shandong Provinci

7、al Key Laboratory of Computer Networks(SDKLCN-2022-05)引用格式:王金伟,陈正嘉,谢雪,等.恶意软件检测和分类可视化技术综述J.网络与信息安全学报,2023,9(5):1-20.Citation Format:WANG J W,CHEN Z J,XIE X,et al.Review of malware detection and classification visualization tech-niquesJ.Chinese Journal of Network and Information Security,2023,9(5):1-2

8、0.2 网络与信息安全学报 第 9 卷 Review of malware detection and classification visualization techniques WANG Jinwei1,2,3,CHEN Zhengjia1,2,XIE Xue4,5,LUO Xiangyang6,MA Bin7 1.Engineering Research Center of Digital Forensics,Ministry of Education,Nanjing University of Information Science and Technology,Nanjing 21

9、0044,China 2.Department of Computer,Nanjing University of Information Science and Technology,Nanjing 210044,China 3.State Key Laboratory of Mathematical Engineering and Advanced Computing,Zhengzhou 450001,China 4.University of Science and Technology of China,Hefei 230031,China 5.China Aerospace Acad

10、emy of Systems Science and Engineering,Beijing 100048,China 6.Information Engineering University,Zhengzhou 450001,China 7.School of Cyberspace Security,Qilu University of Technology,Jinan 250353,China)Abstract:With the rapid advancement of technology,network security faces a significant challenge du

11、e to the pro-liferation of malicious software and its variants.These malicious software use various technical tactics to deceive or bypass traditional detection methods,rendering conventional non-visual detection techniques inadequate.In recent years,data visualization has gained considerable attent

12、ion in the academic community as a powerful approach for detecting and classifying malicious software.By visually representing the key features of malicious software,these methods greatly enhance the accuracy of malware detection and classification,opening up extensive research op-portunities in the

13、 field of cyber security.An overview of traditional non-visual detection techniques and visualiza-tion-based methods were provided in the realm of malicious software detection.Traditional non-visual approaches for malicious software detection,including static analysis,dynamic analysis,and hybrid tec

14、hniques,were introduced.Subsequently,a comprehensive survey and evaluation of prominent contemporary visualization-based methods for detecting malicious software were undertaken.This primarily encompasses encompassed the integration of visuali-zation with machine learning and visualization combined

15、with deep learning,each of which exhibits distinct advan-tages and characteristics within the domain of malware detection and classification.Consequently,the holistic con-sideration of several factors,such as dataset size,computational resources,time constraints,model accuracy,and implementation com

16、plexity,is necessary for the selection of detection and classification methods.In conclusion,the challenges currently faced by detection technologies are summarized,and a forward-looking perspective on future research directions in the field is provided.Keywords:machine learning,deep learning,data v

17、isualization,malware detection and classification 0 引言 恶意软件是指以某种方式对用户或计算机造成破坏的任何软件,又被称为恶意代码。作为一种有害的可执行程序,它们严重影响着网络系统的安全,并引起了广泛关注。根据功能,恶意软件可以分为木马、病毒、蠕虫、间谍软件以及广告软件等多种类型;根据平台,恶意软件可以分为 Windows、Linux 或安卓(Android)系统软件,本文主要介绍 Windows 恶意软件。除了功能和平台之外,恶意软件及其变体还可以根据家族进行分类。同一家族的恶意软件及其变体必须具有类似的二进制模式,这些模式在检测恶意软件变

18、体和分类家族方面具有非常大的帮助。随着自动化生成工具和恶意软件混淆技术的广泛使用,恶意软件及其变体的数量与种类不断增加。恶意软件混淆技术主要包括包装、变形和虚拟技术,被广泛用于逃避杀毒软件的检测。由此大量新的恶意代码生成,它们的入侵方式以及传播方式不断变化,对网络环境产生了巨大威胁,受影响的用户数量和检测到的恶意软件的数量都呈指数级增长,恶意软件分析师面临巨大挑战。根据 2020 年国家互联网应急中心 网络安全信息与动态周报 第 16 期,一周内我国境内感染网络病毒的主机数量约为 54.8 万台1。因此,如何从恶意代码中提取更加有效且稳第 5 期 王金伟等:恶意软件检测和分类可视化技术综述 3

19、 定的特征,从而提高恶意代码检测和分类准确率与效率引起了人们深入的思考和研究。为应对不断增长的恶意代码数据集,越来越多的自动检测和分类方法被应用,包括随机森林、决策树、支持向量机等机器学习方法以及卷积神经网络(CNN,convolutional neural network)、循环神经网络(RNN,recurrent neural network)等深度学习方法。这些方法的应用大大提高了恶意代码的检测效率和准确率,成为恶意软件分析师的重要工具。传统非可视化恶意软件检测和分类方法主要可以分为静态代码分析和动态代码分析两种技术。静态代码分析技术不需要执行代码,能够快速获取恶意软件的语法和语义信息。

20、通常使用专业交互式反汇编器(IDA Pro,interactive disas-sember professional)等反汇编工具进行逆向分析,提取的静态特征包括字节序列、控制流图和字符串签名等。相比之下,动态代码分析技术通过在虚拟环境中执行代码来获取恶意软件的行为报告,包括函数调用监测、功能参数分析、信息流跟踪、指令跟踪和动态可视化分析等,需要使用自动化工具如 CW 沙箱(cyber warfare sandbox)、Anubis、TTAnalyzer、Ether 和 ThreatExpert 等来实现。两种技术都有其优缺点。静态代码分析技术覆盖范围较大,但在面对混淆和加壳代码时可能会漏检

21、。相比之下,动态代码分析技术更加有效且准确,但需要付出时间和空间成本。近年来,可视化方法(将恶意代码转化为图像形式展示),作为一种新兴的恶意软件检测和分类技术备受关注。通过可视化方法,可以发现恶意软件图像中包含着丰富的信息。同一类别的恶意家族的可视化图像通常具有相似性,而不同家族的可视化图像之间则有较大的差异。此外,大多数恶意代码变体是使用自动化技术或重用一些重要的模块来生成的,因此它们在二进制代码中具有一些相似之处。相对于传统的恶意软件分类方法,可视化方法可以加速恶意软件分类的过程,满足大数据计算、专家系统反馈和认知复杂性等方面的需求,从而能够更加有效地检测和分类恶意软件。本文对恶意软件检测

22、和分类可视化技术进行全方面的综述,简述了传统非可视化恶意软件检测技术,包括静态检测、动态检测和混合检测 3 个方面;介绍了可视化技术在恶意软件检测与分类领域的应用,主要从机器学习、深度学习和其他可视化方法 3 个角度进行阐述,这一新兴领域的研究为恶意软件的检测和分类提供了新的思路和方法,有望成为未来恶意软件检测技术中不可或缺的一部分;对当前检测技术问题进行了总结与展望。1 传统非可视化恶意软件检测技术 本节将对传统非可视化恶意软件检测技术进行综述。针对恶意软件程序实际运行,本文将传统恶意软件检测技术分为静态检测技术、动态检测技术和混合检测技术 3 类。1.1 静态检测技术 静态检测技术是在对二

23、进制代码不运行的情况下对其分析,从而检测出代码特性进行分类的方法,如何提取准确有效的静态特征是这种检测技术的重点。该技术不需要对代码运行,因此静态检测时间和空间成本较小,效率较高,可以对代码特性进行全面的分析。常用的静态特征包括API 调用序列、N-Gram 提取字节序列特征、文件结构信息、操作码频率分布、调用函数、字符串签名和控制流图等。此外,静态检测技术可以使用许多工具,如 IDA Pro 等反汇编工具可用于逆向分析恶意可执行文件,提供更有效的信息;而LordPE 内存转储工具可以在系统内存中获取受保护的代码,对于分析有更大的帮助。(1)基于 API 调用序列进行静态分析 在恶意软件检测和

24、分类中,API 调用序列常作为一个重要的静态特征被使用,它能够反映出软件特定的行为顺序。通过分析程序所有的系统API 调用,能够初步了解程序的作用,或者至少能够判断程序是否为恶意软件。Iwamoto 等2在其研究中提取了 API 序列,并使用基于特征提取的层次聚类分析方法对其处理。作者将 API 序列转化为函数调用图,并对其进行缩放。该方法考虑了 API 之间的调用关系,使得它们更具有区别性。Imran 等3提出了一种基于相似度的分类方法。作者提取 API 序列来训练隐马尔可夫模型(HMM,hidden Markov model),进而评估训练序列和测试序列之间的相似性,并通过计算相关性得分对

25、恶意软4 网络与信息安全学报 第 9 卷 件进行分类。该方法可以有效地利用API序列信息,但训练 HMM 模型需要大量的计算开销。Hardy 等4则从可执行文件中提取 API 调用序列,并将其加入堆叠式自动编码器(SAE,stacked auto encoder)深度学习架构模型中,该模型采用了无监督预训练和监督反向传播算法进行恶意软件检测和分类。(2)基于 N-Gram 提取字节序列特征进行静态分析 除了 API 调用序列,使用 N-Gram 方法提取恶意代码的字节序列特征也是一种重要的静态分析,该方法的具体步骤为将原始字节序列使用一个长度为 n 的滑动窗口提取子序列的特征。需要注意的是,如

26、果 n 值过小,可能会影响恶意软件的全局性;如果 n 值过大,可能会影响特征之间的相关性。因此,在选择 n 值时需要进行权衡和调整,以获得最佳的检测效果。Schultz等5提出了一种在Windows平台下使用 N-Gram 算法提取静态特征的方法,并选取了 3 种不同类型的特征进行分析。第一种是从PE 文件的动态链接库中提取的特征,第二种是提取可执行文件中的可打印文本字符串,第三种是从可执行文件中提取的 N-Gram 字节序列。这些特征可以通过机器学习算法进行训练和分类。该方法是一种有效的恶意软件检测方法。2004 年,Kolter 等6使用 N-Gram 算法提取收集到的恶意软件特征,并评估

27、了朴素贝叶斯、决策树、支持向量机等归纳方法。结果显示,增强决策树的表现优于其他方法。在此基础上,Kolter 等7在 2006 年进行了进一步实验,通过选取不同N-Gram 中的 n 值来确定最佳 n 值以实现最高的检测率,从而对收集到的恶意软件进行检测和分类。Kang 等8从分解的文件中提取了操作码,并利用 N-gram 方法将其组织为特征向量,以此来进行恶意软件分类。此外,他们比较了不同操作码长度对分类精度的影响。实验结果表明,操作码是恶意软件分类的有效特征,并且短操作码长度具有更好的分类性能。在某些情况下,N-Gram 提取的特征过于单一,可能会导致检测效率较低。为了提高检测精度,考虑将

28、 N-Gram 特征与其他特征进行结合,或使用不同的n 值提取特征来进行学习。之后,使用一种集成学习将多个分类器的结果进行组合,从而获得更准确的最终结果。这种方法可以在恶意软件检测任务中获得更高的精度和更好的性能。(3)其他静态分析方法 除此之外,动态链接库、函数长度、PE 文件头、可变长指令序列、函数调用图细粒度分类、可阅读字符串和熵等信息都能够当作静态特征进行使用。Tian 等9使用函数长度作为静态特征,通过测量代码中函数的字节数来衡量。作者基于此提出了一种用于木马分类的方法。实验结果表明,在识别恶意软件家族的静态特征方面,函数长度及其频率具有重要作用。如果与其他特征相结合,可以更有利于恶

29、意软件的分类。Siddiqui 等10选取可变长度指令序列作为特征,通过可变长度指令序列中包含的信息进行分析,使用机器学习中的决策树和随机森林机器来检测蠕虫并且进行分类,其中数据预处理过程如图1 所示。图 1 数据预处理过程 Figure 1 Data preprocessing process Kong 等11提出了一个用于自动分类恶意软件的通用框架,该框架基于恶意软件的丰富结构信息。该框架分为 3 个步骤:第一步,利用函数调用图的细粒度特征提取恶意软件样本的特征;第二步,基于距离度量评估样本之间的相似度;第三步,对样本进行聚类。在完成这 3 个步骤之后,利用分类器从样本之间的距离中进行训练

30、和分类。Baysa 等12采用二维矩阵进行恶意软件比第 5 期 王金伟等:恶意软件检测和分类可视化技术综述 5 较,但该方法的计算成本较高。该方法将结构熵技术应用于变异检测问题,即通过分析文件的结构熵来实现相似性比较。该方法包括文件分割和序列比较两个阶段。在文件分割阶段,作者使用熵测量和小波分析对文件进行分割;在序列比较阶段,作者通过计算在第一阶段获得的片段序列之间的距离来衡量文件对的相似性。Li 等13提出了一个纯粹基于静态特征的分类器,选取的样本特征为文件头、熵、动态链接库(DLL,dynamic link library)等信息,经过实验发现,针对自动规避攻击,该分类器具有很好的鲁棒性。

31、Kumar 等14对 PE 头的原始值与派生值进行了组合,还比较了所提出的集成特征集与原始特征集,通过实验证明了基于前者训练出的分类器能够凭借较高的准确度与较少的成本对恶意软件进行检测和分类。在恶意代码检测领域,静态分析已经得到广泛的应用和发展。它可以全面地对恶意代码进行分析,捕获语法和语义信息。相对于动态分析,静态分析的时间复杂度和空间复杂度较低,速度快,效率高,适用于大规模数据集。然而,随着恶意代码混淆技术和反检测技术的不断发展,基于静态分析的检测方法已经不能完全检测出恶意代码,易受到加密技术的干扰。因此,动态检测和混合检测方法逐渐受到重视和研究。1.2 动态检测技术 恶意软件动态分析是指

32、让恶意软件样本在受控环境(如模拟器、仿真器、虚拟机和沙箱)中执行,并对其运行时的行为进行监控和分析。目前,自动化工具如 Norman Sandbox、CWSandbox、Anubis、TTAnalyzer、Ether 和 ThreatExpert 等已经在动态分析领域广泛使用。通过使用这些工具进行分析,可以获得恶意代码样本的分析报告,并提供更有效的特征以用于恶意代码分类。Firdausi 等15首先使用了 Anubis 自动化工具在沙箱中对恶意代码进行动态行为分析,并将得到的分析报告转化为稀疏向量模型;然后选用了 K近邻、朴素贝叶斯、决策树和支持向量机这 4 种分类器算法对恶意样本进行分类。实

33、验结果表明,J48 决策树算法的分类效果优于其他分类器算法。Zolkipli 等16提出了一种基于动态方法的恶意软件分类框架,该框架包括行为识别和恶意软件分类两个阶段,作者在 CWSandbox 和 Anubis自动化工具上运行每个恶意软件样本,并收集与行为相关的报告。该方法的缺点在于需要人工参与动态分析恶意软件的行为,导致效率低。Rieck 等17提出了一个用于恶意软件行为监控的框架,在沙箱环境中监控每个恶意软件样本的行为,并将这些行为映射到向量空间中,然后对具有相似行为的新型恶意样本进行了聚类。Anderson 等18提出了一种基于指令执行轨迹的恶意软件检测方法,该方法使用动态分析技术收集

34、目标可执行文件的指令轨迹,并将其构建为图;利用图核机制构造计算跟踪图之间的相似性,再使用支持向量机进行分类。然而,该方法在实际应用中的计算复杂度较高。Kim等19提出了一种快速识别和检测恶意代码的算法,同时能够快速响应网络入侵。该算法的核心思想是采用序列对比算法对 API 调用序列进行动态分析。陈佳捷等20提出了一种结合恶意代码动态行为和双向门循环单元的恶意软件检测方法。该方法使用 Cuckoo 沙箱对恶意代码进行行为分析,从API 调用序列和行为信息两个角度提取和融合特征,并将双向门循环单元应用于恶意软件检测。实验结果表明,该方法能够获取更加丰富的行为信息,且相比双向长短时记忆(BiLSTM

35、,bidirec-tional long short-term memory)网络等,性能更为优越。相比静态分析,动态分析在恶意代码检测中更加有效,拥有更高的准确率,而且无须对恶意代码进行解包和反汇编操作。对于加壳以及混淆的恶意代码样本漏检率会进一步降低。然而,动态分析的时间和空间成本会增加。此外,动态分析无法对恶意代码进行全面的监控和分析,缺乏全局认识,只能监控和分析恶意代码程序的一条执行路径,需要一定的跟踪时长才能取得有效结果。1.3 混合检测技术 针对进行了加壳操作的恶意代码,直接对其应用静态特征检测不太适用,因为难以对其进行反汇编操作。虽然将这些加壳的恶意代码放在虚拟环境中检测可以一定

36、程度上观察到它们的隐藏6 网络与信息安全学报 第 9 卷 行为,但是这种动态检测方式实用性不高,耗时长。因此,针对加壳的恶意软件,可以结合动态分析和静态分析两种方式进行检测。首先,使用动态分析对加壳的恶意软件进行去壳操作,然后通过静态分析检测去壳后的恶意软件,从而可以获得更加丰富的恶意代码特性。这种方式不仅可以提高检测的效率,还可以提高检测的准确率。Islam 等21在恶意代码分类中,将 3 个特征向量进行了集成。这 3 个特征向量分别为函数长度频率、可打印字符串信息矢量化和从日志文件中提取的 API 特性。其中,前两个为静态特征,后一个为动态特征。将这3个特征向量进行组合后,使用分类器进行训

37、练,以实现恶意代码的分类。Santos 等22提出了一种结合静态特征和动态特征的恶意代码检测器。该检测器使用操作码频率作为静态特征,并选择执行程序的轨迹信息作为动态特征,通过将这两种特征进行结合,提高了恶意代码检测器的性能。金炳初等23提出了一种恶意软件检测和分类方法,该方法包含静态签名、样本灰度图等静态特征以及行为路径树动态特征。该方法首先通过爬虫抓取大量恶意样本的签名,并使用ClamAV 进行检测;其次,对于未检测出的恶意样本,将其转化为灰度图进行分类;最后,利用行为路径树动态特征对于之前仍检测失败的样本进行恶意软件分类。陈志锋等24提出了一种内核恶意代码检测方法,该方法基于数据特征创建了

38、内核数据对象访问模型,并采用静态分析和动态分析相结合的方法对恶意代码进行识别。在静态分析阶段,该方法通过对恶意代码进行反汇编获取代码特征,以构建内核数据对象访问模型。在动态分析阶段,该方法运行恶意代码并监测其内核数据对象的访问行为,与模型进行匹配以实现内核恶意代码的检测。该方法可以有效地识别和阻止内核恶意代码的攻击行为。混合检测作为一种恶意软件检测方法,结合了静态检测的快速和高效以及动态检测的准确性,但其需要大量的资源,对于规模较大的数据集,其复杂度和工作量会相应增加。对于混合检测方法而言,何时对加壳的恶意软件进行去壳操作是一个关键问题,值得进一步深入研究。传统恶意软件检测的相关文献如表 1

39、所示,其中“”表示文献中没有明确提及。考虑到本文的研究重点以及非可视化相关文献的发表时间表 1 传统恶意软件检测的相关文献 Table 1 Literature of traditional malware detection 文献与年份 静态/动态/混合 特征 机器学习算法 分类 数据集 2001 年1 静态 DLL、字符串序列、字节序列 NB 机器学习 自定义数据集 2004 年6 静态 字节序列 NB、DT、SVM 机器学习 SourceForge、VX Heavens 2006 年7 静态 字节序列 NB、DT、SVM 机器学习 SourceForge、VX Heavens 2009

40、年10 静态 可变长指令序列 DT、RF 机器学习 VX Heavens 2010 年15 动态 稀疏向量模型 KNN、NB、J48 DT、SVM 机器学习 自定义数据集 2011 年16 动态 行为信息 自定义数据集 2011 年18 动态 指令轨迹 SVM 机器学习 自定义数据集 2013 年11 静态 函数调用图细粒度 KNN、SVM 机器学习 Offensive Computing 2013 年21 混合 函数长度频率、字符串信息矢量化、API SVM、IB1、DT、RF 机器学习 自定义数据集 2016 年4 静态 API SAE 深度学习 Comodo Cloud、Security

41、 Center 2017 年13 静态 PE 头、熵、DLL SVM 机器学习 WINE 2019 年14 静态 PE 头 DT、RF、KNN、LR、NB 等 机器学习 VirusShare 2020 年23 混合 静态签名、样本灰度图、行为路径树 KNN、LMNN 机器学习 VirusSign、MalShare 等 2021 年20 动态 行为信息、API BGRU 深度学习 VirusShare 第 5 期 王金伟等:恶意软件检测和分类可视化技术综述 7 较早,很多文献使用的数据集已经过时并已被市面上新的数据集所取代,表 1 中未呈现非可视化相关文献的分类准确率。后文会展示可视化相关文献的

42、分类准确率,这样做的目的是聚焦于介绍新的数据集和研究成果,为读者提供更加实用和现代化的信息。在现有的分析方法中,仍以静态分析和动态分析使用居多。如上所述,静态分析是指对程序可执行文件进行分析而不执行程序。在静态分析中,通常使用的特征包括操作码频率分布、字节序列 N-Gram、控制流程图等。静态分析比动态分析更快、更高效,因为它具有结构属性相关的信息优势,如字节签名序列和文件内容中的异常。而动态分析是指在一个安全和受控的环境中观察程序的运行状态,通常是分析行为信息,如网络活动、系统调用、文件操作和注册表修改记录。这种方法能够准确反映程序的行为特征,不受加密、压缩、变形等方面的影响。但是,这种方法

43、需要花费时间调试程序和跟踪与记录程序的运行过程。因此,动态分析通常比静态分析效率低得多。此外,动态分析在运行环境中也受到一些限制。静态分析和动态分析有各自的优缺点,但考虑到动态分析所需的时间和资源,静态分析更适合于分析大量的恶意软件。为了方便读者理解,对传统非可视化恶意软件检测进行文献逻辑图整理,如图 2 所示。图 2 对传统非可视化恶意软件检测进行文献逻辑图整理 Figure 2 Traditional non-visual malware detection for literature logic diagram arrangement 2 恶意软件可视化技术研究 尽管恶意软件不断演变和

44、变化,但是将其转化为可视化图像后,相较于传统非可视化方法,具有更优越的检测和分类效果。恶意软件图像中蕴含了丰富的信息,同类恶意家族的可视化图像具有相似性,而不同类家族的可视化图像之间则有明显差异。此外,大部分恶意代码变体是使用自动化技术或重用重要模块生成的,因此它们在二进制代码中存在一些相似之处。基于以上特点,研究学者采用两种主流方式开展恶意软件可视化研究:一种主流方式是从图像的纹理或结构等方面入手,提取特征并结合机器学习进行恶意软件的检测和分类;另一种主流方式是使用深度学习自动提取特征进行学习,可以有效对抗混淆技术。除了常见的灰度图像,为了获取更加丰富的特征,许多学者将恶意软件可视化为彩色图

45、像。此外,还有一些基于可视化的方法,虽未使用机器学习或深度学习,但同样可对恶意软件进行有效检测。8 网络与信息安全学报 第 9 卷 2.1 基于机器学习的恶意软件可视化检测 当前,针对基于机器学习的恶意软件可视化检测方法展开了广泛而深入的研究,该研究方向的重心在于提取出具有良好分类效果且不易受到干扰的可视化特征。在特征提取的基础上,利用多种分类器进行图像分类,进而实现恶意软件的分类。通常采用的方法是利用机器学习方法对提取出的图片全局图像结构张量(GIST,gobal image structure tensor)特征进行学习和分类,或者将GIST特征作为全局特征与LBP、SIFT或者DSIFT

46、等局部特征相结合,再运用机器学习方法进行分类。通过将分类效果最好的特征与分类器结合,可以实现对恶意软件更为准确和高效的分类。Nataraj 等25的研究开启了结合可视化技术的恶意软件检测和分类的新兴领域。该研究首先将恶意软件.text 区块的二进制数据通过 Nataraj矢量化技术转化为灰度图像,并基于 GIST26-28对转化后的灰度图特征进行提取,然后运用 KNN(K-nearest neighbor)算法对提取的特征进行分类。此外,在文献29中,研究者表明使用图像处理的二进制纹理分析技术可以更快速地对恶意软件进行分类。然而,纹理分析方法具有较大的计算开销,因此在处理大量的恶意软件时存在问

47、题。Nataraj提出了一种针对恶意代码的矢量化方法,该方法选取的编码量一般为全部 PE 文件或其中包含可执行代码的.text 节。具体而言,对于给定的二进制文件,可以将其切割成长度为 8 bit的子序列,每个子序列可以通过二进制转换为0,255范围内的数值。基于这种思想,恶意代码文件可以被视为在0,255范围内的灰度图像。为了处理不同大小的恶意代码文件,研究人员提出将图像的宽度设置为固定值,高度根据文件大小进行调整,从而将恶意代码转换为长条状的灰度图像,Nataraj 的矢量化如图 3 所示。图 3 Nataraj 的矢量化 Figure 3 Vectorization of Nataraj

48、 刘亚姝等30解决了文献25在某些相似度比较高的恶意代码家族上分类精确度不高的问题。作者首先将恶意代码根据文献25中 Nataraj 矢量化方法转化为灰度图,之后选取 GIST 作为全局特征,LBP 或者 DSIFT 作为局部特征进行融合。实验结果表明,该方法更具稳定性和适用性,并且分类准确率得到了显著提高。刘亮等31针对现有技术提取特征单一的缺点,提出了一种基于多特征的恶意软件分类方法。该方法首先对字节码图像进行处理,提取 GIST作为全局特征和 SIFT 作为局部特征,再将这两种特征融合并使用随机森林进行训练;其次,对操作码图像提取像素特征和文本特征进行融合,并使用 XGBoost 进行训

49、练,此外,还提取了灰度共生矩阵并使用支持向量机进行训练;最后,将这 3 部分分类器的输出通过联合层进行加权投票得出联合输出。3 层多分类器联合框架示意如图 4所示。实验结果表明,该方法的分类准确率明显优于单一特征提取的方法。图 4 3 层多分类器联合框架示意 Figure 4 Three-layer multi-classifier joint framework 第 5 期 王金伟等:恶意软件检测和分类可视化技术综述 9 Naeem 等32提出了一种名为 LGMP 的特征提取方法,该方法包括 3 个步骤:首先,采用DSIFT 方法提取局部特征并进行选择;其次,提取 GIST 作为全局特征;最

50、后,通过高斯权重集成局部和全局特征得到 LGMP 特征。除了 GIST 特征之外,基于纹理以及操作码N-Gram 提取特征等,也是恶意软件分类中常用的特征提取方法。这些特征可以结合多种其他特征进行组合,以进一步提高检测和分类的准确性。Liu 等33研发了一种基于机器学习的恶意软件分析系统,该系统由 3 个主要组成部分构成:首先是数据处理模块,该模块利用操作码 N-Gram和导入函数对灰度图像进行特征提取;其次是决策模块,负责对恶意软件进行分类和识别可疑恶意软件;最后是检测模块,该模块使用 SNN 聚类算法来发现新的恶意软件家族。Fu 等34提出了一种将恶意软件可视化为RGB 彩色图像的方法,并

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 论文指导/设计

移动网页_全站_页脚广告1

关于我们      联系我们       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号  |  icp.png浙ICP备2021020529号-1 浙B2-2024(办理中)  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服