CN114510721A - 一种基于特征融合的静态恶意代码分类方法 - Google Patents
一种基于特征融合的静态恶意代码分类方法 Download PDFInfo
- Publication number
- CN114510721A CN114510721A CN202210151968.9A CN202210151968A CN114510721A CN 114510721 A CN114510721 A CN 114510721A CN 202210151968 A CN202210151968 A CN 202210151968A CN 114510721 A CN114510721 A CN 114510721A
- Authority
- CN
- China
- Prior art keywords
- operation code
- sequence
- feature
- code sequence
- features
- 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 63
- 230000003068 static effect Effects 0.000 title claims abstract description 57
- 230000004927 fusion Effects 0.000 title claims abstract description 28
- 239000013598 vector Substances 0.000 claims abstract description 38
- 239000011159 matrix material Substances 0.000 claims abstract description 6
- 238000004422 calculation algorithm Methods 0.000 claims description 23
- 230000000007 visual effect Effects 0.000 claims description 19
- 238000010801 machine learning Methods 0.000 claims description 15
- 201000011243 gastrointestinal stromal tumor Diseases 0.000 claims description 13
- 230000006870 function Effects 0.000 claims description 11
- 238000007781 pre-processing Methods 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 5
- 238000012549 training Methods 0.000 claims description 5
- 238000001914 filtration Methods 0.000 claims description 4
- 230000014509 gene expression Effects 0.000 claims description 4
- 238000001514 detection method Methods 0.000 abstract description 15
- 238000000605 extraction Methods 0.000 abstract description 9
- 239000002356 single layer Substances 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 238000013136 deep learning model Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 206010033799 Paralysis Diseases 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000007943 implant Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 239000010410 layer Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007477 logistic regression Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
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
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computer Hardware Design (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Computational Biology (AREA)
- Medical Informatics (AREA)
- Evolutionary Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Image Analysis (AREA)
Abstract
一种基于特征融合的静态恶意代码分类方法,它属于静态恶意代码特征提取和融合领域。本发明解决了传统静态恶意代码检测和分类方法仅考虑了单一维度特征的问题。本发明将hash值转换成像素矩阵生成灰度图像,再提取图像纹理全局特征和局部特征,并将全局特征和局部特征融合,在获取恶意代码图像全局特征信息的前提条件下突出局部特点。基于控制流程图的n‑gram方法对操作码进行特征提取,这种方法的检测颗粒度较小,与控制流程图相结合会得到代码上下文之间的关联,从而将操作码转换成特征向量形式。将两种特征向量融合成一个向量,弥补了在单一层面提取特征的局限性。本发明方法可以应用于对静态恶意代码进行分类。
Description
技术领域
本发明属于静态恶意代码特征提取和融合领域,具体涉及一种基于特征融合的静态恶意代码分类方法。
背景技术
随着信息和通信技术的发展使人们可以随时随地从网络上获取信息,提高了工作的效率,也使得日常生活更加方便。但是信息泄露、勒索软件等各种网络攻击也在不断增加,这些网络攻击大多是由恶意代码引起的。由于计算机技术的发展,恶意软件变得越来越复杂,黑客在网页上、软件等植入恶意软件,或者黑客入侵工业设备,给工控网络造成瘫痪,这样给用户、企业甚至国家层面造成巨额的损失。
传统的静态恶意代码检测主要是从被测软件的源程序或者二进制码进行扫描(例如字节码、字符串等),从语法、语义的层面理解程序的行为,从而获取程序在运行过程中的信息。机器学习在恶意代码检测上的应用也受到了广泛的关注,越来越多的学者使用机器学习的方法对恶意软件进行检测和分类。有的学者通过提取操作码序列特征,之后在操作码特征上使用逻辑回归、人工神经网络、朴素贝叶斯、决策树、随机森林和支持向量机等机器学习方法来进行预测和分类。有的学者将恶意代码反编译成编译文件,通过编译文件转换成灰度图像,从而提取灰度图像的纹理特征,将特征向量放在机器学习模型进行训练,也达到了一定的预测和分类效果。
综上所述,虽然传统的静态恶意代码检测和分类方法已经取得了一定的成就,但是传统的静态恶意代码检测和分类方法仅考虑了操作码序列特征或者图像纹理特征,即仅考虑了单一维度的特征,导致传统静态恶意代码检测和分类方法的检测和分类效果仍然有限,检测和分类效果有待进一步提高。
发明内容
本发明的目的是为解决传统的静态恶意代码检测和分类方法仅考虑了单一维度特征的问题,而提出了一种基于特征融合的静态恶意代码分类方法。
本发明为解决上述技术问题所采取的技术方案是:一种基于特征融合的静态恶意代码分类方法,所述方法具体包括以下步骤:
步骤一、对静态恶意代码二进制文件进行反编译,再从反编译结果中提取出操作码序列;
步骤二、对提取出的操作码序列进行预处理后,再计算预处理后的操作码序列中每位操作码的哈希值,根据计算出的哈希值获得操作码序列对应的SimHash值序列;
步骤三、根据操作码序列对应的SimHash值序列生成灰度图;
步骤四、采用SIFT算法提取灰度图的局部纹理特征,采用GIST算法提取灰度图的全局纹理特征;
再对灰度图的局部纹理特征和灰度图的全局纹理特征进行融合,将融合结果作为灰度图的纹理特征;
步骤五、利用IDA Pro从静态恶意代码二进制文件中得到函数的调用关系,再将得到的函数调用关系利用控制流程图的逻辑关系表示;
再根据控制流程图从静态恶意代码二进制文件中提取操作码,提取的操作码组成操作码序列;
步骤六、设置滑动窗口长度,将滑动窗口在步骤五提取的操作码序列上滑动,得到步骤五中提取出的操作码序列的各个操作码子序列,将各个操作码子序列组成的子序列集合记为S;
再根据子序列集合S提取出静态恶意代码二进制文件的操作码特征;
步骤七、将步骤四获得的灰度图纹理特征和步骤六获得的操作码特征进行融合,将融合结果作为静态恶意代码二进制文件的特征;
将获得的静态恶意代码二进制文件的特征和静态恶意代码二进制文件所属的类别作为机器学习模型的训练数据集;
再利用训练好的机器学习模型对待分类的静态恶意代码二进制文件的类别进行检测。
进一步地,所述步骤一的具体过程为:
采用反编译工具IDA Pro对静态恶意代码二进制文件进行反编译,生成asm编译文件;再利用正则表达式分别从asm编译文件的每行中提取操作码,提取出的全部操作码顺序排列形成操作码序列。
进一步地,所述步骤二的具体过程为:
步骤二一、对操作码序列进行预处理
若操作码序列中某一位操作码的值为1,则将1与该位操作码的权值相加,将相加结果作为预处理后操作码序列中该位操作码的值,否则,若操作码序列中某一位操作码的值为0,则将0与该位操作码的权值相减,将相减结果作为预处理后操作码序列中该位操作码的值;
对操作码序列中的每一位操作码分别进行处理后,获得预处理后的操作码序列;
步骤二二、分别计算出预处理后的操作码序列中每位操作码的哈希值;
步骤二三、对于预处理后的操作码序列中的第n位操作码,若第n位操作码的哈希值中1的数量大于0的数量,则将第n位操作码的SimHash值置为1,否则将第n位操作码的SimHash值置为0;
将预处理后的操作码序列中各位操作码的SimHash值进行顺序排列,则预处理后的操作码序列被编码成SimHash值序列。
进一步地,所述步骤二二中,分别计算出预处理后的操作码序列中每位操作码的hash值,采用的是MD5方法。
进一步地,所述步骤三的具体过程为:
将操作码序列对应的SimHash值序列中的每个SimHash值分别转换为一个像素值,即若SimHash值为0,则像素值为0,若SimHash值为1,则像素值为255,再将像素值排列成矩阵,生成操作码序列对应的灰度图像。
进一步地,所述步骤四中,采用SIFT算法提取灰度图的局部纹理特征,其具体过程为:
步骤1、利用密集SIFT检测器提取灰度图的关键点特征;
步骤2、利用密集SIFT描述符来分别计算以每个关键点为中心的矩形区域内的128维局部纹理特征向量;
步骤3、通过字典学习,在字典中分别找到与每个关键点的局部纹理特征向量最接近的视觉特征,再将每个关键点的局部纹理特征向量分配给与其最接近的视觉特征;
对于字典中的某个视觉特征来说,分配给该视觉特征的全部关键点的局部纹理特征向量组成一个簇,作为该视觉特征对应的簇;
步骤4、对于一个簇,计算出该簇的中心后,再分别计算出该簇中的每个局部纹理特征向量与簇中心的欧式距离;
各个簇均遍历完成后,将计算出的每个局部纹理特征向量与簇中心的欧式距离作为提取出的局部纹理特征。
进一步地,所述步骤四中,采用GIST算法提取灰度图的全局纹理特征,其具体过程为:
步骤1)、通过不同比例和位置的过滤器对灰度图进行过滤,将灰度图分成N个块;
步骤2)、分别计算出每个块中像素值的平均值;
步骤3)、根据步骤2)的计算结果获得灰度图的全局纹理特征。
更进一步地,所述对灰度图的局部纹理特征和灰度图的全局纹理特征进行融合,其具体为:
CSGMFD=wDSIFTMFD+(1-w)GISTMFD
其中,DSIFTMFD为灰度图的局部纹理特征,GISTMFD为灰度图的全局纹理特征,w表示加权参数。
本发明的有益效果是:
本发明将传统二进制转换成灰度图,通过SimHash使相似内容的散列值具有可比性,即相似的内容将具有相似的哈希值,来解决Hash算法冲突几率非常低的问题。将hash值转换成像素矩阵生成灰度图像,利用GiST算法提取图像纹理全局特征,利用SiFT算法提取图像纹理局部特征,将全局特征和局部特征融合,在获取恶意代码图像全局特征信息的前提条件下突出局部特点,这样才会更好地表现出恶意代码的家族特征,会更有区分性。基于控制流程图的n-gram方法对操作码进行特征提取,这种方法的检测颗粒度较小,与控制流程图相结合会得到代码上下文之间的关联,从而将操作码转换成特征向量形式。将两种特征向量融合成一个向量,弥补了在单一层面提取特征的局限性。
本发明通过两种层面特征的提取并融合成一个特征,提高了在机器学习模型和深度学习模型上检测和分类的准确率。
附图说明
图1为本发明的一种基于特征融合的静态恶意代码分类方法的流程图;
图2为根据像素值的平均值获得全局纹理特征的示意图。
具体实施方式
具体实施方式一、结合图1说明本实施方式。本实施方式所述的一种基于特征融合的静态恶意代码分类方法,所述方法具体包括以下步骤:
步骤一、对静态恶意代码二进制文件进行反编译,再从反编译结果中提取出操作码序列;
步骤二、对提取出的操作码序列进行预处理后,再计算预处理后的操作码序列中每位操作码的哈希值,根据计算出的哈希值获得操作码序列对应的SimHash值序列;
步骤三、根据操作码序列对应的SimHash值序列生成灰度图;
步骤四、采用SIFT算法提取灰度图的局部纹理特征,采用GIST算法提取灰度图的全局纹理特征;
再对灰度图的局部纹理特征和灰度图的全局纹理特征进行融合,将融合结果作为灰度图的纹理特征;
步骤五、利用IDA Pro从静态恶意代码二进制文件中得到函数的调用关系,再将得到的函数调用关系利用控制流程图的逻辑关系表示;
再根据控制流程图从静态恶意代码二进制文件中提取操作码,提取的操作码组成操作码序列;
步骤六、设置滑动窗口长度,将滑动窗口在步骤五提取的操作码序列上滑动,得到步骤五中提取出的操作码序列的各个操作码子序列,将各个操作码子序列组成的子序列集合记为S;
再根据子序列集合S提取出静态恶意代码二进制文件的操作码特征;
步骤七、将步骤四获得的灰度图纹理特征和步骤六获得的操作码特征进行融合,将融合结果作为静态恶意代码二进制文件的特征;
将获得的静态恶意代码二进制文件的特征和静态恶意代码二进制文件所属的类别作为机器学习模型的训练数据集;
再利用训练好的机器学习模型对待分类的静态恶意代码二进制文件的类别进行检测。
在对待分类的静态恶意代码进行分类时,首先采用滑动窗口(此处的滑动窗口长度大于步骤六中设置的窗口长度)截取待分类的静态恶意代码的操作码序列,再采用步骤六中设置的滑动窗口将每个截取出的操作码序列分为若干个子序列,若某个子序列在集合S中(集合S可以通过对现有已知类别的静态恶意代码二进制文件进行处理获得),则该子序列对应的值为1,否则该子序列对应的值为0,对于截取出的某个操作码序列来说,该操作码序列的各个子序列对应的值顺序排列得到该操作码序列的特征向量,同理,得到截取出的各个操作码序列的特征向量。再采用步骤一至步骤四的方法得到待分类的静态恶意代码的纹理特征。将得到的操作码序列的特征向量和纹理特征进行融合,将融合结果输入训练好的机器学习模型,通过训练好的机器学习模型输出待分类的静态恶意代码的类别。
具体实施方式二:本实施方式与具体实施方式一不同的是,所述步骤一的具体过程为:
采用反编译工具IDA Pro对静态恶意代码二进制文件进行反编译,生成asm编译文件;再利用正则表达式分别从asm编译文件的每行中提取操作码,提取出的全部操作码顺序排列形成操作码序列。
操作码按照在asm编译文件中出现的先后顺序进行排列,得到操作码序列。
其它步骤及参数与具体实施方式一相同。
具体实施方式三:本实施方式与具体实施方式一或二不同的是,所述步骤二的具体过程为:
步骤二一、对操作码序列进行预处理
若操作码序列中某一位操作码的值为1,则将1与该位操作码的权值相加,将相加结果作为预处理后操作码序列中该位操作码的值,否则,若操作码序列中某一位操作码的值为0,则将0与该位操作码的权值相减,将相减结果作为预处理后操作码序列中该位操作码的值;
对操作码序列中的每一位操作码分别进行处理后,获得预处理后的操作码序列;
步骤二二、分别计算出预处理后的操作码序列中每位操作码的哈希值;
步骤二三、对于预处理后的操作码序列中的第n位操作码,若第n位操作码的哈希值中1的数量大于0的数量,则将第n位操作码的SimHash值置为1,否则将第n位操作码的SimHash值置为0;
将预处理后的操作码序列中各位操作码的SimHash值进行顺序排列,则预处理后的操作码序列被编码成SimHash值序列。
其它步骤及参数与具体实施方式一或二相同。
具体实施方式四:本实施方式与具体实施方式一至三之一不同的是,所述步骤二二中,分别计算出预处理后的操作码序列中每位操作码的hash值,采用的是MD5方法。
其它步骤及参数与具体实施方式一至三之一相同。
具体实施方式五:本实施方式与具体实施方式一至四之一不同的是,所述步骤三的具体过程为:
将操作码序列对应的SimHash值序列中的每个SimHash值分别转换为一个像素值,即若SimHash值为0,则像素值为0,若SimHash值为1,则像素值为255,再将像素值排列成矩阵,生成操作码序列对应的灰度图像。
因为存在着不同恶意代码家族所产生的灰度图像尺寸差异的问题,所以采用双线性插值算法对图像进行压缩,最终生成8×8大小的图像。
其它步骤及参数与具体实施方式一至四之一相同。
具体实施方式六:本实施方式与具体实施方式一至五之一不同的是,所述步骤四中,采用SIFT算法提取灰度图的局部纹理特征,其具体过程为:
步骤1、利用密集SIFT检测器提取灰度图的关键点特征;
步骤2、利用密集SIFT描述符来分别计算以每个关键点为中心的矩形区域内的128维局部纹理特征向量;
局部纹理特征向量根据二值图像、尺寸调整参数、密集SIFT描述符的大小和关键点周围的矩形区域确定;
步骤3、通过字典学习,在字典中分别找到与每个关键点的局部纹理特征向量最接近的视觉特征(即对于一个关键点的局部特征向量来说,分别计算出该关键点的局部特征向量与字典中每个视觉特征的欧式距离后,得到与该关键点的局部特征向量欧氏距离最小的视觉特征,作为最接近的视觉特征),再将每个关键点的局部纹理特征向量分配给与其最接近的视觉特征;
对于字典中的某个视觉特征来说,分配给该视觉特征的全部关键点的局部纹理特征向量组成一个簇,作为该视觉特征对应的簇;
步骤4、对于一个簇,计算出该簇的中心后,再分别计算出该簇中的每个局部纹理特征向量与簇中心的欧式距离;
各个簇均遍历完成后,将计算出的每个局部纹理特征向量与簇中心的欧式距离作为提取出的局部纹理特征。
局部纹理特征用于描述图像的边缘和角点。
其它步骤及参数与具体实施方式一至五之一相同。
具体实施方式七:本实施方式与具体实施方式一至六之一不同的是,所述步骤四中,采用GIST算法提取灰度图的全局纹理特征,其具体过程为:
步骤1)、通过不同比例和位置的过滤器对灰度图进行过滤,将灰度图分成N个块;
步骤2)、分别计算出每个块中像素值的平均值;
步骤3)、根据步骤2)的计算结果获得灰度图的全局纹理特征。
根据每个块中像素值的平均值获得全局纹理特征的示意图如图2所示。
其它步骤及参数与具体实施方式一至六之一相同。
具体实施方式八:本实施方式与具体实施方式一至七之一不同的是,所述对灰度图的局部纹理特征和灰度图的全局纹理特征进行融合,其具体为:
CSGMFD=wDSIFTMFD+(1-w)GISTMFD
其中,DSIFTMFD为灰度图的局部纹理特征,GISTMFD为灰度图的全局纹理特征,w表示加权参数。
其它步骤及参数与具体实施方式一至七之一相同。
本发明为了提高恶意代码静态特征在机器学习或者深度学习模型检测的效果,并解决了在单个维度中提取操作码或者图像纹理特征的局限性。在提取图像纹理特征过程中,提出一种Simhash处理编译文件转换成灰度图像的方法,生成灰度图像后通过GIST算法和SIFT算法提取全局和局部图像纹理特征,并将全局和局部图像特征进行融合。在提取的操作码特征中,先将恶意代码利用控制流程图的顺序反编译得到操作码,再采用N-gram算法获得操作码特征。其次,由于恶意代码的灰度图像特征和操作码特征,分别体现了全局和局部同类型恶意代码的差异,提出了一个可以综合考察全局与局部特性的特征融合方式。将图像特征和操作码指令特征进行融合的方法。在判断操作码序列的相似性时,传统的Hash算法可以确保冲突,但是确保冲突几率非常低。即使对于两个相似的输入,散列输出也会大不相同。然而,SimHash的目的是使这些散列值具有可比性,即相似的内容将具有相似的哈希值。而在操作码提取时用基于控制流程图的n-gram方法对操作码进行特征提取,这种方法的检测颗粒度较小,与控制流程图相结合会得到代码上下文之间的关联,可以将操作码转换成特征向量形式。本发明提出了一种基于灰度图像特征提取和操作码特征提取融合的方法,弥补了在不同层面提取特征的局限性,提高了在机器学习模型和深度学习模型上检测的准确率。
下面结合附图对本发明作进一步详细描述。
图1为本发明所述的基于灰度图像特征提取和操作码特征提取融合的示意图。该方法的具体实施方式包括:
步骤1:使用反编译工具IDAPro对恶意代码家族数据进行反编译,批量生成asm编译文件,从asm文件中提取Opcode序列。经过察验,asm文件中操作码都是存在以“text”开头的代码段中,利用正则表达式来提取每行的恶意代码操作码序列。这样提取出来的序列是完整的,包括了操作码和操作数的指令。
步骤2:使用Simhash算法来计算操作码序列的hash值。用MD5来计算每个操作码的hash值,并把每个序列编码成64位SimHash值。根据序列中每一位为1还是0,来加上还是减去该操作码的权值,得到新的序列。接下来判断新的序列第n位为1的哈希值的数量是否大于第n位为0的哈希值的数量,大于的话则置为1,否则置为0。这样每个序列就被编码成64位的SimHash值。
步骤3:将处理过的每个SimHash转换为一个像素值。如果比特位为0,那么像素值为0,如果比特位为1,那么像素值为255,之后将n个像素点排列成矩阵,生成灰度图像。
步骤4:通过GIST算法提取灰度图像全局特征,SIFT算法提取灰度图像局部特征,并将全局特征和局部特征结合。
步骤4.1:首先利用SIFT提取恶意软件灰度图像的局部特征,描述图像的边缘和角点。在第一阶段,借助密集SIFT检测器从密集网格中提取恶意软件图像的关键特征。在第二阶段,选择密集的SIFT描述符来计算矩形区域的128维局部特征向量,其中每个关键特征由公式DSIFTFV=fdsift(MI,Rs,Ssize,Bbounds)所示的函数表示。其中MI表示维度为Dh*Dw的二值图像,Rs表示尺寸调整参数,Ssize表示密集SIFT描述符的大小,Bbounds表示二值图像每个关键点周围的矩形区域。第三阶段,DSIFTFV用K-means技术进行聚类,这个过程称为字典学习。如公式DictionaryL=fkmeans(DSIFTFV,Dsize)所示。这里的Dsize代表是字典的大小。最后,DSIFTFV分配给字典中最接近的视觉特征,这个过程称为描述符量化。每个量化的描述符就会以直方图的形式来表示,直方图出现的值在0至1尺度之间变化,然后通过计算DSIFTFV和DictionaryL之间的最小欧几里德距离,如公式DSIFTMFD=fhistogram(DSIFTFV,DictionaryL)所示。
步骤4.2:通过使用GIST计算恶意软件灰度图像的全局特征,其得到图像的纹理和空间布局。通过GIST描述恶意软件图像分为三个阶段。在GIST的第一和第二阶段,恶意软件图像通过不同比例和位置的过滤器过滤,然后将其分成N个块。第三阶段,用GIST计算每个块的平均值,如公式GISTMFD=fgist(MI,[Rs,Nb,Bovertap,Fn,Nsq])所示。其中MI表示维度为Dh*Dw的恶意软件图像,Rs表示尺寸调整参数,Nb表示将恶意软件图像分成水平和垂直位置的标准块大小,Bovertap表示重叠参数,用于分离重叠或非重叠块中的二值图像,Fn表示用于过滤二值图像的多个过滤器,Nsq表示统计量的数量,即在计算特征描述时使用的平均值和偏差,Nsq根据每个块的平均值获得。最后,将基于BOF的稠密SIFT与GIST组合,得到的混合的CSGM特征维数。CSGM特征如公式CSGMFD=wDSIFTMFD+(1-w)GISTMFD所示。这里,w表示加权参数,其值取决于恶意软件分类中的特征值。
步骤5:使用IDA Pro将恶意代码程序反编译准换成编译程序。由于恶意代码通常由结构体、类、循环、条件判断等组成,所以在函数调用之间存在着一些联系。通过IDA Pro来查看函数的调用关系。这种函数调用关系可以用控制流程图的逻辑关系所表示,来表达一个过程或者程序的抽象表现。根据控制流程图的顺序来提取其对应的操作码,例如可以提取到这组操作码:{push,mov,push,call,add,mov,xor,pop}。
步骤6:提取到上一步的操作码并将滑动窗口长度n设为3,我们会得到一个操作码子序列集合{(push,mov,push),(mov,push,call),(push,call,add),(call,add,mov),(add,mov,xor),(mov,xor,pop)}。每一个二进制文件都可以生成这样的子序列集合,将所有的子序列(v1,v2,v3…,vn)组成在一起变成一个子序列集合(S)。如果这个子序列v在集合S中,那么将其设置为1,否则设置为0,最终会得到一个只包含0,1的特征向量。
步骤7:提取到的灰度图像纹理特征和n-gram的Opcode操作码特征进行融合,将两个特征向量通过合并函数融合成一个特征向量,并将融合的特征向量数据集用于训练模型中。
本发明的上述算例仅为详细地说明本发明的计算模型和计算流程,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,这里无法对所有的实施方式予以穷举,凡是属于本发明的技术方案所引伸出的显而易见的变化或变动仍处于本发明的保护范围之列。
Claims (8)
1.一种基于特征融合的静态恶意代码分类方法,其特征在于,所述方法具体包括以下步骤:
步骤一、对静态恶意代码二进制文件进行反编译,再从反编译结果中提取出操作码序列;
步骤二、对提取出的操作码序列进行预处理后,再计算预处理后的操作码序列中每位操作码的哈希值,根据计算出的哈希值获得操作码序列对应的SimHash值序列;
步骤三、根据操作码序列对应的SimHash值序列生成灰度图;
步骤四、采用SIFT算法提取灰度图的局部纹理特征,采用GIST算法提取灰度图的全局纹理特征;
再对灰度图的局部纹理特征和灰度图的全局纹理特征进行融合,将融合结果作为灰度图的纹理特征;
步骤五、利用IDA Pro从静态恶意代码二进制文件中得到函数的调用关系,再将得到的函数调用关系利用控制流程图的逻辑关系表示;
再根据控制流程图从静态恶意代码二进制文件中提取操作码,提取的操作码组成操作码序列;
步骤六、设置滑动窗口长度,将滑动窗口在步骤五提取的操作码序列上滑动,得到步骤五中提取出的操作码序列的各个操作码子序列,将各个操作码子序列组成的子序列集合记为S;
再根据子序列集合S提取出静态恶意代码二进制文件的操作码特征;
步骤七、将步骤四获得的灰度图纹理特征和步骤六获得的操作码特征进行融合,将融合结果作为静态恶意代码二进制文件的特征;
将获得的静态恶意代码二进制文件的特征和静态恶意代码二进制文件所属的类别作为机器学习模型的训练数据集;
再利用训练好的机器学习模型对待分类的静态恶意代码二进制文件的类别进行检测。
2.根据权利要求1所述的一种基于特征融合的静态恶意代码分类方法,其特征在于,所述步骤一的具体过程为:
采用反编译工具IDA Pro对静态恶意代码二进制文件进行反编译,生成asm编译文件;再利用正则表达式分别从asm编译文件的每行中提取操作码,提取出的全部操作码顺序排列形成操作码序列。
3.根据权利要求2所述的一种基于特征融合的静态恶意代码分类方法,其特征在于,所述步骤二的具体过程为:
步骤二一、对操作码序列进行预处理
若操作码序列中某一位操作码的值为1,则将1与该位操作码的权值相加,将相加结果作为预处理后操作码序列中该位操作码的值,否则,若操作码序列中某一位操作码的值为0,则将0与该位操作码的权值相减,将相减结果作为预处理后操作码序列中该位操作码的值;
对操作码序列中的每一位操作码分别进行处理后,获得预处理后的操作码序列;
步骤二二、分别计算出预处理后的操作码序列中每位操作码的哈希值;
步骤二三、对于预处理后的操作码序列中的第n位操作码,若第n位操作码的哈希值中1的数量大于0的数量,则将第n位操作码的SimHash值置为1,否则将第n位操作码的SimHash值置为0;
将预处理后的操作码序列中各位操作码的SimHash值进行顺序排列,则预处理后的操作码序列被编码成SimHash值序列。
4.根据权利要求3所述的一种基于特征融合的静态恶意代码分类方法,其特征在于,所述步骤二二中,分别计算出预处理后的操作码序列中每位操作码的hash值,采用的是MD5方法。
5.根据权利要求4所述的一种基于特征融合的静态恶意代码分类方法,其特征在于,所述步骤三的具体过程为:
将操作码序列对应的SimHash值序列中的每个SimHash值分别转换为一个像素值,即若SimHash值为0,则像素值为0,若SimHash值为1,则像素值为255,再将像素值排列成矩阵,生成操作码序列对应的灰度图像。
6.根据权利要求5所述的一种基于特征融合的静态恶意代码分类方法,其特征在于,所述步骤四中,采用SIFT算法提取灰度图的局部纹理特征,其具体过程为:
步骤1、利用密集SIFT检测器提取灰度图的关键点特征;
步骤2、利用密集SIFT描述符来分别计算以每个关键点为中心的矩形区域内的128维局部纹理特征向量;
步骤3、通过字典学习,在字典中分别找到与每个关键点的局部纹理特征向量最接近的视觉特征,再将每个关键点的局部纹理特征向量分配给与其最接近的视觉特征;
对于字典中的某个视觉特征来说,分配给该视觉特征的全部关键点的局部纹理特征向量组成一个簇,作为该视觉特征对应的簇;
步骤4、对于一个簇,计算出该簇的中心后,再分别计算出该簇中的每个局部纹理特征向量与簇中心的欧式距离;
各个簇均遍历完成后,将计算出的每个局部纹理特征向量与簇中心的欧式距离作为提取出的局部纹理特征。
7.根据权利要求6所述的一种基于特征融合的静态恶意代码分类方法,其特征在于,所述步骤四中,采用GIST算法提取灰度图的全局纹理特征,其具体过程为:
步骤1)、通过不同比例和位置的过滤器对灰度图进行过滤,将灰度图分成N个块;
步骤2)、分别计算出每个块中像素值的平均值;
步骤3)、根据步骤2)的计算结果获得灰度图的全局纹理特征。
8.根据权利要求7所述的一种基于特征融合的静态恶意代码分类方法,其特征在于,所述对灰度图的局部纹理特征和灰度图的全局纹理特征进行融合,其具体为:
CSGMFD=wDSIFTMFD+(1-w)GISTMFD
其中,DSIFTMFD为灰度图的局部纹理特征,GISTMFD为灰度图的全局纹理特征,w表示加权参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210151968.9A CN114510721A (zh) | 2022-02-18 | 2022-02-18 | 一种基于特征融合的静态恶意代码分类方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210151968.9A CN114510721A (zh) | 2022-02-18 | 2022-02-18 | 一种基于特征融合的静态恶意代码分类方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114510721A true CN114510721A (zh) | 2022-05-17 |
Family
ID=81551198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210151968.9A Pending CN114510721A (zh) | 2022-02-18 | 2022-02-18 | 一种基于特征融合的静态恶意代码分类方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114510721A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115080974A (zh) * | 2022-08-17 | 2022-09-20 | 杭州安恒信息技术股份有限公司 | 一种恶意pe文件检测方法、装置、设备及介质 |
CN116089951A (zh) * | 2023-02-24 | 2023-05-09 | 山东云天安全技术有限公司 | 一种恶意代码检测方法、可读存储介质及电子设备 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107895117A (zh) * | 2017-11-29 | 2018-04-10 | 四川无声信息技术有限公司 | 恶意代码标注方法和装置 |
CN108062478A (zh) * | 2018-01-04 | 2018-05-22 | 北京理工大学 | 全局特征可视化与局部特征相结合的恶意代码分类方法 |
CN108399334A (zh) * | 2018-01-19 | 2018-08-14 | 东华大学 | 一种基于操作码频率的恶意代码可视化分析方法 |
CN109241741A (zh) * | 2018-03-14 | 2019-01-18 | 中国人民解放军陆军炮兵防空兵学院郑州校区 | 一种基于图像纹理指纹的恶意代码分类方法 |
KR102144914B1 (ko) * | 2020-02-20 | 2020-08-14 | 주식회사 에프원시큐리티 | 인공지능 학습을 위한 pe 명령코드의 왜곡 없는 이미지를 생성하는 악성코드 탐지 방법 및 장치 |
CN112214767A (zh) * | 2020-10-13 | 2021-01-12 | 北京理工大学 | 一种基于操作码序列的恶意软件家族分类方法 |
WO2021018929A1 (en) * | 2019-07-30 | 2021-02-04 | Leap In Value, Sl | A computer-implemented method, a system and a computer program for identifying a malicious file |
US20210110037A1 (en) * | 2019-10-10 | 2021-04-15 | International Business Machines Corporation | Malware detection system |
CN113239356A (zh) * | 2021-07-12 | 2021-08-10 | 中国人民解放军国防科技大学 | 一种基于混合纹理特征的恶意代码分类方法及装置 |
CN113468527A (zh) * | 2021-06-22 | 2021-10-01 | 上海电力大学 | 一种基于特征表达增强的恶意代码家族分类方法 |
CN113806746A (zh) * | 2021-09-24 | 2021-12-17 | 沈阳理工大学 | 基于改进cnn网络的恶意代码检测方法 |
-
2022
- 2022-02-18 CN CN202210151968.9A patent/CN114510721A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107895117A (zh) * | 2017-11-29 | 2018-04-10 | 四川无声信息技术有限公司 | 恶意代码标注方法和装置 |
CN108062478A (zh) * | 2018-01-04 | 2018-05-22 | 北京理工大学 | 全局特征可视化与局部特征相结合的恶意代码分类方法 |
CN108399334A (zh) * | 2018-01-19 | 2018-08-14 | 东华大学 | 一种基于操作码频率的恶意代码可视化分析方法 |
CN109241741A (zh) * | 2018-03-14 | 2019-01-18 | 中国人民解放军陆军炮兵防空兵学院郑州校区 | 一种基于图像纹理指纹的恶意代码分类方法 |
WO2021018929A1 (en) * | 2019-07-30 | 2021-02-04 | Leap In Value, Sl | A computer-implemented method, a system and a computer program for identifying a malicious file |
US20210110037A1 (en) * | 2019-10-10 | 2021-04-15 | International Business Machines Corporation | Malware detection system |
KR102144914B1 (ko) * | 2020-02-20 | 2020-08-14 | 주식회사 에프원시큐리티 | 인공지능 학습을 위한 pe 명령코드의 왜곡 없는 이미지를 생성하는 악성코드 탐지 방법 및 장치 |
CN112214767A (zh) * | 2020-10-13 | 2021-01-12 | 北京理工大学 | 一种基于操作码序列的恶意软件家族分类方法 |
CN113468527A (zh) * | 2021-06-22 | 2021-10-01 | 上海电力大学 | 一种基于特征表达增强的恶意代码家族分类方法 |
CN113239356A (zh) * | 2021-07-12 | 2021-08-10 | 中国人民解放军国防科技大学 | 一种基于混合纹理特征的恶意代码分类方法及装置 |
CN113806746A (zh) * | 2021-09-24 | 2021-12-17 | 沈阳理工大学 | 基于改进cnn网络的恶意代码检测方法 |
Non-Patent Citations (2)
Title |
---|
崔弘;喻波;方莹: "恶意代码分类的一种高维特征融合分析方法", 计算机应用研究, vol. 34, no. 4, 31 December 2017 (2017-12-31) * |
段玉莹;王凤英;: "基于级联与深度信念网络的恶意代码分层检测", 计算机工程与设计, no. 07, 16 July 2020 (2020-07-16) * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115080974A (zh) * | 2022-08-17 | 2022-09-20 | 杭州安恒信息技术股份有限公司 | 一种恶意pe文件检测方法、装置、设备及介质 |
CN115080974B (zh) * | 2022-08-17 | 2022-11-08 | 杭州安恒信息技术股份有限公司 | 一种恶意pe文件检测方法、装置、设备及介质 |
CN116089951A (zh) * | 2023-02-24 | 2023-05-09 | 山东云天安全技术有限公司 | 一种恶意代码检测方法、可读存储介质及电子设备 |
CN116089951B (zh) * | 2023-02-24 | 2023-07-14 | 山东云天安全技术有限公司 | 一种恶意代码检测方法、可读存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kumar et al. | Malicious code detection based on image processing using deep learning | |
CN109005145B (zh) | 一种基于自动特征抽取的恶意url检测系统及其方法 | |
US10191889B2 (en) | Systems, apparatuses and methods for generating a user interface by performing computer vision and optical character recognition on a graphical representation | |
WO2022033095A1 (zh) | 一种文本区域的定位方法及装置 | |
CN110765458A (zh) | 一种基于深度学习的恶意软件检测方法及其装置 | |
Liu et al. | A new learning approach to malware classification using discriminative feature extraction | |
CN114510721A (zh) | 一种基于特征融合的静态恶意代码分类方法 | |
Zhao et al. | A malware detection method of code texture visualization based on an improved faster RCNN combining transfer learning | |
CN109614795B (zh) | 一种事件感知的安卓恶意软件检测方法 | |
Naeem | Detection of malicious activities in internet of things environment based on binary visualization and machine intelligence | |
JP2008537198A (ja) | 人工知能を使用した外来のアプリケーションユーザインタフェースからの情報のインテリジェントインポート | |
CN111552964A (zh) | 一种基于静态分析的恶意软件分类方法 | |
RU2648638C2 (ru) | Способы и системы эффективного автоматического распознавания символов, использующие множество кластеров эталонов символов | |
CN116361801B (zh) | 基于应用程序接口语义信息的恶意软件检测方法及系统 | |
US11600088B2 (en) | Utilizing machine learning and image filtering techniques to detect and analyze handwritten text | |
CN110717497A (zh) | 图像相似度匹配方法、装置及计算机可读存储介质 | |
CN112949476A (zh) | 基于图卷积神经网络的文本关系检测方法、装置及存储介质 | |
CN111400713A (zh) | 基于操作码邻接图特征的恶意软件族群分类方法 | |
CN110070042A (zh) | 文字识别方法、装置和电子设备 | |
US8971669B2 (en) | Method and apparatus for image processing | |
CN113468527A (zh) | 一种基于特征表达增强的恶意代码家族分类方法 | |
CN117421740A (zh) | 一种基于异构图变换网络的源代码漏洞检测方法、装置 | |
CN117009968A (zh) | 恶意代码的同源分析方法、装置、终端设备及存储介质 | |
Choudhary et al. | Offline handwritten mathematical expression evaluator using convolutional neural network | |
CN112149523B (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 |