基于AI恶意软件分类技术(5)

2021年恶意软件分类综述:Malware classification and composition analysis: A survey of recent developments 恶意软件的分类和成分分析:对最新发展的调查

阅读论文笔记

原文链接

1、本调查的主要贡献是:

  • 提出一种新的分类来描述和比较恶意软件和成分分类和主要发现。
  • 设计了一个新的框架来分析现有的恶意软件分类和组合分析技术。
  • 识别和提出与恶意软件分析相关的开放问题和挑战。
  • 确定了关于该主题的一些趋势,并提供了关于如何改进现有解决方案以应对新的和持续的挑战的指导方针。

2、 相关研究:

此外,Basu等人研究了依赖于人工智能恶意软件分类技术的不同工作。特别是,它们创造了五种类型的特性:PI调用图、字节序列、PE标头和部分、汇编代码频率和系统调用。

此外,Ye等人的[36]还研究了恶意软件分类过程的许多不同方面。更具体地说,他们发现了一些问题,如渐进式学习和对抗性学习。

最近,Ori等人的[37]调查了关于用于动态恶意软件分析的技术的文献,其中包括对每种技术的描述。特别是,他们概述了用于提高动态恶意软件分析能力的机器学习方法。

3、恶意软件分类使用到的特征和算法

图1显示了分类方法。本节的其余部分组织如下(根据建议的分类法)。第3.1节描述恶意软件分析使用的特征,第3.2节讨论现有算法。

3.1 Malware analysis features

本小节介绍了用于分析的样本的特征。在第3.1.1节中,我们展示了我们是如何提取特征的,而在第3.1.2节中,我们展示了考虑到的特征类型。
3.1.1特征提取方法
在本节中,我们将回顾以下三种特征提取方法:静态方法、动态方法和混合方法。
静态方法 静态特征提取是一种不运行可执行文件的内容中提取特征的方法。静态特性可以使用文件格式来提取,例如,便携式可执行文件(PE)和公共对象文件格式(COFF)[12,18,22,25]。静态特征也可以在不知道任何格式的情况下被提取出来。用这种方法提取的特征可以是字节序列、文件大小、字节熵等 [12,17,20,25]。静态特征提取方法的优点是它覆盖了完整的二进制内容。但问题是,静态特性容易发生打包和多态性,因为大多数静态提取的特性都来自加密的内容,而不是原始的程序体[40]。

动态方法 。动态特征提取包括通常在隔离环境中运行可执行文件,该环境可以是虚拟机(VM)或模拟器,然后从可执行文件的内存映像或其行为中提取特征。由于具有加壳和多态性的恶意软件必须展示真正的恶意代码来实现其目标,因此与静态特征提取方法相比,动态特征提取对这些恶意软件技术具有更强的抵抗力[40]。

安德森等人[21,41]使用Xen1和Royal等人[42],Dai等人[19]和Islam等人[22]使用VMWare2创建他们的虚拟机并执行动态分析。[27]等人使用布谷鸟沙箱3,这是一个开源的自动恶意软件分析系统来提取API调用。其他为杀病毒引擎工作的研究人员使用虚拟机作为杀病毒引擎的一部分来动态提取特征[24,26]。

实际上,仿真器有两类:全系统仿真器和应用程序级仿真器。全系统仿真器是一种计算机程序,它模拟计算机的每个组件,包括它的内存、处理器、显卡、硬盘等,目的是运行一个未经修改的操作系统。Qemu4是一个由多个系统[23,40,43]使用的全系统仿真器。考虑到全系统仿真器的耗时,Cesare和Xiang[15]建议使用应用程序级仿真来更有效地破解恶意软件,以便只实现执行文件所需的部分,包括指令集、API、虚拟内存、线程和进程管理,以及特定于操作系统的结构。

动态特征提取方法的一个问题是,它没有揭示所有可能的执行路径[40]。恶意软件可能有检测例程来检查它是在虚拟机或模拟器中执行的。当恶意软件发现自己在这样的环境中执行时,它将停止执行,因此动态模型将无法识别出它为恶意软件。检测一个可执行文件是否在VM中执行的方法可以从几篇论文[44,45]中找到。动态方法的另一个问题是,它的执行时间比静态特征提取要长得多【40】。

混合方法 该方法通过将静态特征提取特征与动态特征提取特征相结合,获得更高的检出率[39]。
我们的调查显示,大多数被调查的论文都是基于动态特征提取方法[21,24,46-63]。而其他方法则采用相同的比例,即单独采用静态方法[64–83]或混合方法[22、23、41、47、84-86]。

3.1.2 特征类型
在本节中,我们将对恶意软件分析人员使用的特性进行分类,并解释每种类型是如何被实际提取和表示的。
1、可打印字符串。 可打印的字符串是一个以空字符结尾的ASCII字符序列。舒尔茨等人。[12]发现,恶意软件有一些类似的字符串,区别于它,好软件也有一些常见的字符串,区别于恶意软件。可打印的字符串表示为二进制特性,其中“1”表示在可执行文件中存在的字符串,而“0”表示它在所有系统中都不存在 [12,22,24,26]。
Schultz等人[12]从PE文件的头中提取可打印的字符串。提取是直接的,因为标题是纯文本格式的。
Dahl等人[24]、Huang和Stokes[26]从内存[24,26]中的文件图像中提取空终止对象作为可打印字符串。他们的方法的覆盖范围比从头[12]提取可打印字符串要好,但它们可能是一些假阳性结果。
Islam等人[22]使用IDAPro5中的字符串工具从整个文件中提取可打印的字符串。

与其他作品不同,Saxe和Berlin[25]并不将可打印字符串作为二进制特征,而是使用它们的哈希值和字符串长度的对数来创建一个直方图,并使用直方图的每个箱子中可打印字符串的计数作为特征。它们将在ASCII代码范围内的所有长度为6或更多的字节序列作为可打印的字符串,这也与其他作品略有不同。

从本质上说,大多数恶意软件的功能并不依赖于可打印的字符串。因此,当恶意软件创建者发现一些字符串意外地被恶意软件检测器使用时,他们可以消除它们,或者即使可打印的字符串是必要的,他们也可以将它们分解成分布在不同位置的字符。因此,可打印的字符串并不是可靠的特性。

2、字节序列(字节代码)。可执行文件由字节序列(也称为字节码)组成。字节序列可以属于可执行文件的元数据、代码或数据。如前所述,字节序列是恶意软件的重要签名,因为恶意软件可能共享一些完全相同的公共序列或遵循相同的正则表达式。因此,字节序列也适用于恶意软件分析系统的特性[12,17,25,41]。
Schultz等人[12]以二进制特征的形式使用双字符字节序列,他们声称字节序列特征是信息最丰富的特征,因为它表示可执行文件中的机器代码。事实上,这并不是完全正确的,因为一些字节序列来自于元数据或数据部分。即使一个字节序列来自代码部分,由于在某些架构中的指令具有可变的长度,字节序列也可能不匹配机器代码。它们的字节序列特性存在维数爆炸的问题,因为有太多不同的双字节序列,而且它太大,无法容纳内存,所以它们只能将字节序列集分成几个集,并将它们提供给多个本机贝叶斯模型。

为了解决维度爆炸问题,Kolter和Maloof[17]利用信息增益从2.55亿个不同的4克字节序列中选择了前500个信息丰富的4克字节序列作为二进制特征。

与上述两部作品不同的是,Anderson等人[41]不使用字节序列本身作为特征,而是将字节序列匹配到马尔可夫模型中,因此他们使用的特征是从一个字节到另一个字节的转移概率。Chen等人的[25]利用每个1024字节窗口的字节熵和每个字节的出现情况,形成一个直方图,并将每个轴均匀地分成16个箱子,形成一个256个长度的特征向量。

Nataraj[20]等人将一个文件的整个字节序列转换为一个图像,其中每个字节代表一个像素的灰度。他们发现,属于同一家族的恶意软件在布局和图像上显得非常相似。用于将一维字节序列转换为二维矩阵的图像的宽度由文件的大小决定。利用Oliva和托拉尔巴特[87]提出的算法计算了恶意软件图像的图像特征。基于图像的技术的主要优点是它们对许多类型的混淆[88]具有鲁棒性。

字节序列在大多数情况下并不可靠。这是由于指令替换和寄存器重新分配等混淆技术可以分别改变操作码和操作码,这意味着机器代码被改变了。在所有这些工作中,字节码都是静态提取的,但通过加壳和多态性,用不同的算法或密钥加密的主程序主体将改变字节序列。

3、汇编代码 。机器码和装配码可以通过装配和拆卸相互翻译。作为恶意软件分析的一个特性,汇编代码比机器代码有一些优势。首先,汇编代码可以被程序员理解,因此作为一种特性,汇编代码更方便地进行预处理(例如,根据功能进行分类、过滤、截断等)。作为一个信息更丰富的特性出现。此外,恶意代码通常通过加壳或多态性进行加密,因此不可能从原始字节序列中获得它,但是,动态提取的汇编代码已经被解密,因此它包含了恶意代码。

Moskovitch等[18]提出装配代码可以比机器代码的恶意软件分析因为相同的恶意引擎可能位于文件的不同位置,因此可能链接到不同的地址内存甚至扰乱稍微通过降低机会和使用操作码的鲁棒性提高。他们通过使用IDAPro解析可执行文件来提取汇编代码。他们尝试将每个操作码n-gram(n=1,2 ,… ,6)的项频率(TF)和项频率逆文档频率(TF-IDF)作为特征,并使用文档频率(DF)、信息增益比或Fisher评分来选择特征。利用操作码双字符的TF值作为Fisher分数过滤的特征,得到了最好的结果。他们的方法的一个缺点是,它仍然容易发生死代码插入、操作转换、加壳和多态性。另一个是删除操作数导致信息丢失,从而可能导致精度的损失。

为了对抗加壳和多态性,Dai等人的[19]在虚拟机中运行恶意软件,并记录正在运行的字节码的序列,这些字节码将被分解成汇编代码。它们使用三种双操作码组合:块中的无序操作码,块中的有序但不一定是连续的操作码,块中的连续操作码。这样,它们的特性就更能抵抗死代码的插入和操作的重新排序。他们使用训练数据集中一个特征的频率与一个类之间的关联作为标准,并应用先验[89]的一个变体来选择顶级??特征。尽管无序操作码和块内操作码有序(但不一定是连续操作码)提高了对死码插入和操作重排序的抵抗力,但这些特性过于灵活,因此它们也会带来更多的假阳性情况。

Royal等人。[42]是另一项旨在检测隐藏且只能动态看到的代码的工作。他们这样做的方法是存储一个可执行文件的静态代码,并检查所执行的每个操作是否都在所存储的静态代码区内。如果不是,那么它就是隐藏代码的一部分。他们声称,如果主恶意软件引擎都存在,隐藏代码应该在隐藏代码中,实验结果也说明了隐藏代码提高了ClamAV6和McAfee防病毒的准确性。7

Santos等人的[23]分解可执行文件以获取其汇编代码,然后使用加权操作码n-gram频率作为其特征之一。权重是所有操作码的信息增益乘以n克的归一化TF的乘积。

4、API/DLL系统调用。 可执行文件所使用的DLL文件和DLL文件的函数公开了它们所使用的系统服务。可执行调用由它所依赖的DLL文件的函数显示。因此,可以推断出它可能打算做什么行为或它将能够做什么。

Schultz等人[12]通过使用的可执行文件提取DLL文件、DLL文件中的函数以及每个DLL的函数数从元数据中提取DLL文件,以便了解资源如何影响可执行文件的行为以及每个DLL的使用程度。前两个作为二进制特征,第三个是实值特征。

Bayer等人[40]和Santos等人[23]使用模拟器动态提取对WindowsAPI函数的调用。然后,他们使用这些API函数在执行期间获取可执行文件的操作,包括I/O活动、注册表修改活动、进程创建/终止活动、可执行文件的 络连接活动、自我保护行为、系统信息窃取、执行导致的错误以及与Windows服务管理器的交互。

Fredrikson等人[43]也使用一个模拟器来监控系统调用。然后,它们利用系统调用与其参数之间的关系形成一个依赖图,其中节点是系统调用,边连接共享某些参数的系统调用。它们将一个行为定义为它的一个子图,可以用来区分恶意软件和好软件的行为将被挖掘并用于检测恶意软件。

安德森等人[41]、Huang和Stokes[26]将系统调用分组为高级类别,其中每个类别表示功能相似的系统调用组,如在屏幕上绘制或写入文件。安德森等人,[41]然后将系统调用组的跟踪提供给一个马尔可夫链,以便他们使用系统调用的转移概率作为特征。Huang和Stokes[26]使用这些高级API调用事件作为二进制特性。

Islam等人[22]和Dahl等人[24]通过在虚拟机中运行一个可执行文件来提取窗口API函数调用及其参数。Islam等人[22]将视窗API函数和参数视为单独的实体,并将每个实体的出现频率作为其特征。Dahl等人。[24]使用单个系统API调用、一个输入参数和由三个连续的API函数调用组成的API三克的组合,作为二进制特征,随后使用互信息进行选择。

Kolosnjaji[27]等人使用动态恶意软件分析系统布谷鸟沙箱来提取由一个可执行文件调用的Windows系统调用的序列。他们使用它们的单热表示,并将系统调用的顺序提供给连续的深度学习模型。

5、控制流程图 。 控制流图是表示程序流程的有向图,其中节点是指令,而两个节点之间的边表示两个指令执行顺序的顺序。图中的一个顶点是一个基本的块,在其中间没有跳转或分支指令。一个有向边表示控制流中的跳跃。在一些论文[15,41]中,控制流图被用作检测恶意软件的特征或签名。

Cesare和Xiang[15]表示,类似的恶意软件通常具有类似的高级结构化控制流。他们发现压缩和加密的数据具有相对较高的熵,所以他们首先使用字节序列的熵来检测一个可执行文件是否被加壳。如果是这样,他们将使用一个应用程序级模拟器来提取隐藏的代码。他们仍然使用字节序列的熵来检测隐藏代码提取的完成情况。然后使用推测性分解[90]对二进制文件的内存映像进行分解。最后,他们使用结构化过程从过程的控制流图中恢复高级结构化控制流,并使用字符串表示它们。表示控制流图的字符串都被保存为签名。图2显示了控制流图和签名字符串之间关系示例。

Anderson等人[41]还发现,多态病毒在改变其控制流图以避免检测的同时,构建语义相似的版本并不容易。因此,他们使用控制流图作为特征。更具体地说,它们使用控制流图中每个k-graphlet(k个节点的子图)的出现频率来表示控制流图。

6、函数。一些论文(例如,Islam等人[22]和Chen等[14])使用函数级特征进行恶意软件分类。
特别是,Islam等人[22]发现函数长度它包括区分恶意软件家族的统计有用信息。在获得每个可执行文件的汇编代码后,他们通过测量代码的字节数来计算它们的长度,并使用每个函数长度的出现频率作为一个特征。然而,显然,函数长度是对模糊最不鲁棒的特性。函数长度可以通过插入死代码来任意增加,或者通过将它们分割为多个函数来减少。

应该注意的是,两个语义上彼此相似的函数被认为是彼此的克隆。为此,Chen等人[14]假设属于同一恶意软件家族的一些文件共享一些使用克隆关系连接的功能。因此,它们将函数聚类到组中,其中任意两个函数都可以使用克隆关系直接或间接地连接起来,并从每个组中选择一个函数作为范例作为签名。他们使用NiCad[93]来检测这两个功能是否相互克隆。然而,使用一个函数来表示一组函数是有问题的。由于相同的函数代代,最新版本看起来可能与原始版本完全不同。如果选择旧版本作为范例,克隆检测器可能无法识别出一些未知的新一代它。虽然他们的系统可以在安卓APK文件上工作,但该方法可以直接应用于可执行恶意软件的分类。

7、其他文件信息。 一些杂项文件属性可以帮助工程师区分恶意软件和固软件,因为它们的平均值或大多数值在两组之间存在显著差异。这样,这些属性也会被用作特性。它们是文件大小[40,41],退出代码[40],时间消耗[40],熵[41,94],打包或不打包[41],静态/动态指令的数量[41],以及控制流图[41]中的顶点/边的数量。这些特性可能很有用,但显然信息量不够丰富。

8、结论性的评论。 使用上述所有特性的有效性可能会以某种方式降低,或者它们的信息不足。如此多的论文都使用了多种特性。直觉是,任何单一的特征源都可以被混淆以逃避检测,但在不妨碍[22,41]功能的情况下同时混淆所有特征是极其困难的。

4、成分分析技术的分类法

本节将介绍恶意软件组合分析技术的分类法。我们确定了两个主要的维度,沿着它,被调查的论文可以方便地组织起来。第一个显示了用于成分分析的步骤。第二个维度确定了分析的目标(即策略)。图3显示了所建议的分类法的图形表示。

4.1 步骤

成分分析允许逆向工程师分析恶意软件样本的组成,以了解它们的功能和行为。这反过来又让工程师可以识别恶意软件样本和攻击者的意图。此外,它还允许反向工程师根据严重程度对恶意软件进行排序,并允许他们有效地对其资源进行分类。
基本上,成分分析主要有三个主要步骤:拆卸、表示和分类。

4.1.1 拆解
大多数软件程序是通过编译的可执行文件交付给用户的,而不是源代码。反汇编器使逆向工程师分析没有源代码的软件程序成为可能。从技术上讲,解汇编器是一个将机器语言转换或翻译成汇编语言的过程。“反汇编程序”的逆操作是“汇编程序”。有许多工具用于此目的(例如,IDAPr8)。
拆卸方法可以分为以下两类:静态技术和动态技术。第一类方法对二进制组件进行统计分析,解析二进制文件中的操作码。第二类方法监控程序的执行轨迹,以识别指令并恢复二进制版本。

动态方法和静态方法都有优缺点。静态分析考虑了整个程序,而动态分析只能关注已执行的指令。因此,在适应动态分析时,不容易确保整个可执行文件被访问。但是,动态分析保证了输出(即拆卸输出)只包含实际的指令。

一般来说,静态分析技术有两种方法。第一种方法被称为线性扫描[122]。这种方法从二进制的第一个字节开始,然后开始解码一条指令。使用线性扫描解汇编器的主要缺点是在程序中嵌入的数据导致的错误概率高。第二种方法称为递归遍历[123],它允许工程师通过遵循程序[15,41]的控制流(CF)来修复“嵌入式数据”的问题。然而,这种方法的问题是,它可能无法成功地分析代码的各个部分(即函数)。这是由于控制传输指令(例如,跳转)不能静态地确定。这个问题可以通过使用线性扫描算法来分析代码[124]中的不可达区域来解决。

4.1.2 表示学习
任何恶意软件分类和组合分析技术的成功通常取决于数据表示。虽然特定的领域知识可以帮助工程师为可执行文件设计表示和特征向量,但手工特性工程过程没有考虑特性之间的关系,并定义那些能够区分可执行文件的独特模式。

实际上,表示学习是一套方法和/或技术,使系统能够从原始数据(即汇编代码)中自动提取恶意软件分类所需的表示。这个过程取代了手动特性工程,使恶意软件分类系统能够学习有用的特性,并集成它们来执行分类。

使用特征学习背后的动机是,组合分析方法通常需要对混淆和包装等反分析技术具有稳健的输入。

深度学习方法(例如,堆叠自动编码器[125],堆叠去噪自动编码器[116],深度信念 络[126],……)已知并被认为是提取鲁棒特征的(最佳)方法,用于为大规模异构环境构建鲁棒的恶意软件和相似性分析工具。

4.1.3 分类
在分解可执行样本后,使用装配代码函数提供一个表示学习模块,以获得鲁棒的特征和“良好的”数据表示。然后将函数表示输入任何分类算法,如朴素贝叶斯分类器(NBC)[64]、基于规则的分类器[64]、决策树(DT)[65]、k最近邻(K-NN)[71]、贝叶斯 络[85]、神经 络(NN)[24]、随机森林(RF)[67]、隐马尔可夫模型(HMM)[127]和支持向量机(SVM)[65]。该分类方法使我们能够识别功能之间的关系,并考虑到以下三种分析策略:变量分析、相似性分析和家族分析。

5、被调查论文的描述

在本节中,我们将描述每一篇被回顾的论文。表1提供了关于每篇论文所使用的算法和特性的信息,并强调了主要的限制。该表还显示了每个工作的可伸缩性,包括它在存储库存在增量更新时工作的能力。最后一列显示了所提出的分类技术是否对反分析技术具有鲁棒性。从表1中可以看出,大多数工作使用一种以上的分类算法来检测恶意软件和分类,以保证更准确的结果。在表2中,我们比较了不同的w.r.t方法的主要目标:恶意软件检测和相似性分析,家族分析和变异分析。

6、挑战与问题

基于第5节中解释的描述,我们在这里讨论被调查文章的挑战和/或问题。

6.1.恶意软件逃避技术

  • 死代码插入[13]:插入无用的指令(例如,nop)或插入一些只影响未使用的变量的指令。
  • 代码转换[13]:更改独立指令的顺序。
  • 寄存器重新分配[13]:交换寄存器的使用来存储特定活动范围内的数据/地址。
  • 指令替换[13]:用等效的指令替换一个指令。
  • 控制流平坦[134]:(1)打破函数的身体基本块(2)把所有基本块最初在不同的嵌套级别彼此(3)封装基本块的选择性结构(C++开关语句)(4)封装在一个循环的选择。
  • 虚假控制流[135]:对于一个基本块,添加一个新的基本块,其中包含一个不透明的谓词,然后对原始基本块进行条件跳转。

6.1.2 加壳
加壳是一种压缩/加密可执行文件的技术,其中这些加壳的文件将在运行时被解压缩/解密。这意味着静态分析器无法看到真正的代码,因为它不能运行可执行文件。包装不仅用于恶意软件,也用于保护善意软件方案[15,41]。根据安德森等人[41]的统计,在他们的数据集中47.56%的恶意软件被加壳, 19.59%的好软件被加壳。

6.1.3 多态性
多态性也是一种基于加密和解密的技术。一个多态性恶意软件包含两部分:多态性引擎和执行恶意功能的真实程序。前者在复制时改变加密算法和密钥,后者的代码本身是固定的,但在运行时被前者以不同的方式加密。这样,整个多态恶意软件程序在每一代[136]上看起来都会有所不同。

6.1.4 变形
一个变形恶意软件在复制时重新编程。因此,在每一代中,整个程序体都使用代码混淆技术对[136]进行修改,而功能保持不变。变质恶意软件被认为比多态恶意软件更难编写。

6.2.对抗性的攻击和防御

由于最近的研究方向是自动化恶意软件分析的过程使用机器学习技术,提出的解决方案应该对对抗性的例子,输入由攻击者设计欺骗机器学习模型,使它生成错误的决策(例如,使恶意软件分析工具无法检测恶意代码)。最近有研究表明,包括深度神经 络在内的机器学习模型很容易受到敌对例子的攻击。攻击者很容易创建“对抗性示例”的[137],通过简单地延续部分输入来欺骗机器学习模型。

对制作一个被分类器??错误分类的对抗性???的问题的正式描述是

7.3.可持续解决方案

大多数恶意软件分析工具的威力在很大程度上是基于他们对恶意软件和危险攻击的大量知识。事实上,MDS使用的SVM等有监督的机器学习算法严重依赖于标记数据来学习如何有效地分类恶意行为和正常行为[152]。然而,获取关于恶意行为的数据是具有挑战性和危险的,特别是当我们被要求对生产系统发起真正的攻击,并将用户、应用程序和系统置于危险之中时。为了解决这个问题,我们可能需要有一种有效的方法来合成新的恶意软件和增加我们的训练数据,以改进基于机器学习的mds。

生成模型如生成对抗 络(GANs)[153]可以用于生成合成恶意软件,并通过增强恶意软件训练集,提高基于机器学习的MDS的检测精度。我们鼓励研究人员调查GANs的使用,它在产生高质量的新合成数据方面显示出前所未有的能力,以产生恶意软件变体。特别是,他们需要设计新的算法,以有效地训练存储库中现有的恶意软件,以便学习如何生成它们的变体。为此,研究人员需要收集大量由不同属性(漏洞、目标用户、目标主机等)组成的恶意软件样本。从公共领域来的。由于GANs只定义为实值的、连续的数据,而恶意软件的设计是基于离散的令牌(字节)序列,因此,在原始的GANs理论上应该应用特殊的扩展。例如,我们可能需要将GANs与递归神经 络(RNNs)集成来解决排序数据[154]的问题。此外,为了解决离散数据的问题,我们可能需要在每个分类变量中并行放置一个密集的层,然后激活Gumbel-Softmax和一个连接来得到最终的输出[155]。

8、结论

上述贡献有效地解决了文献中一些有趣的研究空白。但仍有一些问题有待进一步研究和研究。以下研究途径可以进一步探索,以实现更好的准确性和有效的解决方案相比,最先进的。第一个途径是设计合作的MDS来解决关于恶意软件的知识有限和不完整的问题。通过协作,MDS可以咨询其他可疑恶意软件,提高决策的准确性。为此,我们确定了在合作的MDS中应该解决的三个挑战:可信度、公平性和可持续性。其次,通过从样本中自动提取鲁棒特征,设计鲁棒MDS。该解决方案不仅能够适应已知恶意软件的未知变体,还能够适应未知恶意软件的未知变体。此外,解决方案应该是对抗性攻击。最后,通过使MDS能够综合生成新的恶意代码和良性代码,以提高基于机器学习的恶意软件分类方法的准确性。

文章知识点与官方知识档案匹配,可进一步学习相关知识OpenCV技能树首页概览11533 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年5月18日
下一篇 2022年5月18日

相关推荐