掌桥专利:专业的专利平台
掌桥专利
首页

一种恶意代码分类的方法、装置、存储介质及电子设备

文献发布时间:2024-04-18 19:59:31


一种恶意代码分类的方法、装置、存储介质及电子设备

技术领域

本申请涉及恶意代码分类技术领域,具体而言,涉及一种恶意代码分类的方法、装置、存储介质及电子设备。

背景技术

由于同一家族的恶意代码会产生许多变种,即使是相同的恶意代码,也会采用不同的混淆方式来隐藏其特征,从而使得仅依赖简单规则匹配的检测方法失效。因此,对恶意代码检测和分类为当前的研究焦点。

目前,在对恶意代码进行检测时普遍采用了将恶意代码转换成灰度图像的方式,以便于提取更多的特征实现精准分类。但是,图像转换过程中,网络结构可能会导致恶意代码的部分信息丢失或失真,进而降低了最终分类结果的准确度。

因此,如何提供一种准确度较高的恶意代码分类的方法的技术方案成为亟需解决的技术问题。

发明内容

本申请的一些实施例的目的在于提供一种恶意代码分类的方法、装置、存储介质及电子设备,通过本申请的实施例的技术方案可以通过训练好的目标分类模型实现对恶意代码的精准检测分类,提高了分类性能。

第一方面,本申请的一些实施例提供了一种恶意代码分类的方法,包括:获取待检测恶意代码对应的二进制图像;将所述二进制图像输入至预先训练好的目标分类模型中,获取所述待检测恶意代码对应的分类结果,其中,所述目标分类模型是通过对初始特征提取网络模块和初始特征分类网络模块组成的网络结构进行训练得到的。

本申请的一些实施例通过对初始特征提取网络模块和初始特征分类网络模块组成的网络结构进行训练得到的目标分类模型对待检测恶意代码对应的二进制图像进行分类,得到分类结果。本申请的一些实施例通过训练两个模块可以得到二进制图像的低层次特征,实现对恶意代码的精准检测分类,提高了分类性能。

在一些实施例,所述将所述二进制图像输入至预先训练好的目标分类模型中,获取所述待检测恶意代码对应的分类结果,包括:将所述二进制图像输入至所述目标分类模型中的特征提取模块,得到特征向量;将所述特征向量输入至所述目标分类模型中的特征分类网络模块,得到所述分类结果。

本申请的一些实施例通过将二进行图像输入至特征提取模块得到的特征向量输入至特征分类网络模型得到分类结果,可以使用特征分类网络模块提取低层次的特征,确保分类准确性,提升分类性能。

在一些实施例,所述将所述特征向量输入至所述特征分类网络模块,得到所述分类结果,包括:对所述特征向量进行反汇编,得到代码基本块集合;提取所述代码基本块集合中每个代码基本块对应的指纹特征信息;对所述每个代码基本块对应的指纹特征信息进行计算,获取所述特征向量对应的基本块哈希值;将所述基本块哈希值与恶意代码家族数据库进行匹配,得到所述分类结果。

本申请的一些实施例通过特征分类网络模块对特征向量进行一系列处理,得到分类结果,提升了分类的准确度和性能。

在一些实施例,所述对所述每个代码基本块对应的指纹特征信息进行计算,获取所述特征向量对应的基本块哈希值,包括:利用注意力增强卷积块、深度可分离卷积注意力块和残差前馈网络分别对所述每个代码基本块对应的指纹特征信息进行加权求和,得到注意力增强值、深度注意力值以及残差值;对所述注意力增强值、深度注意力值以及残差值进行计算,得到所述基本块哈希值。

本申请的一些实施例通过注意力增强卷积块、深度可分离卷积注意力块和残差前馈网络进行编码和计算,得到基本块哈希值,实现了利用注意力增强卷积和深度分层卷积增强来加权不同恶意代码区域的特征,从而提高分类性能。

在一些实施例,所述注意力增强值是通过如下方法获取的:分别将空间注意力矩阵和通道注意力矩阵与全连接矩阵相乘后与所述全连接矩阵进行加权求和,得到所述注意力增强值;所述深度注意力值是通过如下方法获取的:将自注意力值与所述全连接矩阵相乘后与所述全连接矩阵进行加权求和,得到所述深度注意力值;所述残差值是通过如下方法获取的:对所述指纹特征信息进行卷积操作,得到中间输出结果;将所述中间输出结果经过激活函数得到非线性输出结果;对所述非线性输出结果进行卷积操作,得到卷积结果;将所述非线性输出结果、所述卷积结果和所述指纹特征信息进行残差连接,得到所述残差值。

本申请的一些实施例通过不同的模块对不同的值进行计算,可以实现对恶意代码特征的提取,提升分类性能。

在一些实施例,所述将所述基本块哈希值与恶意代码家族数据库进行匹配,得到所述分类结果,包括:计算所述基本块哈希值与所述恶意代码家族数据库中每个哈希值的相似度分数;若所述相似度分数超过预设阈值,则确认所述待检测恶意代码所属的恶意代码家族,其中,所述恶意代码家族为所述分类结果。

本申请的一些实施例通过相似度分数与预设阈值对比确定待检测恶意代码所属的恶意代码家族,准确度较高。

在一些实施例,在所述将所述二进制图像输入至预先训练好的目标分类模型中之前,所述方法还包括:获取训练数据集,其中,所述训练数据集包括:恶意代码样本集和所述恶意代码样本集中各恶意代码样本的同源标签;利用所述训练数据集对所述网络结构进行训练,并利用对比损失和焦点损失组成的总损失函数对所述网络结构进行训练损失计算,得到损失结果;利用优化器和所述损失结果对所述网络结构进行优化,得到所述目标分类模型。

第二方面,本申请的一些实施例提供了一种恶意代码分类的装置,包括:获取模块,被配置为获取待检测恶意代码对应的二进制图像;分类模块,被配置为将所述二进制图像输入至预先训练好的目标分类模型中,获取所述待检测恶意代码对应的分类结果,其中,所述目标分类模型是通过对初始特征提取网络模块和初始特征分类网络模块组成的网络结构进行训练得到的。

第三方面,本申请的一些实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现如第一方面任一实施例所述的方法。

第四方面,本申请的一些实施例提供一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现如第一方面任一实施例所述的方法。

第五方面,本申请的一些实施例提供一种计算机程序产品,所述的计算机程序产品包括计算机程序,其中,所述的计算机程序被处理器执行时可实现如第一方面任一实施例所述的方法。

附图说明

为了更清楚地说明本申请的一些实施例的技术方案,下面将对本申请的一些实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请的一些实施例提供的一种恶意代码分类的系统图;

图2为本申请的一些实施例提供的获取目标分类模型的方法流程图;

图3为本申请的一些实施例提供的网络结构示意图;

图4为本申请的一些实施例提供的一种恶意代码分类的方法流程图;

图5为本申请的一些实施例提供的一种恶意代码分类的装置组成框图;

图6为本申请的一些实施例提供的一种电子设备示意图。

具体实施方式

下面将结合本申请的一些实施例中的附图,对本申请的一些实施例中的技术方案进行描述。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

恶意代码(Malicious Code)是指一类意图对计算机系统、网络或用户造成损害、盗取信息、滥用资源或违反安全策略的恶意程序或脚本。这些恶意代码通常是由黑客、病毒制作者或其他恶意行为者编写,旨在实施各种恶意活动。恶意代码可以采用多种形式,包括但不限于:病毒,蠕虫,广告软件,根套件,逻辑炸弹等。恶意软件作者使用常见的混淆技术,如加密、寡态、多态、变质、隐形和包装方法,使得恶意软件难以准确检测。通过这种方式,它们能够避免传统的检测技术,如黑白名单和特征码匹配。同一家族的恶意代码会产生许多变种,而即使是相同的恶意代码,也会采用不同的混淆方式来隐藏其特征,从而使得仅依赖简单规则匹配的检测方法失效。面对这一问题,学界近年来开始将恶意代码检测和分类的研究焦点转向计算机视觉领域,并提出使用图像分类技术来检测恶意代码。恶意软件检测问题同样可以看作是一个分类问题。

在现有的对恶意代码检测的方法中,在图像转换过程中,设计网络结构缺陷较多,可能会导致恶意代码的部分信息丢失或失真,例如代码的长度、结构、语义等,这些信息对于恶意代码的同源分析是有价值的。也就是说,没有一个好的架构会导致关键信息的遗漏,这对于分类是极其不利的。同时,在现有的方法中神经网络模型的训练依赖于大量的标注数据,而恶意代码的标注数据往往是稀缺和不完整的,这将影响图像分类模型的训练和泛化能力,这也就导致了难以处理新出现的或未知的恶意代码家族,因为它们可能与已有的家族有很大的差异,而图像分类模型可能无法捕捉到这些差异。同时在对恶意代码的可解释性方面,无法给出恶意代码同源分析的依据和理由,只能给出一个类别标签,这对于恶意代码的进一步分析和处理是不够的。

由上述相关技术可知,现有技术中对恶意代码分类的方法的准确度较低,分类性能较差。

鉴于此,本申请的一些实施例提供了一种恶意代码分类的方法,该方法通过对初始特征提取网络模块和初始特征分类网络模块组成的网络结构进行训练得到的目标分类模型对待检测恶意代码对应的二进制图像进行分类,输出分类结果。本申请的一些实施例在初始特征分类网络模块中添加有注意力增强卷积块和深度可分离卷积注意力块,以此可以实现对二进制图像的特征的精准提取,进而可以提升分类性能和准确度。

下面结合附图1示例性阐述本申请的一些实施例提供的恶意代码分类的系统的整体组成结构。

如图1所示,本申请的一些实施例提供了一种恶意代码分类的系统,该恶意代码分类的系统包括:终端100和分类服务器200。其中,分类服务器200中预先部署有训练好的目标分类模型。终端100可以将待检测恶意代码发送至分类服务器200。分类服务器200通过获取与待检测恶意代码对应的二进制图像并输入至目标分类模型中,可以得到其输出的分类结果。该分类结果可以表征待检测恶意代码与其他代码具有同源性,即两者所属于相同的恶意代码家族或变种。

在本申请的一些实施例中,终端100可以为移动终端,也可以为非便携的电脑终端,本申请实施例在此不作具体限定。

在本申请的另一些实施例中,若终端100具有分类服务器200对待检测恶意代码进行图像转换以及部署目标分类模型对待检测恶意代码的图像进行分类的功能,此时可以不设置分类服务器200。具体的,可以根据实际情况进行调整,本申请实施例并不局限于此。

可以理解的是,在对恶意代码分类之前首先需要对初始特征提取网络模块和初始特征分类网络模块组成的网络结构进行训练得到目标分类模型。

下面结合附图2示例性阐述本申请的一些实施例提供的由分类服务器200执行的获取目标分类模型的实现过程。

请参见附图2,图2为本申请的一些实施例提供的一种获取目标分类模型的方法流程图,该获取目标分类模型的方法包括:S210,获取训练数据集,其中,所述训练数据集包括:恶意代码样本集和所述恶意代码样本集中各恶意代码样本的同源标签。S220,利用训练数据集对网络结构进行训练,并利用对比损失和焦点损失组成的总损失函数对所述网络结构进行训练损失计算,得到损失结果。S230,利用优化器和所述损失结果对所述网络结构进行优化,得到所述目标分类模型。

例如,在本申请的一些实施例中,首先对提取的恶意代码进行转换得到对应的图像,以此得到恶意代码样本集。首先,从每个安卓应用程序安装包(APK)中提取DEX文件(字节码)。提取的DEX文件被转换成由8位无符号整数组成的一维数组,数组中每个元素的值介于0和255之间,分别对应图像中像素的灰度值。然后使用标准线性映射法将一维数组转换为二维图像,其中图像的宽度是固定的,高度则根据DEX文件的大小而变化。之后将二维图像缩放为统一的256×256大小。为了进一步增强图像的语义信息,根据DEX文件结构,将图像中的每个像素映射成三个RGB通道,不同的通道代表不同的语义信息。最后对恶意代码样本集中的数据进行同源标签标注,将属于一个家族或变种的标注为同源。

在另一些实施例中,可以将上述得到的训练数据集存储在MalNet数据集中,在训练时可以从MalNet数据集中直接加载含有恶意代码样本的训练数据集。

在得到训练数据集后对网络结构进行训练,在训练过程中结合对比损失(Contrastive Loss)和焦点损失(Focal Loss)来定义网络训练的总损失函数以得到总损失结果,确保重建的恶意代码重构图像质量。之后选择Adamax优化器(作为优化器的一个具体示例)来最小化损失,最终得到符合要求的目标分类模型。

在本申请的一些实施例中,获取目标分类模型的方法还可以包括:构建网络结构。

例如,在本申请的一些实施例中,构建一个基于VGG19(作为初始特征提取网络模块的一个具体示例)和Attention Augmented Convolutional Residual Transformer(AACRT)(作为初始特征分类网络模块的一个具体示例)结构的恶意代码同源分析网络模型,如图3所示。其中,VGG19网络由19个隐藏层组成,其中16个是卷积层,3个是全连接层。VGG19网络使用了3x3的小卷积核来代替传统的大卷积核,这样可以增加网络的深度,提高特征的表达能力。具体的来说,VGG19网络将恶意代码样本对应的图像转换为特征向量矩阵,然后输入到VGG19网络中,得到最后一层全连接层的输出作为特征向量。可以理解的是,若使用设定的预训练的模型参数,或者在大量的恶意代码样本上进行微调,可以适应不同的代码分类任务,灵活性较高。AACRT网络是一种将卷积神经网络和视觉结合的网络结构,它旨在利用视觉捕获图像中的长距离依赖关系,同时利用注意力增强卷积块提取局部信息,以此提升模型的分类性能。由图3可知,AACRT网络由一个Bottle Neck层、四个AACRTBlock块、四个步长为2的Conv层、一个平均池化层和一个全连接层组成。Bottle Neck层是由一个步长为2的卷积层和一个步长为1的卷积层组成。AACRT Block:由三个模块组成:注意力增强卷积块(Attention Augmented Convolution,AAC模块),深度可分离卷积注意力块(Depthwise Separable Convolutional Attention,DSCA模块)和残差前馈网络(Residual Feed-Forward Network,RFFN模块)。

其中,图3所示的AACRT网络的内部处理过程包括:首先,将恶意代码特征图像(也就是经过VGG19网络输出的特征向量)进行反汇编,得到基本块的集合。基本块是指没有跳转指令的连续指令序列,是二进制代码的最小执行单元。然后,从每个基本块中提取三个指纹信息:跳转逻辑特征、代码序列特征和子函数名特征。跳转逻辑特征是指基本块中的条件跳转和无条件跳转指令的组合,反映了基本块的控制流结构。代码序列特征是指基本块中的操作码序列,反映了基本块的功能实现。子函数名特征是指基本块所属的子函数名称,反映了基本块的功能定位。接着,将每个基本块的三个指纹信息进行编码和哈希,得到一个32位的基本块哈希值,作为基本块的唯一标识。这样可以将基本块的比较问题转化为哈希值的比较问题,提高了效率和准确度。最后,将恶意代码样本对应的基本块哈希值与已知的恶意代码家族数据库中的基本块哈希值进行匹配,计算出相似度分数。如果分数超过设定阈值,则认为两个代码文件具有同源性,即属于同一个恶意代码家族或变种。

其中,在对三个指纹信息进行编码和哈希时是通过ACC模块、DSCA模块和RFFN模块实现的。下面示例性介绍这三个模块的具体实现原理。

在一种实施方式中,AAC模块是一种改进的卷积层,它可以同时利用空间和通道维度的注意力机制,来增强特征的表达能力。它的输入是一个四维张量

具体的,AAC模块对输入X进行一个标准的1×1卷积,得到一个中间输出

其中,Q

其中,Q

最后将空间注意力矩阵和通道注意力矩阵分别与Z进行矩阵乘法,得到两个注意力增强的特征Z

在一种实施方式中,DSCA模块是一种结合了深度可分离卷积和自注意力机制的卷积层,它可以在减少参数和计算量的同时,提高特征的多样性和全局感知能力。它的输入是一个四维张量

具体的,DSCA模块对输入X进行一个深度可分离卷积操作,得到一个中间输出

其中,Q、K∈R

最后将自注意力矩阵A与Z进行矩阵乘法,得到一个注意力增强的特征

在一种实施方式中,RFFN模块是一种残差连接的前馈网络,它可以增加网络的深度和非线性,同时避免梯度消失和过拟合的问题。

具体的,RFFN模块对输入X进行一个1×1的卷积操作,得到一个中间输出

需要说明的是,AACRT Block可以堆叠多个,形成一个stage,每个stage可以使用不同数量和配置的AACRT Block。AACRT网络由四个stage组成,每个stage之间使用一个步长为2的卷积层来降低分辨率并增加通道数。最后,使用平均池化层和全连接层来得到分类结果。具体的可以根据实际情况灵活设定AACRT Block的数量,本申请实施例并不局限于此。

通过上述本申请的一些实施例提供的图3的网络模型,由于本方案创新性的将注意力增强卷积块和深度分层注意力卷积(也就是深度可分离卷积注意力块)分别进行特征提取并进行加权结合,可以充分利用恶意软件的结构信息和语义信息,同时也可以增强模型的表达能力和泛化能力。

下面结合附图4示例性阐述本申请的一些实施例提供的由分类服务器200执行的恶意代码分类的具体过程。

请参见附图4,图4为本申请的一些实施例提供的一种恶意代码分类的方法流程图,该恶意代码分类的方法包括:

S410,获取待检测恶意代码对应的二进制图像。

例如,在本申请的一些实施例中,对于要检测的恶意代码程序(作为待检测恶意代码的一个具体示例),将其转换为图像格式(也就是二进制图像)。具体的,转换的方式可以包括以下几个步骤:

获取宽度:根据恶意代码程序的DEX文件大小(KB)确定图像宽度。

加载DEX文件:读取DEX文件并将其内容转换为一维字节数组。

获取DEX信息:从DEX文件中提取各种标题和数据信息。

设置颜色:设置DEX文件内容的颜色,其中标题信息为红色,数据部分为绿色。

获取线性数组:将一维字节数组转换为二维数组,以便转换为图像。

创建线性图像(也就是二进制图像):使用上述函数将DEX文件转换为图像,并将图像大小调整为256×256。

S420,将所述二进制图像输入至预先训练好的目标分类模型中,获取所述待检测恶意代码对应的分类结果,其中,所述目标分类模型是通过对初始特征提取网络模块和初始特征分类网络模块组成的网络结构进行训练得到的。

例如,在本申请的一些实施例中,获取由图2所提供的方法实施例对图3的网络结构训练得到的目标分类模型。将线性图像输入到目标分类模型中,得到其输出的分类结果。

在本申请的一些实施例中,S420可以包括:将所述二进制图像输入至所述目标分类模型中的特征提取模块,得到特征向量;将所述特征向量输入至所述目标分类模型中的特征分类网络模块,得到所述分类结果。

例如,在本申请的一些实施例中,目标分类模型中训练好的VGG19网络可以对线性图像进行特征提取,得到其对应的特征向量。然后将特征向量输入至训练好的AACRT网络中,得到分类结果。

在本申请的一些实施例中,S420可以包括:对所述特征向量进行反汇编,得到代码基本块集合;提取所述代码基本块集合中每个代码基本块对应的指纹特征信息;对所述每个代码基本块对应的指纹特征信息进行计算,获取所述特征向量对应的基本块哈希值;将所述基本块哈希值与恶意代码家族数据库进行匹配,得到所述分类结果。

例如,在本申请的一些实施例中,AACRT网络内部可以对特征向量进行反汇编、指纹特征信息提取、编码和哈希计算以及匹配得到对应的分类结果。

在本申请的一些实施例中,S420中对所述每个代码基本块对应的指纹特征信息进行计算,获取所述特征向量对应的基本块哈希值,包括:利用注意力增强卷积块、深度可分离卷积注意力块和残差前馈网络分别对所述每个代码基本块对应的指纹特征信息进行加权求和,得到注意力增强值、深度注意力值以及残差值;对所述注意力增强值、深度注意力值以及残差值进行计算,得到所述基本块哈希值。

例如,在本申请的一些实施例中,AACRT网络内部的AACRT Block中的三个模块可以对指纹特征信息进行编码和哈希计算,得到注意力增强值、深度注意力值以及残差值进而可以得到对应的基本块哈希值。

在本申请的一些实施例中,注意力增强值是通过如下方法获取的:分别将空间注意力矩阵和通道注意力矩阵与全连接矩阵相乘后与所述全连接矩阵进行加权求和,得到所述注意力增强值。

例如,在本申请的一些实施例中,注意力增强值也就是在训练过程中ACC模块计算输出的Y

在本申请的一些实施例中,深度注意力值是通过如下方法获取的:将自注意力值与所述全连接矩阵相乘后与所述全连接矩阵进行加权求和,得到所述深度注意力值。

例如,在本申请的一些实施例中,深度注意力值也就是在训练过程中DSCA模块计算输出的Y

在本申请的一些实施例中,残差值是通过如下方法获取的:对所述指纹特征信息进行卷积操作,得到中间输出结果;将所述中间输出结果经过激活函数得到非线性输出结果;对所述非线性输出结果进行卷积操作,得到卷积结果;将所述非线性输出结果、所述卷积结果和所述指纹特征信息进行残差连接,得到所述残差值。

例如,在本申请的一些实施例中,残差值也就是在训练过程中RFFN模块计算输出的Y

在本申请的一些实施例中,S420中将所述基本块哈希值与恶意代码家族数据库进行匹配,得到所述分类结果可以包括:计算所述基本块哈希值与所述恶意代码家族数据库中每个哈希值的相似度分数;若所述相似度分数超过预设阈值,则确认所述待检测恶意代码所属的恶意代码家族,其中,所述恶意代码家族为所述分类结果。

例如,在本申请的一些实施例中,通过将基本块哈希值与恶意代码家族数据库中的每个哈希值进行相似度计算,得到相似度分数,当某个家族的代码与恶意代码程序的相似度分数超过预设阈值时,则认为两者同源,两者属于同一个恶意代码家族或变种。

通过上述本申请的一些实施例可知,本申请通过在大规模的恶意样本图像数据集上进行预训练,通过设置VGG19网络和AACRT网络结合使得最终训练得到的目标分类模型能够提取恶意代码图像的核心特征。这种预训练策略为模型提供了一个强大的起点,使其在后续的同源分析任务中表现得更好。

请参考图5,图5示出了本申请的一些实施例提供的恶意代码分类的装置的组成框图。应理解,该恶意代码分类的装置与上述方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该恶意代码分类的装置的具体功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。

图5的恶意代码分类的装置包括至少一个能以软件或固件的形式存储于存储器中或固化在恶意代码分类的装置中的软件功能模块,该恶意代码分类的装置包括:获取模块510,被配置为获取待检测恶意代码对应的二进制图像;分类模块520,被配置为将所述二进制图像输入至预先训练好的目标分类模型中,获取所述待检测恶意代码对应的分类结果,其中,所述目标分类模型是通过对初始特征提取网络模块和初始特征分类网络模块组成的网络结构进行训练得到的。

在本申请的一些实施例中,分类模块520,被配置为将所述二进制图像输入至所述目标分类模型中的特征提取模块,得到特征向量;将所述特征向量输入至所述目标分类模型中的特征分类网络模块,得到所述分类结果。

在本申请的一些实施例中,分类模块520,被配置为对所述特征向量进行反汇编,得到代码基本块集合;提取所述代码基本块集合中每个代码基本块对应的指纹特征信息;对所述每个代码基本块对应的指纹特征信息进行计算,获取所述特征向量对应的基本块哈希值;将所述基本块哈希值与恶意代码家族数据库进行匹配,得到所述分类结果。

在本申请的一些实施例中,分类模块520,被配置为利用注意力增强卷积块、深度可分离卷积注意力块和残差前馈网络分别对所述每个代码基本块对应的指纹特征信息进行加权求和,得到注意力增强值、深度注意力值以及残差值;对所述注意力增强值、深度注意力值以及残差值进行计算,得到所述基本块哈希值。

在本申请的一些实施例中,分类模块520,被配置为所述注意力增强值是通过如下方法获取的:分别将空间注意力矩阵和通道注意力矩阵与全连接矩阵相乘后与所述全连接矩阵进行加权求和,得到所述注意力增强值;所述深度注意力值是通过如下方法获取的:将自注意力值与所述全连接矩阵相乘后与所述全连接矩阵进行加权求和,得到所述深度注意力值;所述残差值是通过如下方法获取的:对所述指纹特征信息进行卷积操作,得到中间输出结果;将所述中间输出结果经过激活函数得到非线性输出结果;对所述非线性输出结果进行卷积操作,得到卷积结果;将所述非线性输出结果、所述卷积结果和所述指纹特征信息进行残差连接,得到所述残差值。

在本申请的一些实施例中,分类模块520,被配置为计算所述基本块哈希值与所述恶意代码家族数据库中每个哈希值的相似度分数;若所述相似度分数超过预设阈值,则确认所述待检测恶意代码所属的恶意代码家族,其中,所述恶意代码家族为所述分类结果。

在本申请的一些实施例中,在分类模块520之前,该装置还包括训练模块(图中未示出)被配置为获取训练数据集,其中,所述训练数据集包括:恶意代码样本集和所述恶意代码样本集中各恶意代码样本的同源标签;利用所述训练数据集对所述网络结构进行训练,并利用对比损失和焦点损失组成的总损失函数对所述网络结构进行训练损失计算,得到损失结果;利用优化器和所述损失结果对所述网络结构进行优化,得到所述目标分类模型。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。

本申请的一些实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现如上述实施例提供的上述方法中的任意实施例所对应方法的操作。

本申请的一些实施例还提供了一种计算机程序产品,所述的计算机程序产品包括计算机程序,其中,所述的计算机程序被处理器执行时可实现如上述实施例提供的上述方法中的任意实施例所对应方法的操作。

如图6所示,本申请的一些实施例提供一种电子设备600,该电子设备600包括:存储器610、处理器620以及存储在存储器610上并可在处理器620上运行的计算机程序,其中,处理器620通过总线630从存储器610读取程序并执行所述程序时可实现如上述任意实施例的方法。

处理器620可以处理数字信号,可以包括各种计算结构。例如复杂指令集计算机结构、结构精简指令集计算机结构或者一种实行多种指令集组合的结构。在一些示例中,处理器620可以是微处理器。

存储器610可以用于存储由处理器620执行的指令或指令执行过程中相关的数据。这些指令和/或数据可以包括代码,用于实现本申请实施例描述的一个或多个模块的一些功能或者全部功能。本公开实施例的处理器620可以用于执行存储器610中的指令以实现上述所示的方法。存储器610包括动态随机存取存储器、静态随机存取存储器、闪存、光存储器或其它本领域技术人员所熟知的存储器。

以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

技术分类

06120116525202