首页 / 专利库 / 人工智能 / 人工神经网络 / 使用人工神经网络的恶意软件检测和分类

使用人工神经网络的恶意软件检测和分类

阅读:1049发布:2020-07-17

专利汇可以提供使用人工神经网络的恶意软件检测和分类专利检索,专利查询,专利分析的服务。并且本公开涉及使用 人工神经网络 的恶意 软件 检测和分类。呈现了一种用于计算的装置。在 实施例 中,该装置可以包括用来接收二进制文件并且将二进制文件转换成多维数组的转换器,该二进制文件要在该装置或另一装置上执行。该装置可以进一步包括耦合到转换器的分析器,该分析器用来处理多维数组以使用具有 输入层 、 输出层 以及在输入层与输出层之间的多个 隐藏层 的至少一个经部分地重新训练的人工神经网络对嵌入在多维数组内的 恶意软件 进行检测和分类。分析器可以进一步输出分类结果,并且该分类结果可以用于防止二进制文件在该装置上或另一装置上的执行。,下面是使用人工神经网络的恶意软件检测和分类专利的具体信息内容。

1.一种用于计算的装置,包括:
用来接收二进制文件并且将所述二进制文件转换成多维数组的转换器,所述二进制文件要在所述装置或另一装置上执行;以及
耦合到所述转换器的分析器,用来:
处理所述多维数组以使用具有输入层输出层以及在所述输入层与输出层之间的多个隐藏层的至少一个经部分地重新训练的人工神经网络(ANN)对嵌入在所述多维数组内的恶意软件进行检测和分类;以及
输出分类结果;
其中所述分类结果用于防止所述二进制文件在所述装置或另一装置上的执行。
2.根据权利要求1所述的装置,其中所述多维数组是2D数组。
3.根据权利要求2所述的装置,其中所述转换器要首先将所述二进制文件转换成8位无符号整数的向量,并且然后将所述向量转换成所述2D数组。
4.根据权利要求3所述的装置,其中所述转换器进一步要首先将所述向量转换成内部
2D数组,并且然后在输出所述2D数组之前对所述内部2D数组调整大小。
5.根据权利要求4所述的装置,其中经调整大小的2D数组具有224乘224或299乘299中的一个的大小。
6.根据权利要求1所述的装置,其中所述至少一个经部分地重新训练的ANN包括先前被训练以识别模式的神经网络,其中它的数个初始层的权重被冻结,并且它的数个最后的层的权重被重新训练以识别恶意软件二进制数。
7.根据权利要求6所述的装置,其中所述ANN是Inception-BN网络、视觉几何组(VGG)网络或AlexNet网络中的一个。
8.根据权利要求6所述的装置,其中所述ANN是Inception-BN网络,其中它的最后的层被重新训练以对恶意软件进行分类。
9.根据权利要求6所述的装置,其中所述ANN是视觉几何组(VGG)16或VGG 19中的一个,其中它的顶层被冻结并且它的最后三层被重新训练以对恶意软件进行分类。
10.根据权利要求1-9中任一项所述的装置,包括具有所述转换器和所述分析器的恶意软件检测器。
11.根据权利要求1-9中任一项所述的装置,包括具有所述转换器和所述分析器的操作系统
12.根据权利要求1-9中任一项所述的装置,其中所述装置是服务器
13.一种用于计算的装置,包括:
用来接收二进制文件并且将所述二进制文件转换成两个多维数组的转换器,所述二进制文件要在所述装置或另一装置上执行;
第一分析器和第二分析器,每个耦合到所述转换器,并且每个用来:
处理所述多维数组中的一个以使用具有输入层、输出层以及在所述输入层与输出层之间的多个隐藏层的经训练的、经重新训练的、或经部分地重新训练的ANN中的一个对嵌入在所述多维数组内的恶意软件进行检测和分类;以及
输出分类结果,所述分类结果用于防止所述二进制文件在所述装置或另一装置上的执行;以及组合器,其被耦合到所述第一分析器和第二分析器中的每个,以处理所述分类结果并输出经组合的分类结果。
14.根据权利要求13所述的装置,其中所述多维数组是2D数组。
15.根据权利要求14所述的装置,其中所述转换器要首先将所述二进制文件转换成8位无符号整数的向量,并且然后将所述向量转换成所述2D数组。
16.根据权利要求15所述的装置,其中所述转换器进一步要首先将所述向量转换成内部2D数组,并且然后对所述内部2D数组调整大小以获得所述2D数组。
17.根据权利要求13所述的装置,其中所述第一分析器的所述ANN包括先前被训练以识别模式的神经网络,其中它的数个初始层的权重被冻结,并且它的数个最后的层的权重被重新训练以识别恶意软件二进制数。
18.根据权利要求13所述的装置,其中所述第二分析器的所述ANN被在一组恶意软件图像上进行完全地训练,并且其架构被新定义。
19.根据权利要求13所述的装置,其中所述第二分析器的所述ANN被在一组恶意软件图像上进行完全地训练,但是其架构保留如下各项中的一个:LeNet结构、CIFAR-10神经网络结构或多层感知器。
20.一种检测二进制文件中的恶意软件的方法,包括:
接收二进制文件并且将所述二进制文件转换成多维数组,所述二进制文件要在一个或多个装置上执行;以及
处理所述多维数组以使用具有输入层、输出层以及在所述输入层与输出层之间的多个隐藏层的至少一个经部分地重新训练的ANN对嵌入在所述多维数组内的恶意软件进行检测和分类;以及
输出分类结果;
其中所述分类结果用于防止所述二进制文件在一个或多个装置上的执行。
21.根据权利要求20所述的方法,进一步包括:
将所述二进制文件转换成附加的多维数组,所述附加的多维数组比所述多维数组小;
处理所述附加的多维数组以使用具有输入层、输出层以及在所述输入层与输出层之间的多个隐藏层的第二经训练的ANN对嵌入在所述附加的多维数组内的恶意软件进行分类以获得第二分类结果;以及
将第一分类结果与所述第二分类结果组合成最终的分类结果;以及
向用户输出所述最终的分类结果。
22.根据权利要求20所述的方法,其中所述至少一个经部分地重新训练的ANN包括先前被训练以识别模式的神经网络,其中它的数个初始层的权重被冻结,并且它的数个最后的层的权重被重新训练以识别恶意软件二进制数。
23.根据权利要求20所述的方法,其中所述多维数组是2D数组,以及如下各项中的至少一个:
转换器要首先将所述二进制文件转换成8位无符号整数的向量,并且然后将所述向量转换成所述2D数组;
转换器要首先将所述二进制文件转换成8位无符号整数的向量,将所述向量转换成内部2D数组,并且然后在输出所述2D数组之前对所述内部2D数组调整大小。
24.根据权利要求21所述的方法,其中所述第二经训练的ANN被在一组恶意软件图像上进行完全地训练,并且其架构被新定义。
25.一个或多个机器可读介质,其包括代码,所述代码在被执行时使得机器实行根据权利要求20-24中任一项所述的方法。

说明书全文

使用人工神经网络的恶意软件检测和分类

技术领域

[0001] 本公开的实施例涉及计算的技术领域,并且特别地涉及恶意软件检测和分类。

背景技术

[0002] 常规的计算系统可以包括自动化的恶意软件检测系统。一些恶意软件检测系统可以由机器学习算法提供动,使用签名来实现高分类结果。然而,签名的接近指数的快速增加使得签名匹配机器学习难以或不能跟上。其他方法包括静态分析和动态分析,其二者都具有优点和缺点。虽然静态分析可以对正在分析的代码进行反汇编,但其性能可能因代码混淆而受到损害。另一方面,能够对未知或可疑代码进行拆包的动态分析可能是耗时的。此外,在具有大量维度的数据集中,如果在没有数据的完全知识的情况下实现降维,则分类结果可能显著降级。附图说明
[0003] 图1图示了依照各种实施例的具有本公开的恶意软件检测和分类技术的系统的概观。
[0004] 图1A图示了依照各种实施例的训练系统概观。
[0005] 图2图示了依照各种实施例的描绘“集成(ensemble)”系统的替代系统概观。
[0006] 图3图示了依照各种实施例的迁移学习的使用。
[0007] 图4A至图4L图示了依照各种实施例的示例经部分地重新训练的深度神经网络分类器。
[0008] 图5图示了依照各种实施例的用于对恶意软件进行检测和分类的过程的操作流程的概观。
[0009] 图6图示了依照各种实施例的用于使用两个人工神经网络的集成对恶意软件进行检测和分类的替代过程的操作流程的概观。
[0010] 图7图示了依照各种实施例的用于训练和验证恶意软件检测和分类系统的过程的操作流程的概观。
[0011] 图8图示了依照各种实施例的适合于实践本公开的计算机设备的框图
[0012] 图9图示了依照各种实施例的示例计算机可读存储介质,其具有被配置成实践图5-7的过程的各方面的指令。

具体实施方式

[0013] 在实施例中,一种用于计算的装置可以包括用来接收二进制文件并且将二进制文件转换成多维数组的转换器,该二进制文件要在该装置或另一装置上执行,以及耦合到该转换器的分析器,所述分析器用来处理多维数组以对嵌入在多维数组内的恶意软件进行检测和分类。在实施例中,转换器可以使用具有输入层输出层以及在输入层与输出层之间的多个隐藏层的至少一个经部分地重新训练的人工神经网络。在实施例中,转换器可以进一步输出分类结果,其中该分类结果用于防止二进制文件在该装置或另一装置上的执行。
[0014] 在实施例中,多维数组可以是2D数组。在实施例中,转换器可以首先将二进制文件转换成8位无符号整数的向量,并且然后可以将向量转换成2D数组。进一步地,在一些实施例中,转换器可以首先将向量转换成内部2D数组,并且然后在输出2D数组之前对内部2D数组调整大小。在这样的实施例中,经调整大小的2D数组可以具有例如224乘224或299乘299的大小。在其中转换器输出两个2D数组以分别由两个人工神经网络分析的替代实施例中,经调整大小的数组可以具有例如224乘224或299乘299的第一2D数组,以及例如28乘28的第二2D数组。
[0015] 在实施例中,所述至少一个经部分地重新训练的人工神经网络可以包括先前被训练以识别模式的神经网络,其中它的数个初始层的权重被冻结,并且它的数个最后层的权重被重新训练以识别恶意软件二进制数(binaries)。例如,人工神经网络可以包括Inception-BN网络,其中它的最后的层被重新训练以对恶意软件进行分类。或者,例如,在实施例中,人工神经网络可以是视觉几何组(VGG)16或VGG 19中的一个,其中它的顶层被冻结并且它的最后三层被重新训练以对恶意软件进行分类。
[0016] 在实施例中,该装置可以包括包含转换器和分析器的恶意软件检测器,或者,例如,可以包括具有转换器和分析器的操作系统。在实施例中,该装置可以是服务器
[0017] 在接着的描述中,参考形成本文的一部分的附图,其中相同的数字(或者,根据具体情况而定,索引数字的最后两位)自始至终表示相同的部分,并且其中通过图示的方式示出了可以实践的实施例。要理解,在不脱离本公开的范围的情况下,可以利用其他实施例并且可以做出结构或逻辑改变。因此,不要在限制性意义上理解以下详细描述,并且实施例的范围由所附权利要求及其等同物限定。
[0018] 可以以最有助于理解所要求保护的主题的方式将各种方法的操作依次描述为多个离散动作或操作。然而,描述的顺序不应被解释为暗示这些操作必定是顺序相关的。特别地,这些操作可能不以呈现的顺序来执行。所描述的操作可以以与所描述的实施例不同的顺序来执行。可以执行各种附加操作和/或可以在附加实施例中省略、分割或组合所描述的操作。
[0019] 出于本公开的目的,短语“A和/或B”意味着(A)、(B)或(A和B)。出于本公开的目的,短语“A、B和/或C”意味着(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)。
[0020] 描述可以使用短语“在一实施例中”或“在实施例中”,其可以各自指代相同或不同实施例中的一个或多个。此外,如关于本公开的实施例使用的,术语“包括”、“包含”、“具有”等是同义的。
[0021] 并且,注意,可以将实施例描述为被描绘为作业图、流程图、数据流图、结构图或框图的过程。尽管作业图可以将操作描述为顺序过程,但是许多操作可以并行地、并发地或同时地执行。另外,可以重新安排操作的顺序。过程可以在其操作完成时终止,但也可以具有未在(多个)图中包括的附加步骤。过程可以对应于方法、函数、程序、子例程、子程序等。当过程对应于函数时,其终止可以对应于函数向调用函数和/或主函数的返回。此外,过程可以由硬件、软件、固件中间件、微代码、硬件描述语言或其任何组合来实现。当以软件、固件、中间件或微代码来实现时,用来执行必要任务的程序代码或代码段可以存储在机器或计算机可读介质中。代码段可以表示过程、函数、子程序、程序、例程、子例程、模、程序代码、软件封装、类,或者指令、数据结构、程序语句等的任何组合。
[0022] 如在下文(包括权利要求书)中使用的,术语“电路”可以指代如下各项、是如下各项的部分,或者包括如下各项:专用集成电路(ASIC)、电子电路、执行一个或多个软件或固件程序的处理器(共享的、专用的或组)和/或存储器(共享的、专用的或组)、组合逻辑电路和/或提供所描述的功能性的其他适合的硬件组件。在一些实施例中,电路可以实现一个或多个软件或固件模块,或者与电路相关联的功能可以由一个或多个软件或固件模块实现。
[0023] 如在下文(包括权利要求书)中使用的,术语“存储器”可以表示用于存储数据的一个或多个硬件设备,包括随机存取存储器(RAM)、磁RAM、磁芯存储器、只读存储器(ROM)、磁盘存储介质、光存储介质、闪存设备和/或用于存储数据的其他机器可读介质。术语“计算机可读介质”可以包括但不限于存储器、便携式或固定的存储设备、光存储设备、无线信道以及能够存储、包含或承载(多个)指令和/或数据的各种其他介质。
[0024] 如在下文(包括权利要求书)中使用的,术语“计算平台”可以被认为是如下各项的同义词并且可以在下文中偶尔被称为如下各项:计算机设备、计算设备、客户端设备或客户端、手机、移动单元、移动终端、移动台、移动用户、移动装备、用户装备(UE)、用户终端、机器类型通信(MTC)设备、机器到机器(M2M)设备、M2M装备(M2ME)、物联网(IoT)设备、订户、用户、接收者等,并且可以描述能够顺序地和自动地执行一系列算术或逻辑操作、被配备成在机器可读介质上记录/存储数据、以及从通信网络中的一个或多个其他设备传输和接收数据的任何物理硬件设备。此外,术语“计算平台”可以包括任何类型的电子设备,诸如蜂窝电话或智能电话、平板个人计算机、可穿戴计算设备、自主传感器个人数字助理(PDA)、膝上型计算机、台式个人计算机、视频游戏控制台、数字媒体播放器、车载式信息娱乐(IVI)和/或车载娱乐(ICE)设备、车载式计算系统、导航系统、自主驾驶系统、车辆到车辆(V2V)通信系统、车辆到一切(V2X)通信系统、手持消息传送设备、个人数据助理、电子书阅读器、增强现实设备和/或任何其他相似的电子设备。
[0025] 如在下文(包括权利要求书)中使用的,术语“链路”或“通信链路”可以指代用于传送数据或数据流的任何传输介质,或者有形或者无形。另外,术语“链路”可以与“通信信道”、“数据通信信道”、“传输信道”、“数据传输信道”、“接入信道”、“数据访问信道”、“信道”、“数据链路”、“无线电链路”、“载波”、“射频载波”和/或表示通过其传送数据的路径或介质的任何其他相似术语同义和/或等同。
[0026] 如在下文(包括权利要求书)中使用的,术语“模块”、“输入接口”、“转换器”、“分析器”、“人工神经网络”、“经训练的神经网络”、“经部分地重新训练的人工神经网络”、或“经重新训练的人工神经网络”可以指代如下各项,是如下各项的部分,或者包括如下各项:一个或多个专用集成电路(ASIC)、电子电路、编程有用来执行本文中描述的操作的逻辑的可编程组合逻辑电路(诸如现场可编程阵列(FPGA))、利用用来实行本文中描述的操作的逻辑执行从多个编程指令生成的一个或多个软件或固件程序的处理器(共享的、专用的或组)和/或存储器(共享的、专用的或组),和/或提供所描述的功能性的其他适合的组件。
[0027] 在下文中,描述了利用迁移学习的恶意软件检测系统。最初注意到训练人工神经网络(ANN)可能是相当昂贵的。例如,高度复杂的模型可能花费数周来训练,使用数百个机器,每个机器配备有昂贵的图形处理单元(GPU)。因此,在实施例中,使用迁移学习,示例装置可以从复杂的人工神经网络迁移尽可能多的知识,并将该知识应用于相对较小大小的数据集,诸如例如恶意软件二进制数。因此,如下面所描述的,在实施例中,可以在短时间内在恶意软件二进制数上对已经在大数据集上训练的复杂人工神经网络进行部分地训练。此外,如下面还指出的,根据各种实施例的装置对于代码混淆而言是鲁棒的。
[0028] 在实施例中,可以使用有限的恶意软件训练数据来建立有效的分类结果。例如,源设置可以包括从150万个图像学习到的文本信息,其然后可以被应用于恶意软件图像分类的目标任务。因此,在150万个图像上训练了的ANN仅需要被在恶意软件数据集上稍微重新训练,以便能够将图像准确地分类为包含恶意软件。
[0029] 注意,本文中描述的各种实施例可以说是将恶意软件检测问题变换成视觉识别问题。因此,在实施例中,可以显著减少提取恶意软件特征的努力和成本。这里还注意到,虽然常规的恶意软件检测方法可能需要分析代码、匹配签名以及对直方图和循环进行计数中的一个或多个,但是在实施例中,可以对被转换成图像的恶意软件二进制数进行快速地扫描和分类而无需特征提取或类似的努力。因此,依照各种实施例,可以由装置执行可视化以检查恶意软件二进制数的纹理。
[0030] 图1图示了依照各种实施例的结合有本公开的恶意软件检测和分类技术的系统100的概观。系统100可以包括包含转换器110和分析器120的装置。转换器110和分析器120每个可以是单独的芯片或模块,或者例如可以集成到单个芯片或模块中。参考图1,可以将二进制文件101输入到转换器110。二进制文件可以包括音频数据、文本数据、图像数据等。
一般地,二进制文件101不被认为是安全的,并且可能包含恶意软件,这是为什么在允许在装置(例如,具有系统100的装置或可以由系统100通知分类结果的任何其他装置)上执行它之前对它进行扫描和对它进行分类是合期望的。如果在分析之后将其分类为是恶意软件类型,则在实施例中,分类结果可用于防止二进制文件在具有系统100的装置或可由系统100通知分类结果的另一装置上的执行。
[0031] 在实施例中,转换器110可以经由二进制文件输入接口111接收二进制文件101,并且可以执行若干个预处理技术。在实施例中,这些技术可以包括将二进制文件转换成向量,诸如例如8位无符号整数的向量。在实施例中,这可以通过二进制到8位向量转换113来执行。在转换之后,可以通过2D数组转换115将向量转换成多维数组,诸如例如2D数组,如图1的示例装置中所图示的。例如,可以将1D 8位向量转换成2D数组,其大小取决于1D向量的长度。例如,2D数组转换可以根据下表设置2D数组的宽度和高度,其中2D数组的高度是总长度除以宽度:长度(字节) 宽度 高度
<= 1000 512 长度/512
> 1000 至1500 1024 长度/1024
> 1500 2048 长度/2048
表1 - 2D数组宽度/高度。
[0032] 在实施例中,可以进一步对通过2D数组转换115生成的2D数组调整大小以适应要用于处理它的ANN所需的输入大小。因此,例如,考虑到一些公知的卷积人工神经网络,视觉几何组(VGG)16、VGG19、Inception-BN、AlexNet和ResNet都接受224×224输入图像,而Inception v3和Xception需要299×299像素输入。另一方面,LeNet具有28x28的输入大小。因此,在实施例中,转换器110中示出的最后一个模块,即数组调整大小117,可以将通过2D数组转换115创建的2D数组调整大小成一个或多个经调整大小的2D数组。因为数据的2D数组,尤其是包括8位无符号整数的2D数组,可以被认为是图像,其中每个元素描述在0与255之间的灰度值,所以这样的2D数组在本文中可以被称为“2D图像”。
[0033] 这里重申,2D数组仅是可以在各种实施例中使用的多维数组的一个示例,并且因此是非限制性的。因此理解,对于其他多维数组,在实施例中,如图1中示出的转换器110的数组转换115和数组调整大小117模块中的每个可以生成各种维度的数组和对各种维度的数组调整大小。
[0034] 继续参考图1,在实施例中,可以将来自数组调整大小117的经调整大小的2D数组输出输入到分析器120。分析器120可以包括具有输入层、输出层以及在输入层和输出层之间的多个隐藏层的经部分地重新训练的ANN 123,例如卷积神经网络,诸如Inception-BN。在下面描述的图4A到4L中图示了Inception-BN的示例经部分地重新训练的版本。这里注意到ANN 123可以被称为深度神经网络,并且进一步地,如上面所描述的,可以依照各种实施例对利用迁移学习进行利用。因此,在实施例中,ANN的前若干个层可以被冻结,并且其权重从现有的现有技术平神经网络模型获得。在实施例中,该信息可以从诸如例如自然图像分类或计算机视觉的域获得。然后,可以在域特定的数据(诸如,依照各种实施例,恶意软件图像)上调整和训练ANN的其余层,即未冻结的那些层,从而获得经部分地重新训练的ANN 
123。下面参考图1A更全面地描述该重新训练过程。
[0035] 最后,在利用经部分地重新训练的ANN 123处理经调整大小的2D数组之后,可以获得分类结果140。在实施例中,如果分类结果140是恶意软件的类型,则分类结果140可用于防止二进制文件101在具有系统100的装置或可由系统100通知分类结果的另一装置上的执行。
[0036] 在实施例中,系统100可以实现为具有转换器110和分析器120的恶意软件检测器。替代地,系统100可以包括具有转换器110和分析器120的操作系统。仍替代地,系统100可以是云服务器。
[0037] 图1A图示了依照各种实施例的训练系统100A。在实施例中,训练系统100A可以非常类似于图1的系统100,具有少许变化。为了描述的容易,将仅描述这些变化。在实施例中,训练系统100A可用于训练图1的系统100的ANN,即经部分地重新训练的ANN 123。在实施例中,和图1的系统100一样,训练系统100A也可以包括具有相同组件的相同转换器110。然而,注意,输入到训练系统100A中的(多个)恶意软件二进制文件101可以是已知包含特定类型的恶意软件的恶意软件二进制文件的训练集,其可用于使用重新训练模块125来训练ANN 123的最后的层。
[0038] 因此,代替使用经完全训练的分析器来处理2D图像,图1A的训练系统100A可以代之以包括训练模块120。如所示,训练模块120可以加载经预先训练的ANN 123,其可以被通过重新训练模块125来部分地重新训练。如所示,在实施例中,重新训练模块125可以使用包含被转换成2D图像的二进制数的恶意软件集合对经预先训练的ANN 123的最后几层进行重新训练,其中包含二进制数的恶意软件被输入到转换器110,如所示。在其他实施例中,训练系统100A 可以用于对ANN的所有层进行完全训练,诸如例如下面描述的如图2中示出的低分辨率模型205。
[0039] 注意,当通过数组调整大小模块117将2D图像调整大小到例如224乘224时,存在可以用作经预先训练的ANN 123的若干个ANN,并且从而依照各种实施例利用迁移学习。如上面所指出的,这些ANN可以包括例如Inception-BN、VGG或AlexNet。在实施例中,可以将架构保持为原始模型,并且然后可以标识朝向神经网络架构的末端的在所有全连接层之前的最后的池化层。然后,在最后的池化层之前的参数和权重可以被保持相同。在实施例中,最后几个全连接层的参数名称可以被保持相同,但是可以基于在特定恶意软件数据集上的训练来更新所述值。在实施例中,训练数据集可以被划分成训练集和验证集。
[0040] 继续参考图1A,一旦经预先训练的ANN 123的最后几层已被重新训练,有待于决定要选择ANN的哪个时期(epoch)。这是验证和分类模块140的功能。
[0041] 在实施例中,ANN的参数可以被初始化为均匀分布或高斯分布。接下来,可以设置学习速率、时期的数目、评估度量、动量、权重衰减、作为优化器的随机梯度下降以及批大小。然后,在实施例中,可以基于验证准确度将第k个时期处的模型设置为最终模型。注意,如果训练准确度增加而验证准确度降低,则这将引起过度拟合。然而,如果训练准确度和验证准确度都在增加,则这指示模型尚未收敛,并且仍然可以被训练以得到更好的准确度。在实施例中,当达到其中模型的验证准确度不增加但是验证准确度尚未开始降低的时期时,可以选择在对应的第k个时期处的模型。然后,该模型可以用于例如作为图1中的分析器120的经部分地重新训练的ANN 123进行测试。
[0042] 在图4A至4L中描绘了示例经部分地重新训练的ANN。这里使用经预先训练的ImageNet Inception-BN网络存储了初始权重。这些在图4A至4K中描绘。然后重新训练了最后的层,其输出在图4L中示出。因此,在图4A至4L的示例Inception-BN网络中,在第126次迭代处加载了Inception-BN网络,并且冻结了权重和针对早期权重的架构。注意,这些权重是从在来自ImageNet数据集的1000万个图像上训练Inception-BN ANN获得的。然后,在恶意软件图像的训练集上重新训练了最后一个全连接层和softmax层,即图4L的全连接层410和softmax层420。在此示例中,使用包含来自25个恶意软件家族的9458个恶意软件类型的基准数据集对最后的层进行了重新训练。这些家族包括例如Adialer、Agent、Allaple和Yuner。
[0043] 在替代示例中,如果选择VGG网络作为经预先训练的ANN 123,则系统100A可以冻结顶层,并且重新训练模块125可以在最大池化之后重新训练最后三个全连接层和softmax层。
[0044] 图2图示了依照各种实施例的替代系统概观,其描绘了“集成”系统200。注意,图2的示例系统是图1的系统100的超集。图2的转换器210等同于图1的转换器110,并且图2的分析器A 220等同于图1的分析器120。类似地,图2的分类结果250等同于图1的分类结果140。因此,不需要进一步描述系统200的这些等同元素。
[0045] 继续参考图2,系统200的附加元素(不具有图1中的等同物)包括分析器B 225和集成模框240。图2的系统200因此使用两个分析器:分析器A 220,其包括经部分地重新训练的ANN 223,等同于图1的经部分地重新训练的ANN 123,以及第二分析器,分析器B 225,其包括经完全训练的低分辨率ANN 225,其在实施例中可以是具有关于恶意软件二进制数的自上而下训练方案的较低分辨率模型。这里注意,在实施例中,可以从头开始训练低分辨率ANN 227以识别恶意软件二进制数,或者,在替代实施例中,可以从头开始训练ANN以识别恶意软件二进制数,但是其架构可以从现有的神经网络架构(诸如例如LeNet结构、CIFAR-10神经网络结构、或者例如多层感知器)中保留(preserve)以允许在不同大小的较低分辨率恶意软件图像上进行训练和测试。
[0046] 在实施例中,因为ANN 227是较低分辨率模型,所以它可以接受较小的2D图像作为输入。因此,在实施例中,转换器210可以输出经调整大小的2D图像的两个版本,一个被通过链路205输入到分析器A,并且另一个被通过链路203输入到分析器B。在实施例中,输入到分析器B 225的经调整大小的2D图像可以具有例如在从28乘28到64乘64的范围中的大小。在实施例中,经完全训练的低分辨率ANN 227可以包括例如LeNet结构、CIFAR-10神经网络结构、或者例如多层感知器,以允许在不同大小的较低分辨率恶意软件图像上进行训练和测试。
[0047] 在实施例中,分别包含高分辨率经部分地重新训练的ANN 223和经完全训练的低分辨率ANN 227的分析器A和B中的每个可以处理它们从转换器210接收的经调整大小的2D图像的相应版本。这些结果然后可以每个被经由链路231和233输入到组合器240。在实施例中,组合器240可以产生分类结果250作为输出。在实施例中,分类结果250可以提供二进制文件201是或包含恶意应用程序还是良性应用程序的概率。在实施例中,如果结果是恶意,则组合器240可以进一步提供关于该应用程序属于哪个恶意软件家族的概率。在实施例中,在生成分类结果250时,组合器240可以集成(即,组合)分析器A和B中的每个的结果。
[0048] 在实施例中,组合器240可以具有若干个模式的组合结果。例如,其可以取加权平均、平均、多数投票、加权多数投票或关于模型的提升(boosting),以组合分析器A和B中的每个的结果。这里注意,提升是迭代过程,其可以是包含多个分类器。可以基于每个分类器的性能来选择用于每个分类器的训练集。比起正确分类的训练数据,提升更频繁地选择错误分类的训练数据点。在实施例中,组合器240一般可以给高分辨率模型(即ANN 223)的输出较高的权重。这里注意,在使用各种实施例执行的实验中,观察到两个ANN 223和227在小于2%的时间不一致。在实施例中,这样的不一致可以包括恶意软件是否完全存在于二进制文件中,或者,假定存在恶意软件,可以包括它是哪个类型的恶意软件。因此,例如,如果ANN 223达到99%准确度并且ANN 227达到97%准确度,则在实施例中,通过对这两个ANN进行集成仍然存在达到高于99%准确度的空间。此外,如果一个ANN预测输入文件有85%概率是恶意的,并且另一个ANN预测该文件有55%概率是恶意的,则在实施例中,使用集成可以加强预测的概率和置信度
[0049] 这里注意,当高分辨率ANN与低分辨率ANN不一致并且高分辨率ANN正确地预测时,可能低分辨率ANN不包含尽可能像高分辨率ANN一样多的信息。另一方面,当这两个不一致但低分辨率ANN正确地预测时,可能低分辨率ANN由于其所有层的(即从上到下,仅在恶意软件数据上(而不是使用ANN 223的迁移学习方案))的训练而可以更准确地捕获和提取恶意软件数据集的特征。
[0050] 在实施例中,可以认为较高分辨率ANN 223具有较大的准确度。因此,在实施例中,在组合器的集成过程中,较高分辨率模型可以优选地被给予较大的权重。然而,在实施例中,较低分辨率ANN 227也可能非常有用,因为它可以帮助改进分类结果250的总体准确度。因为,在实施例中,较低分辨率ANN 227被从顶层向底层在恶意软件数据上进行训练,而不利用来自不同的域的其他学习到的知识,所以在实施例中,通过低分辨率ANN 227进行的特征提取可以帮助区分其中由高分辨率ANN 223提取的二进制文件的特征不能被区别的情况。
[0051] 图3图示了如依照各种实施例使用的迁移学习。迁移学习涉及存储解决一个问题获得的知识和将其应用于不同但相关的问题。这里一般指出,迁移学习涉及域和任务的概念。
[0052] 更严格地,域D可以由特征空间X和特征空间上的边际概率分布P(X)组成,其中X = x1……xn ∊ X。给定域D={X, P(X)},任务T可以由标签空间Y和条件概率分布P(Y|X)组成,所述条件概率分布通常从由对𝑥i ∊ X和 𝑦 i ∊ Y组成的训练数据学习到。在实施例中,Y可以是所有恶意软件家族标签的集合。
[0053] 给定源域Ds、对应的源任务Ts以及目标域DT和目标任务TT,现在迁移学习的目的是使得我们能够利用从Ds和Ts获得的信息学习到目标条件概率分布P(YT|XT),其中Ds≠DT或Ts≠TT。
[0054] 图3图示了依照各种实施例的这些原理向恶意软件检测和分类系统中的迁移学习的使用的应用。因此,参考图3,源域Ds 310可以包括150万个图像。针对图像特征提取和分类的源任务TT,可以在源域310上训练ANN 320,诸如例如Inception-BN。因此,它包含可以被移植到基准恶意软件数据集350的目标域DT的知识330以及被转换成经调整大小的多维数组的恶意软件二进制数中的恶意软件特征提取和检测的目标任务TT。如所示,这可以通过在目标域DT 350上重新训练ANN 320来实现,以获得经重新训练的ANN 340。在实施例中,使用迁移学习的一个益处是源域和目标域的大小上的绝对(sheer)差异。一般存在有限数目的目标域示例,恶意软件二进制数。此数目指数地小于可用的被标记的源示例的数目,即ImageNet数据库中的图像数。
[0055] 因此,在图4A至4L中描绘的示例ANN中,首先在ImageNet中的150万个图像上对Inception-网络进行了训练。随后,使用图1A中图示的训练系统,如上面所指出的那样使用基准恶意软件数据集对Inception-网络的最后两层进行了重新训练。如上面所指出的,图4A至4K描绘了示例Inception-网络的冻结层,并且图4L描绘了经重新训练的最后两层(在最后的池化层401之下或之后):全连接fc1 410和softmax 420。
[0056] 在该示例中,因为经预先训练的ANN包括3通道而恶意软件训练数据是单通道,所以经调整大小的2D灰度图像被复制两次以转换成三通道输入数据。
[0057] 注意,为了初始化Inception ANN的重新训练,首先可以均匀地采样最初在图4L中的层中的参数。然后可以设置学习速率、动量和时期数目以继续进行重新训练。在图4A至4L的ANN的训练中,模型训练方案在第10个时期处收敛。以下是在实施例中可以用于对这样的重新训练进行编程的示例性伪代码:在第126次迭代处加载经预先训练的Inception-BN;
冻结权重和针对早期权重的架构,如图4A-4K中看到的;
重新分配全连接权重和全连接偏置参数。通过从均匀分布中随机地抽样来发起参数值;
在全连接层上重新训练网络;
使用验证数据集来确定要使用的模型(即,在哪个时期处的模型)。
[0058] 如上面所指出的,如果期望使用VGG ANN用于迁移学习,则在实施例中,系统可以冻结VGG ANN的顶层,并且然后重新训练其最后三层以用于恶意软件分类。
[0059] 图5图示了依照各种实施例的用于对恶意软件进行检测和分类的过程的操作流程的概观。参考图5,过程500可以由根据各种实施例的系统或装置执行。在实施例中,过程500可以由类似于图1中示出的系统的系统执行。过程500可以包括框510到550。在替代实施例中,过程500可以具有更多或更少的操作,并且操作中的一些可以以不同的顺序来执行。
[0060] 过程500可以在框510处开始,在所述框510中示例系统可以接收二进制文件。二进制文件可以包括音频数据、文本数据、图像数据等。一般地,二进制文件不被认为是安全的,并且可能包含恶意软件,这是为什么在允许在任何装置上执行它之前对它进行扫描和分类是合期望的。过程500可以从框510前进到框520,在所述框520中二进制文件可以被转换成8位向量。在实施例中,该向量可以具有8位无符号整数。更一般地,在实施例中,该向量可以将文件的二进制表示映射成0与255之间的整数。
[0061] 过程500可以从框520前进到框530,在所述框530中8位向量可以被转换成多维数组,并且然后被调整大小。在实施例中,多维数组可以是2D数组,并且可以被调整大小到例如224乘224或299乘299的大小。在实施例中,框510至530可以由例如图1中描绘的转换器110执行。
[0062] 过程500可以从框530前进到框540,在所述框540中可以使用经部分地重新训练的ANN来分析经调整大小的多维数组,以对嵌入在数组中的恶意软件进行检测和分类。在实施例中,多维数组可以是2D数组,并且可以被调整大小到例如224乘224或299乘299的大小。在实施例中,经部分地重新训练的ANN可以具有输入层、输出层以及在输入层与输出层之间的多个隐藏层。在实施例中,过程500的框540可以由例如图1中描绘的分析器120执行。最后,过程500可以从框540前进到框550,在所述框550中可以输出分类结果,其可以用于防止二进制文件在装置上的执行。在框550处,过程500可以终止。
[0063] 图6图示了依照各种实施例的用于使用两个ANN的集成对恶意软件进行检测和分类的替代过程600的操作流程的概观。参考图6,过程600可以由根据各种实施例的系统或装置执行。在实施例中,过程600可以由与图2中示出的系统类似的系统执行。过程600可以包括框610到665。在替代实施例中,过程600可以具有更多或更少的操作,并且操作中的一些可以以不同的顺序来执行。
[0064] 过程600可以在框610处开始,在所述框610中示例系统可以接收二进制文件。二进制文件可以包括音频数据、文本数据、图像数据等。一般地,二进制文件不被认为是安全的,并且可能包含恶意软件,这是为什么在允许在任何装置上执行它之前对它进行扫描和分类是合期望的。过程600可以从框610前进到框620,在所述框620中二进制文件可以被转换成8位向量。在实施例中,该向量可以具有8位无符号整数。更一般地,在实施例中,该向量可以将文件的二进制表示映射成0与255之间的整数。
[0065] 过程600可以从框620前进到框630,在所述框630中可以将8位向量转换成多维数组,并且然后将多维数组调整大小成不同大小的两个版本,以用作到两个单独的ANN中的相应输入。在实施例中,经调整大小的数组的第一版本可以较小,用于输入到较低分辨率ANN中,并且经调整大小的数组的第二版本可以较大,用于输入到较高分辨率ANN中。在实施例中,多维数组可以是2D数组,并且2D数组的第一经调整大小的版本可以具有例如224乘224或299乘299的大小。在实施例中,2D数组的第二经调整大小的版本可以具有例如在28乘28与64乘64之间的大小。在实施例中,框610至630可以由例如如图2中描绘的转换器210执行。
[0066] 过程600可以从框630分叉,并且可以前进到框640和框645二者。在框640处,可以使用经完全训练的低分辨率ANN来分析多维数组的第一经调整大小的版本,即较小版本,以对嵌入在数组中的恶意软件进行检测和分类。类似地并且并行地,在框645处,可以使用经部分地重新训练的高分辨率ANN来分析多维数组的第二经调整大小的版本,即较大版本,以对嵌入在数组中的恶意软件进行检测和分类。在实施例中,经部分地重新训练的ANN可以具有输入层、输出层以及在输入层与输出层之间的多个隐藏层。
[0067] 过程600可以分别从框640和645前进到框650和655。在框650处,可以从低分辨率ANN获得二进制文件的第一分类输出,并且在框655处,可以从高分辨率ANN获得二进制文件的第二分类输出。在实施例中,过程600的框640和650可以由例如在图2中描绘的分析器B 225执行,并且过程600的框645和655可以由例如在图2中描绘的分析器A 223执行。最后,过程600可以从框650和655收敛,并且前进到框660,在所述框660中可以组合这两个分类输出。在实施例中,框660可以由图2中描绘的组合器240执行。在实施例中,可以使用各种算法来组合这两个分类输出,所述各种算法诸如例如是加权平均、平均、多数投票、加权多数投票或关于ANN的提升。
[0068] 最后,过程600可以从框660前进到框665,在所述框665中可以输出最终分类,其可以用于防止二进制文件在装置上的执行。在框665处,过程600可以终止。
[0069] 图7图示了依照各种实施例的用于训练和验证恶意软件检测和分类系统的过程700的操作流程的概观。注意,正如图1的系统100类似于图1A的系统100A,过程700类似于图
5的过程500,具有针对训练细节的一些变化。
[0070] 参考图7,过程700可以由根据各种实施例的系统或装置执行。在实施例中,过程700可以由与图1中示出的系统类似的系统来执行。过程700可以包括框710到750。在替代实施例中,过程700可以具有更多或更少的操作,并且操作中的一些可以以不同的顺序来执行。
[0071] 过程700可以在框710处开始,在所述框710中示例系统可以接收二进制文件。二进制文件可以包括音频数据、文本数据、图像数据等。二进制文件可能包含恶意软件,作为可用于训练ANN的恶意软件二进制数训练集的部分。过程700可以从框710前进到框720,在所述框720中二进制文件可以被转换成8位向量。在实施例中,该向量可以具有8位无符号整数。更一般地,在实施例中,该向量可以将文件的二进制表示映射成在0与255之间的整数。
[0072] 过程700可以从框720前进到框730,在所述框730中8位向量可以被转换成多维数组,并且然后被调整大小。在实施例中,多维数组可以是2D数组,并且可以被调整大小到例如224乘224或299乘299的大小。在实施例中,框710到730可以由例如在图1A中描绘的转换器110执行。
[0073] 过程700可以从框730前进到框740,在所述框740中经调整大小的多维数组可以用于训练ANN或者至少部分地重新训练ANN以从多维数组中提取恶意软件特征。在实施例中,要被训练或部分地重新训练的ANN可以具有输入层、输出层以及在输入层与输出层之间的多个隐藏层。在实施例中,过程700的框740可以通过例如图1A中描绘的训练120来执行。注意,框710到740可以针对若干个恶意软件二进制数被重复,诸如可以包括整个训练集。因此,过程700可以从框740前进到查询框745,在所述框745中可以确定是否存在用来训练ANN的附加恶意软件二进制数。如果在查询框745处为是,则过程700可以返回到框710,并且重复框710到740的过程流程。然而,如果查询框745的结果为否,则过程700可以前进到框750,在所述框750中经训练或重新训练的ANN(无论是经部分地重新训练还是完全训练)可以使用验证集来验证,所述验证集在实施例中也可以是一组已知的恶意软件二进制数,但是不同于训练集。在框750处,过程700可以终止。
[0074] 这里注意,图7的过程700可用于训练在图2中图示的集成系统200中示出的ANN中的任一个。因此,在经部分地重新训练的高分辨率ANN 223的情况下,仅ANN的最后几层将被使用过程700重新训练。然而,低分辨率ANN 227(其在实施例中可以被从头开始完全训练)可以使用过程700在恶意软件二进制数的训练集上训练。如果要从头开始训练低分辨率ANN 227,则在框740处,过程700可以执行框740的“训练”选项。在实施例中,低分辨率ANN 227可以被从头开始在恶意软件数据集上进行完全地训练,并且其架构可以被新定义。或者,在实施例中,替代地,低分辨率ANN 227可以被从头开始在恶意软件数据集上进行完全地训练,但是ANN 的架构可以从现有神经网络架构(诸如例如LeNet结构、CIFAR-10神经网络结构、或者例如多层感知器)中保留,以允许在不同大小的较低分辨率恶意软件图像上进行训练和测试。在仍替代的实施例中,可以部分地重新训练低分辨率ANN 227,并且利用迁移学习,如上面在高分辨率ANN 223的情况下所描述的。
[0075] 现在参考图8,其中图示了依照各种实施例的适合于实践本公开的计算机设备的框图。如所示,计算机设备800可以包括一个或多个处理器802、存储器控制器803和系统存储器804。每个处理器802可以包括一个或多个处理器核,以及硬件加速器805。硬件加速器805的示例可以包括但是不限于,被编程的现场可编程门阵列(FPGA)。在实施例中,处理器
802还可以包括存储器控制器(未示出)。在实施例中,系统存储器804可以包括任何已知的易失性或非易失性存储器
[0076] 另外,计算机设备800可以包括(多个)大容量存储设备806(诸如固态驱动器)、输入/输出设备接口808(用来与诸如鼠标光标控制、(包括触敏屏幕的)显示器设备等之类的各种输入/输出设备对接)、和通信接口810(诸如网络接口卡、调制解调器等)。在实施例中,通信接口810可以支持有线或无线通信,其包括近场通信。这些元件可以经由系统总线812彼此耦合,所述系统总线812可以表示一个或多个总线。在多个总线的情况下,它们可以通过一个或多个总线桥(未示出)桥接。
[0077] 这些元件中的每个可以执行其在本领域中已知的常规功能。特别地,系统存储器804和(多个)大容量存储设备806可用于存储操作系统、一个或多个应用程序和/或如下各项的各种软件实现组件的编程指令的可执行代码的工作副本和永久副本:图1和1A的转换器110、二进制文件输入接口111、二进制到8位向量转换113、2D数组转换115、数组调整大小
117,图1的分析器120、经部分地重新训练的ANN 123,图1A的训练120、重新训练125以及验证和分类140,图2的转换器210、二进制文件输入接口211、二进制到8位向量转换213、2D数组转换215、数组调整大小217、分析器A 220、经部分地重新训练的ANN 223、分析器B 225、经完全训练的ANN 227和组合器240,其被共同称为计算逻辑822。实现计算逻辑822的编程指令可以包括由(多个)处理器802所支持的汇编指令,或可以被编译成这样的指令的高级语言,诸如例如C。在实施例中,计算逻辑中的一些可以在硬件加速器805中实现。在实施例中,计算逻辑822的部分,例如,计算逻辑822的与编译器的运行时环境相关联的一部分可以在硬件加速器805中实现。
[0078] 通过例如诸如光盘(CD)之类的分发介质(未示出)或通过通信接口810(来自分发服务器(未示出)),编程指令的可执行代码的永久副本或用于配置硬件加速器805的位流可以被放置到工厂中或现场中的(多个)永久大容量存储设备806和/或硬件加速器805中。虽然为了理解的容易,执行生成的代码的编译器和硬件加速器被示出为位于同一计算设备上,所述代码结合本公开的谓词计算教导以增加嵌套循环的流水线化和/或并行执行,在替代实施例中,编译器和硬件加速器可以位于不同的计算设备上。
[0079] 这些元件810-812的数目、能力和/或容量可以根据取决于计算机设备800的预期用途而变化,例如,示例计算机设备800是否是智能电话、平板、超极本、膝上型计算机、服务器、机顶盒、游戏控制台、相机等。这些元件810-812的构造是以其他方式已知的,并且因此将不进一步描述。
[0080] 图9图示了依照各种实施例的具有指令的示例计算机可读存储介质,所述指令被配置成实现图1和1A的转换器110、二进制文件输入接口111、二进制到8位向量转换113、2D数组转换115、数组调整大小117,图1的分析器120、经部分地重新训练的ANN 123,图1A的训练120、重新训练125以及验证和分类140,图2的转换器210、二进制文件输入接口211、二进制到8位向量转换213、2D数组转换215、数组调整大小217、分析器A 220、经部分地重新训练的ANN 223、分析器B 225、经完全训练的ANN 227和组合器240的所有软件实现(或软件实现的部分),和/或实践前期描述的图5的过程500、图6的过程600和图7的过程700(的各方面)。如所图示的,计算机可读存储介质902可以包括数个编程指令或位流904的可执行代码。编程指令(或位流)904的可执行代码可以被配置成使得设备(例如计算机设备800)能够响应于可执行代码/编程指令(或经编码的硬件加速器805的操作)的执行而实行图5的过程500、图6的过程600和/或图7的过程700(的各方面)。在替代实施例中,可执行代码/编程指令/位流904可以被代之以布置在多个非暂时性计算机可读存储介质902上。在实施例中,计算机可读存储介质902可以是非暂时性的。在其他实施例中,可执行代码/编程指令904可以被编码在诸如信号之类的暂时性计算机可读介质中。
[0081] 向后参考图8,对于一个实施例,处理器802中的至少一个可以与具有被配置成实践早期参考图5-7描述的操作中的全部或所选操作的计算逻辑822中的一些或全部的计算机可读存储介质一起封装(代替存储在系统存储器804中和/或大容量存储设备806)。对于一个实施例,处理器802中的至少一个可以与具有计算逻辑822中的一些或全部的计算机可读存储介质一起封装以形成系统级封装(SiP)。对于一个实施例,处理器802中的至少一个可以与具有计算逻辑822中的一些或全部的计算机可读存储介质集成在同一管芯上。对于一个实施例,处理器802中的至少一个可以与具有计算逻辑822中的一些或全部的计算机可读存储介质一起封装以形成片上系统(SoC)。对于至少一个实施例,SoC可以用在例如但不限于混合计算平板/膝上型计算机中。
[0082] 以下提供了本文中公开的技术的说明性示例。技术的实施例可以包括下面描述的示例中的任何一个或多个,以及下面描述的示例的任何组合。
[0083] 示例示例1可以包括一种用于计算的装置,所述装置包括:用来接收二进制文件并且将所述二进制文件转换成多维数组的转换器,所述二进制文件要在所述装置或另一装置上执行;
以及耦合到所述转换器的分析器,用来:处理所述多维数组以使用具有输入层、输出层以及在所述输入层与输出层之间的多个隐藏层的至少一个经部分地重新训练的人工神经网络对嵌入在所述多维数组内的恶意软件进行检测和分类;以及输出分类结果;其中所述分类结果用于防止所述二进制文件在所述装置或另一装置上的执行。
[0084] 示例2可以包括示例1和/或本文中的任何其他示例的装置,其中所述多维数组是2D数组。
[0085] 示例3可以包括示例2和/或本文中的任何其他示例的装置,其中所述转换器要首先将所述二进制文件转换成8位无符号整数的向量,并且然后将所述向量转换成所述2D数组。
[0086] 示例4可以包括示例3和/或本文中的任何其他示例的装置,其中所述转换器进一步要首先将所述向量转换成内部2D数组,并且然后在输出所述2D数组之前对所述内部2D数组调整大小。
[0087] 示例5可以包括示例4和/或本文中的任何其他示例的装置,其中经调整大小的2D数组具有224乘224或299乘299中的一个的大小。
[0088] 示例6可以包括示例1和/或本文中的任何其他示例的装置,其中所述至少一个经部分地重新训练的人工神经网络包括先前被训练以识别模式的神经网络,其中它的数个初始层的权重被冻结,并且它的数个最后的层的权重被重新训练以识别恶意软件二进制数。
[0089] 示例7可以包括示例6和/或本文中的任何其他示例的装置,其中所述人工神经网络是Inception-BN网络、视觉几何组(VGG)网络或AlexNet网络中的一个。
[0090] 示例8可以包括示例6和/或本文中的任何其他示例的装置,其中所述人工神经网络是Inception-BN网络,其中它的最后的层被重新训练以对恶意软件进行分类。
[0091] 示例9可以包括示例6和/或本文中的任何其他示例的装置,其中所述人工神经网络是视觉几何组(VGG)16或VGG 19中的一个,其中它的顶层被冻结并且它的最后三层被重新训练以对恶意软件进行分类。
[0092] 示例10可以包括示例1-9中任一个和/或本文中的任何其他示例的装置,其包括具有所述转换器和所述分析器的恶意软件检测器。
[0093] 示例11可以包括示例1-9中任一个和/或本文中的任何其他示例的装置,其包括具有所述转换器和所述分析器的操作系统。
[0094] 示例12可以包括示例1-9中任一个和/或本文中的任何其他示例的装置,其中所述装置是云服务器。
[0095] 示例13可以包括一种用于计算的装置,所述装置包括:用来接收二进制文件并且将所述二进制文件转换成两个多维数组的转换器,所述二进制文件要在所述装置或另一装置上执行;第一分析器和第二分析器,每个耦合到所述转换器,并且每个用来:处理所述多维数组中的一个以使用具有输入层、输出层以及在所述输入层与输出层之间的多个隐藏层的经训练的、经重新训练的、或经部分地重新训练的ANN中的一个对嵌入在所述多维数组内的恶意软件进行检测和分类;以及输出分类结果,所述分类结果用于防止所述二进制文件在所述装置或另一装置上的执行;以及组合器,其被耦合到所述第一分析器和第二分析器中的每个,以处理所述分类结果并输出经组合的分类结果。
[0096] 示例14可以包括示例13和/或本文中的任何其他示例的装置,其中所述多维数组是2D数组。
[0097] 示例15可以包括示例14和/或本文中的任何其他示例的装置,其中所述转换器要首先将所述二进制文件转换成8位无符号整数的向量,并且然后将所述向量转换成所述2D数组。
[0098] 示例16可以包括示例15和/或本文中的任何其他示例的装置,其中所述转换器进一步要首先将所述向量转换成内部2D数组,并且然后对所述内部2D数组调整大小以获得所述2D数组。
[0099] 示例17可以包括示例16和/或本文中的任何其他示例的装置,其中经调整大小的2D数组中的一个具有或者224乘224或者299乘299的大小。
[0100] 示例18可以包括示例16和/或本文中的任何其他示例的装置,其中经调整大小的2D数组中的一个具有在从28乘28至64乘64的范围中的大小。
[0101] 示例19可以包括示例13和/或本文中的任何其他示例的装置,其中所述第一分析器的所述ANN包括先前被训练以识别模式的神经网络,其中它的数个初始层的权重被冻结,并且它的数个最后的层的权重被重新训练以识别恶意软件二进制数。
[0102] 示例20可以包括示例13和/或本文中的任何其他示例的装置,其中所述第二分析器的所述ANN被关于一组恶意软件图像以及其新定义的架构进行完全地训练。
[0103] 示例21可以包括示例13和/或本文中的任何其他示例的装置,其中所述第二分析器的所述ANN被在一组恶意软件图像上进行完全地训练,但是其架构保留如下各项中的一个:LeNet结构、CIFAR-10神经网络结构或多层感知器。
[0104] 示例22可以包括一个或多个非暂时性计算机可读存储介质,其包括多个指令,所述多个指令响应于被执行而使得计算设备:接收二进制文件并且将所述二进制文件转换成多维数组,所述二进制文件要在所述计算设备或另一计算设备上执行;处理所述多维数组以使用具有输入层、输出层以及在所述输入层与输出层之间的多个隐藏层的至少一个经部分地重新训练的ANN对嵌入在所述多维数组内的恶意软件进行检测和分类;以及输出分类结果,其中所述分类结果用于防止所述二进制文件在所述装置或另一装置上的执行。
[0105] 示例23可以包括示例22和/或本文中的任何其他示例的所述一个或多个非暂时性计算机可读存储介质,其中所述多维数组是2D数组。
[0106] 示例24可以包括示例23和/或本文中的任何其他示例的所述一个或多个非暂时性计算机可读存储介质,其中将所述二进制文件转换成多维数组包括首先将所述二进制文件转换成8位无符号整数的向量,然后将所述向量转换成内部2D数组,并且然后将所述内部2D数组调整大小到输入的2D数组。
[0107] 示例25可以包括示例24和/或本文中的任何其他示例的所述一个或多个非暂时性计算机可读存储介质,其中经调整大小的2D数组具有224乘224或299乘299中的一个的大小。
[0108] 示例26可以包括示例22和/或本文中的任何其他示例的所述一个或多个非暂时性计算机可读存储介质,其中所述至少一个经部分地重新训练的ANN包括先前被训练以识别模式的神经网络,其中它的数个初始层的权重被冻结,并且它的数个最后的层的权重被重新训练以识别恶意软件二进制数。
[0109] 示例27可以包括示例22和/或本文中的任何其他示例的所述一个或多个非暂时性计算机可读存储介质,其中所述ANN是Inception-BN、视觉几何组(VGG)16、VGG 19、或AlexNet中的一个。
[0110] 示例28可以包括示例27和/或本文中的任何其他示例的所述一个或多个非暂时性计算机可读存储介质,其中所述ANN是Inception-BN网络,其中它的最后的层被重新训练以对恶意软件进行分类。
[0111] 示例29可以包括示例27和/或本文中的任何其他示例的所述一个或多个非暂时性计算机可读存储介质,其中所述ANN是VGG 16或VGG 19中的一个,其中它的顶层被冻结并且它的最后三层被重新训练以对恶意软件进行分类。
[0112] 示例30可以包括示例22-29中任一个和/或本文中的任何其他示例的所述一个或多个非暂时性计算机可读存储介质,其中所述计算设备是恶意软件检测器。
[0113] 示例31可以包括在操作系统中提供的或作为操作系统的部分的示例22-29中任一个和/或本文中的任何其他示例的所述一个或多个非暂时性计算机可读存储介质。
[0114] 示例32可以包括示例22-29中任一个和/或本文中的任何其他示例的所述一个或多个非暂时性计算机可读存储介质,其中所述计算设备是云服务器。
[0115] 示例33可以包括一种检测二进制文件中的恶意软件的方法,所述方法包括:接收二进制文件并且将所述二进制文件转换成多维数组,所述二进制文件要在一个或多个装置上执行;以及处理所述多维数组以使用具有输入层、输出层以及在所述输入层与输出层之间的多个隐藏层的至少一个经部分地重新训练的ANN对嵌入在所述多维数组内的恶意软件进行检测和分类;以及输出分类结果;其中所述分类结果用于防止所述二进制文件在一个或多个装置上的执行。
[0116] 示例34可以包括示例33和/或本文中的任何其他示例的方法,其进一步包括:将所述二进制文件转换成附加的多维数组,所述附加的多维数组比所述多维数组小;处理所述附加的多维数组以使用具有输入层、输出层以及在所述输入层与输出层之间的多个隐藏层的第二经训练的ANN对嵌入在所述附加的多维数组内的恶意软件进行分类以获得第二分类结果;将第一分类结果与所述第二分类结果组合成最终的分类结果;以及向用户输出所述最终的分类结果。
[0117] 示例35可以包括示例33和/或本文中的任何其他示例的方法,其中所述多维数组是2D数组。
[0118] 示例36可以包括示例35和/或本文中的任何其他示例的方法,其中所述转换器要首先将所述二进制文件转换成8位无符号整数的向量,并且然后将所述向量转换成所述2D数组。
[0119] 示例37可以包括示例36和/或本文中的任何其他示例的方法,其中所述转换器进一步要首先将所述向量转换成内部2D数组,并且然后在输出所述2D数组之前对所述内部2D数组调整大小。
[0120] 示例38可以包括示例37和/或本文中的任何其他示例的方法,其中经调整大小的2D数组具有224乘224或299乘299中的一个的大小。
[0121] 示例39可以包括示例33和/或本文中的任何其他示例的方法,其中所述至少一个经部分地重新训练的ANN包括先前被训练以识别模式的神经网络,其中它的数个初始层的权重被冻结,并且它的数个最后的层的权重被重新训练以识别恶意软件二进制数。
[0122] 示例40可以包括示例39和/或本文中的任何其他示例的方法,其中所述ANN是Inception-BN网络、视觉几何组(VGG)网络或AlexNet网络中的一个。
[0123] 示例41可以包括示例39和/或本文中的任何其他示例的方法,其中所述ANN是Inception-BN网络,其中它的最后的层被重新训练以对恶意软件进行分类。
[0124] 示例42可以包括示例39和/或本文中的任何其他示例的方法,其中所述ANN是视觉几何组(VGG)16或VGG 19中的一个,其中它的顶层被冻结并且它的最后三层被重新训练以对恶意软件进行分类。
[0125] 示例43可以包括由恶意软件检测器执行的示例33-42中的任一个和/或本文中的任何其他示例的方法。
[0126] 示例44可以包括由操作系统执行的示例33-42中任一个和/或本文中的任何其他示例的方法。
[0127] 示例45可以包括由云服务器执行的示例33-42中的任一个和/或本文中的任何其他示例的方法。
[0128] 示例46可以包括一个或多个非暂时性计算机可读存储介质,其包括多个指令,所述多个指令响应于被执行而使得计算设备实行示例33-42中任一个的方法。
[0129] 示例47可以包括一种用于计算的装置,所述装置包括:用来接收二进制文件并且将所述二进制文件转换成多维数组的部件,所述二进制文件要在所述计算设备或另一计算设备上执行;以及用来处理所述多维数组以使用具有输入层、输出层以及在所述输入层与输出层之间的多个隐藏层的至少一个经部分地重新训练的ANN对嵌入在所述多维数组内的恶意软件进行检测和分类的部件;以及用来输出分类结果的部件,其中所述分类结果用于防止所述二进制文件在所述装置或另一装置上的执行。
[0130] 示例48可以包括用于示例47和/或本文中的任何其他示例的计算的装置,其中所述多维数组是2D数组。
[0131] 示例49可以包括用于示例48和/或本文中的任何其他示例的计算的装置,其中用来将所述二进制文件转换成多维数组的部件包括用来首先将所述二进制文件转换成8位无符号整数的向量的部件、用来将所述向量转换成内部2D数组的部件、以及用来将所述内部2D数组调整大小到输入的2D数组的部件。
[0132] 示例50可以包括用于示例49和/或本文中的任何其他示例的计算的装置,其中经调整大小的2D数组具有224乘224或299乘299中的一个的大小。
[0133] 示例51可以包括用于示例47和/或本文中的任何其他示例的计算的装置,其中所述至少一个经部分地重新训练的ANN包括先前被训练以识别模式的神经网络,其中它的数个初始层的权重被冻结,并且它的数个最后的层的权重被重新训练以识别恶意软件二进制数。
[0134] 示例52可以包括用于示例47和/或本文中的任何其他示例的计算的装置,其中所述ANN是Inception-BN、视觉几何组(VGG)16、VGG 19、或AlexNet中的一个。
[0135] 示例53可以包括用于示例47和/或本文中的任何其他示例的计算的装置,其中所述ANN是Inception-BN网络,其中它的最后的层被重新训练以对恶意软件进行分类。
[0136] 示例54可以包括用于示例52和/或本文中的任何其他示例的计算的装置,其中所述ANN是VGG 16或VGG 19中的一个,其中它的顶层被冻结并且它的最后三层被重新训练以对恶意软件进行分类。
[0137] 示例55可以包括用于示例47-54中任一个和/或本文中的任何其他示例的计算的装置,其中用于计算的所述装置是恶意软件检测器或是恶意软件检测器的部分。
[0138] 示例56可以包括用于示例47-54中任一个和/或本文中的任何其他示例的计算的装置,其中用于计算的所述装置是云服务器。
[0139] 示例57可以包括一种用于计算的装置,所述装置包括:用来接收二进制文件并且将所述二进制文件转换成两个多维数组的转换器的部件,所述二进制文件要在所述装置或另一装置上执行;用来分析的第一部件和用来分析的第二部件,每个耦合到用来接收和转换的所述部件,并且每个用来:处理所述多维数组中的一个以使用具有输入层、输出层以及在所述输入层与输出层之间的多个隐藏层的经训练的、经重新训练的、或经部分地重新训练的ANN中的一个对嵌入在所述多维数组内的恶意软件进行检测和分类;以及输出分类结果,所述分类结果用于防止所述二进制文件在所述装置或另一装置上的执行;以及用来组合的部件,其被耦合到所述第一分析器和第二分析器中的每个,以处理所述分类结果并输出经组合的分类结果。
[0140] 示例58可以包括用于示例57和/或本文中的任何其他示例的计算的装置,其中所述多维数组是2D数组。
[0141] 示例59可以包括用于示例58和/或本文中的任何其他示例的计算的装置,其中用来转换的所述部件要首先将所述二进制文件转换成8位无符号整数的向量,并且然后将所述向量转换成所述2D数组。
[0142] 示例60可以包括用于示例59和/或本文中的任何其他示例的计算的装置,其中用来转换的所述部件进一步要首先将所述向量转换成内部2D数组,并且进一步包括用来对所述内部2D数组调整大小以获得所述2D数组的部件。
[0143] 示例61可以包括用于示例60和/或本文中的任何其他示例的计算的装置,其中经调整大小的2D数组中的一个具有或者224乘224或者299乘299的大小。
[0144] 示例62可以包括用于示例60的计算的装置,其中经调整大小的2D数组中的一个具有在从28乘28至64乘64的范围中的大小。
[0145] 示例63可以包括用于示例57和/或本文中的任何其他示例的计算的装置,其中用来分析的所述第一部件的所述ANN包括先前被训练以识别模式的神经网络,其中它的数个初始层的权重被冻结,并且它的数个最后的层的权重被重新训练以识别恶意软件二进制数。
[0146] 示例64可以包括用于示例63和/或本文中的任何其他示例的计算的装置,其中用来分析的所述第一部件的所述ANN处理具有或者224乘224或者299乘299的大小的2D数组。
[0147] 示例65可以包括用于示例63和/或本文中的任何其他示例的计算的装置,其中用来分析的所述第二部件的所述ANN处理具有在从28乘28至64乘64的范围中的大小的2D数组。
[0148] 示例66可以包括用于示例57和/或本文中的任何其他示例的计算的装置,其中用来分析的所述第二部件的所述ANN被在一组恶意软件图像上进行完全地训练,并且其架构被新定义。
[0149] 示例67可以包括用于示例57和/或本文中的任何其他示例的计算的装置,其中用来分析的所述第二部件的所述ANN被在一组恶意软件图像上进行完全地训练,但是其架构保留如下各项中的一个:LeNet结构、CIFAR-10神经网络结构或多层感知器。
[0150] 示例68可以包括用于示例57和/或本文中的任何其他示例的计算的装置,其中用来组合的所述部件基于如下各项中的至少一个而输出所述经组合的分类结果:加权平均、平均、多数投票、加权多数投票、或关于用来分析的所述第一部件和第二部件的所述ANN的提升,以组合用来分析的所述第一部件和用来分析的所述第二部件的所述结果。
[0151] 示例69可以包括用于示例57和/或本文中的任何其他示例的计算的装置,其中用来组合的所述部件给予用来分析的所述第一部件的所述ANN的所述输出较高的权重。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈