CN117195056A - 恶意软件家族分类的方法、装置、存储介质及电子设备 - Google Patents
恶意软件家族分类的方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN117195056A CN117195056A CN202311228978.9A CN202311228978A CN117195056A CN 117195056 A CN117195056 A CN 117195056A CN 202311228978 A CN202311228978 A CN 202311228978A CN 117195056 A CN117195056 A CN 117195056A
- Authority
- CN
- China
- Prior art keywords
- sample
- software
- model
- prototype
- characterization
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 83
- 239000013598 vector Substances 0.000 claims abstract description 85
- 238000012512 characterization method Methods 0.000 claims abstract description 82
- 239000011159 matrix material Substances 0.000 claims abstract description 70
- 238000012549 training Methods 0.000 claims abstract description 46
- 238000000605 extraction Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 6
- 238000004422 calculation algorithm Methods 0.000 claims description 5
- 239000000284 extract Substances 0.000 claims description 5
- 230000008569 process Effects 0.000 description 16
- 230000006870 function Effects 0.000 description 11
- 238000004458 analytical method Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000002372 labelling Methods 0.000 description 8
- 230000003068 static effect Effects 0.000 description 7
- 230000009471 action Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000013145 classification model Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 238000013526 transfer learning Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011478 gradient descent method Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请的一些实施例提供了一种恶意软件家族分类的方法、装置、存储介质及电子设备,该方法包括:对软件样本进行反汇编和多特征提取,获取所述软件样本的特征矩阵;利用所述软件样本中的第一样本对应的第一特征矩阵对自编码器模型进行训练,获取表征模型;将所述软件样本中除所述第一样本之外的第二样本的第二特征矩阵输入至所述表征模型,得到所述第二样本对应的表征向量;利用所述第二样本对应的表征向量对初始软件家族分类器进行训练,获取所述原型网络模型和原型集,其中,所述表征模型、所述原型网络模型和所述原型集用于对恶意软件家族分类。本申请的一些实施例可以实现对恶意软件家族的准确分类。
Description
技术领域
本申请涉及软件检测技术领域,具体而言,涉及一种恶意软件家族分类的方法、装置、存储介质及电子设备。
背景技术
恶意软件是一种为了损坏和控制计算机系统、数据或网络而故意设计的软件。随着计算机网络与信息技术的发展,新的恶意软件不断涌现并广泛传播,严重威胁了网络安全。
目前,恶意软件分类的方法通常是通过对恶意软件的特征进行提取后输入到分类模型进行分类。然而,在实际环境中,恶意软件家族样本数量有限、打标签困难,而且随着恶意软件家族的更新,分类模型的分类准确率难以保证。
因此,如何提供一种准确度较高的恶意软件家族分类的方法的技术方案成为亟需解决的技术问题。
发明内容
本申请的一些实施例的目的在于提供一种恶意软件家族分类的方法、装置、存储介质及电子设备,通过本申请的实施例的技术方案可以实现对恶意软件家族的准确分类。
第一方面,本申请的一些实施例提供了一种恶意软件家族分类的方法,包括:对软件样本进行反汇编和多特征提取,获取所述软件样本的特征矩阵;利用所述软件样本中的第一样本对应的第一特征矩阵对自编码器模型进行训练,获取表征模型;将所述软件样本中除所述第一样本之外的第二样本的第二特征矩阵输入至所述表征模型,得到所述第二样本对应的表征向量;利用所述第二样本对应的表征向量对初始软件家族分类器进行训练,获取原型网络模型和原型集,其中,所述表征模型、所述原型网络模型和所述原型集用于对恶意软件家族分类。
本申请的一些实施例通过对软件样本进行反汇编、多特征提取、自编码器模型训练、初始软件家族分类器训练,得到对应的原型网络模型和原型集。本申请的一些实施例通过多特征提取可以提升特征提取的全面性和精准性,通过对自编码器模型训练无需依赖数据标注,解决了家族便签样本标注困难的问题;最后通过对初始软件家族分类器训练可以实现迁移性学习,提升模型的训练精度,进而实现对恶意软件家族的准确分类。
在一些实施例,所述对软件样本进行反汇编和多特征提取,获取所述软件样本的特征矩阵,包括:使用相关命令对所述软件样本进行分析和提取,得到控制流图;对所述控制流图中的所有节点进行排序后计算每个节点的多个特征;基于所述多个特征构建所述特征矩阵。
本申请的一些实施例通过对软件样本进行多特征提取,得到特征矩阵,提升了软件样本特征提取的精确性、保证了提取的全面性和高效性。
在一些实施例,所述多个特征包括:结构特征、算术指令特征、转移指令特征和接口调用特征。
本申请的一些实施例通过对不同类型特征提取,保证了全面性。
在一些实施例,所述利用所述软件样本中的第一样本对应的第一特征矩阵对自编码器模型进行训练,获取表征模型,包括:将所述第一特征矩阵输入至所述自编码器模型,得到重构特征矩阵;通过计算所述第一特征矩阵和所述重构特征矩阵的损失,更新所述自编码器模型的参数,输出所述表征模型。
本申请的一些实施例通过第一样本的第一特征矩阵对自编码器模型训练和更新参数,输出表征模型,无需依赖数据标签,解决了获取大量有家族标签的恶意软件样本困难的问题。
在一些实施例,所述利用所述第二样本对应的表征向量对初始软件家族分类器进行训练,获取所述原型网络模型和原型集,包括:将所述第二样本对应的表征向量输入至初始软件家族分类器中的嵌入模型中,得到嵌入向量样本;对所述嵌入向量样本进行划分,得到支持集和查询集,其中,所述支持集中包括:多个家族类别的真实标签以及所述多个家族类别中每个家族类别中的第一样本,所述查询集中包括:所述每个家族类别中的第二样本;计算所述支持集中的每个家族类别的原型向量,得到所述原型集;通过计算所述第二样本对应的嵌入向量样本与所述原型向量的分类损失,利用梯度下降算法更新所述嵌入模型的参数,输出所述原型网络模型。
本申请的一些实施例通过第二样本对初始软件家族分类器中的嵌入模型进行训练和优化,得到原型网络模型和原型集,可以实现模型的迁移性学习,提升模型的训练精度,进而实现对恶意软件家族的准确分类。
在一些实施例,在所述获取所述原型网络模型和原型集之后,所述方法还包括:更新所述第二样本;利用所述第二样本定时更新所述原型网络模型和所述原型集。
本申请的一些实施例通过更新样本以实现更新原型网络模型和原型集的目的,使得模型可以适应于多种恶意软件家族分类,保证模型的分类准确度。
第二方面,本申请的一些实施例提供了一种恶意软件家族分类的方法,包括:获取由第一方面中任一实施例所述的方法得到的表征模型、原型网络模型和原型集;对待检测软件进行反汇编和多特征提取,得到所述待检测软件对应的特征矩阵;将所述特征矩阵输入至所述表征模型中,得到表征向量;将所述表征向量输入至所述原型网络模型中,得到嵌入向量;将所述嵌入向量与所述原型集中的原型向量相似度最高的家族类别作为所述待检测软件的家族分类结果。
本申请的一些实施例通过训练好的表征模型、原型网络模型和原型集对待检测软件进行分类,准确度较高。
第三方面,本申请的一些实施例提供了一种恶意软件家族分类的装置,包括:处理模块,被配置为对软件样本进行反汇编和多特征提取,获取所述软件样本的特征矩阵;第一训练模块,被配置为利用所述软件样本中的第一样本对应的第一特征矩阵对自编码器模型进行训练,获取表征模型;输入模块,被配置为将所述软件样本中除所述第一样本之外的第二样本的第二特征矩阵输入至所述表征模型,得到所述第二样本对应的表征向量;第二训练模块,被配置为利用所述第二样本对应的表征向量对初始软件家族分类器进行训练,获取所述原型网络模型和原型集,其中,所述表征模型、所述原型网络模型和所述原型集用于对恶意软件家族分类。
第四方面,本申请的一些实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现如第一方面任一实施例所述的方法。
第五方面,本申请的一些实施例提供一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现如第一方面任一实施例所述的方法。
第六方面,本申请的一些实施例提供一种计算机程序产品,所述的计算机程序产品包括计算机程序,其中,所述的计算机程序被处理器执行时可实现如第一方面任一实施例所述的方法。
附图说明
为了更清楚地说明本申请的一些实施例的技术方案,下面将对本申请的一些实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请的一些实施例提供的一种恶意软件家族分类的系统图;
图2为本申请的一些实施例提供的恶意软件家族分类的方法流程图之一;
图3为本申请的一些实施例提供的自编码器结构示意图;
图4为本申请的一些实施例提供的初始软件家族分类器的结构示意图;
图5为本申请的一些实施例提供的恶意软件家族分类的方法流程图之二;
图6为本申请的一些实施例提供的恶意软件家族分类的方法流程图之三;
图7为本申请的一些实施例提供的恶意软件家族分类的装置组成框图之一;
图8为本申请的一些实施例提供的恶意软件家族分类的装置组成框图之二;
图9为本申请的一些实施例提供的一种电子设备示意图。
具体实施方式
下面将结合本申请的一些实施例中的附图,对本申请的一些实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
相关技术中,恶意软件家族是一组在行为和代码结构上相似的恶意软件样本。对恶意软件家族进行分类可以理解其演变方式和攻击模式,更好的预测威胁并采取相应的防御措施。
恶意软件分类主要包括两个步骤:特征提取与表征、特征分类。特征提取与表征是指将原始的二进制恶意软件文件转换成可供算法处理的数值向量表示形式;分类是将经过特征表征的数据输入分类器进行分类的过程。
恶意软件特征提取方法可以分为直接特征提取和间接特征提取,直接特征提取是指以二进制方式读取软件,直接处理字节流数据,不进行软件功能层面分析。而间接特征提取主要包括动态分析和静态分析:动态分析在受控的环境中运行恶意软件样本,可以模拟真实的系统行为;而静态分析可以在不运行恶意软件样本的情况下对其进行分析。相对来说,静态分析无需配置恶意软件运行环境,更加高效快速,可在短时间内对大量样本进行分析,便于在服务器、终端设备部署。之后通常通过机器学习模型对提取的特征进行表征,得到表征向量。
现有主流技术的分类器主要基于深度学习。深度学习技术能够从大量样本中准确学习静态特征,并用于进行恶意软件家族分类。然而,现有基于深度学习的恶意软件分类技术主要存在以下不足:一是需要大量有家族类别标签样本进行有监督学习,但在真实环境中,给恶意软件打家族标签是较为困难的,一些新型恶意软件的样本数量也十分有限;二是模型可分类的类别固定,无法应对日益增长的恶意软件家族。
例如,现有的动态分析恶意软件分类方法中,需要针对每个样本模拟其运行环境,需要占用的系统资源及所需的专业知识较高,分析提取每个样本的时间较长,若操作不当还可能导致特征提取的服务器遭受恶意软件攻击。而且API调用仅代表恶意软件的一部分特征,有些样本的恶意行为可能在远程服务器未发送命令或未运行的情况下无法体现。而基于此得到的初始的表征向量不准确的情况下,导致原型集的原型表征向量不准确,仅通过分类交叉熵损失在小样本数据集上训练可能难以收敛、精度不高。在另一种静态分析方法中,直接将二进制文件字节流特征转为特征向量并生成图像的方法,由于不需要进行反汇编,处理效率较高。然而,字节流特征只能学习到统计特征,丢失了最为重要的程序语义信息。并且,每个家族需要提供大量的有标签数据进行监督学习以提高模型精度,然而在实际应用场景中标注大量恶意软件的家族标签十分困难。此外,该技术的分类模型的类别数取决于最后一个全连接层的节点个数,是静态固定的,无法应对不断增长的新型恶意软件家族。由于恶意软件家族不断演化和变种的出现,该模型很难适应这些新的恶意软件类型,从而导致分类器的泛化能力下降。
由上述相关技术可知,现有的恶意软件家族分类方法存在准确度较低的问题。
鉴于此,本申请的一些实施例提供了一种恶意软件家族分类的方法,该方法通过对软件样本反汇编和多特征提取得到特征矩阵,实现了软件样本特征提取的精确性、全面性和高效性。通过自编码器模型进行预训练得到表征模型,训练过程通过优化特征矩阵的重构损失进行自监督学习,无需依赖数据标签,重点解决了获取大量有家族标签的恶意软件样本困难的问题。最后以表征模型的输出作为初始软件家族分类器的输入,使用MLP网络作为嵌入映射模型(简称嵌入模型)。由于输入的特征已经相对准确,嵌入映射模型只需在对应的少量支持集上进行迁移学习微调,提升了原型网络模型在小样本(也就是第二样本)上训练时的收敛效率以及训练精度。
下面结合附图1示例性阐述本申请的一些实施例提供的恶意软件家族分类的系统的整体组成结构。
如图1所示,本申请的一些实施例提供了一种恶意软件家族分类的系统,该恶意软件家族分类的系统包括:终端100和分类服务器200。其中,分类服务器200部署有预先训练好的表征模型、原型网络模型和原型集。在对软件检测时,可以将待检测软件进行反汇编和多特征提取后得到的特征矩阵输入至表征模型得到表征向量;然后将表征向量输入到原型网络模型中得到嵌入向量;最后将嵌入向量和原型集中的原型向量进行相似度计算,得到待检测软件对应的家族分类结果。
在本申请的一些实施例中,终端100可以为移动终端,也可以为非便携的电脑终端,本申请实施例在此不作具体限定。
可以理解的是,为了使得分类服务器200具备对软件家族分类的功能,需要首先进行相应的模型训练得到表征模型、原型网络模型和原型集。因此,下面结合附图2示例性阐述本申请的一些实施例提供的由分类服务器200执行的恶意软件家族分类的实现过程。
请参见附图2,图2为本申请的一些实施例提供的一种恶意软件家族分类的方法流程图,该恶意软件家族分类的方法包括:
S210,对软件样本进行反汇编和多特征提取,获取所述软件样本的特征矩阵。
例如,在本申请的一些实施例中,为了保证模型训练的精准度,在前期需要对软件样本进行反汇编和多特征提取,以得到保留语义特征和全面的特征矩阵。
在本申请的一些实施例中,S210可以包括:使用相关命令对所述软件样本进行分析和提取,得到控制流图;对所述控制流图中的所有节点进行排序后计算每个节点的多个特征;基于所述多个特征构建所述特征矩阵。其中,所述多个特征包括:结构特征、算术指令特征、转移指令特征和接口调用特征。
例如,在本申请的一些实施例中,首先使用python的r2pipe包读取软件样本,并使用“aaa”命令(作为相关命令的一个具体示例)分析结构,然后对每个函数,通过“agfd”命令(作为相关命令的一个具体示例)提取控制流图(CFG),其中控制流图中每个节点表示一个基本块,边表示基本块间调用关系。例如,控制流图表征了所有函数、函数间调用关系、代码块、代码块间调用关系信息。之后,将软件样本中每个软件样本的二进制文件的所有控制流图的所有节点按顺序排列,计算每个节点的结构特征(2个)、算术指令特征(3个)、转移指令特征(3个)、API调用特征(10个),共计18维。
具体的:结构特征包含节点的度(关联节点数量)、中介中心度(BetweenessScore)。其中对于某个节点v的中介中心度的计算公式如公式(1)所示,其中σs→t表示从节点s到节点t的所有最短路径的数量,σs→t表示从节点s到节点t的所有经过节点v的最短路径的数量,∑表示对所有节点s和t求和,该特征主要用于衡量节点在CFG中的重要程度。
算术指令特征包含节点内基本数学指令(如ADD,SUB等)、逻辑运算指令(如AND,OR等)、移位指令(如SHL,SHR等)数量。
转移指令特征包含堆栈操作指令(如PUSH,POP等)、寄存器操作指令(如MOV,LEA等)、端口操作指令(如IN,OUT等)的数量。
API调用特征包含文件系统(Filesystem)、注册表(Registry)、网络(Network)、DLL(Dynamic Link Library)、对象(Object)、进程(Process)、服务(Service)、同步(Synchronization)、系统信息(System Information)时间(Time)相关的API调用数量。
将所有节点的特征依次排列为一个特征矩阵,其中每一行代表一个节点的上述18维特征。经过统计得出,95%的软件样本的总节点数量小于等于20000,因此将每个软件样本的特征矩阵通过截断或填充操作得到一个20000×18的特征矩阵。
S220,利用所述软件样本中的第一样本对应的第一特征矩阵对自编码器模型进行训练,获取表征模型。
例如,在本申请的一些实施例中,第一样本为没有被标注的样本。自编码器模型(也可以称为自编码器)的结构如图3所示。其中,图3的自编码器包含编码器和解码器两部分。其中编码器为下采样过程,将特征矩阵进行特征聚合和压缩:其中E Block为下采样模块(Encoder Block),每个E Block包含两个卷积层和一个池化层(尺寸为2×2,步长为2);解码器为上采样过程,将压缩的特征进行还原和重构:其中D Block为上采样模块(DecoderBlock),每个D Block包含一个转置卷积层和两个卷积层,在转置卷积后进行通道拼接操作,即将对应的E Block输出的特征图在通道维度上拼接到转置卷积层输出的特征图上,以提高模型的训练效果。所有卷积层的卷积核尺寸为1×24,步长为1,padding模式为same。
在本申请的一些实施例中,S220可以包括:将所述第一特征矩阵输入至所述自编码器模型,得到重构特征矩阵;通过计算所述第一特征矩阵和所述重构特征矩阵的损失,更新所述自编码器模型的参数,输出所述表征模型。
例如,在本申请的一些实施例中,从软件样本中获取大量无标签的良性软件和恶意软件数据集(作为第二样本的一个具体示例),,将该数据集对应的特征矩阵(作为第一特征矩阵的一个具体示例)输入至图3的自编码器模型,得到重构特征矩阵。采用公式(2)MSE损失函数计算损失,再通过反向传播过程使用随机梯度下降法(SGD)更新模型参数。其中,A和A’分别表示特征矩阵(也就是第一特征矩阵)和重构特征矩阵,n为特征矩阵的元素个数,Aij表示第i行第j列的元素。迭代训练直到自编码器模型收敛或训练次数上限。
最后,取最终的编码器结构及其参数作为表征模型。
S230,将所述软件样本中除所述第一样本之外的第二样本的第二特征矩阵输入至所述表征模型,得到所述第二样本对应的表征向量。
例如,在本申请的一些实施例中,将软件样本中除训练自编码器之外的第二样本的第二特征矩阵输入至表征模型推理可得到表征向量。
S240,利用所述第二样本对应的表征向量对初始软件家族分类器进行训练,获取所述原型网络模型和原型集,其中,所述表征模型、所述原型网络模型和所述原型集用于对恶意软件家族分类。
例如,在本申请的一些实施例中,对初始软件家族分类器训练时,第二样本为含有少量有类别标签的恶意软件数据集。初始软件家族分类器的结构如图4所示。图4中构建的初始软件家族分类器的网络结构包括:采用5层MLP全连接神经网络作为嵌入模型,通过训练得到符合要求的嵌入模型。
在本申请的一些实施例中,S240可以包括:
S241,将所述第二样本对应的表征向量输入至初始软件家族分类器中的嵌入模型中,得到嵌入向量样本。
例如,在本申请的一些实施例中,将表征向量输入至图4中的5层MLP嵌入模型中,得到嵌入向量(作为嵌入向量样本的一个具体示例)。
S242,对所述嵌入向量样本进行划分,得到支持集和查询集,其中,所述支持集中包括:多个家族类别的真实标签以及所述多个家族类别中每个家族类别中的第一样本,所述查询集中包括:所述每个家族类别中的第二样本;
例如,在本申请的一些实施例中,对嵌入向量进行采样划分得到支持集和查询集。例如,少量有类别标签(作为真实标签的一个具体示例)的恶意软件数据集,设总类别数为N,从中随机选取n个类别(n<N),对每个类别(也就是每个家族类别)随机选取k个样本构建支持集;再从其余的样本中,对每个类别随机选取另外k个样本构建查询集。
S243,计算所述支持集中的每个家族类别的原型向量,得到所述原型集;
例如,在本申请的一些实施例中,使用支持集对每个类别分别计算原型向量构建原型集,如公式(3)所示,类别t的原型向量pt为:支持集中所有属于类别t的样本的嵌入向量xti的算术平均值。
S244,通过计算所述第二样本对应的嵌入向量样本与所述原型向量的分类损失,利用梯度下降算法更新所述嵌入模型的参数,输出所述原型网络模型。
例如,在本申请的一些实施例中,对于查询集中的每个样本,根据原型集计算分类。具体来说,对于查询集中的一个样本,计算其嵌入向量xi与原型集中类别t的原型向量pt的余弦相似度dit,如公式(4)所示,其中xi·pt表示两向量的内积,||·||表示向量的L2范数;再采用Softmax函数进行归一化以得到每个类别的概率分布zit,组成t维概率分布向量zi∈[0,1]t,如公式(5)所示。
采用公式(6)交叉熵损失函数计算分类损失,衡量每个样本的概率分布向量zi与真实类别的差异,再通过反向传播过程使用随机梯度下降法(SGD)更新嵌入模型的参数。其中,n为类别数,zij和lij表示向量zi和li的第j个元素。迭代训练直到嵌入模型收敛或训练次数上限,得到原型网络模型和原型集。
在本申请的一些实施例中,恶意软件家族分类的方法还可以包括:更新所述第二样本;利用所述第二样本定时更新所述原型网络模型和所述原型集。
例如,在本申请的一些实施例中,针对每个家族类别收集少量的最新恶意软件样本,并构建新的数据集,定期在图4所示的嵌入模型上进行迁移学习,以确保定期更新原型网络模型和原型集,使其可以持续学习新的恶意软件特征,对新样本有更准确的分类判断。
下面结合附图5示例性阐述本申请的一些实施例提供的恶意软件家族分类的具体过程。
请参见附图5,图5为本申请的一些实施例提供的一种恶意软件家族分类的方法流程图。需要说明的是,下述方法实施例可以应用于企业网络安全防御系统设计。
下面示例性阐述上述过程。
S510,获取软件样本数据集。
例如,作为本申请的一个具体示例,收集大量软件样本(约20万个样本,其中至少50%是恶意软件样本),无需对其进行家族标注。
S520,对软件样本数据集进行反汇编和多特征提取,获取特征矩阵。
例如,作为本申请的一个具体示例,对软件样本数据集中的所有样本进行反汇编,并提取18维特征构建特征矩阵。
S530,利用软件样本数据集对应的特征矩阵对自编码器模型进行训练,获取表征模型。
例如,作为本申请的一个具体示例,构建图3所示的自编码器模型,在软件样本数据集上通过自监督学习训练自编码器模型,最后取编码器部分作为表征模型。
S540,获取小样本数据集。
例如,作为本申请的一个具体示例,在软件样本数据集中针对每个家族类别收集少量的具体标注的恶意软件样本(如,约30个样本)。其中,该小样本数据集可以是重新收集标注的,也可以是对软件样本数据集中的小部分数据进行标注得到的。本申请实施例在此不作具体限定。
S550,基于小样本数据集对应的嵌入向量样本进行数据集划分,得到支持集和查询集。
例如,作为本申请的一个具体示例,对于每个家族类别,取15个样本放入支持集,取另外15个样本放入查询集。基于支持集计算每个家族类型的原型向量以构建原型集。
S560,利用小样本数据集对嵌入模型进行监督学习训练,得到原型网络模型。
例如,作为本申请的一个具体示例,构建如图4所示的嵌入模型,在支持集上通过有监督学习训练嵌入模型,以最终输出原型网络模型。
需要说明的是,S510~S560的具体实现过程可以参照上文提供的方法实施例,为避免重复,此处适当省略详细描述。
下面结合附图6示例性阐述本申请的一些实施例提供的恶意软件家族分类的具体过程。
请参见附图6,图6为本申请的一些实施例提供的恶意软件家族分类的方法流程图,该恶意软件家族分类的方法包括:S610,获取训练得到的表征模型、原型网络模型和原型集。S620,对待检测软件进行反汇编和多特征提取,得到所述待检测软件对应的特征矩阵。S630,将所述特征矩阵输入至所述表征模型中,得到表征向量。S640,将所述表征向量输入至所述原型网络模型中,得到嵌入向量。S650,将所述嵌入向量与所述原型集中的原型向量相似度最高的家族类别作为所述待检测软件的家族分类结果。
例如,在本申请的一些实施例中,通过上述图2或图3提供的方法实施例得到表征模型、原型网络模型和原型集后,对待检测软件进行反汇编并进行特征提取,得到特征矩阵。然后通过表征模型进行特征聚合与压缩得到表征向量,再通过原型网络模型中的嵌入模型推理得到嵌入向量。最后计算其嵌入向量与原型集中所有原型向量的欧式距离,取欧式距离最小的类别作为该待检测软件的家族分类结果。可以理解的是,除了欧式距离还可以采用其他相似度算法,本申请实施例并不局限于此。
通过上述本申请的一些实施例可知,本申请具体如下优势:
1)节约标记数据成本:传统机器学习恶意软件分类方法通常需要大量标记数据来训练分类器,而本发明中的自编码器预训练采用无监督学习,无需手动标记大量数据。自编码器从未标记数据中学习恶意软件的特征表示,降低了构建分类器所需的标记数据成本。
2)适应小样本情况:现实情况下,新型恶意软件样本数量较少,传统分类器在这种情况下表现不佳。本发明采用基于自编码器预训练的表征模型和基于元学习的原型网络,能够在小样本情况下提取恶意软件特征,保持分类器的性能,适应现实应用中样本量有限的情况。
3)提高分类器(也就是原型网络模型)性能:自编码器的预训练过程使表征模型学习到更加鲁棒的特征表示。这些特征能够更好地捕捉恶意软件的本质特征,使得分类器在未知样本上有更高的准确率和泛化能力,从而提高了分类器性能。
4)定期更新保持准确性:本发明的分类器可进行定期更新与类别扩充,使用少量最新恶意软件样本进行迁移学习,保持分类器持续学习新特征,对新样本有更准确的分类判断。保证了分类器对不断演进的恶意软件家族保持高效应对能力,提高了分类器的准确性。
请参考图7,图7示出了本申请的一些实施例提供的恶意软件家族分类的装置的组成框图。应理解,该恶意软件家族分类的装置与上述方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该恶意软件家族分类的装置的具体功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。
图7的恶意软件家族分类的装置包括至少一个能以软件或固件的形式存储于存储器中或固化在恶意软件家族分类的装置中的软件功能模块,该恶意软件家族分类的装置包括:处理模块710,被配置为对软件样本进行反汇编和多特征提取,获取所述软件样本的特征矩阵;第一训练模块720,被配置为利用所述软件样本中的第一样本对应的第一特征矩阵对自编码器模型进行训练,获取表征模型;输入模块730,被配置为将所述软件样本中除所述第一样本之外的第二样本的第二特征矩阵输入至所述表征模型,得到所述第二样本对应的表征向量;第二训练模块740,被配置为利用所述第二样本对应的表征向量对初始软件家族分类器进行训练,获取所述原型网络模型和原型集,其中,所述表征模型、所述原型网络模型和所述原型集用于对恶意软件家族分类。
请参考图8,图8示出了本申请的一些实施例提供的恶意软件家族分类的装置的组成框图。应理解,该恶意软件家族分类的装置与上述方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该恶意软件家族分类的装置的具体功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。
图8的恶意软件家族分类的装置包括至少一个能以软件或固件的形式存储于存储器中或固化在恶意软件家族分类的装置中的软件功能模块,该恶意软件家族分类的装置包括:获取模块810,用于获取训练得到的表征模型、原型网络模型和原型集;特征提取模块820,用于对待检测软件进行反汇编和多特征提取,得到所述待检测软件对应的特征矩阵;第一输出模块830,用于将所述特征矩阵输入至所述表征模型中,得到表征向量;第二输出模块840,用于将所述表征向量输入至所述原型网络模型中,得到嵌入向量;分类计算模块850,用于将所述嵌入向量与所述原型集中的原型向量相似度最高的家族类别作为所述待检测软件的家族分类结果。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。
本申请的一些实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现如上述实施例提供的上述方法中的任意实施例所对应方法的操作。
本申请的一些实施例还提供了一种计算机程序产品,所述的计算机程序产品包括计算机程序,其中,所述的计算机程序被处理器执行时可实现如上述实施例提供的上述方法中的任意实施例所对应方法的操作。
如图9所示,本申请的一些实施例提供一种电子设备900,该电子设备900包括:存储器910、处理器920以及存储在存储器910上并可在处理器920上运行的计算机程序,其中,处理器920通过总线930从存储器910读取程序并执行所述程序时可实现如上述任意实施例的方法。
处理器920可以处理数字信号,可以包括各种计算结构。例如复杂指令集计算机结构、结构精简指令集计算机结构或者一种实行多种指令集组合的结构。在一些示例中,处理器920可以是微处理器。
存储器910可以用于存储由处理器920执行的指令或指令执行过程中相关的数据。这些指令和/或数据可以包括代码,用于实现本申请实施例描述的一个或多个模块的一些功能或者全部功能。本公开实施例的处理器920可以用于执行存储器910中的指令以实现上述所示的方法。存储器910包括动态随机存取存储器、静态随机存取存储器、闪存、光存储器或其它本领域技术人员所熟知的存储器。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种恶意软件家族分类的方法,其特征在于,包括:
对软件样本进行反汇编和多特征提取,获取所述软件样本的特征矩阵;
利用所述软件样本中的第一样本对应的第一特征矩阵对自编码器模型进行训练,获取表征模型;
将所述软件样本中除所述第一样本之外的第二样本的第二特征矩阵输入至所述表征模型,得到所述第二样本对应的表征向量;
利用所述第二样本对应的表征向量对初始软件家族分类器进行训练,获取原型网络模型和原型集,其中,所述表征模型、所述原型网络模型和所述原型集用于对恶意软件家族分类。
2.如权利要求1所述的方法,其特征在于,所述对软件样本进行反汇编和多特征提取,获取所述软件样本的特征矩阵,包括:
使用相关命令对所述软件样本进行分析和提取,得到控制流图;
对所述控制流图中的所有节点进行排序后计算每个节点的多个特征;
基于所述多个特征构建所述特征矩阵。
3.如权利要求2所述的方法,其特征在于,所述多个特征包括:结构特征、算术指令特征、转移指令特征和接口调用特征。
4.如权利要求1-3中任一项所述的方法,其特征在于,所述利用所述软件样本中的第一样本对应的第一特征矩阵对自编码器模型进行训练,获取表征模型,包括:
将所述第一特征矩阵输入至所述自编码器模型,得到重构特征矩阵;
通过计算所述第一特征矩阵和所述重构特征矩阵的损失,更新所述自编码器模型的参数,输出所述表征模型。
5.如权利要求1-3中任一项所述的方法,其特征在于,所述利用所述第二样本对应的表征向量对初始软件家族分类器进行训练,获取所述原型网络模型和原型集,包括:
将所述第二样本对应的表征向量输入至初始软件家族分类器中的嵌入模型中,得到嵌入向量样本;
对所述嵌入向量样本进行划分,得到支持集和查询集,其中,所述支持集中包括:多个家族类别的真实标签以及所述多个家族类别中每个家族类别中的第一样本,所述查询集中包括:所述每个家族类别中的第二样本;
计算所述支持集中的每个家族类别的原型向量,得到所述原型集;
通过计算所述第二样本对应的嵌入向量样本与所述原型向量的分类损失,利用梯度下降算法更新所述嵌入模型的参数,输出所述原型网络模型。
6.如权利要求1-3中任一项所述的方法,其特征在于,在所述获取所述原型网络模型和原型集之后,所述方法还包括:
更新所述第二样本;
利用所述第二样本定时更新所述原型网络模型和所述原型集。
7.一种恶意软件家族分类的方法,其特征在于,包括:
获取由权利要求1-6中任一项所述的方法得到的表征模型、原型网络模型和原型集;
对待检测软件进行反汇编和多特征提取,得到所述待检测软件对应的特征矩阵;
将所述特征矩阵输入至所述表征模型中,得到表征向量;
将所述表征向量输入至所述原型网络模型中,得到嵌入向量;
将所述嵌入向量与所述原型集中的原型向量相似度最高的家族类别作为所述待检测软件的家族分类结果。
8.一种恶意软件家族分类的装置,其特征在于,包括:
处理模块,被配置为对软件样本进行反汇编和多特征提取,获取所述软件样本的特征矩阵;
第一训练模块,被配置为利用所述软件样本中的第一样本对应的第一特征矩阵对自编码器模型进行训练,获取表征模型;
输入模块,被配置为将所述软件样本中除所述第一样本之外的第二样本的第二特征矩阵输入至所述表征模型,得到所述第二样本对应的表征向量;
第二训练模块,被配置为利用所述第二样本对应的表征向量对初始软件家族分类器进行训练,获取原型网络模型和原型集,其中,所述表征模型、所述原型网络模型和所述原型集用于对恶意软件家族分类。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,其中,所述计算机程序被处理器运行时执行如权利要求1-7中任意一项权利要求所述的方法。
10.一种电子设备,其特征在于,包括存储器、处理器以及存储在所述存储器上并在所述处理器上运行的计算机程序,其中,所述计算机程序被所述处理器运行时执行如权利要求1-7中任意一项权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311228978.9A CN117195056A (zh) | 2023-09-21 | 2023-09-21 | 恶意软件家族分类的方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311228978.9A CN117195056A (zh) | 2023-09-21 | 2023-09-21 | 恶意软件家族分类的方法、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117195056A true CN117195056A (zh) | 2023-12-08 |
Family
ID=89005064
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311228978.9A Pending CN117195056A (zh) | 2023-09-21 | 2023-09-21 | 恶意软件家族分类的方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117195056A (zh) |
-
2023
- 2023-09-21 CN CN202311228978.9A patent/CN117195056A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110309331B (zh) | 一种基于自监督的跨模态深度哈希检索方法 | |
CN107004159B (zh) | 主动机器学习 | |
CN107133569B (zh) | 基于泛化多标记学习的监控视频多粒度标注方法 | |
CN111371806A (zh) | 一种Web攻击检测方法及装置 | |
CN111476315B (zh) | 一种基于统计相关性与图卷积技术的图像多标签识别方法 | |
CN111475622A (zh) | 一种文本分类方法、装置、终端及存储介质 | |
CN110188827A (zh) | 一种基于卷积神经网络和递归自动编码器模型的场景识别方法 | |
CN111916144B (zh) | 基于自注意力神经网络和粗化算法的蛋白质分类方法 | |
CN112651467B (zh) | 卷积神经网络的训练方法和系统以及预测方法和系统 | |
CN114491039B (zh) | 基于梯度改进的元学习少样本文本分类方法 | |
CN111639607A (zh) | 模型训练、图像识别方法和装置、电子设备及存储介质 | |
CN112527959B (zh) | 基于无池化卷积嵌入和注意分布神经网络的新闻分类方法 | |
CN109766553A (zh) | 一种基于多正则化结合的胶囊模型的中文分词方法 | |
CN114863091A (zh) | 一种基于伪标签的目标检测训练方法 | |
CN116561591B (zh) | 科技文献语义特征提取模型训练方法、特征提取方法及装置 | |
US20240028828A1 (en) | Machine learning model architecture and user interface to indicate impact of text ngrams | |
CN117611901A (zh) | 一种基于全局和局部对比学习的小样本图像分类方法 | |
KR102437285B1 (ko) | 모호한 라벨을 이용한 객체 예측 모델 학습 방법 | |
CN117195056A (zh) | 恶意软件家族分类的方法、装置、存储介质及电子设备 | |
Wei et al. | Salient object detection based on weighted hypergraph and random walk | |
KR20210041919A (ko) | 데이터 생성 방법 | |
CN111860662B (zh) | 一种相似性检测模型的训练方法及装置、应用方法及装置 | |
CN118410498B (zh) | 一种细粒度混合语义漏洞检测方法及系统 | |
CN117475291B (zh) | 画面信息识别方法、装置、电子设备和计算机可读介质 | |
KR102669806B1 (ko) | 수학 문제의 풀이를 보조하기 위한 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |