CN109241741B - 一种基于图像纹理指纹的恶意代码分类方法 - Google Patents
一种基于图像纹理指纹的恶意代码分类方法 Download PDFInfo
- Publication number
- CN109241741B CN109241741B CN201811187768.9A CN201811187768A CN109241741B CN 109241741 B CN109241741 B CN 109241741B CN 201811187768 A CN201811187768 A CN 201811187768A CN 109241741 B CN109241741 B CN 109241741B
- Authority
- CN
- China
- Prior art keywords
- image
- malicious code
- texture
- features
- gray
- 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
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Collating Specific Patterns (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于图像纹理指纹的恶意代码分类方法,通过结合图像分析技术与恶意代码分类技术,将操作码数值化后映射为双通道无压缩的灰度图像,然后根据灰度变换方法将双通道的图像转化单通道的灰度图,使用灰度共生矩阵提取图像的纹理特征,并将这些特征作为恶意代码的本质特征,最后使用随机森林算法对恶意代码进行分类。本发明的基于图像纹理指纹的恶意代码分类方法,一方面减少了用于表述恶意代码的特征数量,提高了恶意代码的分类速度;另一方面有效地克服了操作码重排、代码变换等恶意代码混淆问题,提高了恶意代码分类的精度。
Description
技术领域
本发明涉及恶意代码分类领域,尤其涉及一种基于图像分析的恶意代码分类方法。
背景技术
随着互联网的蓬勃发展,恶意代码已经成为威胁互联网安全的主要因素之一,其呈现出高速增长的趋势。现有技术中,分析识别恶意代码的方式通常包括静态分析方法和动态分析方法,动态分析方法是在代码运行过程中进行分析,所分析的代码就是实际执行的代码,但动态分析在一次执行过程中只能获取单一路径行为,而很多恶意代码存在多条执行路径,因此动态分析方法本身存在有一定的局限性;静态分析方法是先对可执行程序进行反汇编,并在此基础上提取代码的特征信息进行分类,现有技术中已经有很多研究人员将恶意代码转换为图像,并提取图像特征进行识别的静态分析方法,例如Nataraj L等人提出了一种SPAM-GIST恶意代码分类方法(Nataraj L,Manjunath B S.SPAM:SignalProcessing to Analyze Malware[Applications Corner][J].IEEE Signal ProcessingMagazine,2016,33(2):105-117),其将恶意代码二进制文件映射为图像来描述特征,利用Gabor滤波器多尺度和多方向的特点提取图像的全局特征GIST,并使用此特征表示恶意代码特征,然后使用最近邻算法对恶意代码进行分类。然而这些静态分析方法提取的特征维数过大且对混淆后的恶意代码分类精度不足,这导致恶意代码的分类精度低、分类速度慢等不足。因此,如何获取分类精度高、分类速度快的恶意代码分析方法是本领域技术人员需要解决的问题。
发明内容
本发明提供了一种基于图像纹理指纹的恶意代码分类方法,解决现有技术中的恶意代码分类技术无法有效识别混淆的恶意代码、提取的特征数据量大,进而导致恶意代码分类的精度低、速度慢的问题。
为解决上述技术问题,本发明采用的一个技术方案是提供一种基于图像纹理指纹的恶意代码分类方法,包括步骤:操作码数值化,将所述恶意代码的操作码转换为数值化文件,所述数值化文件进一步转换为二进制文件;双通道灰度图处理,将所述二进制文件映射生成两个向量,所述两个向量对应可视化为双通道灰度图像;单通道灰度图处理,将所述双通道灰度图像经过灰度变换转化为固定灰度级的灰度图,并输出单通道灰度图像;提取纹理特征,利用灰度共生矩阵从所述单通道灰度图像提取图像的纹理特征;恶意代码分类,将所述纹理特征作为所述恶意代码的本质特征,使用随机森林算法对所述纹理特征进行分类。
在本发明基于图像纹理指纹的恶意代码分类方法另一实施例中,在所述操作码数值化中,将所述数值化文件中的数值转换为16bit无符号的二进制文件,在所述二进制文件中,每一个二进制数值进一步分成两部分,其中,第一部分包含低8bit,第二部分包含高8bit。
在本发明基于图像纹理指纹的恶意代码分类方法另一实施例中,在双通道灰度图处理中,所述二进制文件对应生成两个向量,所述向量中的每个元素取值范围为[0,255],其中,第一向量对应所述二进制文件中的第一部分,第二向量对应所述二进制文件中的第二部分,所述第一向量又映射为第一通道灰度图像,所述第二向量又映射为第二通道灰度图像,映射后的第一通道灰度图像和第二通道灰度图像保存为两张PNG图片。
在本发明基于图像纹理指纹的恶意代码分类方法另一实施例中,在所述单通道灰度图处理中,利用灰度级分层算法对所述第一通道灰度图像和第二通道灰度图像进行灰度变换。
在本发明基于图像纹理指纹的恶意代码分类方法另一实施例中,在所述提取纹理特征中,利用灰度共生矩阵从所述单通道灰度图像提取12种纹理特征。
在本发明基于图像纹理指纹的恶意代码分类方法另一实施例中,所述12种纹理特征包括:角二阶矩、对比度、相关性、协方差、反差分矩阵、同质性、差异性、熵、均值和、方差和、和熵、差熵。
在本发明基于图像纹理指纹的恶意代码分类方法另一实施例中,所述随机森林算法对所述纹理特征进行分类的方法包括:步骤1:从恶意代码训练样本集中,应用bootstrap方法有放回的随机抽取K个新的自助样本集,并由此构建K棵决策树,每次未被抽到的样本组成K个袋外数据;步骤2:设有n个特征,则在每一棵决策树的每个节点处随机抽取m(m<=n)个候选特征,通过计算每个候选特征的基尼指数,在m个候选特征中选择具有最小基尼指数值的特征进行节点分裂;步骤3:当每棵决策树中的节点中只有一个类别或节点中的样本数小于最小分裂级数时,停止生长;步骤4:将生成的K棵决策树组成随机森林,用随机森林对新的恶意代码本质特征数据进行分类,分类结果由决策树的投票多少而定;其中基尼指数的计算方法如下:
其中,Gini(D)表示所述每一颗树的每一个节点在分裂前包括的数据集D的基尼值计算方法,|y|和pk为所述数据集D的类别数量和每个类别占总数据集的比例;a为所述m个候选特征中的任意一个,Dv表示集合{a=固定属性值},V表示特征a根据其属性值可以划分的总类数,Gini(Dv)表示Dv的基尼值,|D|表示所述数据集D的样本数,|Dv|表示所述集合{a=固定属性值}的样本数,Gini_index(D,a)表述所述数据集D的特征属性a的基尼指数。
在本发明基于图像纹理指纹的恶意代码分类方法另一实施例中,经过灰度级分层算法变换后的所述单通道灰度图像的灰度级为16级。
在本发明基于图像纹理指纹的恶意代码分类方法另一实施例中,所述随机森林中的决策树取值范围为[100,150]。
在本发明基于图像纹理指纹的恶意代码分类方法另一实施例中,所述随机森林中的决策树取值为100。
本发明的有益效果是:本发明公开了一种基于图像纹理指纹的恶意代码分类方法,通过结合图像分析技术与恶意代码分类技术,将操作码数值化后映射为双通道的无压缩的灰度图像,然后根据灰度变换方法将双通道的图像转化单通道的灰度图,使用灰度共生矩阵提取图像的纹理特征,并将这些特征作为恶意代码的本质特征,最后使用随机森林算法对恶意代码进行分类。本发明中的基于图像纹理指纹的恶意代码分类方法,其将操作码的灰度图像灰度级变换到一个很小的数值,这使得灰度共生矩阵的尺寸会比较小,减少了用于表述恶意代码的特征数量,提高了恶意代码的分类速度;另外将操作码数值化后映射为灰度图的方法有效地克服了操作码重排、代码变换等恶意代码混淆问题,提高了恶意代码分类的精度。
附图说明
图1是本发明基于图像纹理指纹的恶意代码分类方法的一实施例流程图;
图2是本发明中将恶意代码的操作码映射为双通道灰度图的一实施例的示意图;
图3是本发明中灰度级和基于图像纹理指纹的恶意代码分类方法分类精度之间的关系的示意图;
图4是本发明中决策树数量和基于图像纹理指纹的恶意代码分类方法分类精度之间的关系的示意图。
具体实施方式
为了便于理解本发明,下面结合附图和具体实施例,对本发明进行更详细的说明。附图中给出了本发明的较佳的实施例。但是,本发明可以以许多不同的形式来实现,并不限于本说明书所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。
需要说明的是,除非另有定义,本说明书所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是用于限制本发明。本说明书所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
图1是本发明基于图像纹理指纹的恶意代码分类方法的一实施例示意图。所述的基于图像纹理指纹的恶意代码分类方法具体包括以下步骤:
步骤S1,操作码数值化,将所述恶意代码的操作码转换为数值化文件,所述数值化文件进一步转换为二进制文件;
恶意代码反汇编后得到与该恶意代码相对应的反汇编代码,该反汇编代码中包含有操作码,从所述反汇编代码中依顺序收集所有的操作码并保存在一个向量中,则该向量即为所述恶意代码的操作码文件。进一步,定义所有操作码对应的数值,将上述操作码文件中的每个操作码转换为相应的数值得到所述操作码文件的数值化文件,将所述数值化文件进一步二进制化即可得到所述操作码文件的二进制文件。表1列举了所有操作码及其对应的数值。
表1操作码及其对应的数值
步骤S2,双通道灰度图处理,将所述二进制文件映射生成两个向量,所述两个向量对应可视化为双通道灰度图像;
具体地,将每个操作码的二进制数值划分为两部分,由于操作码的最大数值为301,因此,当采用二进制表示操作码时,至少需要9位二进制比特码,进一步为了后续提取图像信息,设置采用16bit无符号二进制来表示操作码,当操作码的数值不够16位时,在二进制码前补0即可。因此,将每个操作码的对应数值的二进制数值划分为两部分,第一部分包含低8位部分,第二部分包含高8位部分,将第一部分转换为十进制向量得到第一向量,将第二部分转换为十进制向量得到第二向量,其中所述第一向量和第二向量包含的数据个数均等于所述操作码文件中包含的操作码个数。分别将所述第一向量和第二向量转化映射为图像,得到双通道灰度图像——第一通道灰度图像和第二灰度通道图像。
步骤S3,单通道灰度图处理,将所述双通道灰度图像经过灰度变换转化为固定灰度级的灰度图,并输出单通道灰度图像;
为了获取所述恶意代码的整体特征以及减少图像的特征数量,需要将所述双通道灰度图像转换为固定灰度级的单通道灰度图像。具体地,在本发明中,采用灰度级分层算法对所述双通道灰度图像进行灰度变换,以得到固定灰度级的灰度图,将该固定级的灰度图输出得到单通道灰度图像。经过灰度变换之后,得到的所述固定级的灰度图的灰度级范围比较小。
步骤S4,提取纹理特征,利用灰度共生矩阵从所述单通道灰度图像提取图像的纹理特征;
纹理指纹特征是图像的重要特征之一,本发明提取图像的纹理特征作为图像化后的恶意代码的本质特征。具体地,采用图像处理领域中的灰度共生矩阵以获取图像的纹理特征。
步骤S5,恶意代码分类,将所述纹理特征作为所述恶意代码的本质特征,使用随机森林算法对所述纹理特征进行分类;
现有技术中用于恶意代码分类的常用算法包括神经网络、支持向量机、K近邻法等。本发明中采用随机森林算法对恶意代码的本质特征进行分类,并最终获取所述恶意代码所属的类别。
本发明的基于图像纹理指纹的恶意代码分类方法,其是将操作码转换为灰度图,并将灰度级变换到一个很小的数值,然后映射为灰度共生矩阵,这使得灰度共生矩阵的尺寸会比较小,减少了用于表述恶意代码的特征数量,在一定程度上提高了恶意代码的分类速度;另外将操作码数值化后映射为灰度图的方法可以有效地克服操作码重排、代码变换等恶意代码混淆问题,提高了恶意代码分类的精度。
图2是本发明中将恶意代码的操作码映射为双通道灰度图的一实施例的示意图。在图2中,首先对恶意代码反汇编得到该恶意代码的反汇编代码21,反汇编代码21也是操作码的一个实例;其次,从反汇编代码21中依次收集其所包含的操作码组成操作码向量22;依据表1对操作码向量22进行数值化转换得到操作码数值向量23;然后将操作码数值向量23中的所有数值转换为16bit无符号整型数据以获得操作码二进制文件24;之后将所述操作码二进制文件24中的所有16位的整型数据分为两部分,第一部分包含最有效的低8位,第二部分包含高8位;依次将低8位部分转换成第一向量251,高8位部分转换成第二向量252,这样整个文件最后生成两个向量,向量中的每个元素取值范围为[0,255](0表示黑色,255表示白色),其中第一向量251视为通道1(channel1),第二向量252视为通道2(channel2),然后分别可视化为第一通道灰度图像261和第二通道灰度图像262,图像的高度为1,宽度根据文件中包含的操作码数量而定。具体地,映射后的第一通道灰度图像261和第二通道灰度图像262均保存为无压缩的PNG图片。
该实施例中,其将操作码数值化并二进制化时,生成的向量高度为1,这避免了当采用高度为其他数值的矩阵来保存操作码数值时,会因为操作码个数和矩阵的元素个数不同时,需要额外添加0元素的不足,避免影响后续的图像特征提取,使得本发明提取的特征更能准确的表述或描述恶意代码,这在一定程度上也确保了恶意代码分类的准确性。
优选的,采用灰度级分层是为了更好地提取图像灰度的亮度特征,本发明采用灰度级分层算法对双通道的图像进行灰度变换,将两张灰度图经过变换转化为固定灰度级的灰度图。在实际应用中,一幅灰度图像的灰度级一般为256级,在计算由灰度共生矩阵推导出的纹理特征时,要求图像的灰度级远小于256,这主要是因为图像共生矩阵的计算量由图像的灰度等级和图像的大小来确定。为了减少计算量,加快分析速度,通常采用的解决方法是压缩图像的灰度级。因此,在计算灰度共生矩阵时,在不影响分类精度的前提下往往先将原图像的灰度级压缩到较小的范围,一般取8级或16级,以便减小灰度共生矩阵的尺寸。本发明中的灰度级分层算法如表2所示。
表2灰度级分层算法
其中,所述的channel1的灰度图和channel2的灰度图分别为操作码对应的低八位灰度图和高八位灰度图。通过上述灰度级分层算法的转化后,最终得到一幅灰度图,标记为channel0灰度图像,该channel0灰度图像的灰度级和所述的Del_graynum大小相等。
优选地,采用灰度共生矩阵来提取灰度图像的纹理特征。纹理是图像的重要属性,描述了图像的空间分布模式和排列规则。灰度共生矩阵是被广泛应用的纹理特征提取方法,该方法定义为在θ方向上,相距为d的两个像素分别具有灰度值i和j出现的概率,记为P(i,j;d,θ),反映了图像灰度在方向、变化幅度和局部区域的综合信息。由于在本发明中的图像f高度为1,选择θ=0计算图像f在水平方向的纹理特征,P(i,j;d,0)表示方法如下:
P(i,j;d,0)=#{(x,y),(m,n)∈(Lr,Lc)×(Lr,Lc),|x-m|=0,|y-n|=d,f(x,y)=i,f(m,n)=j}(1)
其中,#、Lr、Lc、f(x,y)=i、f(m,n)=j分别表示图像f中像素的总数目、图像f行的维度、图像f列的维度、在图像f的点(x,y)处灰度值为i、在图像f的点(m,n)处灰度值为j。此外,通过p(i,j;d,0)=P(i,j;d,0)/R,可求得归一化共生矩阵,其中R=2×Lr×(Lc-1)。
具体地,本发明提取灰度共生矩阵常用的12种特征,分别为角二阶矩ASM(AngularSecond Moment)、对比度Contrast、相关性Correlation、协方差Variance、反差分矩阵IDM(Inverse Differential Moment)、同质性Homogeneity、差异性Dissimilarity、熵Entropy、均值和Sum_Average、方差和Sum_Variance、和熵Sum_Entropy、差熵Difference_Entropy,特征计算方法如下:
ASM=∑i∑j[p(i,j)]2 (2)
Contrast=∑i∑j(i,j)2p(x,y) (3)
Variance=∑i∑j(i-μ)2p(i,j)(5)
Dissimilarity=∑i∑j|i-j|p(i,j) (8)
Entropy=∑i∑jp(i,j)log(p(i,j)) (9)
其中,L、μ为灰度级和均值,μx、μy、σx、σy分别为px、py的均值和标准差,px、py、px-y、px+y表示方法如下:
将计算得到的特征结合形成12维特征向量T,该特征向量T作为所述操作码的本质特征向量,输入到分类器中,对恶意代码进行分类,判断出所述恶意代码所述的类别。
优选地,在本发明中,使用随机森林算法对恶意代码进行分类。随机森林(Randomforest,RF)是一种集成机器学习方法,它利用随机重采样技术bootstrap和节点随机分裂技术构建多棵决策树,通过投票得到最终分类结果。RF具有分析复杂相互作用分类特征的能力,对于噪声数据和存在缺失值的数据具有很好的鲁棒性,并且具有较快的学习速度,其变量重要性度量可以作为高维数据的特征选择工具,近年来已经被广泛应用于各种分类、预测、特征选择以及异常点检测问题中。
随机森林是由一组决策树分类器{h(X,θk),k=1,…,K}组成的集成分类器,其中{θk}是服从独立同分布的随机向量,K表示随机森林中决策树的个数,在给定自变量X情况下,每个决策树通过投票决定自变量X的最优分类结果。
随机森林对恶意代码分类过程如下:
步骤1:从恶意代码训练样本集中,应用bootstrap方法有放回的随机抽取K个新的自助样本集,并由此构建K棵决策树,每次未被抽到的样本组成K个袋外数据;
步骤2:设有n个特征,则在每一棵决策树的每个节点处随机抽取m(m<=n)个候选特征,通过计算每个候选特征的基尼指数Gini_index,在m个候选特征中选择具有最小基尼指数值的特征进行节点分裂;
步骤3:当每棵决策树中的节点中只有一个类别或节点中的样本数小于最小分裂级数时,停止生长;
步骤4:将生成的K棵决策树组成随机森林,用随机森林对新的恶意代码的本质特征数据进行分类,分类结果由决策树的投票多少而定;
其中每个候选特征的基尼指数Gini_index计算方法如下:
其中,Gini(D)表示所述每一颗决策树的每一个节点在分裂前包括的数据集D的基尼值计算方法,|y|和pk为所述数据集D的类别数量和每个类别占总数据集的比例;a为所述m个候选特征中的任意一个,Dv表示集合{a=固定属性值},V表示特征a根据其属性值可以划分的总类数,Gini(Dv)表示Dv的基尼值,|D|表示所述数据集D的样本数,|Dv|表示所述集合{a=固定属性值}的样本数,Gini_index(D,a)表述所述数据集D的特征属性a的基尼指数。
表3是本发明的基于图像纹理指纹的恶意代码分类方法以及所述SPAM-GIST恶意代码分类方法在不同k折交叉验证情况下的识别结果。本发明使用的恶意代码数据集来自于Microsoft在Kaggle上的项目Microsoft Malware Classification Challenge。本发明选取7个类别的9929条恶意代码二进制文件进行实验,表2给出了本发明使用的恶意代码数据集的基本信息。
表2恶意代码数据集
恶意代码类别 | 类别号 | 数量 |
Ramniit | 0 | 1513 |
Lollipop | 1 | 2470 |
Kelihos_ver3 | 2 | 2936 |
Vundo | 3 | 446 |
Kelihos_ver1 | 4 | 387 |
Obfuscator_ACY | 5 | 1166 |
Gatak | 6 | 1011 |
在本发明的实验中,采用k折交叉验证对实验结果进行评估。在每次实验中,我们将恶意代码数据集划分为k等份,利用其中k-1等份作为训练集,用于训练随机森林分类器,剩下1等份作为验证集,对分类器进行验证。
具体地,本发明采用准确率(Accuracy)、宏查准率(macro_P)、宏查全率(macro_R)、宏F1(macro_F1)四种评价指标评价随机森林算法对恶意代码的分类效果。对于多分类问题,将每两两类别的组合对应一个混淆矩阵,然后在各混淆矩阵上计算查全率和查准率,记为(P1,R1),(P2,R2),…,(Pn,Rn),再计算平均值,得到宏查准率(macro_P)、宏查全率(macro_R)、宏F1(macro_F1)。具体各评价指标计算公式如下:
其中TP、FP、FN、TN分别表示被分类器识别为正的正样本、被分类器识别为正的负样本、被分类器识别为负的正样本、被分类器识别为负的负样本。P、R为各混淆矩阵的查全率和查准率。
具体地,在本发明的基于图像纹理指纹的恶意代码分类方法中,设置变换后的灰度级为16,随机森林由100棵决策树组成,每棵树的最小分裂级数为2;在所述SPAM-GIST恶意代码分类方法中,K近邻(K-NearestNeighbor,KNN)分类算法的K=3。在本发明中,通过改变交叉验证的k值来比较两组实验,在每个k值下进行十次实验取平均值做为最终结果,表3显示了本发明的基于图像纹理指纹的恶意代码分类方法以及所述SPAM-GIST恶意代码分类方法在不同k折交叉验证情况下的识别结果。表4为本发明基于图像纹理指纹的恶意代码分类方法在10折交叉验证下进行十次实验的最好结果的混淆矩阵,表5为所述SPAM-GIST恶意代码分类方法在10折交叉验证下进行十次实验的最好结果的混淆矩阵。
表3基于图像纹理指纹的恶意代码分类方法与SPAM-GIST恶意代码
分类方法的识别结果
表4SPAM-GIST恶意代码分类方法的混淆矩阵
0 | 1 | 2 | 3 | 4 | 5 | 6 | |
0.0894 | 0.019 | 0.001 | 0.011 | 0.003 | 0.028 | 0.044 | |
0.011 | 0.960 | 0.017 | 0.004 | 0 | 0.001 | 0.007 | |
0 | 0 | 0.999 | 0 | 0 | 0 | 0.001 | |
0.009 | 0.002 | 0 | 0.982 | 0 | 0.004 | 0.003 | |
0.008 | 0.008 | 0 | 0 | 0.933 | 0 | 0.051 | |
0.054 | 0.019 | 0 | 0.008 | 0 | 0.910 | 0.009 | |
0.015 | 0.010 | 0.011 | 0.012 | 0 | 0.010 | 0.942 |
表5基于图像纹理指纹的恶意代码分类方法混淆矩阵
0 | 1 | 2 | 3 | 4 | 5 | 6 | |
0.954 | 0.031 | 0.002 | 0.002 | 0.002 | 0.007 | 0.002 | |
0.017 | 0.978 | 0 | 0 | 0 | 0.003 | 0.002 | |
0 | 0 | 0.999 | 0 | 0 | 0 | 0.001 | |
0.011 | 0.004 | 0.002 | 0.978 | 0.005 | 0 | 0 | |
0.002 | 0 | 0 | 0 | 0.998 | 0 | 0 | |
0.042 | 0.010 | 0 | 0 | 0 | 0.943 | 0.005 | |
0.002 | 0.007 | 0.003 | 0 | 0 | 0.004 | 0.984 |
从上述表3可以看出,在不同的k折交叉验证试验中,本发明的基于图像纹理指纹的恶意代码分类方法的识别效果均高于所述SPAM-GIST恶意代码分类方法,即本发明中的基于图像纹理指纹的恶意代码分类方法可以更好地识别出混淆后的恶意代码,提高了本发明的基于图像纹理指纹的恶意代码分类方法的适应性和鲁棒性。
进一步,将本发明的基于图像纹理指纹的恶意代码分类方法与所述SPAM-GIST恶意代码分类方法在相同数据集的基础上进行速度比较,其中本发明基于图像纹理指纹的恶意代码分类方法平均特征提取时间为67ms,随机森林分类时间为3ms,总时间为2.6s;所述SPAM-GIST恶意代码分类方法的平均特征提取时间为92ms,KNN分类时间为92ms,总时间为3.1s。由上述内容可知,本发明基于图像纹理指纹的恶意代码分类方法比所述SPAM-GIST恶意代码分类方法大约快1.2倍,即本发明的基于图像纹理指纹的恶意代码分类方法在分类速度上具有明显的优势,更能满足实际应用中对分类算法在时间上的要求,有利于本发明基于图像纹理指纹的恶意代码分类方法在实际应用中的推广。
此外,为了验证不同参数对本发明基于图像纹理指纹的恶意代码分类方法实验结果的影响,本发明通过改变灰度级(GrayLevel)、随机森林中决策树数数量(Num_Tree)对本发明的基于图像纹理指纹的恶意代码分类方法进行评价。图3为灰度级GrayLevel和基于图像纹理指纹的恶意代码分类方法分类精度之间的关系,图4为决策树数量Num_Tree和基于图像纹理指纹的恶意代码分类方法分类精度之间的关系。
图3给出了本发明中当随机森林中决策树数量Num_Tree为固定值100时,不同的灰度级GrayLevel对本发明基于图像纹理指纹的恶意代码分类方法的分类效果的影响。从图3可以看出,灰度级GrayLevel在8至24之间变化时,本发明的分类方法的正确识别率均在97%上下较小的范围内变化,即灰度级GrayLevel的变化对本发明基于图像纹理指纹的恶意代码分类方法的分类效果的影响不大。
图4给出了本发明当灰度级GrayLevel为固定值16时,不同的决策树数量Num_Tree对本发明基于图像纹理指纹的恶意代码分类方法的分类效果的影响。从图4可以看出,当决策树数量Num_Tree从50增加到150时,本发明的基于图像纹理指纹的恶意代码分类方法的分类精度逐步提高;当决策树数量Num_Tree从150增加到500时,本发明的基于图像纹理指纹的恶意代码分类方法的分类精度基本保持不变。
由此可知,本发明的基于图像纹理指纹的恶意代码分类方法本身受参数的影响不大,提高了本发明的基于图像纹理指纹的恶意代码分类方法的稳定度,提高了该分类方法的适应性和可推广性。
综合以上本发明的内容可知,本发明公开了一种基于图像纹理指纹的恶意代码分类方法,通过结合图像分析技术与恶意代码分类技术,将操作码数值化后映射为双通道的无压缩的灰度图像,然后根据灰度变换方法将双通道的图像转化单通道的灰度图,使用灰度共生矩阵提取图像的纹理特征,并将这些特征作为恶意代码的本质特征,最后使用随机森林算法对恶意代码进行分类。本发明中的基于图像纹理指纹的恶意代码分类方法,其将操作码的灰度图像灰度级变换到一个很小的数值范围,这使得灰度共生矩阵的尺寸会比较小,减少了用于表述恶意代码的特征数量,提高了恶意代码的分类速度;另外将操作码数值化后映射为灰度图的方法有效地克服了操作码重排、代码变换等恶意代码混淆问题,提高了恶意代码分类的精度。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (7)
1.一种基于图像纹理指纹的恶意代码分类方法,其特征在于,包括步骤:
操作码数值化,将所述恶意代码的操作码转换为数值化文件,所述数值化文件进一步转换为二进制文件;
双通道灰度图处理,将所述二进制文件映射生成两个向量,所述两个向量对应可视化为双通道灰度图像;
在所述操作码数值化中,将所述数值化文件中的数值转换为16bit无符号的二进制文件,在所述二进制文件中,每一个二进制数值进一步分成两部分,其中,第一部分包含低8bit,第二部分包含高8bit;
在双通道灰度图处理中,所述二进制文件对应生成两个向量,所述向量中的每个元素取值范围为[0,255],其中,第一向量对应所述二进制文件中的第一部分,第二向量对应所述二进制文件中的第二部分,所述第一向量又映射为第一通道灰度图像,所述第二向量又映射为第二通道灰度图像,映射后的第一通道灰度图像和第二通道灰度图像保存为两张PNG图片;
单通道灰度图处理,将所述双通道灰度图像经过灰度级分层算法变换转化为固定灰度级的灰度图,并输出单通道灰度图像;
提取纹理特征,利用灰度共生矩阵从所述单通道灰度图像提取图像的纹理特征;
恶意代码分类,将所述纹理特征作为所述恶意代码的本质特征,使用随机森林算法对所述纹理特征进行分类。
2.根据权利要求1所述的基于图像纹理指纹的恶意代码分类方法,其特征在于,在所述提取纹理特征中,利用灰度共生矩阵从所述单通道灰度图像提取12种纹理特征。
3.根据权利要求2所述的基于图像纹理指纹的恶意代码分类方法,所述12种纹理特征包括:角二阶矩、对比度、相关性、协方差、反差分矩阵、同质性、差异性、熵、均值和、方差和、和熵、差熵。
4.根据权利要求3所述的基于图像纹理指纹的恶意代码分类方法,所述随机森林算法对所述纹理特征进行分类的方法包括:
步骤1:从恶意代码训练样本集中,应用bootstrap方法有放回的随机抽取K个新的自助样本集,并由此构建K棵决策树,每次未被抽到的样本组成K个袋外数据;
步骤2:设有n个特征,则在每一棵决策树的每个节点处随机抽取m(m<=n)个候选特征,通过计算每个候选特征的基尼指数,在m个候选特征中选择具有最小基尼指数值的特征进行节点分裂;
步骤3:当每棵决策树中的节点中只有一个类别或节点中的样本数小于最小分裂级数时,停止生长;
步骤4:将生成的K棵决策树组成随机森林,用随机森林对新的恶意代码本质特征数据进行分类,分类结果由决策树的投票多少而定;
其中基尼指数的计算方法如下:
其中,Gini(D)表示所述每一棵 决策树的每一个节点在分裂前包括的数据集D的基尼值计算方法,|y|和pk为所述数据集D的类别数量和每个类别占总数据集的比例;a为所述m个候选特征中的任意一个,Dv表示集合{a=固定属性值},V表示特征a根据其属性值可以划分的总类数,Gini(Dv)表示Dv的基尼值,|D|表示所述数据集D的样本数,|Dv|表示所述集合{a=固定属性值}的样本数,Gini_index(D,a)表述所述数据集D的特征属性a的基尼指数。
5.根据权利要求1所述的基于图像纹理指纹的恶意代码分类方法,其特征在于,经过灰度级分层算法变换后的所述单通道灰度图像的灰度级为16级。
6.根据权利要求4所述的基于图像纹理指纹的恶意代码分类方法,其特征在于,所述随机森林中的决策树取值范围为[100,150]。
7.根据权利要求6所述的基于图像纹理指纹的恶意代码分类方法,其特征在于,所述随机森林中的决策树取值为100。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2018102077129 | 2018-03-14 | ||
CN201810207712.9A CN108416213A (zh) | 2018-03-14 | 2018-03-14 | 一种基于图像纹理指纹的恶意代码分类方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109241741A CN109241741A (zh) | 2019-01-18 |
CN109241741B true CN109241741B (zh) | 2021-06-22 |
Family
ID=63131434
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810207712.9A Pending CN108416213A (zh) | 2018-03-14 | 2018-03-14 | 一种基于图像纹理指纹的恶意代码分类方法 |
CN201811187768.9A Active CN109241741B (zh) | 2018-03-14 | 2018-10-12 | 一种基于图像纹理指纹的恶意代码分类方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810207712.9A Pending CN108416213A (zh) | 2018-03-14 | 2018-03-14 | 一种基于图像纹理指纹的恶意代码分类方法 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN108416213A (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110955588B (zh) * | 2018-09-26 | 2021-10-22 | 华为技术有限公司 | 一种测试用例的质量确定方法和装置 |
CN109492692A (zh) * | 2018-11-07 | 2019-03-19 | 北京知道创宇信息技术有限公司 | 一种网页后门检测方法、装置、电子设备及存储介质 |
CN109858251B (zh) * | 2019-02-26 | 2023-02-10 | 哈尔滨工程大学 | 基于Bagging集成学习算法的恶意代码分类检测方法 |
CN111552966A (zh) * | 2020-04-07 | 2020-08-18 | 哈尔滨工程大学 | 一种基于信息融合的恶意软件同源性检测方法 |
CN112347478B (zh) * | 2020-10-13 | 2021-08-24 | 北京天融信网络安全技术有限公司 | 一种恶意软件检测方法及装置 |
CN112613521B (zh) * | 2020-12-28 | 2023-01-20 | 上海埃林哲软件系统股份有限公司 | 基于数据转换的多层次数据分析系统及方法 |
CN112861135B (zh) * | 2021-04-12 | 2024-05-31 | 中南大学 | 基于注意力机制的恶意代码检测方法 |
CN114510721B (zh) * | 2022-02-18 | 2024-07-05 | 哈尔滨工程大学 | 一种基于特征融合的静态恶意代码分类方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105989288A (zh) * | 2015-12-31 | 2016-10-05 | 武汉安天信息技术有限责任公司 | 一种基于深度学习的恶意代码样本分类方法及系统 |
CN106096411A (zh) * | 2016-06-08 | 2016-11-09 | 浙江工业大学 | 一种基于字节码图像聚类的Android恶意代码家族分类方法 |
CN107092829A (zh) * | 2017-04-21 | 2017-08-25 | 中国人民解放军国防科学技术大学 | 一种基于图像匹配的恶意代码检测方法 |
CN107392019A (zh) * | 2017-07-05 | 2017-11-24 | 北京金睛云华科技有限公司 | 一种恶意代码家族的训练和检测方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8306942B2 (en) * | 2008-05-06 | 2012-11-06 | Lawrence Livermore National Security, Llc | Discriminant forest classification method and system |
-
2018
- 2018-03-14 CN CN201810207712.9A patent/CN108416213A/zh active Pending
- 2018-10-12 CN CN201811187768.9A patent/CN109241741B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105989288A (zh) * | 2015-12-31 | 2016-10-05 | 武汉安天信息技术有限责任公司 | 一种基于深度学习的恶意代码样本分类方法及系统 |
CN106096411A (zh) * | 2016-06-08 | 2016-11-09 | 浙江工业大学 | 一种基于字节码图像聚类的Android恶意代码家族分类方法 |
CN107092829A (zh) * | 2017-04-21 | 2017-08-25 | 中国人民解放军国防科学技术大学 | 一种基于图像匹配的恶意代码检测方法 |
CN107392019A (zh) * | 2017-07-05 | 2017-11-24 | 北京金睛云华科技有限公司 | 一种恶意代码家族的训练和检测方法及装置 |
Non-Patent Citations (2)
Title |
---|
A Image Texture and BP neural network basec Malicious Files Detection Technique for Cloud Storage Systems;Guanchao Wen, at el;《IEEE Conference on Computer Communicatinos Workshops(INFOCOM WKSHPS)》;20171123;第426-431页 * |
基于字节码图像的Android恶意代码家族分类方法;杨益敏等;《万方数据库》;20160802;正文第38-43页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108416213A (zh) | 2018-08-17 |
CN109241741A (zh) | 2019-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109241741B (zh) | 一种基于图像纹理指纹的恶意代码分类方法 | |
De Stefano et al. | Reliable writer identification in medieval manuscripts through page layout features: The “Avila” Bible case | |
CN103942562B (zh) | 基于多分类器组合的高光谱图像分类方法 | |
CN106096411A (zh) | 一种基于字节码图像聚类的Android恶意代码家族分类方法 | |
Yue et al. | Hashing based fast palmprint identification for large-scale databases | |
US20120070073A1 (en) | Searching document images | |
US11562133B2 (en) | System and method for detecting incorrect triple | |
CN113222062A (zh) | 烟叶分类的方法、装置和计算机可读取介质 | |
WO2015146113A1 (ja) | 識別辞書学習システム、識別辞書学習方法および記録媒体 | |
Ghadhban et al. | Segments interpolation extractor for finding the best fit line in Arabic offline handwriting recognition words | |
CN106529470A (zh) | 一种基于多级深度卷积神经网络的手势识别方法 | |
CN115577357A (zh) | 一种基于堆叠集成技术的Android恶意软件检测方法 | |
Marcinowski | Top interpretable neural network for handwriting identification | |
CN111797396B (zh) | 恶意代码可视化及变种检测方法、装置、设备及存储介质 | |
CN111488520B (zh) | 一种农作物种植种类推荐信息处理装置、方法及存储介质 | |
Kader et al. | Effective workflow for high-performance recognition of fruits using machine learning approaches | |
Mehri et al. | A pixel labeling approach for historical digitized books | |
CN111581640A (zh) | 一种恶意软件检测方法、装置及设备、存储介质 | |
Szymkowski et al. | A novel approach to fingerprint identification using method of sectorization | |
Deng et al. | Detection method of wood skin defects based on bag-of-words model | |
CN111383716B (zh) | 基因对的筛选方法、装置、计算机设备和存储介质 | |
CN111931229B (zh) | 一种数据识别方法、装置和存储介质 | |
David et al. | Authentication of Vincent van Gogh’s work | |
CN115510032A (zh) | 一种基于机器学习的数据库行为分析方法及系统 | |
KR102212310B1 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |