综述:通过人工智能的视角看安全:可视化技术如何推动恶意软件检测的发展
《Computer Science Review》:Security through the eyes of AI: How visualization is shaping malware detection
【字体:
大
中
小
】
时间:2026年03月01日
来源:Computer Science Review 12.7
编辑推荐:
马泰奥·布罗索洛|阿斯米莎·K·A.|毛罗·孔蒂|拉菲达·雷希曼·K·A.|穆罕默德·沙菲·K·P.|塞雷娜·尼科拉佐|安东尼诺·诺切拉|维诺德·帕多瓦大学数学系,意大利帕多瓦
摘要:恶意软件作为一种持久的网络安全威胁,通过复杂的攻击手段越来越多地针对互联的数字系统,如桌面、移
马泰奥·布罗索洛|阿斯米莎·K·A.|毛罗·孔蒂|拉菲达·雷希曼·K·A.|穆罕默德·沙菲·K·P.|塞雷娜·尼科拉佐|安东尼诺·诺切拉|维诺德·帕多瓦大学数学系,意大利帕多瓦
摘要:恶意软件作为一种持久的网络安全威胁,通过复杂的攻击手段越来越多地针对互联的数字系统,如桌面、移动设备和物联网平台。利用这些漏洞,攻击者破坏了现代数字生态系统的完整性和韧性。为应对这一风险,安全专家积极采用基于机器学习或深度学习的策略,结合静态、动态或混合方法对恶意软件实例进行分类。尽管这些方法具有优势,但它们存在固有的缺陷,而且恶意软件变种不断演变并且变得更加复杂,因此需要改进检测策略。基于可视化的技术作为一种替代表示策略正在出现,它使得基于机器学习的检测和分类能够在桌面、移动设备、物联网和分布式系统等平台上实现,同时也可以通过对网络数据包捕获文件的分析来实现。通过将恶意软件工件转换为可视化表示,这些方法揭示了通常被认为直观易懂的结构模式,并且可以使用可解释的AI方法进一步分析。在这篇涵盖100多篇高质量研究文章的综述中,我们评估了应用于恶意软件检测和分类的现有基于可视化的方法。作为首个贡献,我们提出了一种全新的、全面的分类法来研究基于可视化的恶意软件检测技术。在这个分类法中,我们系统地分析了恶意软件检测流程中的各个关键阶段的先进方法。通过研究不仅单独的技术,还研究了它们是如何结合在一起产生最终解决方案的,我们揭示了基于可视化方法的主要挑战,并提供了对该领域进展和未来可能方向的见解。
1. 引言
恶意软件的威胁日益复杂,对桌面设备、移动设备和物联网生态系统构成了持续的、不断演变的安全威胁。对手不断改进他们的技术,这就需要更新和适应性更强的防御措施。在目标平台中,Windows仍然是攻击者的主要焦点,2024年勒索软件事件增加了2.75倍[1]。Windows在关键基础设施中的广泛使用加剧了这一趋势,使得该平台成为攻击者极具吸引力的目标。与此同时,网络犯罪分子继续开发和传播Android恶意软件,这一趋势部分是由于该操作系统的全球采用和开源分发模型[29]推动的。对手越来越多地整合AI驱动的功能以提高利用效率[117]。随着物联网设备的普及,威胁环境变得更加复杂,因为攻击者能够快速破坏众多互联的系统[148]。
安全系统使用基于签名的恶意软件检测作为第一道防线来应对这些威胁[2]。这种方法将传入的文件与已知恶意软件签名数据库进行匹配,提供了一种快速而准确的识别先前已知威胁的方法,误报率较低。然而,这些方法具有事后性,并且难以检测使用高级规避技术(如混淆和多态性)的现代恶意软件威胁。此外,新威胁出现与创建其签名之间的延迟引入了一个关键的检测差距。尽管基于签名的方法在对抗已知威胁方面表现出色,但它们需要更适应性的方法的支持。动态分析通过在沙箱环境中执行恶意软件来捕获其运行时活动来解决这一挑战。这些活动生成来自内存访问、文件系统修改和系统调用序列的签名,行为分析通过这些签名来识别恶意软件的目的、策略和更高层次的恶意行为模式。然而,先进的恶意软件可以通过检测虚拟机或调试器来规避这种方法,从而产生不可靠的签名。行为分析在更高层次上解释这些活动,侧重于网络流量以推断恶意软件的目的并进行分类。由于恶意软件无法在不影响其核心功能(如扫描、发送垃圾邮件或传播)的情况下显著改变这些行为,该方法通过识别端口、协议和其他网络交互中的模式来检测恶意软件。通过强调网络级别的操作,行为分析补充了静态和动态技术,使得能够检测到绕过基于主机的方法的恶意软件。结合基于机器学习的技术,这些方法可以更有效地应对新兴的真正零日攻击[89]。
研究人员和安全专家越来越多地转向基于机器学习的方法来克服传统基于签名检测的局限性,后者提供了一种更具适应性的范式[89]。与基于静态的方法中的精确指纹匹配过程不同,机器学习模型从大量的良性和恶意样本数据集中学习通用模式。这种学习使它们能够捕捉代码结构、API使用或行为轨迹中的统计规律,从而能够检测到稍微修改或未见过的威胁,这些威胁能够规避固定的签名。我们可以将基于机器学习的恶意软件检测方法大致分为(i)基于特征的模型[202],这些模型基于手工制作的特征进行操作;(ii)字节序列模型[188],这些模型直接分析原始二进制数据;(iii)基于图像的模型[156],这些模型将二进制文件转换为二维像素数组以进行视觉分析。然后使用这些图像根据纹理模式对恶意软件家族进行分类。
在这个背景下,基于可视化的恶意软件分析通过将二进制数据转换为结构化的视觉模式提供了一种有用的替代方案[167]。这使研究人员能够应用在识别恶意软件中的空间和结构模式方面特别有效的计算机视觉技术[61],[231]。其非执行性的本质进一步确保了一个更安全的分析环境,消除了意外触发恶意负载的风险,这是动态方法的一个常见缺点。此外,它允许自动学习具有区分性的表示,而不依赖于手工制作的特征,同时也提供了可解释性。此外,它使分析师能够以平台无关的方式直观地检查与恶意软件特征相关的模式[61],[111],[167]。当与静态和动态特征结合成混合框架时,它可以补充其他方法并增强鲁棒性。
传统的依赖于手动静态特征工程和基于沙箱的动态执行跟踪分析的方法计算成本高、速度慢,并且依赖于专家分析师。相比之下,基于可视化的方法能够从恶意软件表示中自动提取视觉模式,并在多项研究中展示了有竞争力的分类性能。然而,计算成本和训练效率在文献中并没有得到一致的评估。此外,这些方法还使用显著性图等技术提供了易于理解的视觉解释。在本文中,我们重点关注一个特定的方面,即使用恶意软件可视化来进行恶意软件的检测和分类,这是一种新颖且先进的恶意软件分析方法。随着深度学习(特别是CNN)的整合,可视化方法在各种机器学习任务(包括恶意软件分类[152])中显示出产生可解释结果的巨大潜力。这些模型可以直接从二进制表示中提取特征,减少了手动特征工程或领域专业知识的需求。这些多样化的方法协同作用,以应对新的和未知的威胁,有效弥补了传统基于签名保护的局限性。
本调查的目的是提供基于可视化的恶意软件检测技术的全面和系统的回顾。具体来说,我们的目标是(i)提出一个统一的分类法,涵盖完整的基于可视化的恶意软件检测流程;(ii)分析和比较该流程每个阶段的现有方法,包括数据集收集、图像生成、特征提取、分类、评估和鲁棒性;(iii)识别挑战、研究空白和推进基于可视化的恶意软件分析的未来方向。因此,本调查系统地检查了现有基于可视化的恶意软件分类方法的优点和局限性,从而能够清晰地评估它们的有效性和效率。通过整合和梳理现有文献,我们提供了最新的技术概述,概述了最佳实践,并指出了开放的研究挑战和未来研究的方向。
总之,本调查的主要贡献如下:
1. 我们提供了针对基于可视化的恶意软件检测的全面且方法论严谨的综述,研究了一个不断增长但尚未充分探索的研究领域。
2. 我们系统地描述了基于可视化的恶意软件分类的完整流程,涵盖了数据集、图像表示、特征处理技术、模型开发、性能评估以及与鲁棒性相关的考虑因素。
3. 我们研究了现有基于可视化的恶意软件检测方法如何融入可解释性,强调了恶意软件图像的哪些部分影响模型决策,使用了哪些可解释性工具,以及仍然存在的限制和挑战。
4. 我们审查了与基于可视化的恶意软件分类器相关的对抗性攻击及其相应的防御策略,强调了它们对模型鲁棒性和可靠性的影响。
5. 我们发现了当前研究中的关键空白,并讨论了基于可视化的恶意软件分析和检测中的开放研究挑战和未来方向,指出了未来研究的方向。
本调查的组织结构如下。第2节介绍了相关的调查,第3节概述了进行本调查所采用的方法。第4节提供了关于恶意软件检测和分类技术的主要背景概念的概述。第5节根据基于可视化的恶意软件分类的步骤(即数据集收集、图像生成、特征提取、分类、评估和模型鲁棒性)对现有文献进行了分类。特别是,在5.1节中,我们研究了在恶意软件可视化中最常用的数据集。第5.2节讨论了将恶意软件文件转换为图像的技术,利用了通过静态和动态分析方法获得的各种文件扩展。第5.3节探讨了研究人员如何处理特征,这些特征随后被用作分类器的输入。第5.4节致力于描述用于通过提取的特征对图像进行分类的各种方法。第5.5节讨论了作者如何决定评估他们的分类器,将他们的结果与其他研究人员的结果进行比较,考虑相关参数,并评估所做选择是否公平。第5.6节提供了针对基于可视化的恶意软件检测器的对抗性攻击的模型鲁棒性的描述。第6节探讨了恶意软件分类中的可解释性问题,研究了作者如何解决这个问题,并提出了潜在的改进措施。第8节分析和综合了调查文献中的发现。第9节列出了我们从调查中所学到的经验。第10节研究了几个开放性挑战,并提出了未来研究的可能方向。最后,第11节对基于图像的恶意软件分类领域的当前研究状态提供了一些一般性考虑,并为今后的研究提供了建议。
2. 相关工作
本节概述了探索视觉恶意软件分类的调查。对于每项调查,我们概述了其方法论、优点和缺点。大多数现有调查主要关注一般的恶意软件检测技术,只有少数调查明确关注恶意软件可视化,通常作为更广泛研究中的一个次要组成部分。表1总结了所审查的调查,其中我们考虑了出版年份、分析的论文数量以及工作的主要范围,即:
- 数据集覆盖范围(DC)。该领域指明了调查论文是否包括对用于基于可视化的恶意软件检测的数据集的分析。
- 图像生成技术(IG)。该领域表明论文是否描述了将恶意软件二进制文件转换为图像以进行分类的不同方法。
- 特征提取器分析(FE)。该领域表明论文是否调查了各种特征提取模型并评估了它们在恶意软件图像上的性能。
- 分类器分析(Class)。该领域检查论文是否评估了应用于提取特征的不同分类器。
- 可解释性分析(Inter)。该领域评估了论文是否调查了现有文献中模型如何以及为何做出决策。
- 可持续性分析(S)。该领域评估了调查论文是否评估了相关工作中检测流程的资源效率和可维护性。
- 不同训练方法分析(Diff_TM)。该领域检查了相关调查是否评估了不同训练策略的效果。
- 对抗性攻击分析(AA)。该领域指明了论文是否检查了恶意软件检测器针对对抗性修改的恶意软件图像的鲁棒性。
- 少样本分析(FS)。该领域检查了论文是否调查了在每个类别只有非常少的恶意软件样本的情况下进行训练时的性能。
- 统计量分析(M)。该领域评估了论文是否使用不同的评估指标来呈现性能评估。
表1. 与现有调查论文的比较
2.1. 一般的机器学习和恶意软件检测调查
在[81]中,作者对应用于恶意软件分类和检测的机器学习模型进行了广泛的考察。传统方法被分为静态方法、动态方法和混合方法;此外,他们还介绍了深度学习和多模态方法。简要提到了新兴和流行的挑战,如可解释性和可持续性。观察到,“可解释性”一词指的是人类(例如安全分析师或开发人员)理解恶意软件检测方法为何做出特定决策的难易程度,而“可持续性”一词指的是这些恶意软件检测方法的长期可行性和效率。尽管存在这些限制,这项调查仍然是一个有价值的起点,它提供了关于用于恶意软件分类和检测的传统机器学习和深度学习工作流程的概览。Ucci等人[227]从三个维度系统地分类了64项研究:分析目标(检测、相似性、分类)、特征类型(字节序列、API/系统调用、操作码、网络和文件系统活动、CPU寄存器、PE特征以及字符串)以及机器学习范式(监督学习、无监督学习、半监督学习)。尽管他们提供了一个关于基于PE的恶意软件分析的机器学习方法的结构化概述,但他们的重点仍然局限于传统的基于特征的方法,对深度学习和CNN的讨论较少。这一遗漏反映了当时的研究状况,因为该调查发表于2019年,当时基于CNN的恶意软件检测方法仍在发展之中。Naik等人[165]将方法分为静态方法、动态方法、混合方法和基于可视化的方法,详细描述了从数据集到评估的工作流程,并为基于机器学习的恶意软件检测和分类奠定了基础,但对数据集、特征提取和可解释性的关注较少。他们的研究强调了这些方法的优点和局限性,包括准确性、对抗混淆的鲁棒性以及计算成本,并指出深度学习和基于图像的分析是具有前景的方向。我们的调查在此基础上进行了扩展,提供了关于基于可视化的恶意软件检测的专注而全面的分析。Gopinath等人[146]对基于机器学习和深度学习的恶意软件检测方法进行了全面调查,主要关注基于特征的分类和分类器的开发,而不是利用二进制到图像可视化的方法。他们详细描述了每个模型,并按分类器方法组织了出版物,提供了清晰的描述。然而,这种方法使得比较特征提取和图像生成方法变得较为困难,并且仅简要介绍了该领域当前面临的挑战。
2.2 基于可视化的恶意软件检测调查
Ahmad等人[145]调查了基于可视化的恶意软件检测和分类方法。他们的综述涵盖了现有的机器学习和深度学习技术,概述了十个不同模型的实现和关键组成部分。这种简洁的列表方法便于比较。然而,我们的分析对整个可视化流程进行了更全面的审查。Shah等人[203]分析了基于可视化的恶意软件分类模型。他们的方法特别关注从内存转储文件生成的恶意软件图像。作者评估并对比了结合了如HOG[58]和GIST[173]等特征描述符与SVM等分类器的模型,以及使用VGG16进行迁移学习的深度学习模型。他们的工作强调了在预测性能和资源效率方面对模型的评估,为内存取证提供了见解。我们特别关注模型的计算性能。然而,需要强调的是,这项调查中考虑的模型数量有限,因此作者对基于可视化的恶意软件分析的更广泛领域提供的见解也有限。最后,[35]中的工作仅部分涵盖了基于可视化的恶意软件检测技术。Deldar等人[64]专门研究了零日恶意软件的检测。他们使用的分类法清晰地划分了模型,使读者能够识别分类流程中的各种选择。然而,该调查仅简要介绍了基于机器学习的恶意软件视觉分类的不同可能性和现代问题,如可持续性和可解释性。研究人员在[271]中将计算机视觉应用于网络安全,涵盖了网络钓鱼检测、恶意软件检测和流量异常检测。他们强调了其在网络安全中的广泛影响,包括在物理安全和关键基础设施保护中的应用,并桥梁了计算机视觉、机器学习和网络安全。然而,他们的研究缺乏对基于可视化的恶意软件检测的深入关注。相比之下,我们的研究提供了从数据集收集、图像类型、特征提取、分类方法、可解释性、鲁棒性评估到恶意软件检测适应性的详细分析。我们的调查通过强调跨多个平台(包括Windows、Android、iOS、PDF和物联网环境)的基于可视化的恶意软件检测来补充这些工作。我们提出了一个统一的分类法,涵盖了从原始数据到可视化、特征提取、分类、评估和鲁棒性的整个流程。最后,我们分析了调查文献,以识别新兴趋势并探讨基于可视化方法的独特挑战,例如图像空间中的对抗性扰动和对可解释AI的需求。通过这种方式,我们的调查扩展了所有相关调查中提出的分类法,并为以前未系统讨论的以视觉为中心的方法提供了专门的视角。
3. 方法论
在这项研究中,我们设计了一种结构化的搜索策略,以根据我们的调查文章目标收集有关基于可视化的恶意软件检测的相关研究。最初,我们探索了学术数据库,如Google Scholar和Web of Science,并审查了SpringerLink、IEEE Xplore、ScienceDirect和ACM Digital Library等声誉良好的存储库。搜索范围集中在2011年至2025年的出版物上,以确保对最新进展的全面考察。初步的全球扫描显示,在2018年之前,关于基于可视化的恶意软件检测的研究仍然有限,只有少数值得注意的出版物。最近,基于可视化的恶意软件检测研究稳步增长,推动了重大创新,例如改进的恶意软件图像表示和使用现代学习架构来提高检测能力。我们通过使用特定的关键词来制定搜索查询,以确保全面覆盖。主要搜索词包括“恶意软件可视化”和“基于图像的恶意软件检测”。为了细化我们的搜索,我们加入了额外的术语,如“深度学习”、“从恶意软件图像中提取特征”、“机器学习”、“视觉变换器”、“恶意软件图像中的对抗性鲁棒性”、“混淆”和“可解释性”等。这种方法捕捉了与恶意软件可视化和分类相关的一系列研究。我们将上述关键词与标准布尔运算符结合使用,并在附录A中展示了示例查询。图1以PRISMA流程图的形式可视化了我们的研究选择过程,详细说明了我们识别、筛选、排除和纳入最终审查的研究数量。
3.1 选择和过滤标准
本节解释了我们用于评估本调查中考虑的基于可视化的恶意软件检测的学术论文质量和相关性的方法。当文章满足至少一个纳入标准且不被任何排除标准排除时,就被选中。我们通过以下选择标准来评估论文的适用性。
3.1.1 纳入标准
我们根据以下选择标准来评估论文是否适合本文:
- 根据Scimago和Core.edu排名确定出版物场所的重要性和可信度。Scimago基于Scopus,衡量期刊的科学影响力,并将其分为四个等级(Q1–Q4),其中Q1代表排名前25%的期刊。相比之下,CORE会议排名根据质量和声誉将会议分为A*、A、B或C,A*和A代表顶级国际场所。我们考虑了Scimago中的Q1期刊和CORE会议排名中的A*和A会议。
- 根据Google Scholar和Scopus的排名确定引用影响。“引用影响”是指出版物的影响力或认可程度的衡量标准,基于其他研究者引用它的频率。
- 出版日期。我们优先考虑近期研究,但也会包括2011年以来的相关研究,以确保全面覆盖。
- 对恶意软件可视化的贡献的重要性。贡献的重要性通过定量指标(引用次数、场所排名、影响指标)和定性指标(新颖性、同行认可度和社会相关性)来衡量。新颖性、同行认可度和社会相关性的评估是定性的,由作者判断:(i) 新颖性是指论文是否引入了现有文献中不常见的新可视化技术、方法或视角;(ii) 同行认可度是从恶意软件可视化社区内的引用和参考文献中推断出来的;(iii) 社会相关性是指可视化方法在现实世界恶意软件分析、威胁检测或网络安全实践中的实际应用性。因此,这一标准通过关注每篇论文对恶意软件可视化领域的具体贡献来补充一般指标。
3.1.2 排除标准
我们还会排除满足以下任何条件的研究:
- 缺乏对基于可视化的恶意软件检测的关注。
- 缺乏同行评审和/或非英文出版。
附录B.1提供了论文中使用的缩写词的总结。
4. 前期工作
网络安全中的一个基本任务是将恶意软件分类到不同的家族中。这个过程根据共享特征和行为模式将恶意软件分组,使研究人员能够理解其功能并开发有效的对策。此外,它还揭示了攻击者技术中的趋势,指导主动预防策略。恶意软件分类与恶意软件检测不同。恶意软件分类是对各种类型的恶意软件进行分类和组织。相比之下,恶意软件检测直接识别特定的恶意软件实例,从而及时干预以防止或最小化其影响。在分析恶意软件时,研究人员可以使用不同的技术来帮助探索恶意代码的结构和行为。这些技术大致分为两类:(i) 动态分析和(ii) 静态分析。面对不断演变的恶意软件[16],传统的基于签名的恶意软件检测方法已经不够用了。因此,迫切需要新颖和先进的方法来分析恶意软件,包括行为分析,以及整合机器学习和深度学习。这些技术允许更深入地理解恶意软件的行为及其对系统的影响,使分析师能够更有效地识别和应对威胁。
4.1 静态分析
静态分析是一种在恶意软件分析中使用的技术,涉及在不执行恶意程序的情况下检查其二进制文件或代码。这种方法侧重于分析恶意软件样本的结构和内容方面,以识别潜在的恶意行为并理解其操作机制,而无需直接执行。广泛使用的静态分析工具包括反汇编器和反编译器,它们有助于提取恶意软件用于执行恶意操作的指令,如数据窃取、系统修改或传播。此外,静态分析还能够识别受损指标(IoCs),例如与恶意软件相关的文件名、嵌入的字符串、注册表键和硬编码的网络指标(例如IP地址或URL)。通过检查代码或二进制文件,研究人员可以提取有助于检测系统中恶意软件存在的签名或行为模式[169]。这些签名可以通过识别匹配的模式来检测系统中的恶意软件[239]。本调查中探索的一种便捷方法是通过将静态分析提取的信息可视化成图像来表示,这主要是因为同一恶意软件变体之间的视觉相似性。使用图像可以使机器学习模型捕捉恶意软件二进制文件的全球模式和局部结构特征,从而有助于准确的分类和检测结果。虽然原始恶意软件图像乍看之下可能很抽象,但研究人员越来越多地证明,当与现代可解释技术结合使用时,这些视觉表示可以提高可解释性。可视化不仅捕捉到了全局结构模式,还捕捉到了细粒度的局部细节,使分析师能够识别同一恶意软件家族内变体之间的视觉相似性。Johny等人[111]的一项最新研究表明,通过基于图像的表示,这种结构上的共同性变得更加明显。此外,包括Grad-CAM、HiResCAM、saliency maps和SHAP在内的可解释AI方法可以突出显示对分类器决策影响较大的恶意软件图像区域。这些高亮区域通常对应于有意义的字节序列或打包部分,分析师可以将其映射回代码以进行进一步检查[36]。此外,特征空间可视化方法(如t-SNE)为分析师提供了恶意软件家族的直观全局映射,便于探索变体之间的关系。因此,恶意软件可视化不仅有助于自动化分类,还通过弥合分类器决策和分析师洞察之间的差距,增强了人类的可解释性。
4.2 动态分析
动态分析是一种通过在安全的环境(如沙箱或虚拟机)中执行恶意软件来检查其行为的技术。与不执行代码的静态分析不同,动态分析允许直接观察恶意软件与操作系统和网络资源的交互。在线沙箱平台,包括Any.Run[76]、VirusTotal[212]、Joe Sandbox[2]、Cuckoo Sandbox[55]和Hybrid Analysis[11]提供了安全的恶意软件执行环境,并生成详细的行报告。安全分析师使用监控工具,如系统监视器、网络分析器和调试器,来检测恶意活动,例如文件创建、系统修改或与命令与控制(C2)服务器的通信。特别是,调试器需要程序执行来分析运行时行为。此外,动态分析可以揭示规避技术,如反调试或反虚拟化策略[49],从而提高对复杂恶意软件的理解。通过在隔离环境中分析恶意软件行为,分析师可以更准确地评估恶意代码的性质和潜在威胁。另外,动态分析可以通过可视化技术得到增强,其中运行时行为数据被转换为基于图像的表示形式,便于更清晰地解释和处理新出现的恶意软件变种。最后,动态分析是指在受控或沙箱环境中执行恶意软件以捕获其运行时活动,而行为分析则通过解释这些活动来发现更高级的模式、目标和恶意策略。
4.3 机器学习
机器学习已成为恶意软件分析的基本方法,能够根据其固有特征和行为自动分类和检测恶意软件[227]。通过检查各种特征,包括文件属性(如大小和类型)、系统交互、网络活动和其他指标,机器学习算法可以有效区分良性软件和恶意软件。深度学习(特别是深度神经网络DNN)的采用代表了这一领域的重大进展。基于机器学习的恶意软件检测方法可以根据它们使用的特征类型和采用的建模方法进行分类。虽然4.1 静态分析和4.2 动态分析描述了静态和动态分析流程,但我们根据它们输入的表示形式和生成的模型类别对基于机器学习的检测器进行分类。基于静态特征的检测器将可执行二进制文件转换为手工制作的特征向量,如便携式可执行文件(PE)头字段、导入表以及统计表示(包括n-gram或直方图),然后使用基于树的或线性的分类器[14]、[200]。相比之下,字节级和整个可执行文件的方法直接处理原始字节流或十六进制表示,通常使用卷积或基于序列的神经架构[188]。基于行为的方法通常通过运行时跟踪来描述程序行为,包括API调用、系统调用和网络跟踪,随后使用序列学习技术对其进行建模[151]。其他研究探索了基于图的角度,其中程序的结构属性(如控制流图CFG)和调用图被捕获并用图神经网络进行分析[256]。另一条研究路线采用基于可视化的策略,将原始字节或其他程序信号编码为图像表示,以便使用计算机视觉模型,如卷积神经网络(CNN)、视觉变换器(ViTs)等[167]、[232]。最近,实际的恶意软件检测系统越来越多地通过多模态融合或集成学习结合这些方法,从而提高鲁棒性和整体检测准确性[80]、[111]。通过关注输入到模型的映射而不是重复静态或动态定义,这种分类可以轻松地将可视化方法与其最相关的基线进行定位。
卷积神经网络(CNN)在恶意软件分析中表现出色,因为与传统机器学习模型相比,它们在恶意软件可视化方面提供了更好的性能。尽管依赖于大量的计算资源和庞大的数据集,DNN在改进恶意软件检测和分类方面具有巨大潜力。
4.4 恶意软件可视化
恶意软件可视化是一种分析技术,它将恶意软件的行为和特征转换为视觉表示,从而便于分析和分类。可视化提供了系统和网络活动的清晰视图,帮助分析师识别模式、发现联系并检测可能的攻击路径。可视化技术生成不同恶意软件属性的图形表示,包括网络交互、文件操作和系统调用。可视化提供了从动态分析跟踪中得出的系统和网络活动的可解释视图,帮助分析师识别行为模式和相关性。例如系统调用序列图[39]和网络通信活动图像[209]、[251]在恶意软件行为探索和变种分类中显示出实用性。此外,恶意软件可视化在识别相关恶意软件样本之间的细微差异方面也起着重要作用。由于恶意软件作者经常通过轻微的代码修改产生新变种,可视化能够有效捕捉这些差异,有助于检测相关的菌株。通过结合恶意软件行为的视觉表示和机器学习技术,专家可以高效地识别恶意软件样本中的相似和不同模式,从而便于对新出现或以前未知的威胁进行分类。
5. 基于可视化的恶意软件检测的统一分类法
本文提出了一个用于基于可视化的恶意软件检测的统一分类法。该框架旨在全面调查可视化领域的各种最新研究,并确定未来研究方向以提升安全性。我们概述了基于可视化的恶意软件分类的基本过程,分为五个阶段:数据集收集、图像生成、特征提取、分类、评估和模型鲁棒性。这些步骤构成了如图2所示的流程,图3提供了从文件类型选择到特征提取步骤的第一部分更详细的分类法。
1. 数据集收集
研究人员收集原始格式的恶意软件和良性样本(即可执行文件、APK),这些样本在图像转换阶段随后被转换为图像。然而,在某些情况下,基准数据集直接以图像形式发布,因为它们的创建者已经完成了转换。值得注意的例子包括MalImg[167],它提供了恶意软件家族的图像表示,并在基于可视化的恶意软件检测研究中被广泛采用。
2. 图像转换
这一阶段将基于可视化的恶意软件检测方法与其他恶意软件检测方法区分开来。在此阶段,研究人员为每种恶意软件生成多个图像,使用各种算法,如B2IMG[224]和Word2Vec[155]。
3. 特征处理
在此阶段,从恶意软件图像中提取高级特征,以突出重要模式、减少维度并为分类模型生成有意义的输入。可以使用局部二值模式(LBP)[172]、GIST描述符[173]和降维方法(如主成分分析PCA)等技术来提高特征的质量和效率。
4. 分类
对于输入特征的预测,我们选择机器学习(ML)和深度学习(DL)模型作为恶意软件分类器。基本的ML模型如支持向量机(SVM)、随机森林(RF)、XGBoost等,以及DL模型如卷积神经网络(CNNs)、深度神经网络(DNNs)等,可以作为有效的恶意软件分类器。
5. 评估
基于可视化的方法使用准确性度量定量评估各个分类器的预测,并使用可解释性和可理解性术语定性评估它们。二分类方法为恶意或良性样本提供概率,多类分类方法为各种恶意软件家族提供概率。
6. 模型鲁棒性
这一阶段涉及增强模型对抗攻击、混淆技术和概念漂移的能力的技术。此外,自适应学习技术确保模型对不断演变的恶意软件模式仍然有效。
下载:下载高分辨率图像(482KB)
下载:下载全尺寸图像
图2. 一个端到端的基于可视化的恶意软件检测框架,适用于多样且不断变化的威胁环境。
下载:下载高分辨率图像(222KB)
下载:下载全尺寸图像
图3. 基于可视化的恶意软件检测的分类法。
5.1 数据集收集
研究人员在其实验研究中广泛探索了各种数据集。选择适当的数据集至关重要,因为它是进行严格和可靠研究的基础。因此,识别和优先考虑在该领域中最普遍和广泛使用的数据集非常重要。当研究人员寻找恶意软件样本时,他们可以采用两种不同的方法。最常见的方法是选择专门为分类任务设计的恶意软件数据集[56]、[125]、[170]、[219]、[248]、[258]。这些数据集提供了其他研究人员可以轻松利用的现成信息以构建图像表示。然而,这些数据集在可用信息的灵活性和总体规模方面存在限制。另一种方法是利用庞大的恶意软件数据库(如Malware Bazaar、VirusShare或VX Heaven[24]、[101]、[109]、[118]、[162])来创建数据集。这种方法为作者提供了更多的自由来选择要考虑的现代恶意软件家族并确定要收集的信息类型。然而,这样的数据集收集的复杂性增加,并且有机会将其模型与VirusTotal(VT) [212]等服务进行基准测试。研究人员通常根据各自研究论文中提出的具体用例来定制使用恶意软件库(MalwareBazaar、VirusShare、VX-Underground等)创建的数据集,导致内容存在显著差异[52]、[242]。
研究人员首先以原始二进制格式收集良性和恶意样本(如EXE、APK、ELF等),然后建立他们自己的数据集。这个过程包括来源、收集日期和SHA-256等加密哈希的详细信息。接下来,他们使用可用的网络安全基准工具为恶意软件家族和超家族分配和验证标签。然后,他们预处理语料库,包括去重和解压包装样本。接着,他们报告详细的组成统计数据,包括恶意和良性样本的数量、家族数量、收集的时间范围以及打包比例。最后,他们构建训练集、验证集和测试集,以防止数据泄露。
MalImg和BIG2015数据集在针对可执行恶意软件的研究中受到了广泛关注,如表2所示。这些数据集在引用次数中占了很大比例。其中,MalImg数据集[167]是最常被引用的用于基于PE恶意软件检测的数据集。它是一个公开可用的图像数据集,包含来自25个家族的9339个恶意软件可执行文件。该数据集从Anubis分析系统中获取可执行文件,通过将每个字节映射到像素将其转换为灰度图像。该数据集包含打包和未打包的恶意软件混合,其中特定的恶意软件家族如Yuner.A、VB.AT、Malex.gen!J、Autorun.K和Rbot!gen使用UPX进行打包[191]。此外,该数据集显示出高度不平衡,其中Allaple.A家族有2949个样本,而Skintrim.N家族仅有80个样本。
表2. 最常用的基于可视化的恶意软件检测数据集
| 数据集名称 | 年份 | 恶意样本数量 | 良性样本数量 | 提供的文件格式 | 引用次数 |
|-----------------|------------|-------------|-------------|----------------|-----------|
| MalImg | 1990 | N/AN/AN/A | 1990–2010 | ? | [94],[95],[98],[99],[136],[168],[249],[254] |
| Virustotal | 2004 | N/AN/AN/A | 2004–2025 | ? | N/A |
| Leopard mobile | 2009 | 14,733 | 2486 | N/AN/A | ? |
| MalImg | 2011 | 9339 | N/A | 25 | ? | [7],[8],[10],[12],[18],[28],[33],[52],[56],[71],[82],[85],[92],[120],[125],[126],[128],[141],[150],[164],[167],[183],[187],[196],[199],[207],[208],[218],[231],[232],[233],[235],[236],[248],[262],[266],[269],[273] |
| Malheur | 2011 | 313 | N/A | 2006–2009 | ? | [890],[162],[168],[213] |
| Virussign | 2011 | N/AN/AN/A | 2020–2025 | ? | N/A |
| Contagio mobile | 2011 | N/AN/AN/A | 2011–2025 | apk | ? | N/A |
| Malgenome | 2012 | 1260 | N/A | 2010–2011 | apk | ? |
| Virusshare | 2012 | 61,455 | 2012–2025 | ? | 1041 | [24],[28],[71],[101],[101],[111],[136],[162],[192],[208],[232],[241],[243],[262],[275] |
| Drebin | 2014 | 556 | 2010–2012 | apk | ? | 2359 | [66],[153],[190],[210],[260] |
| BIG2015 | 2015 | 10,860 | N/A | 2006–2015 | ? | 327 | [3],[5],[8],[12],[30],[33],[41],[52],[61],[65],[67],[80],[82],[83],[92],[108],[119],[120],[126],[140],[150],[170],[175],[183],[184],[186],[196],[208],[218],[219],[224],[233],[235],[248],[258],[262],[264],[269],[272] |
| AndroZoo | 2017 | 22,707 | 999 | N/A | 42 | 2011–2025 | apk | ? |
| AMD | 2017 | 24,553 | N/A | 2010–2016 | apk | ? | 440 |
| CICAndMal | 2017 | 2018 | 4265,065 | 2015–2017 | apk | ? | 134 |
| Ember | 2018 | 300,000 | 2017–2018 | exe | ? | 338 |
| MaleVis | 2019 | 8,750 | 5,476 | 2017–2018 | RGB-image | ? | 24 |
| CICInvesAnd Mal | 2019 | 4265,065 | 2017–2019 | apk | ? | 143 |
| MDA | 2019 | 500 | 102 | 2019–2025 | csv | ? | 23 |
| SOREL-20 | 2020 | 10,000,000 | 10,000,000 | N/A | 2020–2020 | exe | ? | 122 |
| CICMalDroid | 2020 | 17,341 | N/AN/A | 2017–2018 | apk | 94 |
| Malwarebazaar | 2020 | N/AN/AN/A | 2020–2025 | ? | 217 | [52],[242] |
| Dumpware | 2021 | 3,686 | 608 | 10 | N/ARGB-image | ? | 44 |
| BODMAS | 2021 | 57,293 | 7,142 | 2019–2020 | exe | 45 | [43],[120],[153] |
| Android malware | 2025 | 14,285 | 2,583 | 2025 | ? | 2 |
| Microsoft Malware Classification Challenge Dataset (BIG 2015) | 2015 | 10,860 | N/A | 2006–2015 | ? | 327 | [3],[5],[8],[12],[30],[33],[41],[52],[61],[65],[67],[80],[82],[83],[92],[108],[119],[120],[126],[140],[150],[170],[175],[183],[184],[186],[196],[208],[218],[219],[224],[233],[235],[248],[258],[262],[264],[269],[272] |
研究人员在他们的实验研究中广泛探索了各种数据集。选择合适的数据集至关重要,因为它为进行严谨和可靠的研究奠定了基础。因此,识别和优先考虑在该领域中最普遍和广泛使用的数据集非常关键。当研究人员寻找恶意软件样本时,他们可以采用两种不同的方法。最常见的方法是选择专门为分类任务设计的恶意软件数据集[56]、[125]、[170]、[219]、[248]、[258]。这些数据集提供了其他研究人员可以轻松利用的现成信息以构建图像表示。然而,这些数据集在可用信息的灵活性和总体规模方面存在限制。另一种方法是利用如Malware Bazaar、VirusShare或VX Heaven[24]、[101]、文献中经常引用的另一个数据集是[166]中介绍的MALICIA数据集。该数据集包含了通过分析负责分发驾车恶意软件下载的服务器来收集的样本。包括Malevis、Malheur和MALICIA在内的这些数据集,仅包含从二进制文件中预先提取的特征向量。著名的例子还包括EMBER数据集[13]。这类数据集通常提供更多的样本数量和恶意软件家族,但由于缺乏实际的二进制文件,其应用受到限制。
大多数关于基于可视化的Android恶意软件的研究主要集中在两个数据集上,即Drebin和MalGenome,如表2所示。Drebin数据集包含了2010年8月至2012年10月间收集的5560个恶意软件样本和123,453个良性应用程序。同样,MalGenome数据集[274]是在2010年至2011年间收集的,包含1260个恶意软件应用程序。Drebin数据集的重要性不仅在于其规模,还因为它是最早公开的、提供带有全面和标准化静态特征表示的Android恶意软件数据集之一。作为一项被广泛引用的研究的一部分,该数据集已经获得了超过3200次的引用,并被全球的学术机构广泛采用,成为Android恶意软件分析的基准。尽管之前已有如MalGenome这样的数据集存在,但Drebin结合了公共可访问性、大规模标记样本和丰富的静态特征,使得实验结果可重复且便于对比评估,从而对其在Android恶意软件研究中的持久影响力做出了贡献。需要注意的是,这些数据集相对较旧,随着技术的进步,其中包含的样本可能会变得过时且代表性下降。
[8]的作者引入了一个用于二进制分类的新Android恶意软件数据集,包含16,868个样本(14,285个恶意软件,2,583个良性样本)。该数据集来源于Drebin和Androzoo仓库,并公开提供了相应的代码,以促进可重复性和未来的研究。表2提供了基于可视化的恶意软件检测中常用数据集的全面概述。对于每个列出的基准数据集,我们提供了额外的详细信息,包括数据集的标题、发布年份、恶意软件和良性样本的数量、家族数量(用#Fam标识)、样本收集的时间长度(用POT标识)、文件类型(如图像、apk、可执行文件、elf或其他文件扩展名)、数据集的可用性状态(即是否公开可用)、数据集的总引用次数(用#Cit.标识),以及使用该数据集的参考文献。N/A表示相应数据集的相关信息不可用。表2中列出的所有数据集(AMD和MalGenome除外)都是公开可用的,便于进一步分析和比较。MalImg、Malheur和Dumpware10是图像数据集,而其他数据集都以原始的.exe或.apk格式提供。然而,值得注意的是AMD和MalGenome已经不再是活跃的项目,因此它们的数据无法访问。因此,MalImg和Drebin数据集仍然是获取恶意软件样本的主要选择。研究人员通常使用这些数据集进行基于可视化的恶意软件检测。
像BIG2015这样的特定数据集存在一些限制,例如缺乏PE文件和良性样本。这些限制阻碍了特征的全面提取,使得这些数据集更适合于识别已知恶意文件的封闭集推理任务,而不是通用恶意软件检测。关于Android恶意软件,Drebin在众多研究中被认为是使用最广泛的数据集。然而,参考文献[106]指出,Drebin数据集可能包含重复文件,这限制了对真实APK文件的访问并减少了可用恶意软件数据的数量。尽管存在这些限制,研究人员仍继续广泛使用Drebin和上述PE恶意软件数据集,即使在最近的研究中,也将它们作为开发针对现代恶意软件检测的基于可视化的算法的主要数据源。
AMD、BIG2015和Ember数据集是例外,因为它们仅覆盖了较短的时间段,没有考虑到恶意软件随时间的显著变化和发展。忽略这一方面可能会大大影响恶意软件检测器的有效性,因为特征在有效区分恶意软件方面的重要性可能会随时间变化。此外,许多最近的检测方法依赖于过时的恶意软件数据集来开发和评估解决方案。这种方法对模型泛化新出现恶意软件的能力构成了潜在风险。为了实现强大和准确的恶意软件检测,必须考虑恶意软件的动态性质,并使用反映当前威胁形势的最新数据集。由于样本收集的目标和方法不同,许多数据集在每个家族的样本数量上存在不平衡,只有少数作者解决了这个问题。常用的技术包括对样本较少的家族进行过采样,或者对样本较多的家族进行欠采样[30]、[56]。其他作者将内容相似的不同家族变体合并为一个家族,以实现粗粒度分类[82]。[107]提出的另一种解决方案采用加权线性系统来调整CNN输出层的权重,以纠正神经网络对更常见家族的偏见。当研究人员评估模型时,他们需要决定如何将数据集划分为训练集、验证集和测试集。即使在相同的数据集上,不同的方法也有很大差异。通常需要明确测试集如何与训练集结合使用。有些作者在训练期间将测试集重新用于验证,并将其指标作为最终结果报告。其他人则在整个数据集上评估模型。很少有研究将测试集专门用于模型评估。此外,特定的数据集会带来独特的挑战。例如,BIG2015的训练集和测试集都包含10,000个样本。许多文章在实验中仅使用分配给训练的10,000个样本。另一个问题是之前讨论过的不平衡问题。不同解决这个问题的方法可能导致某些模型因为更有效地过度采样或欠采样其数据集而表现优于其他模型。研究人员必须考虑这些问题,因为它们限制了对比和解释模型的能力,并可能产生不能代表模型真正实力的结果。
在过去的几年中,最佳模型的准确率已经接近100% [65]、[232]。需要注意的是,几种常用的基于可视化的方法中的数据集包含的恶意软件家族数量有限。虽然这些数据集便于控制评估,但它们可能会无意中简化分类任务。随着家族数量的减少,类间边界变得不那么复杂,这可能导致性能估计过于乐观。因此,在小家族基准测试上的高准确性并不一定意味着在实际部署中的强大性能,因为实际恶意软件生态系统展现出更高的多样性、类别不平衡和持续演变。未来的评估应该考虑更大规模、更多样化的数据集以及开放集或持续学习环境。
5.2. 图像生成
本节介绍了我们用于基于可视化的恶意软件分类中的图像生成分类法。我们分两部分进行解释:首先,是从恶意软件样本中提取信息的方法,无论是通过静态分析、动态分析还是混合分析;其次,研究人员转换成图像的数据表示类型。根据我们对文献的调查,我们确定了四种用于构建图像的主要表示方法:原始二进制程序、汇编/操作码、基于元数据的结构以及运行时信息。这些表示类型与经典的提取流程自然契合。
5.2.1. 静态可视化
恶意软件的静态可视化技术涉及将恶意软件的内容以十六进制二进制代码或汇编格式编写的源代码的形式表示为图像,而不执行它们。十六进制视图将机器代码显示为一系列十六进制值。分析师可以检查并图形化地表示机器代码中的各种信息,例如指令代码数据结构和从某个内存地址开始的内容。此外,我们还可以可视化从十六进制代码中提取的熵信息。相反,汇编语言源代码不仅包含符号化的机器代码指令,还包含有关内存分配、函数调用和变量的详细信息。
原始字节码图像。恶意软件通常以可执行文件的形式出现[225]。原始字节可视化通过映射它们的二进制内容将这些文件转换为图像,从而能够分析结构、混淆模式和隐藏数据。这种技术有助于揭示嵌入式功能,并突出显示恶意软件样本之间的相似性或差异。 plusieurs研究已经研究了将原始字节从可执行格式(如EXE、APK、ELF)转换为灰度或RGB图像的方法,用于基于可视化的恶意软件检测[167]、[189]、[250]。Nataraj等人[167]提出了一种称为灰度图像转换的技术,用于基于可视化的恶意软件检测。这种方法在恶意软件检测的学术研究中得到了广泛应用[50]、[139]、[149]。他们通过使用可执行文件或应用程序的二进制表示中的字节值,并将其映射到0到255的范围内来生成灰度图像,以此表示不同的灰度级别。这些图像仅由灰度阴影组成,其中黑色表示最低强度,白色表示最高强度。许多研究人员将二进制可执行文件分割成8位字符串,并将每个字符串转换为十进制数字的一维向量,然后再生成灰度图像。然而,一些研究人员选择了不同的字符串长度,如16位[156]或根据具体需求计算固定长度[123]。由于作者可能无法访问二进制形式的样本,他们需要调整算法以适应样本的具体格式。B2IMG转换算法提供了一种标准的字节码图像技术的变体,适用于使用样本的十六进制转储的情况[224]。尽管研究人员广泛使用这种方法,并认为它相对容易实现,因此在大多数研究论文中成为标准技术,但他们经常由于在从二进制到图像的转换过程中可能违反局部性原则而限制其使用。直接将非图像数据转换为像素值可能会失败,无法保留原始数据分布的空间关系或视觉一致性,从而导致表示不准确。高级方法采用哈希[170]和空间填充曲线[24]等技术来解决这个问题。哈希通过将相似的n-gram和重复的字节模式聚合到稳定的索引组中来减少空间失真,而空间填充曲线将连续的一维字节位置映射到局部相邻的二维网格单元中,以保持短距离的结构邻域。这些方法减轻了由局部性无关的光栅映射引入的局部性违反,并生成更忠实编码艺术品相邻关系的连续强度区域。字节码方法之所以具有多功能性,是因为它处理静态恶意软件工件为有序的字节序列,并将它们转换为图像以进行空间特征学习和视觉分析。总体而言,字节码方法因其处理来自恶意软件二进制的多种形式的工件并将其编码为字节序列以进行图像分析而显示出极大的灵活性。
汇编/操作码图像。可以使用类似于字节码图像的方法生成操作码图像,通过将操作码解释为整数并仅选择最常见的操作码[80]、[108]、[136]、[219]。然后可以将每个位置的值解释为字节并转换为灰度图像。Qiao等人[186]提出了一种另一种方法,利用Word2Vec模型为每个恶意软件样本中的每个汇编指令计算固定长度的向量表示。将这些词向量组合起来,可以为每个样本生成一个数值矩阵,可以解释为灰度图像。
元数据信息图像。恶意软件文件的元数据包含了与文件相关的附加信息,超出了恶意软件的二进制代码范围。元数据有助于分析和理解恶意软件,因为它提供了额外的上下文和信息,可以帮助识别和分类恶意软件。各种类型的元数据信息可以以不同的方式用于创建有助于恶意软件分析的视觉元素。例如,来自便携式可执行文件(PE)头部的元数据,如入口点地址、段落和可选头部详细信息,可以转换为视觉元素。PE头部包含有价值的内容,包括文件结构描述和其他信息,研究人员可以利用这些信息来识别和分类恶意软件。莫雷拉等人[159]使用这项技术对25个勒索软件家族进行了分类。在他们的论文中,作者使用了原始的PE头部信息,而没有假设字段的长度或需要专家知识来提取特征。PE头部的大小因可执行文件而异,但研究人员仍能从中提取一组一致的特征,并使用空间填充曲线(SFC)方法将这些特征表示为矩阵。研究人员还尝试使用可执行文件部分的边界来进行分析。特别是肖等人[249]利用从恶意软件PE头部提取的部分大小,用不同的颜色标记每个部分的边界,以便于视觉区分各个部分。与导入和导出函数或模块相关的元数据及其关系和依赖关系也可以可视化,以提供关于代码功能和不同组件之间交互的见解。与数字签名相关的元数据可以叠加在二进制文件的图像上,以直观显示文件的可靠性或真实性,有助于识别潜在的恶意可执行文件。此外,文件大小、创建日期和文件扩展名等元数据可以作为视觉特征编码并纳入可视化中,以提供有关恶意软件样本的额外上下文和信息。由于APK文件中存在大量有用的元数据信息,利用元数据进行恶意软件可视化的技术在分析Android恶意软件时尤为普遍。应用程序签名、证书以及AndroidManifest.xml文件中的信息是分析和理解Android恶意软件的宝贵元数据来源。在[23]中,巴基尔等人使用classes.dex文件作为分析的基础。该文件可以被读取为整数数组并调整大小以形成二维矩阵。辛格等人[210]使用classes.dex、resources.arsc、AndroidManifest.xml文件以及META-INF文件夹的内容来生成恶意软件的可视化表示。这些文件被解释为字节数组,然后重新塑形为矩阵并结合在一起形成最终的二维灰度图像。元数据信息提供了关键细节,帮助研究人员了解Android恶意软件的特性和行为。
5.2.2 动态可视化
基于动态的可视化技术涉及在沙箱环境(如Cuckoo沙箱)中执行文件以提取代表恶意软件行为的相关特征。然后根据实验需求处理这些特征以生成灰度或彩色图像。然而,与静态可视化相比,我们观察到投入到动态可视化方法中的努力相对较少(见表3)。静态分析可视化本质上是时间不变的,因为它们表示的是在程序执行之前提取的工件,因此无法反映运行时的演变。相比之下,包括从执行记录中导出的图像在内的动态分析可视化能够捕捉到多态性和混淆型恶意软件的时变和自修改行为。例如API调用[243]、内存转储[33]、网络流量[209]、[251]和系统调用[39]等动态特征被广泛用于恶意软件可视化。
表3. 用于从起始恶意软件中提取特征的技术。对于每篇分析的论文,包括发表年份;用于创建图像的信息(即[S]表示静态信息,[M]表示元数据,[D]表示动态信息);用于图像二进制表示的技术(例如,[LbyL]表示论文使用经典的逐行二进制表示,[Others]表示论文使用其他空间填充曲线(SFC)技术来布置图像中的像素);图像生成技术(例如,[Markov]表示使用马尔可夫技术生成图像;[Hashing]表示使用哈希方案生成图像;[Entropy]表示使用熵分析生成图像;[Original]表示使用的图像生成技术是作者自己的方法);关于图像颜色的信息(即[A]表示使用颜色来添加信息的彩色图像,[B]表示不添加颜色的彩色图像);使用的特征提取技术(例如[G/GIST]表示Gabor或GIST滤波器,[LBP]表示局部二值模式;[SIFT]表示尺度不变特征变换,[H/GLCM]表示灰度共生矩阵或Haralick特征,[Hist]表示论文使用任何类型的直方图来提取特征,[NN]表示论文使用神经网络来提取特征。如果可能,将指定神经网络的具体架构,并用希腊字母表示模型是从头开始训练的[α],应用了迁移学习[β],还是进行了微调[γ];如果模型使用了融合技术。‘-’表示论文中缺少该信息。
5.2.3 混合可视化
混合可视化旨在结合静态和动态技术的优势。静态特征擅长捕捉底层二进制文件的结构组织和组成,从而揭示不同恶意软件变体之间的共性。相反,研究人员特别考虑动态特征来建模恶意软件的行为方面。在混合可视化的分类法中,这两种特征类型可以合并并整合到一个统一的图像中[42]、[103]、[116]、[174]。特别是黄等人[103]使用静态分析根据字节序列生成静态代码的RGB表示。然后,他们使用动态分析提取样本的API调用序列,并通过为每个调用分配RGB值来生成恶意软件图像。最后,他们将动态和静态表示层叠在一起以生成用于分类的混合图像。
5.2.4 图像表示
本节描述了研究人员如何将提取的恶意软件数据转换为图像。有效的图像表示能够清晰地组织数据,保持重要关系,并最小化信息丢失,从而实现准确的特征提取和分类。
5.2.5 空间填充曲线
传统的将二进制文件转换为图像的字节码方法会导致信息丢失,包括局部性的部分降解。这意味着按行排列字节会导致代码中原本相邻的字节被分开。为了解决这个问题,研究人员对图像的字节布局进行了实验,即像素在图像中生成的顺序。几种方法包括监测系统调用[243]。在解释提取的信息方面存在不同的方法。例如,参考文献[213]为每个提取的API调用分配一个十六进制代码,从而生成一个可以作为灰度图像解释的字节序列。相反,[80]将图像建模为一个矩阵,其中每个值对应一个API调用,如果恶意软件没有使用该API调用则赋值为0,如果使用了则赋值为1。另一种将动态提取的信息解释为图像的方法是用恶意软件样本的原始二进制文件替换动态分析报告,并从中生成灰度图像[147]。在这种情况下,使用报告文件本身而不是恶意软件文件来表示样本,以便在后续的分析步骤中进行处理。动态分析数据从.json文件中收集,并使用标准灰度方法转换为图像。这样,通常应用于二进制文件以提取静态特征的技术也可以应用于包含动态信息表示的.json文件。
在他们的研究中,博兹基尔等人[33]使用内存取证技术在虚拟环境中执行恶意软件样本时提取临时数据,并利用“Procdump”等工具来转储这些数据。由于这种方法产生的文件大小较大,研究人员采用了RGB图像。在这种方法中,每个图像像素代表三个连续的字节,从而允许包含颜色,这与依赖字节码的传统灰度方法不同。徐等人[251]采用的方法使用捕获的网络数据包作为图像生成的基础。通过连接每个样本的PCAP文件,研究人员将生成的字节序列解释为灰度图像。阿格拉菲奥蒂斯等人[4]最近探索了结合变换器的PCAP文件的使用。
5.2.6 混合可视化
混合可视化旨在结合静态和动态技术的优势。静态特征擅长捕捉底层二进制文件的结构组织和组成,从而揭示不同恶意软件变体之间的共性。相反,研究人员特别考虑动态特征来建模恶意软件的行为方面。在混合可视化的分类法中,这两种特征类型可以合并并整合到一个统一的图像中[42]、[103]、[116]、[174]。特别是黄等人[103]使用静态分析根据字节序列生成静态代码的RGB表示。然后,他们使用动态分析提取样本的API调用序列,并通过为每个调用分配RGB值来生成恶意软件图像。最后,他们通过将动态和静态表示层叠在一起生成用于分类的混合图像。
总之,动态信息可视化对恶意软件分析师具有巨大潜力[223]。然而,大多数研究都集中在基于静态特征的图像生成技术上(见表3)。对基于静态特征的图像生成的关注源于与动态分析相关的挑战和方法的多样性,这些挑战随着数据集的增加而变得更加复杂,使得测试变得更加困难。需要更多的实验来探索动态分析的真正潜力,并将其与更成熟的静态分析技术进行比较。
5.2.7 图像表示
本节描述了研究人员如何将提取的恶意软件数据转换为图像。有效的图像表示能够清晰地组织数据,保持重要关系,并最小化信息丢失,从而实现准确的特征提取和分类。在这种方法中,像素按照特定的顺序排列,每个像素都放在前一个像素之后,直到达到所需的线宽。随后,下一个像素移动到下一行的开始位置。然而,这种方法忽略了局部性的问题。此外,研究人员还探索了使用各种空间填充曲线(SFCs)来生成灰度图像。空间填充曲线是一种数学构造,能够连续地遍历和填充给定的空间。在恶意软件可视化中,可以利用这些曲线来填充一个N×M维的矩阵,其中每个像素代表从原始恶意软件样本中提取的值。这种方法可以生成样本对应的图像。在参考文献[174]中,O’Shaughnessy等人使用了三种不同的SFC技术:Z-order、Gray-code和Hilbert曲线。同样,在参考文献[241]中进行的的研究中,除了标准的逐行方法外,还使用了wrap-around和H-curve方法。Hashemi等人[98]也采用了wrap-around方法来生成图像。作者在参考文献[24]中的另一项研究利用了网站binvis.io [53]来生成图像。该网站提供了多种表示ASCII可打印字符的方法,通过为每个字符分配不同的颜色,并使用所选的SFC(包括逐行、Z-order和Hilbert)来排列像素。图4展示了文献中最常用的SFC。
下载:下载高分辨率图像(264KB)
下载:下载全尺寸图像
图4. 该图展示了文献中最常用的SFC。逐行方法是生成灰度字节码图像的最常见方式。
在各种研究[43]、[65]、[98]、[183]中,研究人员探讨了这样的假设:可执行文件中的指令顺序不是随机的,而是基于局部性原则的。他们的实验使用了马尔可夫链来生成信息丰富的图像,认识到文件中的每个属性(字节、助记符、操作码等)都受到前一个属性的影响。为了直观地表示文件,可以将字节流中的每个字节视为一个状态,每个元素有256种可能的状态。假设下一个状态只依赖于当前状态,我们可以将字节序列概念化为一个马尔可夫链,即P(si+1|s0,…,si)=P(si+1|si),其中si表示位置i处的属性。公式(1)表示从状态m转移到状态n的概率。
(1) Pm,n = P(n|m) = ∑n=0 to 256 f(m,n)
其中f(m,n)是从状态m转移到状态n的频率。分母∑n=0 to 256 f(m,n)表示从状态m的所有可能转移的频率之和。这种方法可以生成一个256×256维的矩阵。得到的矩阵通常称为马尔可夫图像,它包含了转移概率,并可以直观地表示恶意软件的特性。
研究人员使用了不同的哈希算法来生成图像,从而提取对局部性敏感的信息,并将局部性和可视化数据结合到特征图像中。一种特定的算法“Minhash”可以创建恶意软件样本的简洁视觉摘要或指纹。Minhash [34]是一种用于估计集合之间相似性的著名哈希算法,在文档相似性分析、推荐系统和聚类等多个领域得到了广泛应用。在恶意软件可视化的背景下,我们使用一组操作码或操作码组来表示每个样本,并对其应用Minhash哈希函数。这种方法生成了一个固定大小的图像,可以用于后续的流程步骤。在恶意软件可视化中,研究人员从样本中提取相关属性或特征,如操作码序列、API调用、字节级n-gram或其他适合表示恶意软件文件的方式。接下来,研究人员提取固定长度的连续子序列中的特定元素(即“shingles”),并对结果集应用哈希算法。这一过程最终生成了灰度图像[219]。Charikar等人[44]提出了Simhash作为一种对局部性敏感的哈希方案,主要用于识别相似文本和重复网页。Simhash的思想是在哈希过程中使用舍入算法来保持局部性原则。舍入算法将数值转换为指定的精度或舍入区间。这种做法通过确保输入中附近的值在舍入结果中保持接近,从而保持了数据的邻近性。常见的哈希算法旨在最小化碰撞率。相比之下,Simhash像Minhash一样,专注于生成对于相同输入始终相同的哈希值,有效地在哈希空间中保持输入的相似性。在参考文献[61]、[170]和[65]中,Simhash技术涉及将文档表示为一个具有指定位数的向量。向量中的每个位对应于从文档关键词计算出的哈希值。更具体地说,向量中第n位的值取决于文档中所有关键词的哈希值中第n位为1的个数是否多于第n位为0的个数。
熵是一个源自信息论和统计学的概念[205]。它衡量系统或数据的随机性或不确定性。恶意软件分析专家主要利用它来研究恶意软件作者用来混淆或隐藏其恶意意图的技术。计算熵值涉及将恶意软件二进制文件分割成多个段[75],然后确定每个段的熵值。随后,这些熵值被转换为像素以创建图像表示。另一种方法[248]、[275]和[43]提出使用熵图,其中整个二进制的熵本身就是图像。这种方法利用熵时间序列来捕捉每个文件中的局部判别特征的内容。采用这种方法有助于分类器准确地将样本区分到各自的恶意软件类别中。
研究人员最近开始在恶意软件检测中使用RGB和其他彩色图像,因为与灰度图像相比,彩色图像能够传达更多的纹理信息,从而提高了检测率[65]、[108]、[164]。然而,RGB图像的真正优势在于它们能够在三个颜色通道中结合不同的表示形式。生成RGB图像有两种主要方法。第一种方法使用三个RGB通道来表示三种不同的特征[252],第二种方法直接从恶意软件二进制文件的属性中提取这三个通道[231]。在第一种情况下,我们使用不同的技术生成三个灰度图像,并将它们的输出用作RGB的三个通道[65]、[183]。例如,在参考文献[52]中,作者介绍了一种新的图像变体,称为GEM图像。这是一种结合了灰度矩阵、马尔可夫图像和熵图图像的3通道图像。
作者可以利用动态和静态数据的组合,在生成的图像中更准确地表示恶意软件及其独特特征。另一种方法涉及减少图像尺寸并叠加不同的二进制部分,如参考文献[71]中所述。尽管这种方法不会为特征提取器和分类器提供额外信息,但它可以帮助将图像调整到固定尺寸。在[231]中,研究人员使用颜色映射将灰度图像转换为彩色图像,从而提高了分类器的准确性。此外,研究人员还使用RGB图像来结合从可执行头文件中提取的特定信息。例如,Xiao等人[249]使用不同的颜色突出显示PE部分,提高了分类器的性能。
5.3. 特征处理方法
本节描述了文献中使用的数据预处理阶段。这一阶段包括构建更适合训练和评估模型的更易于管理和信息量更大的数据集。在这里,我们探讨了(i)提取、(ii)选择以及(iii)降低特征维度的技术。表3列出了每篇分析论文中使用的方法。
5.3.1. 特征提取器
本节讨论了通常与机器学习技术结合使用的不同特征提取器。这里介绍的算法提供了一种可解释的方法来从图像中提取有价值的特征并推断出判别特征。在接下来的部分,我们将分析与Gabor基图像分割技术(GIST)、局部二值模式方法(LBP)、尺度不变特征变换(SIFT)、灰度共生矩阵(GLCM)、直方图、神经网络(NN)以及多种技术的集成相关的文献。
Gabor基图像分割技术(GIST)[90]旨在通过分析局部空间频率和方向的空间分布来分割和表示图像。Gabor滤波器模仿人类视觉皮层的功能,由正弦信号组成,可以根据频率和方向检测图像中的纹理变化。这些滤波器作为局部带通滤波器,在空间和频率域中捕捉定位属性。一组具有不同方向和频率的Gabor滤波器确保了空间定位,通过将它们应用于图像来提取精确的特征。Gabor滤波器能够识别出区分恶意软件与良性文件的不同纹理特征,或者区分不同家族的恶意软件,如参考文献[12]、[162]、[167]、[183]、[206]中所述。调整这些滤波器的参数需要仔细小心,选择合适的值可能具有挑战性。此外,由于GIST特征依赖于图像的全局结构,了解该方法的对手可以通过重新排列代码的不同部分来规避检测,如参考文献[82]、[139]中提到的。
在参考文献[54]中,作者通过使用字节图和马尔可夫图将良性PDF样本和恶意PDF样本成功地区分开来。随后,使用关键点描述符(如SIFT(尺度不变特征变换)、Oriented FAST和Rotated BRIEF)以及纹理特征(如LBP(局部二值模式)、Gabor滤波器和局部熵)提取了图像的独特视觉属性。值得注意的是,他们通过使用带有Gabor滤波器的字节图,在随机 forest(RF)分类中取得了99.48%的惊人F1分数。
局部二值模式方法(LBP)[98]、[144]、[161]、[171]、[242]、[247]被广泛用作恶意软件可视化方法中的特征提取器。这种方法通过比较相邻像素并为其分配二进制值(0或1)来生成新的LBP图像,从而得到一个8位的二进制数组。之后,这些数组通过顺时针或逆时针遍历转换为十进制值。最后,这些十进制值存储在LBP图像的相应像素位置。为了计算每个中心像素(LBPc)的LBP值,研究人员使用公式(2)。
(2) LBPc = ∑n=0 to n?1 (L(gn?gc))2/n
其中n是邻居像素的数量,gn和gc分别是邻居像素和中心像素的灰度值。我们使用公式(3)计算L(x),然后组合得到的LBPc值以生成LBP图像。
(3) L(x) = {0 如果 x < 0; 1 如果 x >= 0}
在参考文献[226]中,作者提出了一种基于字节码的恶意软件识别新方法。该方法包括几个步骤,包括使用局部邻域二值模式(LNBP)进行特征提取、特征串联、使用邻域组件分析(NCA)进行特征选择、通过主成分分析(PCA)进行特征降维以及使用线性判别分析进行分类。LNBP特征以其稳定性和抗噪声性而闻名,但仅限于关注局部特征[77]。在参考文献[247]中,研究人员提出了一种利用局部二值模式和PCA来检测Android恶意软件的方法。值得注意的是,他们的方法取得了90%的准确率。
尺度不变特征变换(SIFT)[142]可以提高检测精度。这种方法通过计算八个方向上的梯度大小直方图来提取特征。将图像分割成小块可以生成这些直方图。滑动窗口执行计算,计算每个图像位置的梯度直方图。级联连接函数得到最终的图像特征描述符[141]、[162]、[164]。为了分类Android恶意软件图像,DeepVisDroid [21]使用了四种不同的基于图像的局部特征和三种不同的基于图像的全局特征。这些特征被用来训练一个轻量级的1D卷积神经网络模型。最近,参考文献[127]中的作者将恶意文件转换为灰度图像,以提取局部和全局纹理特征。他们使用SIFT和其他描述符进行局部特征提取,使用GIST等方法进行全局特征提取。作者还开发了一种BoVW算法,通过从灰度图像中选择低维特征来构建局部特征图。这些特征图被组合起来用于训练K-NN、SVM、RF、NB和ExtraTree分类器。灰度共生矩阵(GLCM)是一种流行的从图像中提取纹理信息的方法[211]。提取GLCM特征包括考虑像素之间的距离和方向的空间关系。通过估计具有预定空间关系的灰度对的概率密度函数(通常是四个基本方向中的一个距离)来创建GLCM矩阵。由此,我们计算出表示原始图像的相关统计数据。这些统计方法可能因研究而异。表3总结了在分析初期从恶意软件中提取特征所使用的技术。Karanja等人[115]也利用GLCM从灰度图像中提取特征。具体来说,研究人员只使用了五种提出的纹理特征统计量来提取相关数据。所选特征包括熵、对比度、相关性和角二阶矩(ASM)以及逆差矩(IDM)。参考文献[236]中的作者结合了一阶和基于GLCM的二阶统计纹理特征与集成学习技术来对恶意软件图像进行分类。最近,在参考文献[210]中,作者选择了用前述方法测量的十九个统计量,共得到76个特征。
Haralick纹理[96]使用共生矩阵和对比度、相关性和角矩的方程来评估图像的纹理属性,如粗糙度、平滑度和规则性。参考文献[5]中的作者进行了实验,重点研究使用Haralick特征的全局属性,但现代技术已经超越了这些方法。Unver等人[229]将Android应用程序转换为灰度图像,并使用Haralick纹理和Hu矩在恶意软件分类上实现了超过98%的准确率。Karanja等人[115]提出了一种使用Haralick图像特征和朴素贝叶斯、K-最近邻和随机森林等分类器来对物联网恶意软件进行分类的方法。该方法包括将二进制文件转换为灰度图像,计算每个图像的GLCM,并得出五个Haralick特征。
直方图通过包含多个桶来捕捉图像内的颜色分布,每个桶代表特定强度级别的像素频率[22]。对于灰度图像,直方图构建涉及255个桶,这些桶对应于从0到255的强度值。可以使用对比度受限的自适应直方图均衡算法来增强恶意软件图像中每个区域的局部对比度,从而将重点从识别相似代码转移到识别恶意软件家族内的相似图像区域。这些算法调整图像各区域内的像素强度,有效提高不同区域之间的区分度[273]。VisMal的评估显示了96%的惊人准确率。Kumar等人[124]证明了HOG描述符在从灰度图像中提取纹理统计量方面的有效性。实验突显了HOG描述符的效果,其准确率显著高于Gabor滤波器和LBP分析技术。参考文献[33]中的研究人员试图从内存转储生成RGB图像以捕捉视觉模式。他们使用GIST和HOG描述符创建特征向量,然后使用各种分类器进行分类。值得注意的是,当使用GIST和HOG特征向量时,SMO算法实现了96.39%的惊人准确率。另一种类似的方法如参考文献[57]所述,涉及提取内存转储文件并将其转换为灰度图像,然后使用梯度直方图技术从图像中提取特征。
神经网络(NN)作为基于可视化的恶意软件检测中的特征提取器因其能够自动化恶意软件图像的分析和分类而越来越受欢迎[63]、[231]、[248]。通过在大量恶意软件图像数据集上训练NN,它们可以自动识别表明恶意行为或特征的关键特征。这些特征包括形状、纹理、视觉模式和其他区分恶意软件图像的视觉属性。特别是卷积神经网络能够通过学习空间不变的图案来检测由代码重新分配引起的代码修改[82]。因此,研究人员通常更喜欢使用NN作为特征提取器的简单性和实用性。在研究[249]中,使用了微调的VGG16模型(特别是前五个卷积块)作为图像的特征提取器。二值纹理分析显示了更高的准确率和更低的耗时,使其在处理混淆问题上更加有效。然而,从恶意软件图像中提取复杂纹理特征的计算成本仍然很高[231]。相比之下,参考文献[111]中的作者使用了预训练的VGG16的完整卷积层集(在 fully connected 层之前)。这种选择允许模型利用丰富的特征而不会损失完全连接层中会出现的空间分辨率。研究[262]使用深度残差网络(ResNet)作为主要特征提取模型。ResNet以其深度架构和残差学习机制而闻名,能够有效地捕获恶意软件图像的局部和全局特征。通过增强过程,该网络可以提升检测模型的整体准确率。神经网络进行特征提取的一个显著优点是在提取过程中不需要人为干预或描述。
特征整合。各种特征提取方法可以确保更忠实地表示原始数据。作者尝试使用局部和全局特征提取器来获取有关恶意软件的一般特征,同时不会忽略局部特性。Naeem等人在[162]中设计了一种原始的特征提取器LGMP,通过融合D-SIFT作为局部特征提取器和GIST作为全局特征提取器。他们的测试表明,使用LGMP而不是仅使用局部(增加了5.4%)或仅使用全局(增加了9.2%)特征提取器时,分类器的准确率显著提高。特征整合涉及使用高斯权重平衡局部和全局特征的影响。一些作者还尝试了从不同CNN中提取的特征融合[68]、[80]、[232],显示出比单一CNN的最佳结果更好的改进。在不同CNN之间的特征整合中最常用的技术是简单地连接第一个扁平化层,通常之前已经进行了降维,以使集成扁平化层易于管理。Gibert等人[80]使用不同的生成图像从CNN中提取特征,所有图像都来自同一个二进制文件。Meng等人[153]通过结合这些不同视角的局部和全局信息的深度神经网络模型来整合特征,从而实现对应用程序行为的更全面分析。通过利用多视图向量融合,LensDroid通过捕获本质上不相关的高级语义来增强检测能力。参考文献[260]的作者提出了SAC框架,该框架通过协同建模图像和图数据来整合来自DEX文件的恶意软件特征。它使用面向任务的CNN(IFNeXt)进行局部图像特征处理,以及双通道GCN进行全局字节码结构处理,捕获内容和结构恶意软件特征。Yu等人[264]提出了一种无损特征提取和整合方法,将恶意代码转换为语义上完整的图像。这种方法通过策略性的像素排列和交错编码保留了字节码信息和代码文本相关性,减轻了语义截断。多尺度特征提取模块确保了不同长度样本均匀嵌入到固定大小的特征图中,作为矩阵内的长文本序列捕获局部和全局上下文特征。通过整合这些特征,这种方法克服了传统缩放和裁剪中固有的信息丢失问题。
最近的恶意软件检测进展探索了集成多种视觉模态以提升分类性能。参考文献[111]提出了一种多模态深度学习融合框架,该框架利用灰度图像、熵图和从恶意软件二进制文件生成的simhash图像。使用在每种模态上训练的独立VGG16模型,作者探索了使用加法、平均、最大值和连接等常见操作符进行特征级融合。这项研究强调了融合在恶意软件检测中的有效性以及选择合适的融合操作符对于强大多模态学习的关键作用。
5.3.2 特征选择
参考文献[163]中提到了一种基于编码的技术,用于减少D-SIFT和GIST特征的维度。在局部特征降维阶段,他们使用D-SIFT来识别恶意软件图像中的兴趣点,并从密集网格的补丁中提取每个补丁的128维特征。随后,他们应用了BoF(Bag of Features)模型来进行降维。BoF模型包括多个步骤,包括识别显著的局部点和使用Fisher向量编码创建局部特征字典。他们通过训练高斯混合模型(GMM)来估计D-SIFT特征的Fisher向量,从而实现了Fisher向量编码。此外,他们使用PCA进一步优化结果,将特征向量的维度降低到100。在第二阶段,他们使用GIST特征描述符从恶意软件图像中提取全局特征,并将这些全局特征的维度降低到256。
5.3.3 特征降维
特征降维在基于图像的方法中起着关键作用,特别是在基于图像的恶意软件检测方面。它包括在保留相关信息的同时减少图像数据的维度。本节将探讨基于图像的恶意软件检测方法中的特征降维和选择技术。主成分分析(PCA)[100]是一种统计技术,可以通过降维从图像中提取纹理。当将PCA应用于图像时,它的目标是识别一组正交轴,称为主成分,这些轴有效地表示图像数据中的最高变化。将这两个基本成分视为纹理的代表性模式。第一个主成分捕获最大方差的方向,而后续成分记录逐渐减小方差。参考文献[232]提供了另一个降维示例。作者将PCA应用于他们的集成模型中提取的特征。一旦从微调的ResNet50和VGG16模型中提取出特征,它们分别被进一步减少到2048和6144到615。这两种模型得到的特征向量保留了解释90%数据变化的成分。因此,通过使用这种技术,集成模型的特征向量被压缩为仅815个特征。
Naeem等人[162]在研究中使用PCA来提取通过GIST获得的最相关特征。与Vasan等人[232]的方法类似,作者使用PCA将剩余特征与其他使用替代方法提取的特征合并。这种减少特征数量而不牺牲表示能力的能力使研究人员能够校准实验所需的特征数量,从而简化了不同技术的组合。此外,在Karbab等人的[116]工作中,PCA直接应用于生成的图像,以在特征提取步骤之前降低维度。参考文献[233]中的作者引入了IMCBL,这是一种将恶意软件二进制文件转换为灰度图像并应用截断奇异值分解(SVD)来降低维度的恶意软件分类方法,提高了计算效率同时保留了关键特征。文章[163]介绍了一种基于编码的方法来减少D-SIFT和GIST特征的维度。首先,他们使用D-SIFT识别恶意软件图像中的兴趣点。然后使用BoF模型进行降维,接着使用PCA将特征向量降低到100个维度。在第二阶段,使用GIST从恶意软件图像中提取全局特征。
5.4 分类
在本节中,我们探讨了研究人员为基于可视化的恶意软件检测和分类技术提出的分类模型。分析主要关注当前文献中的两种建模技术:(i) 常规基于ML的方法和 (ii) 基于DL的方法。此外,我们还讨论了与Transformer和注意力模型、模型融合、数据增强和少样本学习相关的工作。表4总结了分类模型和分类阶段探索的方法的最新文献。关于分类模型和分类阶段探究的方法论的最新文献总结。每个条目代表了论文的主要贡献。列出了以下信息:论文参考文献;分类类型是恶意软件检测[D]还是归类到家族[C];分类器类型(例如,[DT]表示决策树,[RF]表示随机森林,[KNN]表示K最近邻,[SVM]表示支持向量机,[CNN]表示卷积神经网络分类器及其特定架构(如果适用),[RNN]表示循环神经网络分类器及其特定架构(如果可用),[Other ML]表示其他机器学习技术,[Other DL]表示其他深度学习技术;数据分割方式,即分配给训练、验证和测试的数据比例,或指明k折交叉验证或留一法;是否考虑了可解释性和解释性问题(Explain.);是否使用了数据增强和特定的架构(Aug);是否探索了对抗性攻击、模糊处理或打包(Adv);是否探索了小样本学习;论文是否考虑了可持续性和概念漂移问题(Sust.);如果使用的模型是分类器集成(Ensemble)。'-'表示该信息在文章中不可用。
年份 分类类型 分类器 数据分割 可解释性 数据增强 对抗性 小样本 可持续性 集成
Nataraj等人 [167] 2011 CKNN k折交叉验证 ? ? ? ? ? ?
Nataraj等人 [168] 2011 CKNN 10折交叉验证 ? ? ? ? ? ?
Han等人 [95] 2013 CS 相似性 ? ? ? ? ?
Kancherla等人 [114] 2013 D SVM 70:30 ? ? ? ? ?
Shahid等人 [204] 2014 C 相似性聚类 ? ? ? ? ?
Sun等人 [220] 2015 D 相似性聚类 70:30 ? ? ? ? ?
Han等人 [94] 2015 数字相似性与熵图 ? ? ? ? ?
Ahmadi等人 [5] 2016 CXGBoost 5折交叉验证 ? ? ? ? ? ?
Pei等人 [181] 2017 D, CDNNs 差异测试 ? ? ? ? ? ?
Fu等人 [75] 2018 CRF, KNN, SVM 90:10 ? ? ? ? ? ?
Yakura等人 [254] 2018 CCNN 5f ? ? ? ? ? ?
Yang等人 [258] 2018 CCNN 50/-/50 ? ? ? ? ? ?
Darus等人 [62] 2018 DKNN, SVM 70:30 ? ? ? ? ? ?
Kumar等人 [125] 2018 DCNN 90:10 ? ? ? ? ? ?
Su等人 [216] 2018 CCNN – ? ? ? ? ? ?
Cui等人 [56] 2018 CNN – ? ? ? ? ? ?
Ni等人 [170] 2018 CKNN, SVM, CNN 80:20 ? ? ? ? ? ?
Shiva等人 [213] 2018 DCNN 10f ? ? ? ? ? ?
Xiao等人 [250] 2019 DCNN 68:12:20 ? ? ? ? ? ?
Vinayakumar等人 [237] 2019 CRF, DT, KNN, SVM, CNN, RNN (LSTM), LightGBM, 定制CNN 10f ? ? ? ? ? ?
Liu等人 [140] 2019 D, CRF, SVM, CNN – ? ? ? ? ? ?
Hsiao等人 [101] 2019 CNN(孪生), KNN – ? ? ? 孪生 ? ?
Gibert等人 [82] 2019 CNN 10f ? ? ? ? ? ?
Khormali等人 [119] 2019 DCNN – ? ? ? ? ? ?
Naeem等人 [162] 2019 CKNN, SVM 10:90,20:80, 30:70, 40:60, 50:50,60:40, 70:30,80:20 ? ? ? ? ?
Liu等人 [141] 2019 CRF, KNN 10f ? ? ? ? ? ?
Akarsh等人 [7] 2019 CNN, RNN (LSTM) 70:30 ? ? ? ? ?
Venkatraman等人 [235] 2019 D, CCNN, RNN (LSTM) 90:10 ? ? ? ? ? ?
Hashemi等人 [98] 2019 DKNN 10f ? ? ? ? ? ?
Baptista等人 [24] 2019 D 自组织增量神经网络 – ? ? ? ? ? ?
Yang等人 [259] 2019 CRF, KNN, 聚类 5f ? ? ? ? ? ?
Chen等人 [45] 2019 DCNN (InceptionV3) – ? ? ? ? ?
Qiao等人 [186] 2019 CCNN (LeNet5) 50:50 ? ? ? ? ?
Liu等人 [139] 2020 DRF, SVM, CNN 10f, 5f ? ? ? ? ? ?
Karanja等人 [115] 2020 D, CRF, KNN – ? ? ? ? ? ?
Xiao等人 [248] 2020 CSVM, CNN 50:50 ? ? ? ? ? ?
Mercaldo等人 [154] 2020 D, CRF, DT, DNN 50:50 ? ? ? ? ? ?
Lekssays等人 [134] 2020 D, CKNN, CNN (3卷积+2密集) – ? ? ? ? ? ?
Naeem等人 [164] 2020 D, CCNN 70:30 ? ? ? ? ? ?
Vasan等人 [232] 2020 CCNN 70:30:? ? ? ? ? ?
VGG16+ ResNet 50
Jain等人 [107] 2020 CCNN, ELM – ? ? ? ? 50 ELM模型
Vasan等人 [231] 2020 微调过的CNN 70:30 ? ? ? ? ? ?
Zhao等人 [272] 2020 CRegion-CNN 70:30 ? ? ? ? ?
Roseline等人 [196] 2020 C Deep RF 80:20:? ? ? ? ? ?
Go等人 [85] 2020 CResNeXt 10f ? ? ? ? ? ?
Verma等人 [236] 2020 CRF 10f/留一法 ? ? ? ? ? ?
Ren等人 [192] 2020 DCNN (Dex-CNN), DexCRNN 80:10:10 ? ? ? ? ?
Vu等人 [241] 2020 CNN, XGBoost 80:10:? ? ? ? ? ?
Gibert等人 [80] 2020 D, CCNN 80:20 ? ? ? ? ? ?
Iadarola等人 [105] 2021 CNN 80:20, 80:20:? ? ? ? ? ? ?
Singh等人 [210] 2021 随机森林, KNN, SVM, CNN – ? ? ? ? ? ?
Dib等人 [68] 2021 CNN, LSTM 10f ? ? ? ? ? ?
Bozkir等人 [33] 2021 D, CRF, DT, SVM, XGBoost 80:20:, 3f ? ? ? ? ? ?
Sun等人 [219] 2021 CNN, RNN – ? ? ? ? ? ?
Darem等人 [61] 2021 DCNN, XGBoost ? ? 混淆检测 ? ? CNN, XGBoost
Pinhero等人 [183] 2021 D, CCNN (VGG3, ResNet50) 70:30 ? ? ? ? ?
Bagane等人 [18] 2021 CNN (LSTM, BiLSTM) 80:20 ? ? ? ? ?
Li等人 [136] 2021 CNN (注意力, SPP) 80:20 ? ? ? ? ? ?
Acharya等人 [3] 2021 CNN (EfficientNet-B1) 75:25 ? ? ? ? ? ?
Sudhakar等人 [218] 2021 CNN (ResNet50) 75:25 ? ? ? ? ? ?
Anandhi等人 [12] 2021 D, CCNN (DenseNet201) 70:30 ? ? 加性噪声 ? ? ?
Xiao等人 [249] 2021 C 线性SVM, CNN (VGG16) 10f ? ? ? ? ?
Wang等人 [243] 2021 CRNN (BiLSTM) 73:20:20, 62:20:20 ? ? ? ? ? ? ?
Jian等人 [108] 2021 DCNN (SEResNet50), RNN (BiLSTM) 80:10:10, 70:15:15, 60:20:20 ? ? ? ? ? ? SEResNet50, BiLSTM
Bouchaib等人 [30] 2021 CNN (VGG16) 50:50 ? ? ? ? ? ?
Zhu等人 [275] 2022 CNN (VGG16, Xception, InceptionV3) 80:20 ? ? ? 孪生 ? ?
Chai等人 [43] 2022 CNN, 最近邻(基于度量,基于ProtoNet建模) – ? ? ? ? ? ?
Dharmalaksana等人 [67] 2022 CCNN – ? ? ? ? ? ?
Tekerek等人 [224] 2022 CNN (DenseNet121) 80:20, 10f ? 循环GAN ? ? ? ?
Bensaoud等人 [28] 2022 D, CCNN 5f ? 循环GAN 混淆 ? ? ?
Wang等人 [242] 2022 基于原型的(非参数)分层K折 ? ? ? ? MLP, RF, XGBoost
O’Shaughnessy等人 [174] 2022 CRF, KNN, SVM 5f ? ? ? ? ? ? ?
Zhong等人 [273] 2022 CNN (3卷积, 3全连接) 10f ? ? ? ? ? ?
Gibert等人 [83] 2022 DXGBoost, GBT 10f ? ? ? ? ? ?
Olorunjube等人 [71] 2022 D, CRF, DT, KNN, SVM, CNN (ResNet50), 额外树分类器, XGBoost, 装袋法, 朴素贝叶斯 – ? ? DGAN ? ? ?
Kumar等人 [126] 2022 随机森林, KNN, SVM, CNN (微调过的VGG16 + FC, VGG19, InceptionV3, ResNet50) 90:10 ? ? ? ? ? ?
Mallik等人 [150] 2022 决策树, KNN, RNN (BiLSTM), 其他深度学习 80:20 旋转平移翻转 ? ? ?
DCNN, BiLSTM Conti等人 [52] 2022 C 浅层CNN 70:30 ? ? ? 孪生 ?
Chaganti等人 [41] 2022 CNN (EfficientNetB1) 70:30 ? ? ? ? ? ?
Pratama等人 [184] 2022 CNN (EfficientNetB7) 70:20 ? ? ? ? ? ?
Paardekooper等人 [175] 2022 CNN (2卷积, 1全连接) 90:10 ? ? ? ? ?
Qiu等人 [187] 2022 CNN (ShuffleNet) 70:30 ? ? ? ? ? ?
Ma等人 [147] 2022 CNN 80:20 ? ? ? ? ? ?
Vinayakumar等人 [190] 2022 DCNN (DenseNet变体, EfficientNet, Inception, MobileNet, ResNet, VGG)他们在Leopard Mobile恶意软件数据集上实现了97.81%的检测准确率,在MalImg数据集上实现了98.47%的准确率。在参考文献[82]中,Gibert等人实现了一个原始的卷积神经网络(CNN),该网络包含三个卷积层,后面跟着一个全连接层。该模型能够高效地对MalImg和BIG2015数据集中的样本进行分类,分别达到了98.48%和97.49%的准确率。最近的研究还整合了双向时间卷积网络(BiTCN),该网络能够双向处理输入序列以捕获上下文依赖性,利用EfficientNet进行特征适应,以及使用孔隙空间金字塔池化(ASPP)进行多尺度特征提取,从而提高了分类准确性。在参考文献[233]中,作者们整合了一个基于随机向量功能神经网络(RVFLNN)的广泛学习系统(BLS),使得模型可以在不重新训练的情况下动态扩展,这使其不同于传统的基于CNN的方法。研究人员使用了1D-CNN [60]、[86]、[97]以及2D-CNN进行恶意软件分类。然而,一些研究人员认为,2D CNN中大量的参数会对训练速度产生不利影响[270]。此外,标准卷积方法需要改进,以便从字节码序列中提取特征,因为必须考虑字节码的序列性质,这决定了连续像素的强度。将这种序列数据表示为2D图像会导致失真并破坏原始序列。此外,2D CNN对于分析顺序结构的数据效果不佳,因为卷积操作考虑的是2D空间中的相邻像素,即使这些像素之间没有内在联系。在参考文献[8]中,研究人员提出了一种新的空间卷积神经网络(Sp-CNN)。与传统使用统一对称核的CNN不同,Sp-CNN引入了沿着高度方向的分区策略,使网络能够专注于不同的输入切片以进行个性化特征提取。这些切片的迭代和独立处理有助于保留恶意软件类别之间的独特特征,并有效捕捉像素之间的细微空间关系。此外,Sp-CNN在之前传统CNN层生成的高维特征上进行处理,确保在整个分类过程中保留关键的空间信息。这种架构在识别和分类多种恶意软件类型方面显示出显著的提升,特别是在数据不平衡的情况下。在参考文献[269]中,作者提出了基于图像的多尺度核恶意软件分类(IMCMK),这是一种卷积神经网络的变体。与利用堆叠的小卷积核层来增加感受野的标准CNN架构不同,IMCMK引入了一个多尺度核(MK)块。这个块结合了大核和小核的优点,使模型能够从恶意软件二进制图像中提取详细和广泛的上下文信息。此外,还整合了改进的挤压-激励(SE)块来捕获通道依赖性,从而增强了特征选择和表示。IMCMK架构还采用了高效的多尺度核融合策略,以减轻与较大核相关的参数开销,从而在保持高分类性能的同时提高计算效率。在参考文献[264]中,作者在CNN框架内使用了空间金字塔池化(SPP)来应对恶意代码表示中固有的输入图像尺寸变化问题。SPP通过在不同空间尺度上执行池化操作来解决这个问题,无论输入图像的尺寸如何都能产生固定大小的输出。这个过程将特征图划分为逐渐细化的子区域,在不同的空间层次上捕获重要的视觉信息。因此,模型获得了更高的鲁棒性,并在特征表示中保持了语义一致性,从而通过确保后续处理阶段的输入尺寸一致来实现更准确的恶意软件家族分类。这对于恶意代码分析特别有利,因为恶意代码的输入尺寸由于代码复杂性而表现出显著的变化。在大多数研究中,CNN基于提取的视觉特征在检测恶意软件方面显示出了高准确率(98-99.9%)。它们能够学习区分良性和恶性的视觉模式,从而得到可靠的检测结果[139]、[224]、[231]。与传统的机器学习技术相比,CNN具有分层表示学习的能力,它们可以在不同层次捕获低级特征以及更抽象和复杂的特征,这使得网络能够逐步学习并在不同抽象层次上结合特征。
循环神经网络(RNN)。研究人员广泛探索了循环神经网络(RNN)在基于图像的恶意软件检测中的应用,利用它们处理序列数据的显著能力。RNN通过逐像素分析或通过提取的特征向量来识别恶意软件的指示模式。它通过内部状态记住过去的输入,在上下文重要的情况下增强模式识别能力。具体来说,像长短期记忆(LSTM)这样的RNN架构通过序列处理有效地捕获图像内的空间依赖性。通过将图像数据转换为向量序列,RNN使网络能够在训练过程中区分和识别恶意软件的指示模式。RNN的一个重要优势在于它们能够捕获重要的序列信息,例如像素排列,从而实现高效的恶意软件检测。迁移学习和微调。在迁移学习领域,预训练的神经网络被用于与其原始训练领域不同的任务。这种方法利用从各种任务中获得的知识,提高了基于可视化的恶意软件检测的效果。与从头开始训练强大而深度的神经网络相比,迁移学习允许研究人员利用现有模型,节省时间和资源。微调是一种额外的技术,用于在恶意软件图像分类的特定领域提高神经网络的性能。这种方法利用预训练模型在更大数据集中获得的知识,并将其适应于较小的、特定于任务的数据集。在微调过程中,通常会冻结预训练模型的早期层,而更新后期层以适应新数据集。迁移学习对于数据有限或不平衡的数据集特别有益,这在恶意软件检测中很常见。研究人员开发了一种折中的方法,结合了从头开始创建卷积神经网络(CNN)和使用已知架构的方法。这种方法从一般的CNN结构开始,然后调整神经网络以达到功能和简单性之间的最佳平衡。这种技术通常用于促进使用简化CNN的迁移学习,如参考文献[65]、[126]中所演示的。Kalash等人[113]使用了一个深度卷积神经网络(D-CNN)模型来对灰度图像格式的恶意软件二进制文件进行分类,图像的尺寸为224x224。他们的研究基于VGG16引入了一个CNN模型架构,在MalImg数据集上达到了98.52%的准确率,在BIG2015数据集上达到了99.97%的准确率。Vasan等人提出了IMCFN [231],这是一种利用预训练的VGG16模型的恶意软件分类算法。随后,他们将他们的解决方案与ResNet50和InceptionV3进行了比较,分别在Malimg恶意软件数据集和IoT-Android移动数据集上达到了98.82%和97.35%的准确率。作者在[199]、[218]中提出了另一种方法并进行了实验,通过修改ResNet50的最后一层,提高了模型的准确率,分别在MalImg恶意软件数据集上达到99.18%,在BIG2015恶意软件数据集上达到98.63%。另一个常用的神经网络原型是2019年开发的EfficientNet系列CNN [222]。这些网络在ImageNet挑战和恶意软件分析领域都优于旧的同类产品,如参考文献[3]、[41]、[184]中所证明的。在参考文献[224]中,研究人员选择了DenseNet CNN系列[102]。基于DenseNet的CNN利用其密集的连接性,使每一层都能访问和利用所有前层的信息。DenseNet促进了特征的重用,减少了梯度消失问题,并提高了整体网络性能。参考文献[6]中的作者使用InceptionV3在BIG15数据集上获得了98.76%的分类准确率。此外,参考文献[45]中的作者也使用InceptionV3进行了实验,并在一个包含10849个恶意软件的自定义数据集上获得了90%的准确率。参考文献[187]中的研究深入探讨了基于ShuffleNet的另一种CNN模型。ShuffleNet将过滤器分组,允许在每一层内进行特征图 shuffle。这种方法促进了跨通道的交互,提高了信息流的效率。定制的ShuffleNet V2模型在Malimg数据集上使用了这种技术,达到了99.03%的准确率。研究[128]介绍了使用深度卷积神经网络(IMCNN)的智能恶意软件分类,这是一种利用预训练CNN模型(VGG16、VGG19、InceptionV3和ResNet50)进行高效恶意软件图像特征提取的新方法。与传统CNN方法不同,IMCNN专门为恶意软件检测定制了这些模型,增强了特征的相关性并降低了复杂性,以实现高效和高性能的分类。这种有针对性的应用突显了预训练CNN架构在恶意软件分析中的适应性。
5.4.3. 变换器和注意力机制
注意力机制、自动编码器和变换器作为关键进展出现,因为它们能够高效地处理和表示信息而引起了极大的兴趣。这些尖端技术引发了新的研究和应用领域,特别是在自然语言处理和计算机视觉等领域。注意力[19]是一种机制,允许模型在处理元素时专注于输入的相关部分。变换器[234]是一种主要应用于NLP领域的神经网络架构,广泛使用注意力机制。它们可以用作黑箱神经网络的可解释性工具,或者被用来生成新的恶意软件分类模型。计算机视觉中的变换器通过自注意力主动为不同图像区域分配重要性,使它们能够捕获复杂的空间结构和扩展的依赖性。通过一次性分析整个输入序列,自注意力使模型能够访问全局上下文。这与传统的顺序模型(如RNN)形成对比,在传统模型中,固定的处理顺序限制了信息流。在参考文献[92]中,作者使用了一个具有多尺度CNN结构的编码器来生成恶意软件图像,并将标记化的恶意软件特征组织成句子。然后利用语言模型作为文本编码器。该模型在MalImg数据集上获得了99.32%的准确率,这是当时的最佳水平。Chen等人[47]使用变换器与lambda层的组合,用更快的单一线性函数替换了原始的注意力机制来计算不同标记之间的潜在关联信息。使用这种方法获得的结果展示了当时最好的性能,在Big2015数据集上达到了99.30%的准确率。另一种方法是由[133]采用的,它使用不同的自动编码器,每个自动编码器都针对特定恶意软件家族进行了专门训练。这种方法的基本概念是,如果输入图像对应于某个特定自动编码器所专长的家族,那么重建误差——即原始图像和重建图像之间的差异——将会最小。研究人员利用这种重建误差观察来确定输入图像所属的家族或类别。最近,在参考文献[4]中,研究人员同时应用了CNN和视觉变换器(ViT)来分析来自PCAP文件中的数据。工作[27]采用了针对恶意软件分类而定制的视觉变换器(ViT)架构,通过将恶意软件二进制文件转换为图像表示并应用基于ViT的模型。该方法涉及配置超参数,如块大小、层数和注意力头,并进行了大量的实验。结果表明,与传统的CNN和经典机器学习模型相比,ViT取得了更好的结果,在Malimg数据集上的准确率为98.38%,同时损失值更低。虽然ViT提供了更高的性能,但它需要显著更多的计算资源和更长的训练时间,这突显了准确性和效率之间的权衡。最近,ViT4Mal [189]的作者提出了一种轻量级的视觉变换器(ViT4Mal)用于恶意软件检测,通过将可执行字节码转换为图像来实现有效的视觉特征提取。该模型通过量化、循环流水线和数组分区技术针对FPGA部署进行了优化。对编码器深度和注意力头的详细分析表明,减少层数可以在保持高准确率(97%)的同时显著降低延迟。实验结果进一步显示,ViT4Mal在检测准确率上达到了94%,并且比原始ViT快了41倍,同时在准确性和效率上都超越了基于CNN的方法。这些发现展示了ViT4Mal在资源受限的边缘设备上进行实时恶意软件检测的潜力。Ashwini等人[15]提出了一种结合了螳螂搜索分割注意力网络(MSSAN)的增强型双视图变换器(EDVT)用于勒索软件检测和分类。该方法包括使用对数-sinh与自适应Box-Cox变换(log-sinhABT)进行预处理,并采用混合白蚁有翅城市委员会进化优化(HTCEO)进行特征选择。该模型在F1分数、召回率和精确度方面达到了99.99%,表明其在识别勒索软件变种方面具有可靠的性能。Wasif等人[245]提出了一种Android恶意软件检测方法,该方法将网络流量数据转换为图像,并应用CNN-ViT混合模型进行分类,在180×180图像分辨率下实现了99.61%的多类准确率。该研究应用了基于图像的网络特征分析,结合数据增强来解决不平衡问题,并提供了与现有方法的比较评估。
5.4.4 模型融合
增强恶意软件可视化系统涉及利用模型融合,集成来自多个模型的特征表示,或组合单个模型做出的预测,如Lad等人[130]、Vasan等人[232]和Jian等人[108]的研究中所探讨的。集成策略,如加权投票、多数投票、堆叠或提升算法,因其能够生成稳健和准确的结果而显得尤为重要。在参考文献[197]中详细介绍的一种独特集成方法是混合堆叠序列流。该方法将级联过程与使用集成树森林的特征学习相结合,在MalImg数据集上实现了98.91%的准确率,在Big2015数据集上实现了96.84%的准确率。如参考文献[40]、[137]中提出的方法,涉及构建多个CNN的集成,然后结合这些网络的输出来解决恶意软件分类问题。在参考文献[130]中,作者旨在探索CNN的特征提取能力并利用SVM的分类能力。所提出的混合CNN + L2-SVM模型实现了99.59%的准确率。Quan Le等人[131]对原始输入图像进行了深度学习处理,并使用通用图像缩放算法将其转换为1D向量。由此产生的CNN-BiLSTM分类模型在BIG2015数据集上实现了98%的准确率。然而,这种方法的一个缺点是通用图像缩放算法的转换时间较长,大约需要191.2秒。最近,在[199]的研究中,研究人员探索了使用VGG家族创建的模型,并引入了一种双模型架构,通过顺序堆叠相同的模型来提高性能。他们利用第一个模型的输出来训练第二个模型,从而在MalImg数据集上实现了100%的准确率。
5.4.5 数据增强
检测模型的有效性在很大程度上依赖于足够数量的训练样本的可用性。不幸的是,这是当今许多数据集的一个常见问题,因为往往没有足够的训练样本。这对深度学习模型来说是一个重大挑战,因为数据的质量和数量对其有效性至关重要。例如,如表2所示,BIG2015数据集存在高度不平衡的情况,Kelihos_ver3恶意软件家族有2942个样本,而Simda恶意软件家族只有42个样本。这种不平衡对训练过程和分类性能都有不利影响。一个简单的解决方案是使用过采样或欠采样。不可避免地,这种技术会丢弃一些初始信息,研究人员将在实现良好分类器和利用所有可能的信息之间进行权衡。不平衡数据集的问题促使作者考虑使用样本中的信息的替代方法。数据增强技术经常用于解决基于图像的恶意软件检测中的不平衡数据集问题。这些技术通过对原始图像应用更广泛的数据变化来生成额外的训练数据。这些变化可以从现有样本信息中生成相似但不同的图像。新图像不会代表野外发现的真实恶意软件,但可以帮助分类器泛化图像中的特征和模式。不同的方法可以实现这些变化,最直接的方法包括空间变换,如旋转、缩放、翻转、颜色调整和噪声注入。MIGAN[207]将图像合成与分类结合使用生成对抗网络(GAN)。作者声称,通过生成高质量的合成图像,他们提高了恶意软件检测能力,解决了类别不平衡问题,并提高了分类准确率。另一个两阶段框架使用自编码器(普通、变分和条件)来重建和增强恶意软件表示,然后应用CNN-GRU混合分类器来解决灰度和RGB IoT数据集中的类别不平衡问题[69]。根据[231]作者的观点,正确实施数据增强方法可以减轻过拟合问题并提高模型的鲁棒性。他们使用了重新缩放和剪切等技术,在MalImg数据集上相对于没有数据增强时提高了1.01%的准确率。在他们的工作中,如[30]所讨论的,作者使用了合成少数样本过采样技术(SMOTE),该技术基于K少数类最近邻模型的原理[31]。这种方法为样本较少的家族生成额外的图像,同时减少样本较多的家族的样本大小,从而解决数据集平衡问题。
当标记数据稀缺且知识提取至关重要时,无监督学习变得越来越重要。自编码器利用数据压缩算法的原理,在压缩特征集中捕获原始数据的核心特征。与传统神经网络不同,自编码器旨在使用较少的数据近似输入,而无需显式的输入/输出对或监督。这种自主方法有效地解决了学习过程中的数据集大小问题。D’Angelo等人[70]将应用程序调用的API序列转换为称为API图像的稀疏图像状矩阵。他们利用自编码器从这些图像中提取最具信息量的特征,然后将提取的特征呈现给基于人工神经网络(ANN)的分类器进行检测。他们在使用Malgenome和contagio移动数据集的样本创建的定制数据集上获得了0.95的准确率。另一种方法涉及使用变分自编码器(VAE)[122],它由编码器和解码器结构组成。虽然自编码器主要关注数据压缩和编码,但VAE强调通过其编码器估计输入数据的概率分布来创建潜在向量。特别是,VAE作为一个统计概率分布模型,学习了数据集的分布,并促进了新数据样本的生成。这种能力使得使用解码器生成新的数据样本成为可能。类似地,条件变分自编码器(CVAE)[214]遵循与VAE相同的结构和目标。然而,与VAE不同的是,CVAE在学习过程中结合了条件信息和输入数据。在参考文献[230]中,作者引入了一种注意力机制来选择性地评估VAE中的权重,有助于在潜在空间中获取关键特征。此外,他们集成了一个轻量级CNN来捕获低级特征,确保特征的多样化表示。他们在MalImg数据集上使用随机森林获得了99.40%的准确率。另一种解决方案是利用生成对抗网络(GANs)[87],它由生成器和判别器神经网络组成。Y. Lu和J. Li采用了基于卷积神经网络的DCGAN[143]方法,使得准确率提高了6%。使用GAN生成的样本,他们训练了一个18层深度残差网络作为恶意软件分类器。训练过程包括多个卷积转置层,为每个类别生成了2250个合成样本。深度残差网络在所有其他指标上获得了84%的总体平均测试准确率,对于样本量较大的类别性能有所提升。研究人员在参考文献[224]中使用了循环GAN来生成新颖的训练样本。这个GAN学习了输入图像和输出图像之间的独特特征,利用这些特征图执行图像到图像的转换并创建新样本。这种方法旨在生成与真实恶意软件图像非常相似的图像。用这种看起来真实的图像增强数据集可以显著促进更好的分类器的开发。然而,仍然需要在未见过的测试样本上严格测试模型,以确保它不会错误地泛化依赖于实际恶意软件中不存在的特征。在Burks等人[37]的相关研究中,研究人员比较了VAE模型和GAN模型,并使用了ResNet18分类器。在MalImg数据集上,使用GAN使性能提高了6%,而结合VAE生成的样本则提高了2%。基于这些结果,研究人员报告称,使用GAN生成人工恶意软件数据比使用VAE进行基于深度学习的恶意软件分类更有效。
5.4.6 少样本学习
少样本学习(FSL)[73]是一种机器学习技术,使模型能够在每个类别只有有限数量标记示例的情况下识别和泛化到新类别。几种少样本学习(FSL)模型采用了元学习框架。该框架使用涵盖不同任务的迷你批次不断更新模型。这些任务是根据训练集的特征从一个潜在任务分布中抽取的。因此,模型获得了广泛和先进的知识,可以普遍应用于所有任务,从而在各个迷你批次中进行高效分类。在少样本学习(FSL)中选择损失函数非常重要,因为它指导模型从有限的示例集中进行泛化。N-way-K-shot分类任务是一个常见的考虑,旨在准确将示例分类到N个不同的类别中。挑战在于每个类别只有K个标记示例,如Hsiao等人[101]和Barros等人[26]的工作中所讨论的。不同恶意软件家族之间的不平衡数据分布显著影响了少样本学习方法的有效性和泛化能力[20]。研究人员提出了使用孪生神经网络来解决这一挑战的解决方案。孪生网络由两个共享权重的相同网络组成,旨在将恶意软件实例嵌入到连续的向量空间中。该网络在样本对上进行训练,将同一家族的实例视为正面实例,将不同家族的实例视为负面实例。由孪生网络训练得到的特征提取器随后可以链接到分类器以预测类别标签。Hsiao在[101]中使用孪生神经网络对恶意软件图像进行分类,在数据预处理过程中使用了平均哈希和恶意软件可视化等技术。同样,在[20]中,建议使用孪生神经网络进行Android恶意软件分类,将孪生神经网络连接到多层感知器以对生成的嵌入进行分类。在[195]中的另一种方法涉及从恶意软件的网络流量数据生成灰度图像,并实现基于原型的少样本学习模型。研究[10]中使用的孪生网络特别采用了共享权重架构,其中两个相同的子网络处理图像对:一个用于原始恶意软件图像,另一个用于使用快速梯度符号方法(FGSM)创建的其对抗版本。这种设计允许网络为两个图像学习一致的特征嵌入,从而计算出量化相似程度的相似性得分。
5.5 评估
本节提供了对该领域使用的评估方法的全面分析,特别关注不同研究小组获得的结果的可比性。我们介绍了研究人员实现模型时必须做出的不同软件选择,以及在向科学界展示结果时如何考虑这些选择。最后,我们讨论了论文中常见的指标及其在评判模型时的有效性。
5.5.1 软件
机器学习可以从大型复杂数据集中发现模式和洞察,这些模式和洞察可能难以或不可能被人类识别。从零开始实现机器学习算法可能是一项具有挑战性和耗时的任务。库提供了预实现的算法、工具和功能,简化了模型的开发和部署。在选择合适的机器学习库时非常重要,无论是在模型实施过程中还是评估结果时。即使使用相同的算法,不同库中的后端实现也可能存在差异,从而导致输出的不同,这可能会显著影响整体模型评估指标[78]、[215]。在接下来的段落中,我们将介绍在该领域研究人员经常使用的流行Python库。一些工具和库对于面向可视化的恶意软件检测和机器学习研究至关重要。OpenCV4和Python Imaging Library(PIL)[228]是功能强大的图像处理库,支持诸如图像加载、变换、增强、特征提取、可视化和图像比较等基本任务,同时还能与机器学习框架无缝集成。Scikit-learn[180]提供了多种专注于简洁性和可读性的机器学习算法,有助于快速原型设计和模型验证。PyTorch[178]以其动态计算图和模块化设计而闻名,为实现尖端的深度学习模型提供了灵活性;而TensorFlow[1]凭借其可扩展的架构和高效的计算图,非常适合构建和部署复杂的机器学习模型。Keras[51]作为运行在TensorFlow之上的高级API,通过用户友好的界面进一步简化了神经网络的开发。对于数据可视化,Matplotlib[104]不可或缺,它支持从基本图表到复杂3D视觉的各种绘图样式。此外,AVClass[129]通过聚合防病毒标签来辅助自动化恶意软件分类,提供关于恶意软件分类的一致且有意义的见解。
硬件设置对于评估机器学习和深度学习模型至关重要,因为计算资源直接影响训练速度、模型可扩展性和可复现性。然而,超过40%的研究没有提供详细的硬件规格。
5.5.2. 评估模型时常用的指标包括:
- **准确性(Accuracy)**:这是一种用来评估分类模型整体性能的指标,表示正确分类实例占总实例的比例。尽管由于其简单性而被广泛使用,但在处理不平衡的数据集时,准确性可能无法提供可靠的度量。计算准确性的公式如下:
$$ Accuracy = \frac{TP + TN}{TP + TN + FP + FN} $$
- **精确度(Precision)**:它评估被预测为正类的实例中有多少实际上是正类。这在假阳性具有重大后果的场景中尤为重要,因为它强调了对正类预测的可靠性。精确度计算为真阳性预测数与所有预测为正类的实例总数之比。
$$ Precision = \frac{TP}{TP + FP} $$
- **召回率(Recall)**:也称为敏感性或真阳性率,它衡量分类器识别数据集中所有相关正类的能力。它反映了模型最小化假阴性的能力。召回率定义为真阳性预测数与实际正类实例总数之比:
$$ Recall = \frac{TP}{TP + FN} $$
- **F1分数(F1-Score)**:这个指标将精确度和召回率结合成一个值,提供了一个平衡的分类器性能度量。F1分数计算为精确度和召回率的调和平均值。
$$ F1-Score = \frac{2 \times Precision \times Recall}{Precision + Recall} $$
- **马修斯相关系数(Matthews Correlation Coefficient,MCC)**:MCC考虑了混淆矩阵中的所有值,提供了对模型性能的更全面评估。
$$ MCC = \frac{TP \times TN}{FP \times FN} $$
- **雅卡德指数(Jaccard Index,JI)**:它通过计算预测类别和实际类别的交集与并集的比率来衡量它们之间的相似性,指示预测标签与实际标签的匹配程度。
分类器的性能通常用作评估预测质量的补充指标。
- **混淆矩阵(Confusion Matrix)**:混淆矩阵是一个表格,用于通过比较预测标签和实际标签来评估分类器的性能。它包括四个关键组成部分:真阳性(True Positives)、真阴性(True Negatives)、假阳性(False Positives)和假阴性(False Negatives)。这个矩阵提供了模型预测结果的全面视图,并是衍生出准确性、精确度和召回率等指标的基础。
- **接收者操作特征曲线(Receiver Operating Characteristic,ROC Curve)**:ROC曲线是不同鉴别阈值下分类器性能的图形表示。它在不同的阈值设置下绘制了真阳性率(Recall)与假阳性率(1 - Specificity)。曲线显示了真阳性率和假阳性率之间的权衡,ROC曲线下的面积(AUC)是分类器性能的总结性度量。较大的AUC值表示更好的分类性能。这些评估方法也适用于多类分类挑战,例如通过One-vs-All或One-vs-One方法解决的问题。这两种方法都可以通过ROC曲线来评估多类分类器,但需要将多类问题转化为多个二元分类任务。
- **资源消耗测量**:此外,一些研究人员还重视他们提出的模型的有效性。他们提供了诸如训练时间、分类时间和CPU使用量等指标,以突出高性能模型所消耗的时间和资源,展示其优势和劣势。为了全面评估模型,提供训练和测试所使用的硬件和软件设置的背景信息是必要的。仅仅评估准确性并不能提供全面的评估。因此,考虑精确度、召回率和F1分数作为指标对于彻底评估至关重要。此外,混淆矩阵有助于识别模型在特定类别中如何错误分类样本,从而立即了解分类器的区分行为。
表5总结了每项研究使用的评估指标,以评估各自的恶意软件检测或分类模型。每条记录列出了相关论文的贡献。列包括:论文参考(Ref.);研究中使用的数据集大小;报告的分类准确性(Accuracy);实现的可用性或通过公共仓库(Github)提供的源代码;以及任何其他报告的性能指标(Other Metrics)。破折号(–)表示相应信息不可用或在原始论文中未指定。
**参考文献列表**省略了部分具体研究的详细内容,因为这超出了本文的范围。根据对手对目标模型的了解程度,可以将攻击者分为以下几类:(i) 白盒攻击,(ii) 黑盒攻击,和 (iii) 灰盒攻击。白盒攻击需要完全访问模型。在黑盒攻击中,攻击者对目标机器学习模型的内部参数或架构知之甚少或完全不了解。在灰盒攻击中,攻击者对模型的了解有限,包括架构、训练数据和梯度等信息。对抗性样本(AE)是指从原始数据集中修改而来的样本,经过微妙的设计,以欺骗基于机器学习的恶意软件检测器[221]。研究人员通常将恶意软件对抗性攻击分为两类:(a) 问题域(二进制级别)攻击和 (b) 特征域(图像或特征级别)攻击[138],[198]。问题域攻击修改恶意软件本身(例如,直接修改PE或APK),同时保持程序的恶意语义和运行时行为[182]。有效的、保留功能的编辑包括添加良性部分或资源[217],在空闲区域插入NOP指令或填充[79],导入良性API[267],重新排序非必要部分[9],或更改元数据(如Android清单条目[48])。尽管这些攻击可能会威胁到已部署的检测器,但它们受到文件格式限制、完整性检查和运行时语义的限制。因此,它们需要精确的工程设计和明确的功能验证,例如沙箱执行。特征域攻击则操纵模型输入或派生特征向量(例如,对灰度或RGB恶意软件图像进行像素扰动,或直接修改提取的特征),通常使用基于梯度的方法,如FGSM [88]、DeepFool [158]等。这类扰动是探索决策边界和进行对抗性训练的有效工具,但除非提供明确的、保留语义的映射回二进制文件,否则无法生成可运行的恶意软件。实际上,简单的图像扰动通常会破坏二进制结构,因此仅作为分类器弱点的特征域代理,而不是可部署的问题域攻击。对抗性图像xadv是使用公式(11)生成的。(11)xadv=xor+δ,其中δ是对原始图像xorg应用的一个小扰动。研究人员使用了多种方法来创建对抗性恶意软件图像,包括对抗性扰动[244],这些方法涉及精心设计的微妙且往往难以察觉的修改,以欺骗图像分类算法。基于梯度的技术利用梯度来生成对抗性样本,采用的方法如快速梯度符号方法(FGSM)[88]。生成对抗网络(GANs)也训练生成逼真、具有误导性的图像的模型。针对性的对抗性攻击旨在影响模型以预测特定目标类别。这些对抗性样本是通过巧妙地修改数据来引导模型预测所需的目标类别。相反,非针对性的对抗性攻击追求更广泛的目标,即导致误分类,而不局限于特定目标类别。例如,它们可能会创建一个函数F,该函数以某种方式修改输入X′,使模型M将X′误分类为除其原始类别以外的任何类别。这里的挑战是确保X和X′之间的差异对人类观察者来说是不可察觉的。相比之下,针对性攻击试图使模型M偏向于特定目标类别Y。攻击者设计了函数F来生成任何正常输入的修改版本,促使M预测类别Y。在参考文献[140]中,Liu等人引入了一种称为ATMPA的框架,这是第一个针对基于可视化的恶意软件检测器的白盒对抗性攻击方法。ATMPA首先将恶意软件样本转换为表示其二进制纹理的灰度图像,然后使用FGSM和C&W技术产生的微妙扰动来修改相关的对抗性样本。然而,ATMPA的一个显著局限性是,生成的对抗性灰度图像破坏了原始恶意软件的结构,使其不适合在实际场景中用于PE恶意软件检测。Khormali等人引入了COPYCAT [119],这是一种对抗性攻击,它利用现有的通用对抗性攻击(例如FGSM、C&W、DeepFool、PGD等),类似于针对使用CNN的基于可视化的恶意软件检测器的ATMPA。相反,COPYCAT采取了一种不同的方法,即将对抗性图像附加到原始恶意软件图像的末尾,而不是直接将其集成进去。相比之下,Park等人在参考文献[177]中提出了一种替代的对抗性攻击技术,该技术使用现有的现成对抗性攻击生成恶意软件的对抗性图像。随后,对抗性恶意软件对齐混淆(AMAO)算法向原始可执行恶意软件中注入最少的NOP指令。这一过程旨在使可执行文件与之前生成的对抗性图像对齐,最终规避基于可视化的恶意软件检测器。作者介绍了AMGmal [266],这是一种自适应掩码引导的对抗性攻击,旨在以最小的扰动程度规避恶意软件检测,同时保留恶意软件的功能。他们通过利用GradCAM++进行显著性检测来识别恶意软件二进制文件中的关键字节,并仅修改PE格式中的空闲区域来实现这一点。该方法采用三种自适应掩码转换策略——膨胀、腐蚀和启发式——以平衡规避效果和扰动控制。实验结果显示,AMGmal在Malimg上的扰动从3.34%降低到0.90%,在SOREL-20 M上从2.32%降低到0.73%,实现了68.09%和64.75%的规避率。该方法确保了功能保留和对其他攻击模型的适应性,但依赖于空闲区域的可用性和准确的显著性检测。他们建议提高显著性精度,探索黑盒攻击,并开发强大、动态和基于行为的检测技术来应对未来的恶意软件规避。参考文献[111]的作者利用生成对抗网络(GANs)来提高他们的恶意软件检测模型对抗攻击的鲁棒性。这一过程涉及使用生成网络对原始恶意软件图像进行扰动,以生成与其非常相似的对抗性样本,而判别器网络学习区分真实样本和对抗性样本。然后将这些生成的对抗性样本与原始图像一起纳入训练数据集中,利用相似性度量(结构相似性指数测量)来确保它们与原始图像的相似性。这种对抗性重新训练增强了模型正确分类合法和受扰动图像的能力,从而提高了其对攻击的抵抗力,这一点从重新训练后的热图中的激活模式集中可以看出。在参考文献[17]中,作者使用高斯和盐与胡椒噪声扰动评估了深度学习模型在白盒对抗性攻击下的表现。这些模型在MalImg上的准确率略有下降(4.1%)和BIG2015上的准确率下降(11.9%),但由于数据不平衡,Malhub数据集上的性能急剧下降(高达98.5%)。这些结果强调了即使是简单的对抗性噪声也会显著影响检测的可靠性,尤其是在数据不平衡的情况下,这突显了将对抗性鲁棒性纳入恶意软件检测系统的重要性。研究[10]使用FGSM进行对抗性训练,以提高FASNet模型对抗恶意攻击的鲁棒性。对抗性图像是通过向原始恶意软件图像添加精心计算的扰动来生成的,使其难以正确分类。随着模型的训练,它学会了区分原始图像和对抗性图像,从而增强了其处理故意误导输入的能力。这种暴露确保了模型能够准确区分良性样本和对抗性样本,从而增强了其在真实环境中的对抗性。为了进行严格的鲁棒性评估,作者必须明确说明攻击是在特征域还是在问题域中进行的,并且必须证明任何声称针对PE或APK工具的问题域攻击的功能保留。功能保留要求在沙箱或等效环境中成功执行并保留核心恶意行为。特征域实验对于压力测试模型和对抗性训练仍然有价值,但除非作者提供了到问题域的明确、保留语义的映射,否则不应将其视为实用的、可部署的攻击。针对模型的攻击。机器学习(ML)通过能够识别已知和新的威胁,增强了恶意软件检测的能力,同时也打开了新的攻击面。对手越来越多地利用这些漏洞,通过复杂的技术来破坏和操纵基于ML的检测系统。最近的工作[135]提出了一种针对基于ML的Android恶意软件检测器的新后门攻击,揭示了这些系统中的关键漏洞。与传统的对抗性攻击不同,他们的方法无需访问训练数据,从而增强了其真实性和威胁级别。作者将包含隐蔽的、基于触发的扰动的对抗性Android应用程序注入训练流程,这些扰动是通过遗传算法选择的。这些样本被错误地标记为良性,并在APK级别进行修改以保持功能的同时逃避检测。在四种著名的检测器Drebin、MaMaDroid、DroidCat和DroidAPIMiner上进行的评估显示,攻击的规避率高达99%,对整体模型准确性的影响最小。该研究指出特征依赖性是一个限制,并强调了通过改进特征选择和标签来增强防御的必要性。另一个方向的努力是[261]中提出的Jigsaw Puzzle (JP)攻击,它通过选择性针对特定恶意软件家族来提高后门策略的隐蔽性。与传统攻击不同,JP仅在独特的触发器与攻击者恶意软件的潜在特征对齐时才激活。作者在没有控制训练或标签的干净标签环境中设计攻击,增强了真实感。JP在攻击者拥有的样本上实现了高规避率,同时保持了准确性并保持了低误报率。在大型Android数据集上的评估显示,JP通过违反MNTD的广泛后门假设来规避高级防御。虽然该研究仅关注Android恶意软件,并在家族间使用固定的超参数,但它强调了开发适应性防御的紧迫性,并呼吁进一步研究,以将选择性后门策略推广到更广泛的分类场景。在[268]中,作者提出了一个利用第三方众包威胁情报的框架,允许对手在不改变标签的情况下注入恶意数据。他们在未使用的PE头文件字节中嵌入通用的对抗性触发器,保持功能的同时操纵预测。使用启发式搜索,他们设计了将恶意软件错误分类为良性的触发器。实验显示高攻击成功率和防御规避率,对干净样本的准确率影响最小。尽管该方法依赖于软标签和固定区域,但它暴露了静态检测系统的弱点。该研究强调了针对样本特定触发器、适应动态检测器以及针对干净标签后门攻击的更强防御的研究需求。在[201]中,作者强调安全供应商广泛使用众包威胁情报为将恶意数据注入训练流程提供了实际途径。他们展示了基于特征的恶意软件分类器的脆弱性,并提出了一种模型无关的、可解释的人工智能方法,使用SHAP通过有影响力的特征嵌入隐蔽后门。该方法在多样化的数据集和模型上实现了高攻击成功率,但由于良性样本的多样性而难以检测。该研究强调了在对抗性情境下解释性AI的双重用途风险,假设知道受害模型特征空间的知识,并展示了数据集间的变异性。它呼吁研究通用攻击和强大防御,特别是针对混合检测系统中的隐蔽干净标签威胁。6. 可解释性本节重点介绍了用于检测基于图像的恶意软件的可解释性技术的重要领域。可解释性在ML中具有重要意义,解决了自动化决策在医疗保健、金融和自动驾驶系统等不同领域中的清晰性和责任需求[152]。像GDPR第22条这样的法规强调了个人理解自动化决策背后的逻辑和影响的权利,推动了透明度的要求[240]。在网络安全中,这种透明度是不可或缺的,因为安全系统内的模糊性可能导致严重的后果。理解这些系统决策背后的“原因”对于防止漏洞和恶意活动至关重要。虽然一些机器学习模型自然能够解释其输出,但神经网络——一种普遍的模型类别——缺乏内在的透明度。这种模糊性创造了需要使这些模型更易于理解的方法。这不仅关乎信任和公平性,还关乎这些系统的道德使用。参考文献[255]中的研究人员应用了关注分类关键区域的CNN,有助于提取属于恶意软件家族的独特字节序列。即使没有先验知识,这种方法也为人类分析师提供了重要的洞察。此外,检查属于同一家族的恶意软件样本之间的注意力图中的连接有助于分析师确定特定于目标恶意软件家族的特定位置。在他们的工作[110]中,作者研究了Vision Transformer (ViT)如何利用其优势,提供对恶意软件图像中复杂模式的稳健理解。在检测过程中生成的注意力图谱能够识别出关键元素,如类别名称和方法名称。实际数据集验证显示,该方法的恶意软件检测准确率为80.27%。此外,他们还计算了一个“可解释性得分”[246],超过了Drebin、LIME和XMal等其他可解释的机器学习(ML)方法。这凸显了该方法在网络安全领域中促进可解释人工智能发展的潜力。文献[105]的作者提出了一种用于在Android环境中检测恶意软件的可解释方法。他们采用了Grad-CAM算法来辅助模型的可视化调试,并深入了解在预测Android应用程序图像的恶意性时哪些特定区域受到了关注。Hamad等人在参考文献[160]中开发了一个预训练的Inception-v3迁移学习模型来分析物联网(IoT)设备中的恶意软件。他们使用Grad-CAM通过累积热图生成可视化解释,从而揭示了CNN模型所学习的特征。同时,t-SNE也被用来评估所提出的CNN模型中的特征密度。在参考文献[46]中,作者利用LIME为恶意软件图像生成了超级像素(像素块)图。文献[137]提出了一种使用八个基于CNN的预训练模型组成的集成方法,并通过利用这些解释结果来提高检测准确性。此外,文献[74]的作者指出,可解释的AI模型能够抵抗对抗性攻击。他们强调了这些模型通过使用Shapley加性解释(SHAP)为被扰动样本生成独特解释的能力,从而在检测对抗性输入或样本方面具有潜力。他们为深度神经网络分类器的内部层生成了SHAP签名,帮助评估特征在区分正常输入和对抗性输入时的相关性和重要性。文献[111]的作者使用SHAP来归因于模型预测的各个特征贡献,有助于识别对结果有关键影响的因素。Grad-CAM生成热图以突出显示重要的图像区域,表明哪些区域对分类影响最大。t-SNE则将高维数据可视化到二维平面上,以便检查不同恶意软件家族之间的簇和模式。
解释质量的定量评估至关重要。Fidelity [93]、稳定性 [72] 和鲁棒性 [72] 是用于评估解释质量的三个成熟指标。Fidelity 评估单个解释的准确性,而鲁棒性则量化来自不同解释之间的差异。稳定性则评估相同解释方法在相同模型上的相似性。
研究人员通过使用Grad-CAM、LIME、SHAP等显著性方法和归因方法,付出了大量努力来突出影响分类器输出的图像区域,但这些方法对于恶意软件分析的洞察力有限,除非被突出的像素与程序语义相关联。由于这些方法作用于输入表示,它们只能揭示模型关注“在哪里”,而不能揭示“哪些”语义特征(如可疑的API调用、权限或字节模式)对决策产生了影响。这一限制源于基于图像的流程,这些流程通过数据集特定的规则(如图像宽度、填充、多通道编码和熵变换)将二进制字节转换为像素。因此,仅凭显著性图可能会误导分析师理解模型的真实输出原因。为了使可视化解释具有实际操作性,我们建议报告精确的字节到像素的映射,以便将突出显示的像素确定为具体的字节范围和文件偏移量,并将这些字节范围与反汇编或更高级的语义标签关联起来,并与显著性图一起呈现。通过问题域或动态检查(如保持功能的字节级扰动或沙箱执行)来正确验证所声称的归因,以确认行为是否影响模型输出。最后,使用SHAP或LIME等特征级解释器来补充图像级归因,以增强模型解释在恶意软件分析中的准确性和实用性。
7. 应用和实际部署场景
基于可视化的恶意软件检测已经在多种平台上得到应用,包括Windows、Android以及智能工厂和自动驾驶车辆等IoT环境[160]、[179]、[185]、[189]。这些方法通常将二进制或行为数据转换为灰度图像,然后使用卷积神经网络(CNN)进行分类。最近的研究表明,将基于ML的图像分析直接嵌入到IoT和车辆平台中可以实现低延迟的恶意软件检测。例如,Patel等人[179]持续监控自动驾驶车辆的网络流量,将恶意软件二进制文件转换为灰度图像,并应用ResNet50V2 CNN进行分类。在一个智能工厂的IIoT案例中,Kim和Lee部署了一个三层边缘/云架构(设备上、边缘服务器和云),在恶意软件的可视化图像上运行CNN,达到了98.9%的准确率。Prathiba等人[185]采用了一种互补的方法,利用区块链对可信的车辆节点进行标记:车载传感器检测恶意代码并隔离受感染的车辆,只有经过验证的车辆ID才会被记录在链上。这种基于区块链的方案实现了0.99的F1 malicious software检测准确率。ViT4Mal [189]展示了在Xilinx FPGA上部分部署轻量级视觉变换器,实现了实时恶意软件检测,具有最小的延迟和高准确率,尽管解码器执行仍然卸载到主机CPU上。实际上,这些系统涵盖了Windows可执行程序、Android应用程序和通用IoT设备,利用CNN进行二进制到图像的转换,并与SOC或SIEM基础设施集成。区块链日志和设备上的推理增强了信任度和隐私性,但实际部署仍需解决跨设备可扩展性、异构恶意软件数据集以及深度模型可解释性等问题。
8. 恶意软件可视化方法的横断面分析
在本节中,我们使用十个定义的评估维度系统地分析和比较了所调查研究的实验方法和评估实践。首先介绍表6,该表汇总了所审查研究的报告性能、资源成本、对混淆的鲁棒性、逃避能力、可扩展性、可解释性和零日漏洞检测能力。接下来,我们使用雷达图来量化可重复性、可解释性和鲁棒性。我们还使用条形图来说明论文类别的分布,包括以性能为导向的、以安全为重点的以及现代或高级的方法。最后,我们展示了该领域的演变时间线,并引导读者了解所提出的流程,同时指出每一步的研究空白和建议。
表6. 报告恶意软件检测或分类模型实验结果和性能指标的研究的全面总结。每个条目列出了相应论文的贡献。列包括:论文参考文献(Ref.);报告的分类准确率(Accuracy);所需的计算资源或时间(Computational Cost);对打包和混淆的抵抗能力(Robustness to Packing/Obfuscation);识别出的弱点或攻击面(Vulnerability);对抗逃避尝试的防御能力(Evasion Resistance);扩展到大型数据集和实际环境的能力(Scalability);对特定真实信息的依赖性(Ground-Truth Dependence);所需的计算基础设施(Hardware Requirements);是否存在可解释性方法(Explain.);以及零日检测能力(Zero-day Detection)。破折号(–)表示相应信息在原始研究中未报告或未具体说明。没有进行大规模的可扩展性分析。所有方法均为完全监督学习。
- 使用的硬件:
- GeForce GTX 1080 Ti(12 GB)GPU,Intel Core i7-4790 CPU(10 GB RAM)
- 不属于零日漏洞相关的攻击方式
- 相关研究:
- Jain等人 [107]:CNN模型准确率为96.3%,ELM集成模型准确率为97.7%;ELM模型的训练时间极短;仅占单层CNN模型训练时间的约2%(以小时计);数据集存在严重不平衡现象(最大类别数量为2949,最小类别数量为80),这可能导致偏见。
- Vasan等人 [231]:CNN模型准确率为97.38%至98.02%(使用Malimg和BODMAS方法);未报告具体训练时间;数据集中部分类别样本数量非常少(小于100个)。
- Zhao等人 [272]:通过CNN模型准确率为92.8%;训练时间为85分钟(使用了改进后的模型);未报告每个样本的处理成本;该方法声称对通过纹理映射进行的混淆攻击具有鲁棒性,但未进行相关测试;研究仅涵盖了6个类别,多样性有限;不同部分之间的纹理相似性可能导致模型定位错误。
- Roseline等人 [196]:使用RTX 2080Ti和CUDA 9.0以及Caffe框架;在Malimg数据集上的准确率为98.65%,在BIG2015数据集上的准确率为97.20%,在MaleVis数据集上的准确率为97.43%;训练时间分别为4165秒、2496秒和8974秒;该方法未使用GPU,且训练速度优于传统的CNN模型;在BIG2015数据集上的混淆攻击测试中表现良好。
- Go等人 [85]:使用CPU进行训练,准确率达到98.32%(原始Malimg数据集)和98.86%(改进后的Malimg数据集);使用了ResNeXt-50(4.2×10^9 FLOPs)、ResNet-50(4.1×10^9 FLOPs)和Inception-v4(4.5×10^9 FLOPs)模型;声称该方法能够通过可视化手段处理多态性和变形性恶意软件,但未进行相关测试。
- Verma等人 [236]:使用CPU进行训练,Malimg数据集上的准确率为98.58%,Dataset-2数据集上的准确率为98.11%;特征维度为35;训练时间非常短(分别为37毫秒和0.01秒);该方法能够快速处理UPX格式打包的恶意软件以及加密后的Allaple变种,准确率达到98%至100%;但对于未知类别的恶意软件,测试结果不佳;视觉上相似的类别容易引起分类错误;未进行规避攻击测试;由于使用了低维特征,该方法具有较高的可扩展性。
- Ren等人 [192]:使用DexCNN和DexCRNN模型,准确率分别为93.4%至95.8%;训练时间分别为约2小时和约14小时;检测时间为每个APK文件0.1至0.2秒;该方法声称由于采用了字节码级别学习机制而具有鲁棒性,但未进行实证评估;仅支持二进制代码检测,未进行类别级别的分析;存在大量误报。
- Vu等人 [241]:使用XGBoost和CNN模型,准确率分别为87.07%至87.67%(最佳组合为HIT + Hilbert方法);IG成本方面,HIT + Hilbert方法的训练/检测时间分别为1.62秒和10.43秒;数据集包含经过混淆处理的恶意软件;HIT方法使用了熵编码技术来检测打包部分。
- Gibert等人 [80]:准确率为0.9975,宏观F1分数为0.9954(10折交叉验证);未报告具体训练时间;该模型为多模态架构(API+mnemonic CNN+DeepConv);包括混淆器功能;在处理ACY类别的恶意软件时,API和汇编代码可能存在问题,但字节流编码方式有助于弥补这一问题;基于字节的模型容易过拟合。
- Iadarola等人 [105]:使用GTX 1080 Ti GPU和Intel i7-7700K CPU进行训练,准确率为96%至97%;由于内存限制,批量处理大小为8;未进行零日漏洞相关的攻击测试。
- Singh等人 [210]:使用GTX1070和TF2.1框架进行训练,准确率为93.24%(fusion-SVM方法)和92.20%(GLCM-SVM方法);未报告具体训练时间;手工设计的特征提取方法包含76个特征(GLCM)和58个LBP特征以及512个GIST特征;小类别样本的准确率较低(Lotoor数据集为65.21%);融合多种特征提取方法可以提高模型的稳定性。
- Bozkir等人 [33]:使用GTX1070和TF2.1框架进行训练,准确率为96.39%;未进行零日漏洞相关的攻击测试;使用了累积热图和GIST距离算法。
- Sun等人 [219]:使用Intel Xeon E5-2620和32GB RAM进行训练;未使用GPU;准确率达到98.73%;图像生成效率高;该方法对视觉上相似的恶意软件具有良好的区分能力;尽管使用了预测序列融合技术,但标签依赖性仍然存在。
- Darem等人 [61]:使用视觉卡(GTX 1080 Force)和CPU(Intel i7 7770)进行训练,准确率为99.12%;明确在混淆处理后的样本上进行了测试;未进行详细分析。
- Bagane等人 [18]:使用CNN模型,准确率为95.4%,CNN+LSTM模型的准确率为96.2%,CNN+BiLSTM模型的准确率为97.4%;仅处理静态图像;未进行打包处理相关的测试。
- Acharya等人 [3]:使用多种CNN模型进行训练,准确率为98.57%;未进行零日漏洞相关的攻击测试;声称该方法对不同类型的图像都具有良好的适应性。
- Sudhakar等人 [218]:使用多种CNN模型进行训练,准确率为98.27%至99.18%;预测时间为每个样本5.14毫秒(Malimg数据集)和2.94毫秒(BIG2015数据集);BIG2015数据集包含了混淆处理的恶意软件。
- 其他注意事项:
- 所有方法均为完全监督学习,未涉及零日漏洞相关的攻击方式。
- 部分方法使用了GPU,但并未进行严格的可扩展性分析。
- 一些方法的训练时间未在文献中明确提及。
- 由于数据集大小、特征维度或算法复杂性的不同,各方法在性能上存在显著差异。ACY,但没有具体的打包实验;静态图像。对于同一家族内的变体存在误分类;小类别(Simda)性能较弱——完全监督训练。使用了约21k个样本——未知样本指的是来自同一家族的保留测试样本。Anandhi等人[12]的准确率为99.94%(Malimg),98.98%(BIG2015)。预测时间为3.8毫秒(MalImg)和5.7毫秒(BIG2015)。没有针对打包性能进行明确测试;依赖于静态图像中的Gabor纹理。使用大型基准数据集;没有进行小数据可扩展性实验。监督学习使用Intel Xeon CPU + 12GB RAM + 1TB HDD + NVIDIA Tesla P100 16GB GPU(Ubuntu 18.04,TF 2.2,Keras 2.3.1)。这不是真正的零日漏洞。Xiao等人[249]的准确率为96.59%(VXV),98.94%(BIG-2015)。从10折交叉验证中的一折进行分类的时间为0.0788秒。处理打包后的恶意软件存在问题,并且这一点在论文中明确指出。由于样本量较少(Simda),其性能不稳定——大约6K到10K个样本;CNN输入尺寸固定为224 × 224 × 3。监督学习使用Intel i7-9750H,16GB RAM。Wang等人的准确率为90%(针对新家族的5轮5次测试),92.35%(VirusShare),86.13%(APIMDS 5轮5次测试)。平均训练时间为163.2毫秒,最佳测试时间为59.02毫秒。通过动态API行为在概念上具有鲁棒性;但不同家族产生相同API序列时存在问题。原型选择可以避免误导性的支持噪声,但没有攻击结果。采用自适应原型数量(非参数化方法),通过使用Sp而不是完整的S来防止支持集的GPU内存爆炸。需要标记的家族名称来进行监督聚类;标记方式基于VirusTotal + AVClass;丢弃单个样本。使用20核Intel Core i9-10900X CPU + RTX-2080Ti GPU。高容量神经网络基线会对GPU内存造成压力,但SIMPLE方法可以缓解这一问题。使用元学习+自适应原型(准确率超过90%)实现了明确的零日漏洞识别。Jian等人的准确率为98.31%(家族分类)。训练时间约为32.03小时(未使用多线程),预测时间约为0.00412秒/样本(约4.1毫秒,速度快)。仅概念性讨论:恶意软件在执行时会自行解压;没有量化打包/混淆鲁棒性评分。由于编译配置不同,相同功能可能导致误分类风险。模型在平衡数据上进行训练,通过过采样+CLAHE增强,没有GPU内存爆炸问题,且具有可扩展性。需要标注的家族名称。使用标注的恶意软件家族进行训练,包括MSI NVIDIA GTX-1080Ti 11GB × 4 GPU。高容量神经网络基线会考验GPU内存,但SIMPLE方法可以缓解这一问题。使用注意力权重突出显示操作码/字节通道,提供直观的内置解释。这不是零日漏洞。Bouchaib等人的准确率为98%。处理不平衡数据;没有进行明确的小数据泛化分析。Zhu等人的准确率超过86%。使用熵特征训练时间快约10分钟;推理时间少于2秒(每个样本不到2秒)。声称熵鲁棒性能够抵抗任意噪声/混淆变化(但未在打包后的二进制文件上进行直接测试)。在2个家族上失败(因为簇重叠);需要更长时间的训练(参数更多)。具有强大的少量样本学习能力;可以从1046个样本中学习11个类别。需要标注的恶意软件家族进行监督学习。训练环境为3.6 GHz 8核Intel i7,32 GB RAM,GTX 1080 Ti GPU。明确表示未针对零日漏洞进行测试;仅针对已知类别进行评估。Chai等人的准确率为97.51%(Few-shot Bodmas,5轮5次测试),94.80%(LargePE过滤后,5轮5次测试)。元训练时间为500轮×100个时期,基础优化器为Adam,学习率0.001,耐心度为200,加上ASAM。声称可视化对混淆的敏感性较低;未进行正式评估。表示可能包含噪声/信息损失,因为使用了增强技术。ASAM预计有助于对抗性泛化(没有新的测试)。专为每类样本数量非常有限的情况设计;提出多通道融合方法提高准确率。需要标注的恶意软件家族进行监督/元训练。使用4个Tesla P100 GPU,模型使用84 × 84的输入尺寸进行嵌入。基于视觉表示;未提及显著性/热图/注意力图。在元测试阶段遇到新/未知类别时,泛化能力有限。Dharmalaksana等人的准确率为99.86%(在Big2015数据集上)。完全监督训练。Tekerek等人的准确率为99.86%(BIG2015),99.60%(DumpWare 10)。训练时间为500轮(标准CNN训练)。性能受到激进视觉增强(CycleGAN)导致噪声/信息损失的影响。未测试推理规避或对抗性攻击能力。通过GAN平衡训练针对稀疏的少数族裔恶意软件家族。使用NVIDIA TITAN XP(12GB GDDR5),i7 CPU,32GB RAM,1TB SSD。使用输入级别的字节可视化(灰度/RGB,熵,时间-频率)。Bensaoud等人的准确率在所有7项任务上均超过99.87%(使用PReLU时最高),平均准确率为99.97%(bitmap/PNG/JPG恶意软件图像)。未报告每个样本的推理时间。增强了少数族裔家族,但未针对不平衡类别进行测试。Wang等人的准确率很高(0.991 F1分数),使用MLP软投票集成。设计上有所改进,但未对打包后的二进制文件进行数值基准测试。表示对224 × 224尺寸调整敏感;Binarytoimage布局随文件大小变化。静态转换避免了动态指纹识别;融合分类器提高了覆盖范围;未进行对抗性测试。在379个样本/22个家族上进行了演示;在小数据稳定性方面表现更好。需要标注的恶意软件家族。O’Shaughnessy等人的准确率为97.6%(混合SFC-KNN-HOG)。混合方法的训练时间约为12.5秒/样本,静态方法约为7.88毫秒(最快),动态方法约为33秒(最慢)。混合方法对打包具有鲁棒性;在设计上得到验证(当熵≥6.8时,解压后的内存图像有效)。Mini dumps会丢失注入过程的上下文;动态方法在60秒以上不可行;2D布局随文件大小和SFC曲线类型变化,影响描述符一致性。静态图像分析无法被沙箱/虚拟机运行时拒绝停止;融合分类器提高了分类稳定性。在标记数据上进行5折交叉验证;比全动态方法更可扩展,但比仅使用静态直方图的方法慢。需要标签的恶意软件家族。CPU单独使用。Zhong等人的准确率为96.0%,在速度和准确性之间取得了平衡。使用CLAHE+对比度映射在压缩的二进制文件上工作,性能优于静态操作码特征,避免了动态分析的空白。噪声在均匀区域可能会被放大;如果裁剪设置不当,CNN效果较差。不是对抗性强化模型;专注于代码相似性,而不是规避威胁模型。在小型/不平衡家族上效率较高;没有使用复杂的统计特征选择(320特征的GIST效果较慢)。仅在10折评估中使用了9K个样本的数据集,但在已知家族上仍具有较高的泛化能力。需要标注的恶意软件家族。Gibert等人的准确率为99.81%(在Big2015数据集上)。当融合过多特征时会出现过拟合现象。完全监督训练。使用Intel i7-7700K CPU,2个GTX1080Ti GPU,64GB RAM进行训练。通过梯度提升确定特征重要性;未使用标准XAI技术。Olorunjube等人的准确率为99.8%。训练时间为1224秒/50个时期,推理时间为0.91秒/样本(低分辨率),4.56秒/样本(高分辨率)。在高分辨率下推理速度较慢;在封闭集合评估中表现良好。ReLU在0RGB+GAN增强下学习颜色/结构变异体;比仅使用GAN的方法更好。需要标记的恶意软件家族。使用GPU(Colab)。输入级别可解释(二进制到灰度映射),无需事后解释。Kumar等人的准确率为98.92%(在所有TL-CNN家族分类器中名列前茅)。早期停止训练时间为约7个时期(速度快得多);推理时间为0.5-4.6秒/样本(高于小批量ML基线)。在处理UPX文件时表现良好(无需解压代码),不同于那些在大型/混淆二进制文件上失效的方法。在高分辨率下速度较慢;在小型真实数据集上表现强大。需要验证的家族标签。使用GPU(Colab)。输入可解释(二进制到灰度映射),无需事后解释。Conti等人的准确率在不同数据集上为88.68%-98.26%;Shallow-FS速度快;推理成本最低;Siamese(CSNN)较慢(双重前向)。成本通过缓存的支持嵌入和单独的嵌入提取进行优化。当每个家族使用不同的打包器时,需要标记的恶意软件家族;在构建GEM之前需要手动解压。Google Apple Macbook Pro 2017配备16 GB RAM和Radeon Pro-555 GPU以及Colaboratory Free。通过SSIM检查GEM图像和中间CNN特征图的相似性来隐式实现可解释性;未进行正式的XAI方法测试。Mallik等人的准确率为99.56%(在Malimg数据集上),98.36%(在BIG2015数据集上,包含增强)。未报告具体的时间测试。由于224 × 224尺寸调整导致信息别名化;仅在现有的已知家族数据库上进行评估。Chaganti等人的准确率为0.99%,使用固定宽度的字节图像进行训练;训练稳定,没有过拟合现象。其他CNN的推理时间超过EfficientNetB1的100%。可以分类打包后的恶意软件;在严重混淆情况下鲁棒性下降。未评估对抗性鲁棒性;尺寸调整可能导致信息丢失;混淆的纹理会扭曲真实性。未进行评估;CNN视觉模型被认为容易受到攻击。Pratama等人的准确率为99.63%,在RGB B2IMG图像上训练,训练周期为10个时期。与其他模型相比,训练周期较少(5个周期+5个微调周期=10个周期)。数据集不平衡;样本数量约为11K;三种变体(最小尺寸224 × 224,最大尺寸600 × 600,原始尺寸)。使用家族标签。数据准备:Intel Core i5-8265U CPU,NVIDIA GeForce MX150 GPU,16 GB RAM;训练使用Google Colab。Seaborn混淆矩阵和每类指标。Paardekooper等人的平均准确率为98.14% ± 0.17(Malimg),92.70% ± 1.31(Microsoft)。GA搜索需要更多时间;使用32 × 32的灰度图像(重新调整尺寸);Malimg数据集不平衡;未进行鲁棒性分析。数据集规模为9K,11K个样本;这是一个中小规模的研究;在更大规模下,GA演化(100代×50个个体)可能会代价高昂。完全监督训练,使用64位Red Hat 8.1,1个Intel Xeon Gold E5-6150(2.7 GHz),16 GB RAM,以及4个NVIDIA V100 GPU并行训练。Qiu等人的准确率为99.03%。Qiu等人的准确率为99.03%,参数数量仅为经典CNN的1/60-1/600。推理时间:5.3毫秒/样本。研究承认代码混淆是产生恶意软件变体的原因,但没有进行实证评估。数据集不平衡,没有数据增强处理,也没有进行多种打包测试——样本量仅为9K;属于小/中型数据集研究;没有进行GB/TB级别的可扩展性分析。使用完全监督的方法。硬件配置包括GTX-1050 GPU和16GB RAM(桌面级设备);没有针对物联网/边缘设备的基准测试——不属于零日漏洞。
Ma等人[147]:在自定义数据集(1,178个样本)上的准确率为96.0%——过滤掉了反沙箱恶意软件;仅支持二分类检测;没有进行大规模可扩展性测试;在小型数据集(约1K样本)上进行了评估。使用Windows 10操作系统,配备Intel Core i7-9750H CPU和GeForce RTX 2080 GPU以及16GB RAM;同样不属于零日漏洞。
Vinayakumar等人[190]:准确率为99%;经过10个训练周期后达到最佳性能,第6周期后性能不再提升;对打包和解包的恶意软件具有抵抗能力,但代码混淆的规避技术仍然是一个问题;属于黑盒系统,B3/B4/B7版本的宏指令性能不稳定(准确率为50%),存在误报风险;易受对抗性攻击,尚未验证其抗攻击能力;使用约4K样本进行训练(适合小规模数据),但未验证TB级别数据的可扩展性。硬件配置为Google Colab K80 GPU和25GB RAM。
Huaxin等人[65]:在Big2015数据集上的准确率为99.44%;训练时间为10,386秒;采用较轻量的卷积神经网络(CNN)架构,可扩展到小型数据集;尚未测试大规模可扩展性。使用Python 3、Intel(R) Xeon(R) Gold 5220 CPU和NVIDIA GeForce RTX 2080 Tix1 GPU以及251GB RAM;同样不属于零日漏洞。
Hashemi等人[99]:准确率在87.45%到99%之间(针对不同数据集);图像生成时间约为每个文件部分1.35秒(转换矩阵)+ 1.47秒(RGB映射);融合成本约为0.53秒(混合处理)或0.88秒(小波处理);总运行时间约为2.57至3.70秒,具体取决于数据集大小和融合类型;在Packaged Dataset-3数据集上进行了验证,准确率保持在91%。
Junk代码插入和代码重排序会降低效率;混淆后的Android代码段中突然的强度变化会影响小波融合效果;未进行对抗性攻击评估;RGB融合生成的图像尺寸为512×512像素,可能会增加内存占用;未进行评估;基于图像的特征本身容易受到对抗性干扰。
Rustam等人[199]:使用双模型结构(Bi-SVM)进行分类,在MalImg数据集上的准确率为100%;训练时间为71.143秒;在约9K样本(包含25个不平衡样本家族)上进行了训练;需要标记样本。
Kim等人[120]:在MalImg数据集上的准确率为99.09%,在Big2015和BODMAS数据集上的准确率分别为98.72%和92.92%;使用基于注意力的跨模态CNN进行训练;使用PyTorch和GeForce RTX 3090 GPU以及24GB RAM;不属于零日漏洞。
Jiang等人[109]:分类准确率为98.72%,检测准确率为99.31%;在检测中使用GIST+KNN方法;训练周期达到100次后达到收敛;未详细报告具体参数;瓶颈出现在优化过程;在超过99,069个样本(包含7个不平衡样本家族)上进行了训练。
Lee等人[132]:在物联网恶意软件数据集上的准确率为98.0%;声称由于特征维度较低,因此准确率较高;未进行对抗性分析;仅进行了静态分析;依赖于特定架构(32位ARM架构)。
Shaukat等人[208]:在Malimg数据集上的准确率为99.06%;需要大量内存来存储提取的一维特征;未报告训练/预测时间;声称具有可扩展性,但未进行可扩展性分析。
Guo等人[92]:在分类任务上的准确率为99.32%,在检测任务上的准确率为90.77%;声称具有较高的分类准确率,但没有提供绝对的计算基准数据;使用500个训练周期进行模型调优;比GAN模型更节省计算资源,但未指定具体配置参数。未进行明确的对抗性测试;在真实世界数据集上的鲁棒性得到了验证;即使特征有重叠,也能有效检测恶意软件。
Chaganti等人[42]:在使用融合多视图特征时,最佳测试准确率为97%;训练周期为200次,小批量大小为64/32;通过一维卷积神经网络(1D-CNN)处理参数;对基本打包技术具有鲁棒性;对其他类型的文件处理未进行测试;未评估对抗性攻击效果。
Moreira等人[159]:在Ubuntu 20.04虚拟机上进行了实验,使用UT-SNE进行特征空间解释;仅知道在未见样本测试中的泛化能力。
Moreira等人[159]:在Dataset-1数据集上的准确率为93.73%,在Dataset-2数据集上的准确率为98.20%;平均训练周期为22.65次;每样本推理时间为0.72秒;每个样本的评估时间为约22毫秒;没有独立的打包基准测试;图像选择可能导致性能下降(锯齿线和灰度图像的效果不如连续颜色图像)。
Zhan等人[266]:在Malimg数据集上的精确率为98.66%,F1分数为98.63%;在SOREL-20 M数据集上的F1分数为92.15%;训练周期为30次,批量大小为16;启发式方法的计算速度比基础方法慢14倍;侵蚀操作比基础方法慢100%以上,膨胀操作比基础方法慢20%以上;复杂度分别为O(n log n)和O(n)。
Dhanya等人[66]:在14种混淆类型上进行了评估;在动态特征退化情况下仍具有较高准确率(但准确率降至72.7%);未进行对抗性测试;未进行XAI相关评估;对于未知样本的检测表现良好,但在零日漏洞检测方面未提供明确数据。
Robustness等人[208]:仅使用了Ubuntu 20.04虚拟机和4GB RAM;使用Ut-SNE进行特征空间解释;仅知道在未见样本测试中的泛化能力。
Guo等人[92]:在分类任务上的准确率为99.32%,在检测任务上的准确率为90.77%;虽然声称具有较高准确率,但没有提供具体的计算基准数据;使用500个训练周期进行模型调优;比GAN模型更节省计算资源,但未提供可重复性评估的参数。
Ravi等人[189]:在物联网移动数据集上的准确率为97.66%;特征提取时间为0.04秒;在FPGA上的准确率较高;适合资源有限的物联网硬件;处理大型数据集。
Ben等人[27]:ViT在分类任务上的准确率为98.38%,CNN为97.90%,KNN+GIST为97.37%;ViT训练周期为100次,批量大小为256;模型需要更多计算资源和更长的训练时间;声称ViT在大型数据集上表现更好,但未进行TB级别可扩展性测试。
Xuan等人[252]:在Kaggle数据集上的准确率为99.641%;由于数据严重混淆,DataCon的准确率略低。
Vasan等人[233]:在CPU上进行了训练;在GPU上进行了额外CNN训练。
Dong等人[69]:在GS数据集上的准确率为100%,在RGB数据集上的准确率为99.17%,在VAE数据集上的准确率为99.03%;使用Kumar等人[128]的方法进行了评估;在GS数据集上的准确率为100%,在RGB数据集上的准确率为99.17%,在VAE数据集上的准确率为99.03%;无法处理高维RGB数据;少数类样本的处理较为困难。
Kumar等人[128]:在MalImg数据集上的准确率为99.36%,在真实世界恶意软件数据集上的准确率为92.11%;特征提取时间分别为VGG16为223秒、VGG19为330秒、InceptionV3为60秒、ResNet50为128秒;IMCNN的检测时间为约1150毫秒/样本。
Kumar等人[147]:评估了14种混淆类型的恶意软件;在动态特征退化情况下仍具有较高准确率。
Robustness等人[207]:仅在CNN基础上进行了优化;未进行对抗性测试;未进行XAI相关评估;仅证明了在字节码混淆下的稳定性能。
Zhong等人[266]:在Malimg数据集上的精确率为98.66%,F1分数为98.63%;在SOREL-20 M数据集上的F1分数为92.15%;训练周期为30次,批量大小为16;启发式方法的计算速度比基础方法慢14倍,侵蚀操作慢100%以上,膨胀操作慢20%以上。
Karbab等人[116]:在F1分数上表现为98%,在恶意软件归属上表现为96%,在家族归属上表现为94%;进行了大量离线训练,使用了PCA压缩进行可视化。没有对抗性评估
小型真实世界数据集(通过增强处理后为690到2055个样本);声称基于图像的特征可以减少资源依赖性
严重依赖AVClass;标签
Intel Xeon Platinum 8153 CPU,Quadro P400 GPU(2 GB),93 GB RAM,Ubuntu 18.04,TF 2.7/Keras——声称仅通过测试集检测未知恶意软件
Ashwini等人[15],99.99%的准确率,99.98%的F1分数,99.99%的DR
50个训练周期,学习率1e-4,批量大小=64(无运行时成本)
——
没有大数据或少量样本评估
需要完全标记的安全与勒索软件对比数据集
——
Yang等人[262],最高准确率94%——增强处理后准确率88%
未测试打包、混淆或多态恶意软件(可能存在高估风险)
约10^-45毫秒/图像的开销(较低)
未进行评估;仅概念性地讨论了混淆技术
仅使用公共数据集;没有真实世界变体;没有鲁棒性测试
——
随着数据量的增加表现改善;即使在小数据量下也能工作,但没有进行大数据扩展性测试
需要标记的源领域数据;目标数据未标记但已对齐
——
Meng等人[153],98.5%的准确率/0.984的F1分数;每个训练周期19小时;训练到50个周期后提前停止
没有明确的混淆实验;作者指出静态工具在处理反射加载、动态代码加载和Java反射时会出现问题
由于FlowDroid/APK的存在,静态分析存在局限性
——
工具:无法处理动态代码加载、反射调用和反编译失败
——
行为解释不够直观
论文直接承认基于机器学习的方法容易受到对抗性样本的影响,基于图像的特征抗攻击性较弱
在51K个应用程序上进行了评估;Fusion方法随着时间的推移提高了抵抗力,但没有专门针对小数据的评估
监督学习
实验在Intel Xeon Gold 6240、NVIDIA RTX 3090、128GB RAM上进行
使用GNN、Expa-iner和Grad-CAM进行API/操作码/图像区域归属分析,但解释性仍然有限,不如细致的分析直观
仅下降了5.3%,在基线方法中表现最佳;零日攻击的准确率显著高于Drebin、MaMaDroid、AppPoet
Johny等人[111],GS‖EG‖SH拼接融合(BIG2015 + MalHub)的准确率为1.0,F1分数为1.0
预测时间:单个样本0.01秒(独立模型)到每个样本0.139秒(三模态拼接);实验重复5次并取平均值
使用拼接技术检测到的ACY准确率为0.998–1.0;独立的SH模型最弱(F1 = 0.783)
仅使用SH的模型较弱(F1 = 0.963);Tracur F7的平均/最大/加法操作符失败(F1 = 0.0–0.625);模型在重新训练前容易受到GAN攻击的影响
GAN攻击会降低性能;对抗性重新训练后:BIG2015的F1 = 0.998,MalHub的F1 = 1.0
在高度不平衡的数据集(BIG2015)上表现良好;没有TB级别的测试
完全监督学习;对抗性重新训练会重新分配正确标签;依赖BIG2015 + MalHub标签
MacOS M1,8GB RAM;Colab Pro+:40GB GPU RAM,83.5GB RAM
使用t-SNE、Grad-CAM、SHAP;累积激活图突出了特定于家族的字节区域
——
没有关于零日或未见样本的评估或声明
Wasif等人[245]
99.61%(模型6,180 × 180)
15个训练周期,提前停止12–15次;延迟:仅使用CNN最快(386.45毫秒),仅使用ViT最慢(1103.66毫秒);高分辨率成本
——
将 scareware 错分类为良性;ViT的延迟较高;在较低分辨率下准确率下降;混合算法存在不一致性
没有对抗性评估;仅观察到基于模仿的逃避行为(scareware表现像良性软件)
14K张图像;可以接受增强处理;没有大规模或TB级别的评估
完全监督学习,使用CICAndMal 2017的5类标签
——
Ambekar等人[10]
在Blended数据集上的准确率为95.10%;Malimg为90.02%;MaleVis为84.49%
150个训练周期,批量大小128,学习率=0.001(Adam);未报告训练时间指标
——
使用FGSM进行对抗性训练(? = 0.1);没有多攻击鲁棒性评估
在sin214.5k张图像上进行了测试;客户端大小为3/5/7
DELL R750XS,Intel Xeon Gold 5320 CPU,256 GB RAM;未指定GPU
——
Alam等人[8]
在MalImg上的准确率为99.87%;在Big2015上为99.81%;在Malevis上为99.22%
预测时间:0.008
参数:504,308;未报告训练时间指标
——
容易受到对抗性攻击
——
大规模可扩展性被提及为未来工作;在约9k?14k样本上进行训练
完全监督学习
32 GB RAM,CPU:Intel第八代Core,GPU:Nvidia的RTX2080 Ti Max Q,16 GB视频内存,Tensorflow-keras
——
不是零日攻击
Zhang等人[269]
在MalImg上的准确率为99.25%;在Big2015上为98.27%
低(轻量级CNN),预测时间:12.91毫秒,未报告训练时间
声称具备混淆抵抗性;没有实验分析
——
在约9k?11k样本上进行训练;没有可扩展性分析
完全监督学习
8个Nvidia Tesla T4 GPU(每个16 GB RAM),Ubuntu 20.04.3,Intel(R) Xeon(R) Gold 6230R CPU@2.10 GHz × 104
单个CPU块,512 GB内存
——
不是零日攻击
Yu等人[264]
在Big2015上的准确率为96.70%,在BDCI-21High上的准确率为99.70%
无损编码;图像编码线性增加空间复杂性,模型结构高度紧凑,没有报告运行时间
——
部分抵抗性;无损编码即使在打包情况下也能保留视觉模式
由于代码到图像的重塑导致的语义截断;由于代码图像大小调整而丢失结构特征
——
在约5k?10k样本上进行训练
完全监督学习
PyTorch 2.0,配备四个Nvidia Tesla V100 GPU(每个16 GB RAM),CentOS 7.5
t-SNE特征空间图
——
不是零日攻击
数据集选择通常是报告性能时被忽视的因素。基于第5节的内容,我们分析了各研究中数据集的使用情况及其对评估结果的影响。图5显示了2011年至2025年间文章中使用的数据集百分比。它突显了文献对一小部分传统数据集的依赖,这些数据集存在结构性偏差,导致了本节讨论的几个差距。许多研究仍然依赖于过时的基准测试,如MalImg和Microsoft Malware Challenge数据集(BIG2015)。尽管这些数据集在历史上具有影响力,但它们已经无法反映当今快速变化的威胁环境。过度使用这些基准测试可能会导致“过度适应历史”,即模型在基准测试样本上表现良好,但在面对复杂或未见过的变体时却无法泛化。在调查中,MalImg被引用了1,089次,BIG2015被引用了327次(参见表5),表明这些基准测试在文献中占主导地位。这种集中现象夸大了性能表现,并限制了对泛化能力的实际评估。参考表5,报告的准确率经常达到90%以上,有些在MalImg和BIG2015上接近99–100%。这些结果表明,尽管这些基准测试在报告的实验中看起来“已经解决”,但在实际场景中的鲁棒性证据有限。未来的研究应该转向更具代表性的、最新的数据集,并促进社区驱动的curatura工作,以确保评估的可靠性。
下载:下载高分辨率图像(193KB)
下载:下载全尺寸图像
图5. 2011年至2025年间文章中使用的数据集百分比。
对表6的定性分析揭示了基于可视化的恶意软件检测文献中的强烈主题模式。大多数研究文章强调准确率,但很少涉及更广泛的安全性和部署问题,如对混淆的抵抗力、零日检测或可解释性。大多数作品缺乏对可扩展性、硬件限制或真实世界部署依赖性的讨论,而这些对于企业规模的实际部署至关重要。可扩展性是表6中报告最少的指标之一。只有少数研究评估了大规模下的运行时趋势、内存消耗或适用于边缘设备的适用性。研究人员通过在不同样本量的数据集上评估模型(32%)或在不同数量的恶意软件家族之间测试分类性能(15%)来研究可扩展性。然而,还没有研究探索过TB级别的可扩展性,这留下了大量真实世界部署场景未得到充分评估的空白。由于许多模型依赖于重的CNN或变换器架构,缺乏可扩展性报告引发了关于操作可行性的担忧。
我们还观察到,可解释AI(XAI)在基于可视化的恶意软件检测中发挥着相对有限但日益重要的作用。表6中列出的只有少数研究明确 incorporated 了诸如Grad-CAM、GradCAM++、显著性图、SHAP、LIME或基于注意力的可解释性等归属技术。这些研究使用XAI技术来突出恶意软件图像中的决策关键区域,这些区域通常对应于有意义的字节范围或结构组件。这使得分析师能够验证模型依赖于语义上合理的特征,而不是虚假的视觉伪影。例如,Johny等人[111]使用Grad-CAM和SHAP揭示了他们分类器的内部推理,这随后指导了对抗性重新训练并产生了近乎完美的抵抗力(F1 ≈ 0.998–1.0)。同时,AMGmal [266]使用GradCAM++显示CNN不成比例地关注PE头部和尾部区域,解释了为什么有针对性的扰动能够实现显著的逃避(64–68%)。只有[36]的研究尝试从图像区域中检索信息。总体而言,这些案例表明XAI增强了模型的透明度,支持调试和防御加固,并通过将像素级别的显著性与程序语义联系起来为分析师提供了可操作的洞察。采用XAI的动机源于深度学习模型的不透明度以及安全从业者理解和证明自动化决策的必要性。表6还显示,只有少数研究整合了这些方法,强调了一个关键的研究差距,即可解释性仍然重要但未得到充分利用。
根据十个评估维度对论文进行聚类(参见图7)显示了四个主要类别:以性能为导向的工作,关注计算成本和可扩展性,但忽略了鲁棒性和可解释性以及零日泛化;以安全性为导向的工作,评估抵抗力、逃避抵抗性和零日检测,往往缺乏效率或可扩展性的分析;最后是提供准确率评估以及鲁棒性和可解释性的现代或高级工作。这种聚类表明,大多数现有研究将恶意软件检测视为一个监督分类问题,而没有考虑到对抗性抵抗、操作限制或不断演变的恶意软件行为。只有少数文章尝试从所有维度进行全面评估。这些发现表明,迫切需要更全面的评估框架,以平衡准确性、鲁棒性和可解释性。
雷达图总结了现有研究在报告关键方法论维度方面的程度。图6显示,蓝色多边形代表可重现性指标,显示出对常见基准测试实践的强覆盖(81.6%)、分割规范(78.1%)、硬件报告(64.0%)和运行时开销测量(43.0%),但源代码的可用性非常有限(10.5%)。这表明实验设计相对透明。然而,代码发布和运行时开销的相对较低值表明,实现真正可重现性的关键要素仍然缺失。没有开源代码和明确的计算成本报告,复制或部署这些模型仍然很困难。大多数基于可视化的恶意软件检测方法在桌面级硬件或云服务器上评估它们的模型。然而,物联网生态系统的快速扩展现在要求轻量级、硬件感知的模型,这些模型能够在路由器、摄像头和工业传感器等边缘设备上运行。这些设备对内存、计算能力和能耗有严格限制,使得传统的CNN或Vision Transformers变得不切实际。正如表6所示,只有少数研究(如[189])在这些资源受限条件下评估了他们的方法。红色多边形表示可解释性支持,显示大多数研究(70.2%)不提供可解释性组件,而只有少数研究声称具有隐式可解释性(16.7%,如conti等人[52]的工作所示)或实现了(13.2%)XAI方法。这产生了明显的不对称性,研究人员经常声称具有可解释性,但很少提供可操作或经过验证的解释。总体而言,雷达图暴露了一个明显的成熟度差距。可重现性实践正在改进,但可解释性仍然严重不足。绿色多边形表示对真实世界威胁的抵抗力。尽管39.5%的研究评估了对打包的抵抗力,但只有10.5%的研究评估了对抗性扰动,只有4.4%的研究测试了对零日恶意软件的泛化能力。总体而言,图6突显了明显的不平衡。可重现性实践正在成熟,而可解释性和抵抗力评估在当前文献中仍然严重不足。这一可视化指出了未来基于可视化的恶意软件检测研究需要更全面、透明和有抵抗力的评估框架。
下载:下载高分辨率图像(231KB)
下载:下载全尺寸图像
图6. 基于可视化的恶意软件检测研究中可重现性、可解释性和抵抗力指标的覆盖情况对比。该图表总结了从特定报告矩阵构建的三组评估指标。可重现性(蓝色)基于:发布的代码、使用的基准测试、报告的硬件、指定的训练/测试分割以及测量的运行时开销。可解释性(红色)基于三个类别:(i)未提供XAI,(ii)作者声称具有隐式可解释性(例如,Conti等人[52]将可解释性归因于GEM图像),以及(ii)使用公认的XAI工具明确提供的XAI工件。抵抗力(绿色)包括针对以下方面的评估:打包技术、对抗性样本和零日恶意软件。
下载:下载高分辨率图像(142KB)
下载:下载全尺寸图像
图7. 现有文献中的覆盖模式:以性能为导向的论文报告准确率、运行时指标(训练周期、层、参数)和硬件要求。以安全性为导向的研究评估准确性以及对抗性逃避、混淆抵抗力或零日检测。现代先进的方法整合了所有这些方面,如准确性、混淆抵抗力和对抗性抵抗性,并额外提供了可解释性。
图8展示了一个时间线,总结了过去十年基于可视化的恶意软件检测技术的发展。该图表将先前的工作分为四个时期:2018年之前、2018–2020年、2020–2023年和2023–2025年,突出了每个时期的主要方法论趋势。如图所示,该领域从手工制作的图像特征和传统的机器学习分类器发展到基于CNN的视觉特征学习,接着是多模态深度学习架构,最近则是基于变换器和鲁棒性意识的模型。时间线还根据五个关键维度对发展进行了分类:图像生成(IG)、特征处理和提取(FPE)、模型生成(MG)、性能评估(PE)和鲁棒性(ROB),展示了每个组成部分是如何朝着更自动化、可迁移和更具弹性的恶意软件检测策略发展的。为了补充这种演变视角,表7将调查中的事实观察结果按组成部分进行了比较,总结了不同时期使用的方法、报告的经验模式以及持续存在的具体差距。这种表格表示提供了解释图表中显示的趋势所需的分析深度。下载:下载高分辨率图像(503KB)下载:下载全尺寸图像
图8. 基于可视化的恶意软件检测方法的演变。总体研究趋势从使用经典机器学习模型的手工制作图像特征(2018年之前),发展到基于CNN的特征学习和混合模型(2018-2020年),接着是具有多模态输入的端到端深度CNN架构和鲁棒性分析(2020-2023年),最后是针对边缘部署、对抗性韧性和可解释性设计的基于Transformer的、分词化的和具有鲁棒性意识的模型(2023-2025年)。
表7. 基于可视化的恶意软件检测流程组件的比较分析。
流程组件 摘要 差异 建议
数据集 仍然依赖较旧的基准;最近的工作使用大型存储库;家族大小差异很大 依赖过时的数据集;家族不平衡(例如,极小的家族);时间覆盖范围差 使用时间分割;发布数据集详细信息(哈希、家族数量);应用多源标签共识以减少不一致
图像生成 线性灰度忽略了局部性;SFCs更好地保留了局部性;RGB图像提供了更多纹理信息并提高了区分能力 宽度、填充和映射规则经常未报告;表示方法对打包/混淆敏感;没有标准化的图像参数 发布精确的图像生成配置;使用保持局部性的转换(SFCs);在打包和混淆下评估表示方法
特征提取 早期工作依赖于手工制作的描述符;更多近期研究广泛采用CNN特征提取;一些工作结合字节图像和API调用或助记符以获得更丰富的特征 很少有消融研究;深度特征流程很少共享;可解释性有限 公开特征提取配置;发布中间特征嵌入;包括消融以展示每种特征类型的贡献
分类 经典ML在早期工作中占主导地位;CNN在后期研究中变得普遍;混合模型出现;Transformer在最近的IoT/边缘场景中使用 推理成本、延迟和硬件细节很少报告;在受限或边缘设备上的评估有限 报告模型大小和推理时间;包括经典基线进行比较;提供轻量级版本以进行部署
性能评估 量化评估:39.5%的测试打包鲁棒性,10.5%的测试对抗性鲁棒性,4.4%的测试零日性能 评估实践差异很大;鲁棒性测试不常见;由于代码/数据集通常不公开,重现性低 使用时间或跨数据集分割;包括基本的鲁棒性评估(打包/对抗性);发布代码、数据集列表和分割定义
鲁棒性 一些工作用高精度测试UPX打包或混淆样本;大多数研究仍然只在已知家族上进行评估,零日测试很少 缺乏明确的威胁模型(打包器类型、对抗性假设);零日行为很少评估;对持续学习的探索有限;功能扰动攻击更为现实,但研究不足 定义打包器/对手假设;在打包/混淆/零日条件下测试模型;探索周期性或持续重新训练以处理漂移
9. 经验教训
本节全面讨论了从本研究中获得的见解。我们的调查得出的主要发现如下:
- 可重复性仍然是一个关键的瓶颈:大量调查研究隐藏了数据集、代码和实验配置,例如硬件规格,尽管硬件直接影响可重复性和效率声明。表5中的“GitHub”列大部分被?标记,表明很少有研究发布他们的代码,这使得复制或比较结果变得困难。
- 数据集选择严重影响报告的性能:许多研究继续依赖像MalImg和BIG2015这样的传统基准,这些基准不再反映现代恶意软件的多样性和复杂性。因此,高报告的准确性通常表明是对历史数据集的过拟合,而不是真实的泛化能力,掩盖了现实世界的性能限制。
- 局部特征和全局特征相辅相成:来自多项研究的证据表明,结合细粒度的局部特征(如纹理和操作码级统计信息)与更广泛的全局结构(包括熵分布和字节级图像布局)可以产生准确且鲁棒的分类器[22]、[121]、[229]。此外,采用混合图像表示方法比单一特征方法有显著的性能提升[111]。例如,参考文献[163]中的研究表明,集成局部(D-SIFT)和全局(GIST)特征相对于仅使用局部特征的模型提高了5.4%的准确性,与仅使用全局特征的模型相比提高了9.2%,直接量化了混合表示的优势。
- 模型融合通常可以提高性能:模型融合通常可以提高性能,尽管在不同研究中的提升程度有所不同。总体而言,组合模型一致性地提高了性能。例如,CNN+SVM在MalImg上达到了99.59%的准确性,而集成模型堆栈达到了大约98.9%的准确性(参见表4、表5)。相比之下,某些融合或增强策略仅提高了1.01%的准确性。
- 静态图像方法占主导地位,而动态可视化仍需进一步探索:参考表3,文献主要关注静态图像方法,如逐行、灰度和SFC变体,而动态可视化仍处于探索阶段。
- 打包/混淆会显著降低性能:当样本使用不同的打包器进行打包时,基于可视化的模型性能相比未打包的样本会大幅下降(见表9:未打包与UPX/MPRESS的准确性和F1分数明显下降)。这表明许多高报告的准确性对打包或混淆很敏感。
- 对抗性和问题域攻击暴露了真正的脆弱性——鲁棒性声明必须在问题域中进行验证:白盒和特征域攻击,如ATMPA [140]和其他对抗性图像策略,表明基于图像的检测器容易受到特征域内的操纵。问题域攻击虽然在维护恶意软件功能方面更具挑战性,但仍然是可行的[182]。例如[84]中的研究表明,攻击者可以利用扰动或打包器伪影来误导分类器,表明鲁棒性评估需要问题域验证以及图像扰动测试。
- 数据集的时效性和概念漂移是实际问题:基准数据集通常覆盖的时间范围有限。如第5.1节所描述的,BIG2015包括2006-2015年的样本,并且存在家族分布不均的问题,有些家族(如Kelihos)包含数千个样本,而其他家族只有几十个样本。同样,其他基准数据集也存在时间和类别不平衡的问题。这些限制引入了概念漂移的风险,并突显了缺乏系统评估来确保数据集的可持续性。
- 可解释性仍处于发展的早期阶段:尽管一些研究使用了Grad-CAM和SHAP等可解释性工具,但很少将结果显著性映射到具体的程序伪影[36](例如,API、字符串、操作码等),这是使可视化支持人类分析的关键步骤。
- 高准确性方法经常忽视边缘和IoT的限制:调查显示,大多数方法优先考虑准确性,而忽视了IoT和边缘部署所需的内存、计算和功耗限制。尽管一些研究提出了优化架构(如ViT4Mal [189],可以减少延迟),但大多数现有工作仍未完全解决这些问题。
- 评估实践需要标准化:当前研究采用不同的实验设置,包括数据集分割、预处理程序和性能指标。因此,它们报告的结果往往无法直接比较。建立标准化的评估协议和基准环境将使研究社区能够更有效地评估所提出技术的有效性和泛化能力。
10. 挑战和未来方向
网络安全研究社区最近对基于可视化的恶意软件分类方法的有效性表达了担忧。关于此类方法的研究正在获得动力。为了为文献做出贡献,我们全面调查了基于可视化的恶意软件检测领域的各种步骤和程序。随着基于可视化的方法在恶意软件检测中变得更加普遍,本节探讨了潜在的研究挑战和未来方向。
混淆数据。可视化技术使分析师能够通过将二进制文件转换为图像来检查混淆代码的行为和结构,突出显示可能表明恶意行为的模式。混淆通常通过注入死代码、重新排列子程序[202]、[263]等技术来实现。早期研究展示了这种方法的前景。例如,Nataraj等人[167]表明,恶意软件家族表现出独特的视觉纹理,而后来的工作,如MalGrid [157]将可视化扩展到大型语料库,便于探索数千个样本之间的结构相似性和异常。Darem等人[61]引入了一个半监督框架,使用灰度图像来检测和分类混淆的可执行文件,表明可视化可以超越简单的监督分类。Vasan等人[231]通过使用经过微调的CNN架构来解决混淆问题,该架构能够通过平移不变性提取出具有弹性的特征,从而适应不断变化的混淆模式。在后续工作中,同一作者[232]在MalImg和打包/加盐的恶意软件上评估了他们的模型,报告在打包样本上的准确率为98.11%,在加盐恶意软件上的准确率为97.59%。Yajamanam等人[253]也观察到,加盐涉及将良性样本嵌入恶意软件家族中以掩盖其结构。最近,Dhanya等人[66]提出将Android IoT字节码转换为马尔可夫图像进行基于CNN的分类,同时识别混淆类型并提高在不同变换下的鲁棒性。总体而言,这些研究最初表明,当在训练期间包含代表性变体时,基于可视化的方法可以展示对常见混淆和打包策略的韧性。然而,后续证据表明,这种韧性是有条件的。实际上,打包和加密经常引入显著的视觉变化,削弱了分类器的鲁棒性。Gibert等人[84]提供了系统的评估,表明基于图像的检测器在新的或未见过的打包器下的性能会急剧下降。他们的发现表明,模型通常学习的是打包器特定的伪影而不是恶意功能,因此更改打包器可能会触发错误分类或 falsation。这一观察挑战了早期关于固有鲁棒性的说法,并强调打包和加密仍然是基于图像检测的有效逃避策略。这些限制突出了几个挑战和未来研究方向。首先,可视化方法必须应对打包器留下可识别视觉签名的事实,这可能会偏置模型,但也可以被建设性地利用。一种有前景的方法是设计一个两阶段流程,其中分类器首先从视觉模式中检测打包器类型,然后触发自动解包或解密,然后再进行分析。我们使用从Malware Bazaar收集的5,996个样本来设计了一个实验,涵盖了20个恶意软件家族。图9展示了直接从十六进制二进制文件生成的视觉图像,表8总结了该实验中使用的数据集。该图清楚地显示了使用不同打包器打包时模式的显著变化。通过提取每个打包器的特征签名,我们可以实现自动解包方法来恢复样本的原始未打包版本。数据集被分为80:20的比例的训练集和测试集。实验包括两部分:(i) 在用未打包数据训练的模型上测试未打包样本;(ii) 在10%的样本被随机打包的测试集上测试模型。为了与基于特征的方法进行比较,我们使用了EMBER [13]。表9报告了分类结果,结果表明未打包样本的性能优于打包样本。这些发现证实了可视化在支持恶意软件分析和分类方面的有效性。通过这种方式反转混淆,可以恢复稳定的底层纹理,从而提高分类的鲁棒性。其次,检测器必须适应不断变化的混淆实践。在新打包变体上进行持续重新训练,并结合跨多种打包工具的评估,对于减轻概念漂移至关重要。最后,将可视化与动态分析相结合的混合方法提供了一种互补的防御,因为即使在静态图像被严重混淆的情况下,运行时行为可能仍然可以观察。
下载:下载高分辨率图像(1MB)下载:下载全尺寸图像
图9. 来自10个家族的恶意软件图像的模式变化可视化(F1: amadey, F2: deyma, F3: benign, F4: dofoil, F5: emotet, F6: formbook, F7: grandcrab, F8: guloader, F9: icedid, F10: makooob)。每一行显示了同一样本在三种条件下的情况:(a) 未打包,(b) 使用UPX打包,(c) 使用MPRESS打包。在纹理和结构上可以观察到明显的视觉差异,反映了打包技术对恶意软件图像表示的影响。
表8. 数据集摘要
家族名称 样本数量
0reline 113
2benign 559
2dofoil 515
3mokes 508
4risepro 455
5makoob 383
6amadey 232
7guloader 222
8icedid 215
9strab 202
10deyma 189
11zard 186
12remcos 185
13modiloader 172
14tofsee 169
15grandcrab 149
16formbook 144
17stopcrypt 134
18emotet 129
19racealer 116
表9. 不同模型在未打包和打包条件下的分类性能
模型 未打包 UPX打包 MPRESS打包
Acc (%) F1 (%) Acc (%) F1 (%) Acc (%)
Ember 93.46 91.67 92.48 90.45
Visualization 94.67 93.38 90.80 90.20
Sustainability 94.67 93.38 90.80 90.20
可持续性。概念漂移是可持续恶意软件检测中的一个关键挑战,因为恶意软件的统计属性会随时间演变,降低ML模型的有效性。在历史数据集上训练的传统模型变得过时,难以准确分类新的恶意软件。虽然一些研究人员已经解决了这个问题,但尚未建立系统的方法论。在使用固定基准数据集(例如Big2015, MalImg)和更现代的数据集之间存在权衡。解决方案包括在基准数据集上测试模型以进行比较,然后再在新的数据上评估它们,或者定期用新样本更新基准数据集。为了减轻概念漂移,持续更新模型、采用自适应学习技术、集成方法以及引入新的特征和数据源对于保持有效的恶意软件分类至关重要。不幸的是,文献中往往忽视了对概念漂移的直接分析,正如表4所示。这种忽视的原因在于基准数据集通常随时间保持不变。因此,对所提模型的评估仅仅是静态的快照,其结果取决于未来恶意软件的演变。在恶意软件可视化方法中,对概念漂移的探索有限,只有少数研究在利用替代特征进行恶意软件检测的背景下讨论了这一问题。Transcend [112] 提出一个框架,该框架能够创新地识别出老化的分类模型,并在模型因训练数据过时而持续做出错误决策之前发出早期警告。该框架通过比较部署过程中遇到的样本与用于模型训练的样本来实现这一点,从而建立预测质量的指标。在 [25] 中,作者重新审视了 conformal evaluator 和 Transcend [112],旨在为其内部工作建立一个坚实的理论基础,并确定最佳操作设置。他们还介绍了 Transcendent,这是一个具有计算效率的漂移检测框架。参考文献 [38] 中的 DroidSpan 提出了一种行为分析方法,可以捕捉 Android 应用中敏感访问的分布。这种方法使 DroidSpan 在八年内始终能够区分良性应用程序和恶意应用程序。该研究还探讨了在实现基于学习的恶意软件检测过程中,随着时间持续有效的特征的关键作用。另一项参考文献 [91] 中的方法用于检测和减轻 Android 恶意软件检测中的概念漂移,并在七年数据集上证明了其有效性。该方法还尽量减少了使用短期数据集时的重新训练次数,评估了时间戳的影响,并通过分析不同时期的关键特征来描述 Android 恶意软件中的概念漂移。尽管大多数论文没有明确讨论可持续性,但许多作者通过在不同数据集上测试他们的模型来检验模型的鲁棒性。这种方法结合对恶意软件演变和引入新样本后模型性能的反思,可以为未来的可持续性研究奠定基础。
过时的数据集。虽然许多论文在使用基于可视化的方法进行恶意软件检测或分类任务方面表现出色,但这些模型通常使用过时的数据集进行评估,这会对模型识别零日恶意软件的能力构成风险。虽然存在广泛使用的数据集,但它们往往覆盖的时间范围较短,可能无法充分反映恶意软件的演变,或者样本在各个家族之间的分布不均衡。此外,研究人员经常从各种公共代码库中加入样本来平衡或扩充数据集。然而,这种做法会妨碍方法比较的可重复性,因为每篇研究论文中的样本有所不同。这些因素可能会显著影响检测方法的性能。因此,创建反映当前趋势的最新和精确的数据集变得至关重要,我们将其作为未来努力的重点。
计算成本。大多数研究集中在生成基于静态特征图像的技术上,尤其是灰度图像。尽管动态信息可视化在恶意软件分析方面具有巨大潜力,但它具有计算密集性的缺点。进一步尝试将混合方法应用于图像可以提高这些技术的鲁棒性,但这个领域仍需要进一步探索。
用于特征融合策略的基准数据集。尽管所有特征提取技术都能提高分类器的准确性,但现有文献缺乏专门为应用这些技术而设计的清晰基准数据集。此外,具有固定参数的一致环境可以实现无偏测试和模型比较。进一步探索结合局部特征和全局特征是必要的。此外,研究各种特征提取器与深度学习模型的融合也值得关注。
资源受限的物联网设备。在许多情况下,分析恶意软件的技术旨在提高检测准确性,但常常忽略了内存占用、功耗和网络资源等限制。遗憾的是,这些操作限制在物联网系统中导致了明显的性能瓶颈,从而降低了检测准确性。例如,复杂的卷积和池化操作在边缘设备上使用时会减慢这些技术的速度。对于像物联网系统这样的资源受限设备,基于可视化的方法需要大量的研究。
可解释性。使用深度模型的一个限制是它们缺乏可解释性,因为它们基本上就像黑盒子一样。然而,理解预测模型背后的原理至关重要,尤其是在网络安全领域,分析师必须理解算法所做的与安全相关的决策。尽管目前存在一些解释深度架构预测的技术,但仍需要探索更多这样的技术,以通过基于可视化的恶意软件检测方法提高恶意软件预测的可解释性。这一点尤为关键,因为在这一领域很少有研究涉及创建能够明确解释特定视觉模式为何表明混淆行为的方法。这方面的进一步研究有可能显著受益于恶意软件检测和分析领域。
对抗性攻击。在更广泛的背景下,攻击者可以通过修改像素值来创建对抗性图像,从而针对图像分类器进行攻击。对于恶意软件而言,任何对其文件的更改都不应影响其功能。可执行文件中的内容非常敏感,即使是微小的更改也可能完全改变恶意软件的功能或使其无法运行。尽管有这一限制,基于可视化的恶意软件领域的攻击者主要限于使用扰动类型,这些扰动难以保持修改后文件的功能。此外,很少有机制可用于验证扰动后的功能。因此,未来的研究应该专注于开发能够自动高效验证恶意软件在经过扰动后功能的工具。
可重复性。结果可重复性问题在研究社区中是一个众所周知的问题,本研究的领域也不例外。Daoudi 等人 [59] 曾讨论了 Android 基于图像的恶意软件检测中的关键可重复性挑战。即使使用相似的设置,复制结果的难度也凸显了研究人员在试图对该领域做出有意义和可测试的贡献时需要仔细考虑这一方面。在这项评估中,我们确定了所研究的论文是否提供了对其他研究人员有用的关键细节,包括模型结构、参数、软件组件等方面的具体信息。确保对这些数据进行详尽的记录对于提高复制研究结果的能力和推动基于图像的恶意软件检测的发展至关重要。
11. 结论
恶意软件(或有害软件)的泛滥在网络安全领域构成了一个持续存在且不断发展的挑战。为了应对日益增长的威胁,网络安全防御措施也在不断进化以减轻恶意软件的影响。基于可视化的检测方法已成为这些防御策略的重要组成部分。在恶意软件检测中采用基于可视化的方法可以通过利用图形表示来揭示大型数据集中的复杂关系和异常,从而增强传统方法的效果。本文全面回顾了使用可视化进行恶意软件检测的技术。我们介绍了理解基于可视化方法所需的基本知识。我们的综述对最先进的工作进行了分类和见解提供,并概述了基于可视化方法所采取的各种步骤,并提供了对作为图像表示的恶意软件数据集的全面描述。这项调查还强调了基于图像的检测系统容易受到有效对抗性攻击的脆弱性,因为攻击者旨在欺骗这些系统。此外,我们的调查讨论了基于视觉化的方法的混淆检测和可持续性问题。我们最初分析了 248 篇文献,最终将 2018 年至 2025 年间发表的 102 篇论文纳入研究,以揭示将基于图像的方法应用于恶意软件检测的前景。因此,我们总结了经验教训,并根据当前领域中的挑战提出了未来的研究方向。