CN111488574B - 恶意软件分类方法、系统、计算机设备和存储介质 - Google Patents
恶意软件分类方法、系统、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN111488574B CN111488574B CN202010271812.5A CN202010271812A CN111488574B CN 111488574 B CN111488574 B CN 111488574B CN 202010271812 A CN202010271812 A CN 202010271812A CN 111488574 B CN111488574 B CN 111488574B
- Authority
- CN
- China
- Prior art keywords
- sample
- category
- entropy
- code
- trained
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- 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
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Computer Security & Cryptography (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Virology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种恶意软件分类方法、系统、计算机设备和存储介质。所述方法包括:获取待分类恶意软件的代码,对代码进行分段获得代码段,基于各代码段的熵值生成代码对应的熵图;对熵图进行特征提取,获得对应的目标特征;对目标特征进行分类,确定待分类恶意软件的类别。采用本方法能够提高恶意软件的识别效率,实现快速分类。
Description
技术领域
本申请涉及信息安全领域,特别是涉及一种恶意软件分类方法、系统、计算机设备和存储介质。
背景技术
恶意软件是指在未明确提示用户或未经用户许可的情况下,在用户计算机或其他终端上安装运行,侵害用户合法权益的软件。随着恶意软件的数量呈现爆炸式的增长趋势,如何快速而准确地分析大量恶意软件的恶意意图是一个挑战。代码重用技术致使同一家族的恶意软件变体具有相似的功能和行为,因此对恶意软件进行家族分类有助于识别恶意软件的意图和攻击特征。
相关技术中,将恶意软件二进制文件的灰度图输入分类模型中进行处理,获得恶意软件分类结果。然而,相关技术难以识别使用混淆技术伪装的恶意软件的类别,存在效率低的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高效率的恶意软件分类方法、系统、计算机设备和存储介质。
一种恶意软件分类方法,所述方法包括:
获取待分类恶意软件的代码,对所述代码进行分段获得代码段,基于各所述代码段的熵值生成所述代码对应的熵图;
对所述熵图进行特征提取,获得对应的目标特征;
对所述目标特征进行分类,确定所述待分类恶意软件的类别。
一种恶意软件分类系统,所述系统包括:
熵图生成模块,用于获取待分类恶意软件的代码,对所述代码进行分段获得代码段,基于各所述代码段的熵值生成所述代码对应的熵图;
特征提取模块,用于对所述熵图进行特征提取,获得对应的目标特征;
分类模块,用于对所述目标特征进行分类,确定所述待分类恶意软件的类别。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取待分类恶意软件的代码,对所述代码进行分段获得分段代码,基于各所述分段代码的熵值生成所述代码对应的熵图;
对所述熵图进行特征提取,获得对应的目标特征;
对所述目标特征进行分类,确定所述待分类恶意软件的类别。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取待分类恶意软件的代码,对所述代码进行分段获得代码段,基于各所述代码段的熵值生成所述代码对应的熵图;
对所述熵图进行特征提取,获得对应的目标特征;
对所述目标特征进行分类,确定所述待分类恶意软件的类别。
上述恶意软件分类方法、系统、计算机设备和存储介质,获取待分类恶意软件的代码,对代码进行分段获得代码段,基于各代码段的熵值生成代码对应的熵图;对熵图进行特征提取,获得对应的目标特征;对目标特征进行分类,确定待分类恶意软件的类别。同一个恶意软件家族中恶意软件的重用代码对应的熵值相同,因此熵图蕴含了同一恶意软件家族共有的熵变化模式,通过对熵图进行特征提取,可以有效识别通过代码重用或混淆技术生成的恶意软件变体所属的家族特征,从而能够提高恶意软件的识别效率,实现快速分类。
附图说明
图1为一个实施例中恶意软件分类方法的流程示意图;
图2为一个实施例中恶意软件家族熵图的示意图;
图3为一个实施例中训练获得卷积神经网络的方法的流程示意图;
图4为一个实施例中卷积神经网络的结构示意图;
图5为一个实施例中训练获得分类器的方法的流程示意图;
图6为一个实施例中用于恶意软件分类的系统框架示意图;
图7为一个实施例中恶意软件分类系统的结构框图;
图8为一个实施例中计算机设备的内部结构图;
图9为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种恶意软件分类方法,本实施例以该方法应用于终端进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤S102至步骤S106。
S102,获取待分类恶意软件的代码,对代码进行分段获得代码段,基于各代码段的熵值生成代码对应的熵图。
其中,待分类恶意软件的代码可以是二进制文件,也可以是由二进制文件转化而成的十六进制转储文件。对代码进行分段可以获得若干代码段,若干可以是一个,也可以是多个一个,各代码段的熵值可以是对各代码段进行香农熵计算获得的值,从而可以将待分类恶意软件的代码表示为一个熵值流。熵图表示根据熵值流绘制的图,具体可以是以各代码段的段序号和熵值分别作为横坐标和纵坐标绘制的图,从而实现对恶意软件可视化。在一个实施例中,如图2所示,展示了九个恶意软件家族(分别为Dontovo.A、Fakerean、Instantaccess、Lolyda.AA 1、Lolyda.AA 2、Lolyda.AA 3、Lolyda.AT、Malex.gen!J和Obfuscator.AD)的熵图,其中,每个家族给出了两个示例熵图。可见,同一家族的两个熵图具有高度相似性,而不同家族的熵图区别较大。
在一个实施例中,可以基于预设段长对代码进行分段,从而将该代码分割为连续的若干代码段,其中,预设段长可以结合实际情况进行设置,比如可以设为256字节、512字节、1024字节等。获得代码段之后,可以利用以下计算公式计算对应的香农熵:
其中,yi表示第i段代码段的香农熵,m表示该代码段中包含的不同字节的数目,pj(1≤j≤m)表示每个字节出现的概率。举例来说,若代码段为十六进制转储文件,则每个字节包括两个十六进制代码,其取值有256个,对应0~255,假设一代码段中包含256个不同取值的字节,则每个字节的出现概率为1/256,通过上述公式计算可得,该代码段的香农熵为8。可以理解,当代码段包含的不同取值的字节数目不同时,其对应的香农熵不同。
S104,对熵图进行特征提取,获得对应的目标特征。
获得待分类恶意软件的代码对应的熵图之后,可以采用特征提取器对熵图进行特征提取,获得该熵图的目标特征,目标特征具体是能够反映该熵图中所包含的家族模式的家族特征,用以识别该熵图对应的恶意软件所属的家族类别。其中,特征提取器具体可以是目前已有以及以后可能出现的神经网络模型。
S106,对目标特征进行分类,确定待分类恶意软件的类别。
获得待分类恶意软件的代码对应的熵图的目标特征之后,可以采用分类器对目标特征进行分类,获得该待分类恶意软件所属的家族类别。其中,分类器具体可以是目前已有以及以后可能出现的分类模型。
上述恶意软件分类方法中,获取待分类恶意软件的代码,对代码进行分段获得代码段,基于各代码段的熵值生成代码对应的熵图;对熵图进行特征提取,获得对应的目标特征;对目标特征进行分类,确定待分类恶意软件的类别。同一个恶意软件家族中恶意软件的重用代码对应的熵值相同,因此熵图蕴含了同一恶意软件家族共有的熵变化模式,通过对熵图进行特征提取,可以有效识别通过代码重用或混淆技术生成的恶意软件变体所属的家族特征,从而能够提高恶意软件的识别效率,实现快速分类。
在一个实施例中,对熵图进行特征提取,获得对应的目标特征的步骤,具体可以是:采用训练好的卷积神经网络,对熵图进行特征提取,获得对应的目标特征。
本实施例中,卷积神经网络(CNN)可以是深度卷积神经网络,具体可以包括多个卷积层,用于提取熵图的特征。卷积神经网络具有平移不变性,能够有效识别通过混淆技术生成的恶意软件变体的特征,有助于提高恶意软件的识别效率以及提高分类结果的准确性。
在一个实施例中,卷积神经网络包括特征提取层和归一化层,如图3所示,训练获得卷积神经网络的方法包括以下步骤S302至步骤S308。
S302,获取恶意软件样本代码以及对应的标签类别,对样本代码进行分段获得样本代码段,基于各样本代码段的熵值生成样本代码对应的样本熵图。
其中,恶意软件样本代码表示已知其所属家族类别的恶意软件代码,标签类别即为其所属家族类别。具体地,恶意软件样本代码可以从已有的恶意软件样本仓库中获取。
S304,采用待训练卷积神经网络的特征提取层,对样本熵图进行特征提取,获得第一样本目标特征。
其中,特征提取层可以包括多个卷积层,每个卷积层包含一定数量的一定尺寸的卷积核,用于提取样本熵图的特征图。在卷积层之间还可以包括池化层,池化层可以是最大池化层,也可以是平均池化层,用于减小卷积层输出的特征图大小,从而减小计算量,并防止过度拟合。
S306,采用待训练卷积神经网络的归一化层,对第一样本目标特征进行分类,确定样本代码的第一训练类别。
其中,归一化层与特征提取层连接,即采用归一化层对特征提取层输出的第一样本目标特征进行分类,确定样本代码的第一训练类别,第一训练类别表示卷积神经网络训练过程中,由卷积神经网络预测的类别。具体地,归一化层可以使用Softmax函数将第一样本目标特征映射到每个家族类别,获得其对应每个家族类别的概率。
S308,基于第一训练类别和标签类别,调整待训练卷积神经网络的参数,获得训练好的卷积神经网络。
当不满足训练结束条件时,根据第一训练类别和标签类别的差异,调整待训练卷积神经网络的参数,之后返回步骤S304至步骤S306进行迭代,直至满足训练结束条件,获得训练好的卷积神经网络。其中,训练结束条件可以是迭代次数达到预设次数,也可以是第一训练类别相对于标签类别的损失值小于预设阈值。待训练卷积神经网络的损失函数可以采用交叉熵损失函数。
本实施例中,通过样本恶意软件对应的熵图训练卷积神经网络,可以让卷积神经网络更好的学习熵图特征,使得训练好的卷积神经网络能够更准确地提取熵图特征,从而提高后续恶意软件分类结果的准确性。
在一个实施例中,卷积神经网络的特征提取层包括13个卷积层、5个最大池化层和1个全局平均池化层;每个卷积层采用3×3的卷积核,各卷积层的卷积核数量分别为16、16、32、32、64、64、128、128、256、256、512、512和512,具有相同卷积核数量的卷积层组成一个卷积块;各最大池化层分别连接于相邻的两个卷积块之间;全局平均池化层连接于最后一个卷积层与归一化层之间。
如图4所示,输入为300×300×1的熵图,将该熵图输入至卷积层1。卷积层1和卷积层2组成卷积块1,卷积层3和卷积层4组成卷积块2,卷积层5和卷积层6组成卷积块3,卷积层7和卷积层8组成卷积块4,卷积层9和卷积层10组成卷积块5,卷积层11、卷积层12和卷积层13组成卷积块6,同一卷积块中的卷积层输出的特征图的大小和数目相同。卷积块1至卷积块5后分别连接一个最大池化层,用于减半特征图的大小。卷积块6后连接一个全局平均池化层,经全局平均池化层后输出维度为512的扁平化特征向量。
采用训练好的卷积神经网络,对熵图进行特征提取,获得对应的目标特征的步骤,具体可以是:采用训练好的卷积神经网络的特征提取层,对熵图进行特征提取,获得对应的目标特征。
本实施例中,对卷积神经网络的特征提取层的结构和参数进行优化,优化后的特征提取层能够更准确地提取熵图特征,从而提高后续恶意软件分类结果的准确性。
在一个实施例中,对目标特征进行分类,确定待分类恶意软件的类别的步骤,具体可以是:采用训练好的分类器,对目标特征进行分类,确定待分类恶意软件的类别。
本实施例中,分类器可以是支持向量机(SVM),具体可以包括多个一对一支持向量机,用于对目标特征进行分类,确定待分类恶意软件的类别。通过结合支持向量机和卷积神经网络,相对于单独利用卷积神经网络提取熵图特征并分类,通过支持向量机对卷积神经网络提取的熵图特征进行分类,获得分类结果准确性更高。
在一个实施例中,如图5所示,训练获得分类器的方法包括以下步骤S502至步骤S508。
S502,获取恶意软件样本代码以及对应的标签类别,对样本代码进行分段获得样本代码段,基于各样本代码段的熵值生成样本代码对应的样本熵图。
其中,恶意软件样本代码表示已知其所属家族类别的恶意软件代码,标签类别即为其所属家族类别。具体地,恶意软件样本代码可以从已有的恶意软件样本仓库中获取。
S504,采用训练好的卷积神经网络的特征提取层,对样本熵图进行特征提取,获得第二样本目标特征。
采用训练好的卷积神经网络的特征提取层提取的第二样本目标特征,能够准确地反映熵图特征,将第二样本目标特征作为后续待训练分类器的输入,用以训练分类器。
S506,采用待训练分类器,对第二样本目标特征进行分类,确定样本代码的第二训练类别。
采用待训练分类器对卷积神经网络的特征提取层提取的第二样本目标特征进行分类,确定样本代码的第二训练类别,第二训练类别表示分类器训练过程中,由分类器预测的类别。
S508,基于第二训练类别和标签类别,调整待训练分类器的参数,获得训练好的分类器。
当不满足训练结束条件时,根据第二训练类别和标签类别的差异,调整待训练分类器的参数,之后返回步骤S506进行迭代,直至满足训练结束条件,获得训练好的分类器。其中,训练结束条件可以是迭代次数达到预设次数,也可以是第二训练类别相对于标签类别的损失值小于预设阈值。待训练分类器的损失函数可以采用铰链损失函数,并使用线性核函数,训练好的分类器的惩罚参数为10。
本实施例中,通过训练好的卷积神经网络提取恶意软件样本代码对应的熵图特征,并使用该熵图特征训练分类器,使得训练好的分类器可以更准确地对恶意软件进行分类。
在一个实施例中,分类器包括目标数量的一对一支持向量机,目标数量基于标签类别的总个数确定,每个一对一支持向量机对应两个标签类别;采用训练好的分类器,对目标特征进行分类,确定待分类恶意软件的类别的步骤,具体可以包括以下步骤:采用训练好的目标数量的一对一支持向量机,分别对目标特征进行分类,获得目标数量的预测结果,每个预测结果对应一个预测类别;选取目标数量的预测结果对应的预测类别中个数最多的预测类别,确定为待分类恶意软件的类别。
其中,一对一支持向量机(SVM)是针对样本的所有标签类别中的任意两类进行设计的,若样本的所有标签类别有k个,则需要设计k(k-1)/2个SVM,即目标数量为k(k-1)/2个。举例来说,样本有A、B和C三类,训练时分别采用(A,B)、(A,C)和(B,C)作为训练集,其中,(A,B)表示包含A类样本和B类样本的样本集,(A,C)表示包含A类样本和C类样本的样本集,(B,C)表示包含B类样本和C类样本的样本集,训练得到3个训练好的SVM,分别用AB-SVM、AC-SVM和BC-SVM表示。
采用AB-SVM、AC-SVM和BC-SVM分别对未知恶意软件的熵图目标特征进行分类,获得三个预测结果。假设三个预测结果分别对应A类、A类和B类,其中A类数量最多,则确定该未知恶意软件的类别为A类。
本实施例中,通过一对一支持向量机对对恶意软件进行分类,可以提高分类结果的准确性。
在一个实施例中,如图6所示,提供了一种用于恶意软件分类的系统框架示意图。其中,样本仓库包括训练分类系统(包括用于特征提取的深度CNN模型、以及用于分类的SVM分类器)所需的训练集,测试集用于评估分类系统的准确性,具体地,可以采用十折交叉验证来测试分类系统的准确性,本实施例选取了Malimg数据集来进行验证,该数据集包括了来自25个恶意软件家族的9339个样本。经测试,通过上述实施例对恶意软件进行分类,准确率可达0.9972,F1分数可达0.9991,Kappa系数可达0.9967,相比于现有方法具有更优的性能。
应该理解的是,虽然图1、3、5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1、3、5中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图7所示,提供了一种恶意软件分类系统700,包括:熵图生成模块710、特征提取模块720和分类模块730,其中:
熵图生成模块710,用于获取待分类恶意软件的代码,对代码进行分段获得代码段,基于各代码段的熵值生成代码对应的熵图。
特征提取模块720,用于对熵图进行特征提取,获得对应的目标特征。
分类模块730,用于对目标特征进行分类,确定待分类恶意软件的类别。
在一个实施例中,特征提取模块720,具体用于采用训练好的卷积神经网络,对熵图进行特征提取,获得对应的目标特征。
在一个实施例中,该系统还包括第一训练模块,用于训练获得卷积神经网络;第一训练模块包括:样本熵图生成单元、第一特征提取单元、第一分类单元和第一训练单元,其中:
样本熵图生成单元,用于获取恶意软件样本代码以及对应的标签类别,对样本代码进行分段获得样本代码段,基于各样本代码段的熵值生成样本代码对应的样本熵图。
第一特征提取单元,用于采用待训练卷积神经网络的特征提取层,对样本熵图进行特征提取,获得第一样本目标特征。
第一分类单元,用于采用待训练卷积神经网络的归一化层,对第一样本目标特征进行分类,用于确定样本代码的第一训练类别。
第一训练单元,用于基于第一训练类别和标签类别,调整待训练卷积神经网络的参数,获得训练好的卷积神经网络。
在一个实施例中,卷积神经网络的特征提取层包括13个卷积层、5个最大池化层和1个全局平均池化层;每个卷积层采用3×3的卷积核,各卷积层的卷积核数量分别为16、16、32、32、64、64、128、128、256、256、512、512和512,具有相同卷积核数量的卷积层组成一个卷积块;各最大池化层分别连接于相邻的两个卷积块之间;全局平均池化层连接于最后一个卷积层与归一化层之间;特征提取模块720,具体用于采用训练好的卷积神经网络的特征提取层,对熵图进行特征提取,获得对应的目标特征。
在一个实施例中,分类模块730,具体用于采用训练好的分类器,对目标特征进行分类,确定待分类恶意软件的类别。
在一个实施例中,该系统还包括第二训练模块,用于训练获得分类器;第二训练模块包括:样本熵图生成单元、第二特征提取单元、第二分类单元和第二训练单元,其中:
样本熵图生成单元,用于获取恶意软件样本代码以及对应的标签类别,对样本代码进行分段获得样本代码段,基于各样本代码段的熵值生成样本代码对应的样本熵图。
第二特征提取单元,用于采用训练好的卷积神经网络的特征提取层,对样本熵图进行特征提取,获得第二样本目标特征。
第二分类单元,用于采用待训练分类器,对第二样本目标特征进行分类,确定样本代码的第二训练类别。
第二训练单元,用于基于第二训练类别和标签类别,调整待训练分类器的参数,获得训练好的分类器。
在一个实施例中,分类器包括目标数量的一对一支持向量机,目标数量基于标签类别的总个数确定,每个一对一支持向量机对应两个标签类别;分类模块730,具体用于:采用训练好的目标数量的一对一支持向量机,分别对目标特征进行分类,获得目标数量的预测结果,每个预测结果对应一个预测类别;选取目标数量的预测结果对应的预测类别中个数最多的预测类别,确定为待分类恶意软件的类别。
关于恶意软件分类系统的具体限定可以参见上文中对于恶意软件分类方法的限定,在此不再赘述。上述恶意软件分类系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种恶意软件分类方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种恶意软件分类方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图8或图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要理解的是,上述实施例中的术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种恶意软件分类方法,其特征在于,所述方法包括:
获取待分类恶意软件的代码,对所述代码进行分段获得代码段,基于各所述代码段的熵值生成所述代码对应的熵图,所述熵图为根据熵值流绘制的图,包括以各代码段的段序号和熵值分别作为横坐标和纵坐标绘制的图,以实现对恶意软件的可视化,所述熵图蕴含同一恶意软件家族共有的熵变化模式;
采用训练好的卷积神经网络中的特征提取层,对所述熵图进行特征提取,获得对应的目标特征,所述目标特征是反映所述熵图中所包含的家族模式的家族特征;
采用训练好的目标数量的一对一支持向量机,分别对所述目标特征进行分类,获得所述目标数量的预测结果,每个所述预测结果对应一个预测类别;其中,所述目标数量为k(k-1)/2,k为标签类别的总个数,每个所述一对一支持向量机对应两个标签类别;选取所述目标数量的预测结果对应的预测类别中个数最多的预测类别,确定为所述待分类恶意软件的类别,所述待分类恶意软件的类别为待分类恶意软件所属的家族类别;
所述卷积神经网络包括特征提取层和归一化层,训练获得所述卷积神经网络的方式包括:
获取恶意软件样本代码以及对应的标签类别,对所述样本代码进行分段获得样本代码段,基于各所述样本代码段的熵值生成所述样本代码对应的样本熵图,所述对应的标签类别为所述恶意软件样本代码所属家族类别;
采用待训练卷积神经网络的特征提取层,对所述样本熵图进行特征提取,获得第一样本目标特征;
采用所述待训练卷积神经网络的归一化层,对所述第一样本目标特征进行分类,确定所述样本代码的第一训练类别;
基于所述第一训练类别和所述标签类别,调整所述待训练卷积神经网络的参数,获得训练好的卷积神经网络;
训练获得所述一对一支持向量机的方式包括:
获取恶意软件样本代码以及对应的标签类别,对所述样本代码进行分段获得样本代码段,基于各所述样本代码段的熵值生成所述样本代码对应的样本熵图,所述对应的标签类别为所述恶意软件样本代码所属家族类别;
采用训练好的卷积神经网络的特征提取层,对所述样本熵图进行特征提取,获得第二样本目标特征;
采用待训练的一对一支持向量机,对所述第二样本目标特征进行分类,确定所述样本代码的第二训练类别;
基于所述第二训练类别和所述标签类别,调整所述待训练的一对一支持向量机的参数,获得训练好的一对一支持向量机。
2.根据权利要求1所述的方法,其特征在于,所述卷积神经网络的特征提取层包括13个卷积层、5个最大池化层和1个全局平均池化层;每个所述卷积层采用3×3的卷积核,各所述卷积层的卷积核数量分别为16、16、32、32、64、64、128、128、256、256、512、512和512,具有相同卷积核数量的卷积层组成一个卷积块;各所述最大池化层分别连接于相邻的两个卷积块之间;所述全局平均池化层连接于最后一个卷积层与所述归一化层之间;
采用训练好的卷积神经网络,对所述熵图进行特征提取,获得对应的目标特征,包括:采用训练好的卷积神经网络的特征提取层,对所述熵图进行特征提取,获得对应的目标特征。
3.根据权利要求1所述的方法,其特征在于,所述归一化层使用Softmax函数。
4.根据权利要求1所述的方法,其特征在于,所述对所述代码进行分段获得代码段,包括:
基于预设段长对所述代码进行分段,将所述代码分割为连续的若干代码段,其中,所述预设段长包括256字节、512字节或1024字节。
5.一种恶意软件分类系统,其特征在于,所述系统包括:
熵图生成模块,用于获取待分类恶意软件的代码,对所述代码进行分段获得代码段,基于各所述代码段的熵值生成所述代码对应的熵图,所述熵图为根据熵值流绘制的图,包括以各代码段的段序号和熵值分别作为横坐标和纵坐标绘制的图,以实现对恶意软件的可视化,所述熵图蕴含同一恶意软件家族共有的熵变化模式;
特征提取模块,用于采用训练好的卷积神经网络中的特征提取层,对所述熵图进行特征提取,获得对应的目标特征,所述目标特征是反映所述熵图中所包含的家族模式的家族特征;
分类模块,用于采用训练好的目标数量的一对一支持向量机,分别对所述目标特征进行分类,获得所述目标数量的预测结果,每个所述预测结果对应一个预测类别;其中,所述目标数量为k(k-1)/2,k为标签类别的总个数,每个所述一对一支持向量机对应两个标签类别;选取所述目标数量的预测结果对应的预测类别中个数最多的预测类别,确定为所述待分类恶意软件的类别,所述待分类恶意软件的类别为待分类恶意软件所属的家族类别;
第一训练模块,用于训练获得所述卷积神经网络;所述第一训练模块包括样本熵图生成单元、第一特征提取单元、第一分类单元和第一训练单元,其中:
所述样本熵图生成单元,用于获取恶意软件样本代码以及对应的标签类别,对所述样本代码进行分段获得样本代码段,基于各所述样本代码段的熵值生成所述样本代码对应的样本熵图,所述对应的标签类别为所述恶意软件样本代码所属家族类别;
所述第一特征提取单元,用于采用待训练卷积神经网络的特征提取层,对所述样本熵图进行特征提取,获得第一样本目标特征;
所述第一分类单元,用于采用所述待训练卷积神经网络的归一化层,对所述第一样本目标特征进行分类,确定所述样本代码的第一训练类别;
所述第一训练单元,用于基于所述第一训练类别和所述标签类别,调整所述待训练卷积神经网络的参数,获得训练好的卷积神经网络;
第二训练模块,用于训练获得所述一对一支持向量机,所述第二训练模块包括样本熵图生成单元、第二特征提取单元、第二分类单元和第二训练单元,其中:
所述样本熵图生成单元,用于获取恶意软件样本代码以及对应的标签类别,对所述样本代码进行分段获得样本代码段,基于各所述样本代码段的熵值生成所述样本代码对应的样本熵图,所述对应的标签类别为所述恶意软件样本代码所属家族类别;
所述第二特征提取单元,用于采用训练好的卷积神经网络的特征提取层,对所述样本熵图进行特征提取,获得第二样本目标特征;
所述第二分类单元,用于采用待训练一对一支持向量机,对所述第二样本目标特征进行分类,确定所述样本代码的第二训练类别;
所述第二训练单元,用于基于所述第二训练类别和所述标签类别,调整所述待训练一对一支持向量机的参数,获得训练好的一对一支持向量机。
6.根据权利要求5所述的系统,其特征在于,所述卷积神经网络的特征提取层包括13个卷积层、5个最大池化层和1个全局平均池化层;每个所述卷积层采用3×3的卷积核,各所述卷积层的卷积核数量分别为16、16、32、32、64、64、128、128、256、256、512、512和512,具有相同卷积核数量的卷积层组成一个卷积块;各所述最大池化层分别连接于相邻的两个卷积块之间;所述全局平均池化层连接于最后一个卷积层与所述归一化层之间,所述特征提取模块还用于:采用训练好的卷积神经网络的特征提取层,对所述熵图进行特征提取,获得对应的目标特征。
7.根据权利要求5所述的系统,其特征在于,所述归一化层使用Softmax函数。
8.根据权利要求5所述的系统,其特征在于,所述熵图生成模块,还用于基于预设段长对所述代码进行分段,将所述代码分割为连续的若干代码段,其中,所述预设段长包括256字节、512字节或1024字节。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010271812.5A CN111488574B (zh) | 2020-04-08 | 2020-04-08 | 恶意软件分类方法、系统、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010271812.5A CN111488574B (zh) | 2020-04-08 | 2020-04-08 | 恶意软件分类方法、系统、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111488574A CN111488574A (zh) | 2020-08-04 |
CN111488574B true CN111488574B (zh) | 2023-04-07 |
Family
ID=71812682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010271812.5A Active CN111488574B (zh) | 2020-04-08 | 2020-04-08 | 恶意软件分类方法、系统、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111488574B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112685739B (zh) * | 2020-12-31 | 2022-11-04 | 卓尔智联(武汉)研究院有限公司 | 恶意代码检测方法、数据交互方法及相关设备 |
CN113205801B (zh) * | 2021-05-08 | 2024-03-19 | 国家计算机网络与信息安全管理中心 | 恶意语音样本的确定方法、装置、计算机设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108399335A (zh) * | 2018-01-30 | 2018-08-14 | 东华大学 | 一种基于局部熵的恶意代码可视化分析方法 |
CN108846284A (zh) * | 2018-06-29 | 2018-11-20 | 浙江工业大学 | 一种基于字节码图像和深度学习的Android恶意应用检测方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106096411B (zh) * | 2016-06-08 | 2018-09-18 | 浙江工业大学 | 一种基于字节码图像聚类的Android恶意代码家族分类方法 |
CN108062478B (zh) * | 2018-01-04 | 2021-04-02 | 北京理工大学 | 全局特征可视化与局部特征相结合的恶意代码分类方法 |
CN110765458B (zh) * | 2019-09-19 | 2021-06-08 | 浙江工业大学 | 一种基于深度学习的恶意软件图像格式检测方法及其装置 |
-
2020
- 2020-04-08 CN CN202010271812.5A patent/CN111488574B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108399335A (zh) * | 2018-01-30 | 2018-08-14 | 东华大学 | 一种基于局部熵的恶意代码可视化分析方法 |
CN108846284A (zh) * | 2018-06-29 | 2018-11-20 | 浙江工业大学 | 一种基于字节码图像和深度学习的Android恶意应用检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111488574A (zh) | 2020-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hashemi et al. | Visual malware detection using local malicious pattern | |
Almomani et al. | An automated vision-based deep learning model for efficient detection of android malware attacks | |
Goel et al. | Dual branch convolutional neural network for copy move forgery detection | |
Chaganti et al. | Image-based malware representation approach with EfficientNet convolutional neural networks for effective malware classification | |
US11580222B2 (en) | Automated malware analysis that automatically clusters sandbox reports of similar malware samples | |
Gao et al. | Android malware detection via graphlet sampling | |
CN105556566A (zh) | 动态手写验证、基于手写的用户认证、手写数据生成和手写数据保存 | |
CN111753290B (zh) | 软件类型的检测方法及相关设备 | |
CN110245714B (zh) | 图像识别方法、装置及电子设备 | |
CN111488574B (zh) | 恶意软件分类方法、系统、计算机设备和存储介质 | |
CN113381963B (zh) | 一种域名检测方法、装置和存储介质 | |
US11809519B2 (en) | Semantic input sampling for explanation (SISE) of convolutional neural networks | |
CN114936371B (zh) | 基于三通道可视化和深度学习的恶意软件分类方法及系统 | |
Gibert et al. | Orthrus: A bimodal learning architecture for malware classification | |
Anandhi et al. | Malware visualization and detection using DenseNets | |
CN114693192A (zh) | 风控决策方法、装置、计算机设备和存储介质 | |
CN111783088B (zh) | 一种恶意代码家族聚类方法、装置和计算机设备 | |
Ye et al. | Android malware detection technology based on lightweight convolutional neural networks | |
CN117134958A (zh) | 用于网络技术服务的信息处理方法及系统 | |
CN111191238A (zh) | 一种webshell检测方法、终端设备及存储介质 | |
Bakhshinejad et al. | A new compression based method for android malware detection using opcodes | |
CN115314239A (zh) | 基于多模型融合的隐匿恶意行为的分析方法和相关设备 | |
CN113409014A (zh) | 基于人工智能的大数据业务处理方法及人工智能服务器 | |
CN114579965A (zh) | 一种恶意代码的检测方法、装置及计算机可读存储介质 | |
CN113420065A (zh) | 一种应用于业务大数据的数据处理方法及大数据服务器 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |