admin管理员组

文章数量:1558086

目录

  • 笔记
  • 后续的研究方向
  • 摘要
  • 引言

Decoding the Secrets of Machine Learning in Malware Classification: A Deep Dive into Datasets, Feature Extraction, and Model Performance
CCS 2023

笔记

本文探讨了数据集、功能和分类器对基于机器学习的恶意软件检测和分类的影响。作者解决了社区对恶意软件分类结果缺乏理解的问题,并研究了数据集性质、家族和样本数量以及静态和动态特征组合等因素的影响。他们收集了一个大型平衡的恶意软件数据集,其中包含来自 670 个家族的 67k 个样本,并训练用于恶意软件检测和家族分类的最新模型。该研究的主要发现包括静态特征优于动态特征、两类特征组合的边际改善、打包与分类精度之间缺乏相关性以及动态提取特征中缺失行为的负面影响。作者还强调了获取恶意软件家族基本事实的挑战以及收集各种恶意软件数据集的困难。总体而言,该研究提供了对机器学习模型在恶意软件分类方面的性能和局限性的见解。

大意:

  • 已经提出了用于恶意软件检测和分类的机器学习模型,但对其结果缺乏了解。
  • 该研究调查了数据集、特征和分类器对基于机器学习的恶意软件分类的影响。
  • 收集了一个大型平衡的恶意软件数据集,其中包含来自 670 个家族的 67k 样本。
  • 静态特征的性能优于动态特征,将这两种类型的特征结合起来只能提供边际改进。
  • 包装和分类准确性之间没有相关性。
  • 动态提取的特征中缺少行为会对其性能产生负面影响。
  • 要分类的族数量越多,分类就越困难,而每个族的样本数量越多,准确性就越高。
  • 在每个家族样本均匀分布上训练的模型可以更好地泛化看不见的数据。

后续的研究方向

  1. 多种特征提取技术的集成:现有文献包括各种特征提取技术,如API调用、操作码序列、基于图像的特征等。探索这些技术的组合可能会提高恶意软件检测模型的准确性和鲁棒性。

  2. 整合深度学习架构:虽然递归神经网络 (RNN) 已用于早期恶意软件预测,但探索其他深度学习架构,如卷积神经网络 (CNN) 或转换器模型,可以提高恶意软件检测的性能。

  3. 处理不完整和缺失的数据:处理缺失和不完整的数据是恶意软件分析中的常见挑战。开发处理缺失特征和有效利用不完整数据的技术可以提高恶意软件检测模型的准确性和可靠性。

  4. 概念漂移检测:恶意软件行为在不断发展,检测恶意软件分类模型中的概念漂移对于保持其有效性至关重要。研究实时检测和适应概念漂移的方法可以提高恶意软件检测系统的长期性能。

  5. 对抗性攻击和防御:对恶意软件检测系统的对抗性攻击构成了重大威胁。研究检测和防御对抗性攻击(如规避和中毒攻击)的技术有助于增强恶意软件检测模型的稳健性和安全性。

  6. 隐私保护恶意软件检测:恶意软件检测通常需要访问敏感数据,从而引发隐私问题。探索隐私保护技术(例如联邦学习或安全的多方计算)可以在不损害数据隐私的情况下实现协作式恶意软件检测。

  7. 实时和可扩展的恶意软件检测:随着恶意软件数量的不断增加,开发实时且可扩展的恶意软件检测系统变得至关重要。研究高效的算法和分布式计算技术可以在大规模环境中实现快速且可扩展的恶意软件检测。

  8. 可解释性和可解释性:解释恶意软件检测模型做出的决策对于建立信任和理解其行为至关重要。研究为恶意软件检测模型提供解释和可解释性的方法有助于识别误报/误报并提高模型透明度。

  9. 迁移学习和领域适应:在一个数据集上训练的恶意软件检测模型可能无法很好地泛化到新的和看不见的恶意软件样本。探索迁移学习和领域适应技术可以将知识从一个数据集转移到另一个数据集,从而提高恶意软件检测模型在不同场景下的性能。

  10. 协作恶意软件检测:构建协作平台和框架,使安全研究人员和组织能够共享恶意软件样本、功能和检测模型,可以促进协作并加速有效恶意软件检测技术的开发。

这些方向为恶意软件检测领域的进一步研究和创新提供了机会,并有助于开发更强大、更高效的解决方案。

摘要

许多研究提出了用于恶意软件检测和分类的机器学习(ML)模型,报告了几乎完美的性能。然而,他们以不同的方式收集基本事实,使用不同的静态和动态分析技术进行特征提取,甚至在他们认为的恶意软件家族上也有所不同。因此,我们的社区仍然缺乏对恶意软件分类结果的了解:它们是否与收集的数据集的性质和分布有关,训练数据集中的家族和样本数量在多大程度上影响性能,以及静态和动态特征相互补充的程度。

这项工作通过调查数据集、特征和分类器对基于ML的恶意软件检测和分类的影响,揭示了这些悬而未决的问题。为此,我们收集了迄今为止最大的平衡恶意软件数据集,其中包括670个家族的67k个样本(每个家族100个样本),并使用我们的数据集训练最先进的恶意软件检测和家族分类模型。我们的结果表明,静态特征比动态特征表现得更好,并且两者相结合只能提供比静态特征的边际改进。我们发现打包和分类精度之间没有相关性,并且动态提取的特征中的缺失行为会严重影响它们的性能。我们还展示了大量的家族进行分类会使分类更加困难,而每个家族的样本数量越高,则会提高准确性。最后,我们发现,在每个家族样本的均匀分布上训练的模型可以更好地在看不见的数据上推广。

引言

现代Windows恶意软件分析必须处理20年来一直在稳步增加的大量样本。2022年,AV-TEST研究所和卡巴斯基每天都注册了超过40万个新的恶意程序[21,27]。为了应对这些数字,研究和工业界已经开始依赖机器学习(ML)驱动的恶意软件分类模型。它们可以应用于大量文件,并提供比基于签名的方法更灵活的分类机制。尽管如此,它们必须与人类攻击者的想象力作斗争,后者不断产生新的变种,使其在雷达下飞行。ML技术的核心是捕获训练数据和分类目标之间的统计相关性。结果,当超出训练数据中编码的知识时,这种基于统计的分类模型失去了有效性。因此,意识到这一限制的人类攻击者总是可以提前一步选择训练数据中看不到的攻击,以逃避基于ML的方法的检测。此外,基于ML的分类模型通常在管道中执行[19,32,59]。例如,给定一个可疑文件,一个典型的ML管道应该首先查明它是否是恶意的(二进制分类),然后查明它是否属于已知的家族(家族分类)。尽管这些分类任务在以前的文献[19,32,59]中实现了很高的准确性,但大多数这些工作都是在不切实际的假设下进行的,主要是因为数据集是如何构建的。

此外,很难获得恶意软件家族的基本真相。杀毒软件公司不太可能在同一个系列中使用相同的名称。尽管已经提出了CARO(计算机反病毒研究组织)命名约定来缓解这一问题,但它仍然面临使用障碍。科学研究解决了这个问题,并产生了AVClass[52]:给定一个AV标签列表(例如,来自VirusTotal JSON报告),该工具返回最有可能的单个家族名称。然而,即使AVClass默认根据共识算法返回单个姓氏,它也可以输出所有备选姓氏的排名。因此问题是AVClass经常被用来进行研究,使用它的默认输出作为基本事实,尽管它本质上是概率的。

此外,虽然为流行家庭收集大量样本很简单,但收集大量不同的恶意软件数据集仍然困难且耗时[9,29,39,54]。在这项工作中,我们从VirusTotal(VT)提要[58]中收集PE恶意软件可执行文件,这是提交给VirusTotal的样本的实时JSON编码报告流。尽管在近三个月的时间里出现了超过4400万份VT报告,并从138k个家族中收集了227k个样本,但其中只有780个恶意软件家族包含至少100个样本。

更为复杂的是,恶意软件作者经常使用现成的打包器和保护器[34,36]。两者都会修改程序以阻碍其分析,同时仍保留其原始行为。基于它们的设计,经过打包或保护过程的不同恶意软件可能会生成共享高度相似结构的可执行文件。这很容易使在这些恶意软件样本上训练的ML分类器过度填充打包或受保护的文件结构,而不是捕获其真正的恶意组件。

因此,在这项工作中,我们付出了相当大的努力,为总共118111个样本创建了四个异构数据集,以进行大规模的测量研究。其中三个由不同家族数量的恶意样本组成,而第四个包含良性样本。我们在数据集的构建过程中给予了特别的关注,既试图复制研究中通常使用的数据集,也考虑了恶意软件分析的典型现实场景。这样的数据集使我们能够创建控制良好的实验,研究基于ML的二进制和族分类的有效性在不同的测试场景下是如何变化的。

最后,还有另一个影响我们进一步探索的ML算法的关键方面:特征提取。分析可执行文件的方法分为两大类,这取决于要研究的方面,即命名属性和动态行为;尽管如此,前两者也可以合并。由于我们想研究现有的ML最先进的解决方案,而不是设计新的解决方案。因此,我们在最近的论文[8,10]中描述的基础上构建了静态和动态特征提取方法。因此,这意味着我们已经在沙箱中静态分析和动态执行了本研究中使用的超过十万个样本。

我们的工作通过回答以下二进制和族分类任务的研究问题做出了贡献:

⟨R1⟩静态、动态和组合模型如何在二进制和族的分类中对不同的恶意软件族/类执行

⟨R2⟩每个模型在哪些恶意软件家族和类别上无法产生准确的分类?

⟨R3⟩静态和动态特征类对分类性能的贡献是什么?当连接这两个集合时,它们的贡献会发生变化吗?

⟨R4⟩现成包装机和保护器的存在是否会损害分类的准确性?

⟨R5⟩运行时行为中缺失的特征值是否会对分类结果产生负面影响?

⟨R6⟩AVClass2置信度得分与基于ML的决策相关吗?

⟨R7⟩训练数据集构建策略如何影响模型性能?

⟨R8⟩ML驱动的恶意软件分类器如何在训练数据中看不到的家族上执行?

本文标签: LearningMalwaremachineDecodingSecrets