CN116127449A - 一种恶意代码识别方法及装置、存储介质、终端设备 - Google Patents

一种恶意代码识别方法及装置、存储介质、终端设备 Download PDF

Info

Publication number
CN116127449A
CN116127449A CN202211090115.5A CN202211090115A CN116127449A CN 116127449 A CN116127449 A CN 116127449A CN 202211090115 A CN202211090115 A CN 202211090115A CN 116127449 A CN116127449 A CN 116127449A
Authority
CN
China
Prior art keywords
file
gray level
image set
malicious code
layer
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
Application number
CN202211090115.5A
Other languages
English (en)
Inventor
张勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian University of Posts and Telecommunications
Original Assignee
Xian University of Posts and Telecommunications
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xian University of Posts and Telecommunications filed Critical Xian University of Posts and Telecommunications
Priority to CN202211090115.5A priority Critical patent/CN116127449A/zh
Publication of CN116127449A publication Critical patent/CN116127449A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Hardware Design (AREA)
  • Virology (AREA)
  • Molecular Biology (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及恶意代码识别,具体涉及一种恶意代码识别方法及装置、存储介质、终端设备,目的是解决现有技术识别未知恶意代码效果不佳的技术问题,本发明提供一种恶意代码识别方法及装置、存储介质、终端设备,该方法包括以下步骤:加载PE文件数据集,并将其转化为灰度图像集;采用Gamma算法对该灰度图像集进行数据增强处理,得到灰度增强图像集;基于图像纹理特征对所得灰度增强图像集进行特征提取;建立恶意代码模型,并将提取到的图像纹理特征与灰度增强图像集作为输入,对该模型进行训练,得到恶意代码训练模型;加载待识别PE文件;利用上述恶意代码训练模型进行检测;根据检测结果输出待识别PE文件的文件类型。

Description

一种恶意代码识别方法及装置、存储介质、终端设备
技术领域
本发明涉及恶意代码识别,具体涉及一种恶意代码识别方法及装置、存储介质、终端设备。
背景技术
随着信息技术的发展,恶意代码的攻击频率呈几何级增长,恶意代码变体成为信息安全的重要威胁,其中,以PE(Portable Executable)文件类型为代表的木马、病毒、蠕虫等恶意代码造成的影响最为广泛。现有技术中,通常采用静态检测或动态监测技术对恶意代码进行检测,但是,传统的静态检测技术对未知代码和恶意代码变种的检测能力不足,而动态检测虽然能够有效检测出未知代码和恶意代码变种,具有较好的泛化能力,但其缺点是误报率和漏报率较高。除此之外,机器学习也常用于恶意代码识别,通常采用随机森林算法或支持向量算法,虽然上述机器学习分析方法能够区分良性文件与恶意代码文件,以及检测已知或未知的恶意代码及其变体,但是这些方法的检测精度较低,实时性差,并且检测效果依赖于分析人员的经验。而且,面对规模日益庞大且增长迅速的恶意代码库,无论使用静态检测还是动态监测,都已经不能满足实时分析的需求,对未知恶意代码的甄别很难实现精准化识别。
发明内容
本发明的目的是解决现有技术在识别未知恶意代码时识别效果不佳的技术问题,提供一种恶意代码识别方法及装置、存储介质、终端设备。
为解决上述技术问题,本发明提供的技术解决方案如下:
一种恶意代码识别方法,其特殊之处在于:包括以下步骤:
步骤1,加载PE文件数据集,并将其按照一定比例分为训练集与验证集,其中,所述PE文件数据集包括良性文件与恶意代码文件;
步骤2,将训练集、验证集分别通过文件像素化转化为第一灰度图像集、第二灰度图像集;
或者,将训练集、验证集分别通过文件像素化转化为第一灰度图像集、第二灰度图像集,并通过Gamma算法对所得第一灰度图像集、第二灰度图像集进行数据增强处理,得到第一灰度增强图像集、第二灰度增强图像集;
步骤3,基于图像纹理特征对所得第一灰度图像集或第一灰度增强图像集、所得第二灰度图像集或第二灰度增强图像集进行特征提取,得到第一特征向量、第二特征向量;
步骤4,建立恶意代码模型,所述恶意代码模型包括多层神经网络模型;
步骤5,通过所述第一特征向量、第一灰度图像集或第一灰度增强图像集,以及所述第二特征向量、第二灰度图像集或第二灰度增强图像集,对所述恶意代码模型进行训练,得到恶意代码训练模型;
步骤6,加载待识别PE文件,并将所述待识别PE文件通过文件像素化转化为待识别灰度图像;
步骤7,根据所得恶意代码训练模型,对所述待识别灰度图像进行检测,得到检测结果;
步骤8,根据所得检测结果输出所述待识别PE文件的文件类型,若待识别PE文件为良性文件,则输出良性文件类号,若待识别PE文件为恶意代码文件,则输出恶意代码文件类号。
进一步地,所述多层神经网络模型包括:
输入层:输入所述第一特征向量,以及第一灰度图像集或第一灰度增强图像集;
输入所述第二特征向量,以及第二灰度图像集或第二灰度增强图像集;
卷积层:包括第一卷积层、第二卷积层及第三卷积层,均采用3×3的卷积核;
池化层:包括第一池化层、第二池化层及第三池化层,均采用最大池化方法,且池化宽度均设置为3×3;
Dropout层:包括第一Dropout层与第二Dropout层;
全连接层:包括第一全连接层、第二全连接层及第三全连接层,均采用Sigmoid分类器;
输出层:输出文件类型;
其中,输入层、第一卷积层、第一池化层、第二卷积层、第二池化层、第三卷积层、第三池化层、第一Dropout层、第一全连接层、第二Dropout层、第二全连接层、第三全连接层及输出层,依次进行数据连接。
进一步地,步骤2中,将训练集、验证集分别通过文件像素化转化为第一灰度图像集、第二灰度图像集,包括以下步骤:
步骤2.1,将训练集中每个PE文件的字节序列均转化为第一向量组,并将每个第一向量组均转化为与之对应的第一灰度值组;
将验证集中每个PE文件的字节序列均转化为第二向量组,并将每个第二向量组均转化为与之对应的第二灰度值组;
步骤2.2,根据所得第一灰度值组,生成与所述训练集一一对应的第一灰度图像集;
根据所得第二灰度值组,生成与所述验证集一一对应的第二灰度图像集。
进一步地,步骤3中,若所述训练集或验证集中存在不同大小的PE文件,则对所述训练集或验证集中的文件大小范围进行阶梯状划分,将不同大小的PE文件按照其文件大小所在的范围划分为不同类别,对不同类别的PE文件进行相应的图像宽度约束。
进一步地,步骤3中,选用SURF算法进行特征提取。
同时,本发明提供一种恶意代码识别装置,用于实现上述识别方法,其特殊之处在于:包括训练单元,以及依次连接的加载单元、识别单元、输出单元;
所述训练单元包括依次连接的获取模块、图像模块、特征提取模块及模型训练模块:
所述获取模块,用于获取PE文件数据集,并将其按照一定比例分为训练集与验证集;
所述图像模块,用于将训练集、验证集分别通过文件像素化转化为第一灰度图像集、第二灰度图像集;
或者,将训练集、验证集分别通过文件像素化转化为第一灰度图像集、第二灰度图像集,并通过Gamma算法对所得第一灰度图像集、第二灰度图像集进行数据增强处理,得到第一灰度增强图像集、第二灰度增强图像集;
所述特征提取模块,用于基于图像纹理特征对所得第一灰度图像集或第一灰度增强图像集、所得第二灰度图像集或第二灰度增强图像集进行特征提取,得到第一特征向量、第二特征向量;
所述模型训练模块,用于建立恶意代码模型,并通过所述第一特征向量、第一灰度图像集或第一灰度增强图像集,以及所述第二特征向量、第二灰度图像集或第二灰度增强图像集,对所述恶意代码模型进行训练,得到恶意代码训练模型;
所述加载单元,用于加载待识别PE文件,并将所述待识别PE文件通过文件像素化转化为待识别灰度图像;
所述识别单元,用于根据恶意代码训练模型对所述待识别灰度图像进行检测,得到检测结果;
所述输出单元,用于根据所得检测结果输出所述待识别PE文件的文件类型,若待识别PE文件为良性文件,则输出良性文件类号,若待识别PE文件为恶意代码文件,则输出恶意代码文件类号。
本发明提供一种计算机可读存储介质,其上存储有计算机程序,其特殊之处在于:该程序被处理器执行时实现上述识别方法的步骤。
本发明提供一种终端设备,包括存储器、处理器以及存储在所述存储器中并且能够在所述处理器上运行的计算机程序,其特殊之处在于:所述处理器执行所述计算机程序时实现上述识别方法的步骤。
本发明相比现有技术具有的有益效果:
1、本发明提供的一种恶意代码识别方法,通过将加载的PE文件数据集划分为训练集与验证集,利用文件像素化的数据处理方法,将训练集、验证集分别通过文件像素化转化为第一灰度图像集、第二灰度图像集,并基于图像纹理特征对所得第一灰度图像集、第二灰度图像集进行特征提取,继而将第一灰度图像集、第二灰度图像集,以及提取到的图像纹理特征输入建立的恶意代码模型中,本发明通过第一灰度图像集、第二灰度图像集与所得图像纹理特征,对该恶意代码模型进行特征学习与训练测试,最终得到能够用于检测PE文件类型的恶意代码训练模型,该模型能够整体提高恶意代码的识别效率,解决了现有技术检测效果低、提取特征不全面的技术问题。
2、本发明提供的一种恶意代码识别方法,通过将每个PE文件中的字节序列转化为能表示其特征的图像像素值,使得恶意代码识别问题转化为图像的二分类问题,进而能够应用图像技术进行PE文件分析,这一方法的优势是能够忽略PE文件的复杂格式化分析,简化流程。
3、本发明提供的一种恶意代码识别方法,将图像的像素值作为研究特征,这一举措一方面改善了现有技术在采用使用可执行文件中API、操作码以及系统调用等作为特征时造成的单一性问题,也避免了直接运行恶意代码所带来的危害后果;另一方面,通过PE文件可视化处理与图像纹理特征提取的结合,提升分类效果。
4、本发明提供的一种恶意代码识别方法,若所得第一灰度图像集存在不同大小的PE文件,可通过划分文件大小范围,来对不同范围内的文件进行相应的宽度约束,使得不同大小的PE文件都能够保留尽可能多的像素点,保证文件大小的均衡性。
5、本发明提供的一种恶意代码识别方法,在特征提取前,还可以通过Gamma算法对第一灰度图像集、第二灰度图像集进行数据增强处理,避免模型训练过程中出现过拟合现象。
6、本发明提供的一种恶意代码识别方法,为了确保最低维特征空间中异种点类之间的间距大于同种点类之间的间距,可选择SITF、SURF、HOG和LBP等基于纹理特征的特征提取算法,使得复杂特征空间中的维度减少,从而实现复杂特征空间维度压缩。
7、本发明提供的一种恶意代码识别方法,所建立的多层神经网络模型包括三个卷积层、三个池化层、两个Dropout层及三个全连接层,并在本发明实施例中给出了优选的实施例,能够实现较好的分类效果,一定程度上提高了对PE文件中恶意代码重要特征的捕捉能力;该恶意代码模型包括多层神经网络模型,经实践验证,能够达到预期的准确率和稳定性,不仅适用于复杂场景下PE文件类型恶意代码的快速精准识别,也适用于未知恶意代码的检测。
8、本发明提供的一种恶意代码识别方法,由于像素中能够捕获八邻域信息的最小空间为3×3,于是本实施例中多个卷积层均采用3×3的卷积核,而且多个采用3×3卷积核的卷积层,相较于一个采用大尺寸卷积核的卷积层有着更多的非线性关系,使得所提取到的图像纹理特征之间的联系更加密切。
9、本发明提供的一种恶意代码识别方法,由于需要保留局部纹理特征,本发明采用最大池化方法,并将池化宽度设定为3×3,用于减少维度,降低计算量,防止过拟合现象,同时还使得图像规模减少,计算速度提高。
10、本发明提供的一种恶意代码识别方法,以恶意代码训练模型作为识别基础,识别效果具有较高的精准度。本领域技术人员可根据实际识别需求,在训练前对恶意代码模型的数量、规模及训练复杂度进行适应性调整。
附图说明
图1为本发明提供的一种恶意代码识别方法实施例的流程图;
图2为本发明提供的一种恶意代码识别方法实施例中文件像素化的过程示意图;
图3为本发明提供的一种恶意代码识别方法实施例中所生成的灰度图像集,其中图3中(a)与图3中(b)均为恶意代码文件生成的灰度图像,图3中(c)与图3中(d)均为良性文件生成的灰度图像;
图4为本发明提供的一种恶意代码识别方法实施例中多层神经网络模型的模型示意图;
附图标记说明:
I-输入层,C1-第一卷积层,C2-第二卷积层,C3-第三卷积层,MP1-第一池化层,MP2-第二池化层,MP3-第三池化层,D1-第一Dropout层,D2-第二Dropout层,F1-第一全连接层,F2-第二全连接层,F3-第三全连接层,O-输出层。
具体实施方式
下面结合附图和具体实施例对本发明作进一步地说明。
参照图1,本发明提供一种恶意代码识别方法,包括以下步骤:
步骤1,加载PE文件数据集,并将PE文件数据集按照一定比例分为训练集与验证集,其中,PE文件数据集包括良性文件与恶意代码文件;
在本实施例中,该PE文件数据集为模型样本数据集,其中,良性文件是利用爬虫手段在纯净Windows系统下遍历获取的可执行文件,恶意代码文件来自于典型应用环境下收集到的木马、病毒或者其他恶意代码。本实施例中的PE文件数据集中,良性文件与恶意代码文件的比例为1:1,将该PE文件数据集中的良性文件与恶意代码文件按照8:2的比例随机分配,生成训练集与验证集。当然,在其它实施例中,训练集与验证集的比例可根据需求设置。
步骤2,将训练集、验证集分别通过文件像素化转化为第一灰度图像集、第二灰度图像集,并通过Gamma算法对所得第一灰度图像集、第二灰度图像集进行数据增强处理,得到第一灰度增强图像集、第二灰度增强图像集;
参照图2,本实施例利用文件像素化的方法,将PE文件数据集转化为灰度图像集,即PE文件数据集中训练集与验证集,分别转化为灰度图像集中的第一灰度图像集与第二灰度图像集,具体包括以下步骤:
步骤2.1,将训练集中每个PE文件的字节序列均转化为第一向量组,并将每个第一向量组均转化为与之对应的第一灰度值组;
将验证集中每个PE文件的字节序列均转化为第二向量组,并将每个第二向量组均转化为与之对应的第二灰度值组;
步骤2.2,根据所得第一灰度值组,生成与所述训练集一一对应的第一灰度图像集;
根据所得第二灰度值组,生成与所述验证集一一对应的第二灰度图像集。
PE文件通常为字节码格式,本实施例通过系统命令将每个PE文件的字节序列转化为向量组,再将该向量组转化灰度值组,根据该灰度值组生成对应的灰度图像。如图3所示,图(3)中的(a)是由VB.AT恶意代码家族文件生成的灰度图像,图3中的(b)是由Dontovo.A恶意代码家族文件生成的灰度图像,图3中的(c)与(d)均是由Windows系统下的启动文件所生成的灰度图像,即良性文件所生成的灰度图像,可通常肉眼观察到由恶意代码文件生成的灰度图像与由良性文件生成的灰度图像存在显著的图像差异,而这种图像差异在神经网络中具有较高的区分度。
而且,采用Gamma算法对第一灰度图像集、第二灰度图像集进行数据增强处理,能够增加灰度图像的明暗对比度,更好地显示其暗部细节,保证灰度图像暗部敏感特征提取的需求,有效避免训练过程中的过拟合现象。
当然,在其它实施例中,也可以不对所得第一灰度图像集进行数据增强处理,只是相较于本实施例中的优选实施例,实现效果略差。
步骤3,基于图像纹理特征对所得第一灰度增强图像集、第二灰度增强图像集进行特征提取,得到第一特征向量、第二特征向量;
在本实施例中,若训练集或验证集中存在不同大小的PE文件,导致文件像素化后的灰度图像尺寸难以统一,针对此情况,本实施例会对训练集或验证集中的文件大小范围进行阶梯状划分,将不同大小的PE文件按照其文件大小所在的范围对其进行归类,对不同范围内的PE文件进行相应的图像宽度约束,PE文件大小及与之对应的灰度图像宽度的对应关系,如下表1所示:
文件大小 宽度
≤50KB 32
50KB-100KB 64
100KB-300KB 128
300KB-600KB 256
600KB-1000KB 512
≥1000KB 1024
表1
本实施例根据上述表1所示的对应关系,将不同大小的PE文件经像素化处理后所生成的灰度图像进行相应的宽度约束,使其保留尽可能多的像素点。而且,处于同一范围内的多个PE文件所生成的灰度图像,具有相同的宽度约束值,可以通过批量处理形成相同像素值的灰度图像,使得本实施例能够在保证灰度图像尺寸均衡的基础上,实现更好的分类效果。本实施例选用SURF算法对所得灰度图像集进行特征提取,用于减少维度。当然,在其它实施例中,也可采用SITF、HOG及LBP等算法对所得第一灰度图像集、所得第二灰度图像集进行图像纹理特征提取,得到第一特征向量、第二特征向量。
步骤4,建立恶意代码模型,该恶意代码模型包括多层神经网络模型,该多层神经网络模型包括输入层I、第一卷积层C1、第一池化层MP1、第二卷积层C2、第二池化层MP2、第三卷积层C3、第三池化层MP3、第一Dropout层D1、第一全连接层F1、第二Dropout层D2、第二全连接层F2、第三全连接层F3及输出层O,且依次进行数据连接。
本实施例中多层神经网络模型的参数如下表2所示:
Figure BDA0003836661320000091
表2
表中Input表示该多层神经网络模型的输入层I,Output表示输出层O,Size为当前层神经网络的规模,Kernel Size为卷积核的尺寸,Padding表示使用0进行填充,MaxPoolSize表示池化宽度设置,Activation表示该层使用函数激活,Dropout表示神经元失活的概率。
参照图4,本实施例中的多层神经网络模型包括:
输入层I:输入第一特征向量,以及第一灰度图像集或第一灰度增强图像集;
输入第二特征向量,以及第二灰度图像集或第二灰度增强图像集;
卷积层:包括第一卷积层C1、第二卷积层C2及第三卷积层C3,均采用3×3的卷积核;
卷积神经网络中卷积核的大小通常取决于所提取特征的分布情况与区分程度,所提取的特征大小要与卷积核对应,若提取的特征尺寸小,则相应的卷积核也应该小,卷积核过大则会导致一些局部特征的丢失。若卷积层使用多个较小尺寸的卷积核,一方面可以减少网络参数,另一方面相当于增加了更多的非线性参数,可以提升网络表达能力。由于在像素中能够捕获八邻域信息的最小空间为3×3,本实施例中的多个卷积层均所采用尺寸为3×3的卷积核,而多个具有3×3的卷积核的卷积层比一个具有大尺寸的卷积核的卷积层有着更多的非线性关系,使得图像特征之间的联系更加密切。灰度图像的卷积操作可以使用卷积核来完成,用于将线性运算转换为非线性运算,计算公式如下式所示:
Figure BDA0003836661320000101
其中,f表示非线性函数,i表示卷积层输入数据的个数,M表示输入到卷积层神经元的个数,wij表示卷积层中第i个输入数据与第j个神经元间的权重,xi表示第i个输入数据,bj表示第j个神经元的偏差值,y表示卷积层的输出数据。
本实施例中的卷积层采用非线性函数,能够实现复杂的模拟运算,通过读取图像预设窗口的移动来获得第一灰度图像集或第一灰度增强图像集,以及第二灰度图像集或第二灰度增强图像集中的图像特征。
池化层:包括第一池化层MP1、第二池化层MP2及第三池化层MP3,均采用最大池化方法,且池化宽度均设置为3×3;
本实施例中的多个池化层,用于将卷积层所得的特征提取结果作为输入,进一步对该特征提取结果进行特征提取,以获得更深层次的特征。由于最大池化一般用于保留纹理特征,而本实施例需要更多的保留局部特征,因此将最大池化的宽度设定为3×3,其目的是希望可以有更少的维度,降低了计算工作量,不容易过拟合。它还可以减少图像的规模,从而提高了计算速度。
Dropout层:包括第一Dropout层D1与第二Dropout层D2;
本实施例通过每个池化层中采用的激活函数与两个Dropout层,能够减少连接过程中过拟合现象的出现。本实施例中的激活函数均采用交叉熵损失函数,能够使得预测值尽量逼近真实值,优化模型,则该函数公式如下式所示:
Loss=-∑iqilgαi
其中,i表示待识别PE文件类型的编号,例如,i=1表示待识别PE文件为良性文件,i=0表示待识别PE文件为恶意代码文件,αi是模型预测待识别PE文件类型为编号i的可信度,qi表示真实类型为编号i的PE文件,Loss表示预测类型与实际类型的差距程度。
本实施例中的激活函数采用整流器线性单元(Rectified Linear Units,简称ReLU)。ReLU的运算方式更加简化,有利于神经网络的训练与收敛,其数学表达式为:
Figure BDA0003836661320000111
其中,函数返回0和给定数字x之间的最大值。当值大于等于0时,它返回最大值,即大于等于0时传递的值。本实施例中的x值设置为1。
在模型训练的过程中,若隐藏层的数量较多,则会导致计算量增多,进而出现过拟合现象。因此,为了避免过拟合现象的出现,本实施例通过两个Dropout层实现对神经元数量的随机丢弃,削弱神经元之间的联合适应性,提高网络泛化能力。其中,Dropout函数的数学表达式为:
v~Bernoulli(q)
λ'(m)=v×λ(m)
其中,这里的×表示阿达玛积,即元素相乘运算。v是一个随机向量,它以q的概率在伯努利分布(Bernoulli)中独立、相同的出现。Dropout作为超参数之一,q的概率的典型值在0.5到0.8之间。若q值过大,则会延长训练时间;反之,则可能无法有效避免过拟合现象。当前层的输出为λ(m),随机向量v将被采样,并与输出λ(m)进行元素相乘,从而得到细化的输出λ'(m)。
全连接层:包括第一全连接层F1、第二全连接层F1及第三全连接层F1,均采用Sigmoid分类器;
本实施例中的两个Dropout层,用于将该层的输入数据展平或转换为一维向量,然后将该一维向量输入至第一全连接层,经过测试,此处得到的特征学习效果较好。由于本实施例中卷积层捕获的对象是局部特征,因此本实施例中的全连接层只是将之前的局部整体特点再次经过权值矩阵组合后生成一个全新的图形。本实施例将前面多个卷积层与多个池化层获得的大量特征,通过全连接层连接,使得每一层的特征节点均与其上一层的特征节点相连接,从而实现保留更可能多的图像特征。由于本实施例中恶意代码的分类为二分类问题,并且不同恶意代码的特征是相互排斥的,因而采用Sigmoid分类器进行分类。
输出层O:输出文件类别;
如上所示,本实施例中的文件类型采用编号进行表示,例如,输出1表示待识别PE文件为良性文件,输出0表示待识别PE文件为恶意代码文件。
步骤5,通过第一特征向量、第一灰度图像集或第一灰度增强图像集,以及所述第二特征向量与第二灰度图像集或第二灰度增强图像集,对恶意代码模型进行训练,得到恶意代码训练模型。
本实施例中多层卷积神经网络模型的规模可根据需求调试设置,随着规模的增大,可以实现更加复杂的恶意代码识别分类。在其它实施例中,根据实际的分类强度,本领域技术人员在保证分类效果的同时,可以对各层的数量规模进行调整。在调整时,需要尽量使选择的网络参数少、网络尺寸适中,且网络层数不要太深,防止出现过拟合现象或梯度弥散现象,减小计算复杂度。
步骤6,加载待识别PE文件,并将待识别PE文件通过文件像素化转化为待识别灰度图像;
步骤7,根据所得恶意代码训练模型,对待识别灰度图像进行检测,得到检测结果;
步骤8,根据所得检测结果输出所述待识别PE文件的文件类型,若待识别PE文件为良性文件,则输出良性文件类号,若待识别PE文件为恶意代码文件,则输出恶意代码文件类号。
在本实施例中,当对待识别PE文件进行识别时,通过恶意代码训练模型对其进行检测,并输出其文件类号。若PE文件数据集中所包含的恶意代码文件类型足够多,则恶意代码训练模型在识别时,若待识别PE文件为恶意代码文件,不是单单输出编号0表示待识别PE文件为恶意代码文件,而是能够精准输出表示该恶意代码文件类型的所属家族类号。
基于上述方法,本发明提供一种恶意代码识别装置,包括:训练单元,以及依次连接的加载单元、识别单元、输出单元,其中,该训练单元包括依次连接的获取模块、图像模块、特征提取模块及模型训练模块:
获取模块,用于获取PE文件数据集,并将其按照一定比例分为训练集与验证集;
图像模块,用于将训练集、验证集分别通过文件像素化转化为第一灰度图像集、第二灰度图像集;
或者,将训练集、验证集分别通过文件像素化转化为第一灰度图像集、第二灰度图像集,并通过Gamma算法对所得第一灰度图像集、第二灰度图像集进行数据增强处理,得到第一灰度增强图像集、第二灰度增强图像集;
特征提取模块,用于基于图像纹理特征对所得第一灰度图像集或第一灰度增强图像集、所得第二灰度图像集或第二灰度增强图像集进行特征提取,得到第一特征向量、第二特征向量;
模型训练模块,用于建立恶意代码模型,并通过所述第一特征向量、第一灰度图像集或第一灰度增强图像集,以及所述第二特征向量、第二灰度图像集或第二灰度增强图像集,对所述恶意代码模型进行训练,得到恶意代码训练模型。
加载单元,用于加载待识别PE文件,并将待识别PE文件通过文件像素化转化为待识别灰度图像;
识别单元,用于根据恶意代码模型对待识别灰度图像进行检测,得到检测结果;
输出单元,用于根据所得检测结果输出待识别PE文件的文件类型,若待识别PE文件为良性文件,则输出良性文件类号,若待识别PE文件为恶意代码文件,则输出恶意代码文件类号。
本发明提供的恶意代码模型训练方法可在计算机可读存储介质中应用,计算机可读存储介质存储有计算机程序,上述识别方法可作为计算机程序存储于计算机可读存储介质中,计算机程序被处理器执行时实现上述训练方法的各步骤。
另外,本发明提供的识别方法还可以应用于终端设备,终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,处理器执行所述计算机程序时实现本发明识别方法的步骤。此处的终端设备可以是计算机、笔记本、掌上电脑,以及各种云端服务器等计算设备,处理器可以是通用处理器、数字信号处理器、专用集成电路或其它可编程逻辑器件等。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制,对于本领域的普通专业技术人员来说,可以对前述各实施例所记载的具体技术方案进行修改,或者对其中部分技术特征进行等同替换,而这些修改或者替换,并不使相应技术方案的本质脱离本发明所保护技术方案的范围。

Claims (8)

1.一种恶意代码识别方法,其特征在于:包括以下步骤:
步骤1,加载PE文件数据集,并将其按照一定比例分为训练集与验证集,其中,所述PE文件数据集包括良性文件与恶意代码文件;
步骤2,将训练集、验证集分别通过文件像素化转化为第一灰度图像集、第二灰度图像集;
或者,将训练集、验证集分别通过文件像素化转化为第一灰度图像集、第二灰度图像集,并通过Gamma算法对所得第一灰度图像集、第二灰度图像集进行数据增强处理,得到第一灰度增强图像集、第二灰度增强图像集;
步骤3,基于图像纹理特征对所得第一灰度图像集或第一灰度增强图像集、所得第二灰度图像集或第二灰度增强图像集进行特征提取,得到第一特征向量、第二特征向量;
步骤4,建立恶意代码模型,所述恶意代码模型包括多层神经网络模型;
步骤5,通过所述第一特征向量、第一灰度图像集或第一灰度增强图像集,以及所述第二特征向量、第二灰度图像集或第二灰度增强图像集,对所述恶意代码模型进行训练,得到恶意代码训练模型;
步骤6,加载待识别PE文件,并将所述待识别PE文件通过文件像素化转化为待识别灰度图像;
步骤7,根据所得恶意代码训练模型,对所述待识别灰度图像进行检测,得到检测结果;
步骤8,根据所得检测结果输出所述待识别PE文件的文件类型,若待识别PE文件为良性文件,则输出良性文件类号,若待识别PE文件为恶意代码文件,则输出恶意代码文件类号。
2.根据权利要求1所述的一种恶意代码识别方法,其特征在于:所述多层神经网络模型包括:
输入层I:输入所述第一特征向量,以及第一灰度图像集或第一灰度增强图像集;
输入所述第二特征向量,以及第二灰度图像集或第二灰度增强图像集;
卷积层:包括第一卷积层C1、第二卷积层C2及第三卷积层C3,均采用3×3的卷积核;
池化层:包括第一池化层MP1、第二池化层MP2及第三池化层MP3,均采用最大池化方法,且池化宽度均设置为3×3;
Dropout层:包括第一Dropout层D1与第二Dropout层D2;
全连接层:包括第一全连接层F1、第二全连接层F1及第三全连接层F1,均采用Sigmoid分类器;
输出层O:输出文件类型;
其中,输入层I、第一卷积层C1、第一池化层MP1、第二卷积层C2、第二池化层MP2、第三卷积层C3、第三池化层MP3、第一Dropout层D1、第一全连接层F1、第二Dropout层D2、第二全连接层F2、第三全连接层F3及输出层O,依次进行数据连接。
3.根据权利要求2所述的一种恶意代码识别方法,其特征在于:步骤2中,将训练集、验证集分别通过文件像素化转化为第一灰度图像集、第二灰度图像集,包括以下步骤:
步骤2.1,将训练集中每个PE文件的字节序列均转化为第一向量组,并将每个第一向量组均转化为与之对应的第一灰度值组;
将验证集中每个PE文件的字节序列均转化为第二向量组,并将每个第二向量组均转化为与之对应的第二灰度值组;
步骤2.2,根据所得第一灰度值组,生成与所述训练集一一对应的第一灰度图像集;
根据所得第二灰度值组,生成与所述验证集一一对应的第二灰度图像集。
4.根据权利要求3所述的一种恶意代码识别方法,其特征在于:步骤3中,若所述训练集或验证集中存在不同大小的PE文件,则对所述训练集或验证集中的文件大小范围进行阶梯状划分,将不同大小的PE文件按照其文件大小所在的范围划分为不同类别,对不同类别的PE文件进行相应的图像宽度约束。
5.根据权利要求4所述的一种恶意代码识别方法,其特征在于:步骤3中,选用SURF算法进行特征提取。
6.一种恶意代码识别装置,用于实现权利要求1-5任一所述的一种恶意代码识别方法,其特征在于:包括训练单元,以及依次连接的加载单元、识别单元、输出单元;
所述训练单元包括依次连接的获取模块、图像模块、特征提取模块及模型训练模块:
所述获取模块,用于获取PE文件数据集,并将其按照一定比例分为训练集与验证集;
所述图像模块,用于将训练集、验证集分别通过文件像素化转化为第一灰度图像集、第二灰度图像集;
或者,将训练集、验证集分别通过文件像素化转化为第一灰度图像集、第二灰度图像集,并通过Gamma算法对所得第一灰度图像集、第二灰度图像集进行数据增强处理,得到第一灰度增强图像集、第二灰度增强图像集;
所述特征提取模块,用于基于图像纹理特征对所得第一灰度图像集或第一灰度增强图像集、所得第二灰度图像集或第二灰度增强图像集进行特征提取,得到第一特征向量、第二特征向量;
所述模型训练模块,用于建立恶意代码模型,并通过所述第一特征向量、第一灰度图像集或第一灰度增强图像集,以及所述第二特征向量、第二灰度图像集或第二灰度增强图像集,对所述恶意代码模型进行训练,得到恶意代码训练模型;
所述加载单元,用于加载待识别PE文件,并将所述待识别PE文件通过文件像素化转化为待识别灰度图像;
所述识别单元,用于根据恶意代码训练模型对所述待识别灰度图像进行检测,得到检测结果;
所述输出单元,用于根据所得检测结果输出所述待识别PE文件的文件类型,若待识别PE文件为良性文件,则输出良性文件类号,若待识别PE文件为恶意代码文件,则输出恶意代码文件类号。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:该程序被处理器执行时实现如权利要求1-5任一所述的一种恶意代码识别方法的步骤。
8.一种终端设备,包括存储器、处理器以及存储在所述存储器中并且能够在所述处理器上运行的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现如权利要求1-5任一所述的一种恶意代码识别方法的步骤。
CN202211090115.5A 2022-09-07 2022-09-07 一种恶意代码识别方法及装置、存储介质、终端设备 Pending CN116127449A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211090115.5A CN116127449A (zh) 2022-09-07 2022-09-07 一种恶意代码识别方法及装置、存储介质、终端设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211090115.5A CN116127449A (zh) 2022-09-07 2022-09-07 一种恶意代码识别方法及装置、存储介质、终端设备

Publications (1)

Publication Number Publication Date
CN116127449A true CN116127449A (zh) 2023-05-16

Family

ID=86297959

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211090115.5A Pending CN116127449A (zh) 2022-09-07 2022-09-07 一种恶意代码识别方法及装置、存储介质、终端设备

Country Status (1)

Country Link
CN (1) CN116127449A (zh)

Similar Documents

Publication Publication Date Title
US10692218B2 (en) Method and system of detecting image tampering, electronic device and storage medium
Nogueira et al. Evaluating software-based fingerprint liveness detection using convolutional networks and local binary patterns
CN109657582B (zh) 人脸情绪的识别方法、装置、计算机设备及存储介质
US20120294535A1 (en) Face detection method and apparatus
CN111475797A (zh) 一种对抗图像生成方法、装置、设备以及可读存储介质
CN111368672A (zh) 一种用于遗传病面部识别模型的构建方法及装置
CN109409210B (zh) 一种基于ssd框架的人脸检测方法及系统
Ren et al. Real-time optimization of Viola-Jones face detection for mobile platforms
CN112528866A (zh) 跨模态人脸识别方法、装置、设备及存储介质
CN112001362A (zh) 一种图像分析方法、图像分析装置及图像分析系统
Zhang et al. Dual-channel multi-task CNN for no-reference screen content image quality assessment
CN113255557A (zh) 一种基于深度学习的视频人群情绪分析方法及系统
CN112232140A (zh) 人群计数方法、装置、电子设备及计算机存储介质
CN113222921A (zh) 一种图像处理方法及系统
CN110766007A (zh) 证件遮挡检测方法、装置、设备及可读存储介质
CN114241370A (zh) 基于数字孪生变电站的入侵识别方法、装置和计算机设备
CN115240203A (zh) 业务数据处理方法、装置、设备及存储介质
Chen et al. HRCP: High-ratio channel pruning for real-time object detection on resource-limited platform
CN115116111B (zh) 抗扰动人脸活体检测模型训练方法、装置及电子设备
CN108875467B (zh) 活体检测的方法、装置及计算机存储介质
CN116127449A (zh) 一种恶意代码识别方法及装置、存储介质、终端设备
CN113239738B (zh) 一种图像的模糊检测方法及模糊检测装置
CN112084874B (zh) 一种物体检测方法、装置及终端设备
Mahmood Defocus Blur Segmentation Using Genetic Programming and Adaptive Threshold.
CN113762249A (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