CN113076544A - 基于深度学习模型压缩的漏洞检测方法、系统及移动设备 - Google Patents

基于深度学习模型压缩的漏洞检测方法、系统及移动设备 Download PDF

Info

Publication number
CN113076544A
CN113076544A CN202110361497.XA CN202110361497A CN113076544A CN 113076544 A CN113076544 A CN 113076544A CN 202110361497 A CN202110361497 A CN 202110361497A CN 113076544 A CN113076544 A CN 113076544A
Authority
CN
China
Prior art keywords
vulnerability
model
training
pruning
value
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
CN202110361497.XA
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.)
Hunan University
Original Assignee
Hunan University
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 Hunan University filed Critical Hunan University
Priority to CN202110361497.XA priority Critical patent/CN113076544A/zh
Publication of CN113076544A publication Critical patent/CN113076544A/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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • 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
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Image Analysis (AREA)

Abstract

本发明公开了一种基于深度学习模型压缩的漏洞检测方法、系统及移动设备,将包含漏洞的二进制文件映射为灰度图像,利用卷积神经网络提取灰度图像纹理特征,通过训练得到预训练模型,然后利用模型压缩的优势,基于麻雀搜索算法找到模型的最佳结构,实现自动化搜索模型结构的压缩方法,从而提高检测模型的准确率和效率,并且能够减少检测模型的空间占用。

Description

基于深度学习模型压缩的漏洞检测方法、系统及移动设备
技术领域
本发明涉及软件安全检测领域,特别是一种基于深度学习模型压缩的漏洞检测方法、系统及移动设备。
背景技术
随着全球信息化的快速发展,计算机在人们的生活中起着极大的作用。计算机软件作为信息时代的产品形式,已经深入到人民生活、国家经济、军事建设等各个领域。在互联网技术迅猛发展的今天,软件的安全性问题成了目前最为重要的话题。目前,很多软件都存在大大小小的漏洞,不法分子就可以通过软件漏洞去进行网络攻击,造成了用户信息泄露、系统崩溃、人民财产安全等问题,严重威胁了我国网络空间的安全建设,乃至威胁到整个社会、国家的安全与稳定。在软件的完整生命周期中,想要完全避免漏洞缺陷是不可能的,但如何能及时检测出来,避免损失是非常有意义的。因此,对软件漏洞进行快速检测是一项重要的研究内容。
近年来,软件漏洞被攻击利用的事件频发,造成了不可预估的损失,为了能够及时发现漏洞,有效预防,很多团队都在深入研究漏洞检测技术,提供漏洞检测工具及服务。其中,经典的方法是静态漏洞挖掘和动态漏洞挖掘技术。静态漏洞挖掘技术是指不执行目标程序,但对目标程序的语法语义、数据流、控制流等进行分析,同时考虑专家规则,共同挖掘程序中可能存在的漏洞。动态漏洞检测技术是指在执行目标程序的过程中监控其运行时的行为,分析其产生的数据流、控制流、程序状态、执行路径等,准确找到异常发生的地方,从而找出程序的漏洞。通过对程序的源代码进行静态漏洞分析产生的漏洞检测工具如Coverity、Klocwork等,通过动态分析方法进行错误排查的工具如libFuzzer、Radamsa等。在大数据时代,人工智能技术飞速发展,基于机器学习的漏洞检测技术也被相继提出,一些轻量级的漏洞检测工具也应用而生。如VDiscover工具,通过经典的机器学习算法,训练漏洞检测模型,用来预测程序中是都存在漏洞问题。VccFinder工具利用SVM(支持向量机)分类器对软件的异常情况进行标记,在一定程度上使误报率显著降低。
虽然漏洞检测工具层出不穷,但是对于基于机器学习的漏洞检测技术还面临着一些问题。首先,漏洞检测工具的准确率和效率还有待提升;其次,基于深度学习的漏洞检测模型占用空间大,计算复杂度较高,很难部署到资源受限的移动设备上。
发明内容
本发明所要解决的技术问题是,针对现有技术不足,提供一种基于深度学习模型压缩的漏洞检测方法、系统及移动设备,提高漏洞检测的效率和准确率,并且减少检测模型的内存占用和计算复杂度,使模型能够部署到资源受限的移动设备上。
为解决上述技术问题,本发明所采用的技术方案是:一种基于深度学习模型压缩的漏洞检测方法,包括以下步骤:
S1、对数据进行预处理,生成训练数据集和测试数据集;所述数据为灰度图像数据;
S2、利用所述训练数据集训练卷积神经网络,得到预训练模型;
S3、利用麻雀搜索算法压缩所述预训练模型,得到最终的检测模型。
本发明利用灰度图像训练卷积神经网络,利用麻雀搜索算法进行模型压缩,可以使最终的检测模型在准确率不降低的情况下实现模型压缩,减少空间占用,减少计算复杂度,使其能够部署到资源受限的移动设备上。
步骤S1的实现过程包括:
1)将采集到的包含漏洞的二进制文件转化为灰度图像;根据采集到的包含漏洞的二进制文件的漏洞类型、存储路径,生成标签文件;
2)基于所述标签文件和灰度图像,生成hdf5文件,得到训练数据集和测试数据集。
本发明将二进制文件转化为灰度图像用于模型的训练,可以解决训练数据少的问题。
步骤1)的具体实现过程包括:将一个包含漏洞的二进制文件按位读取为一维数组,其中每Mbit的数据作为该数组其中一个元素,所述数据的取值范围为0-255,固定行宽为256,将上述一维数组按照行宽生成一个二维数组,利用cv2库将该二维数据映射为灰度图像。利用B2M算法将二进制文件转化为灰度图像,就可以利用卷积神经网络提取图像纹理特征,进行模型训练。
步骤2)的具体实现过程包括:所述标签文件包括训练标签文件和测试标签文件;所述标签文件的内容以键值对(key,value)的形式存在;对于训练标签文件,key表示包含漏洞的二进制文件映射为灰度图像后的存储路径,value为包含漏洞的二进制文件的漏洞类型编号;对于测试标签文件,key为包含漏洞的二进制文件对应的漏洞类型编号,value为该漏洞类型标号的解释说明。训练标签文件是为对应的数据集打标签,实现模型训练;测试标签文件可以对检测结果的类型进行解释说明,使检测结果一目了然,方便查看。
所述卷积神经网络为VGG16网络模型;所述VGG16网络模型包括N个级联的卷积层,最后一个卷积层与至少一个全连接层连接;所述VGG16网络模型的输入层通道数为1,最后一层输出的分类数量与漏洞类型总数匹配。在进行灰度图像特征提取的过程中,该VGG16网络模型提供了精确有效的特征提取方案。步骤S3的具体实现过程包括:
A)将所述预训练模型的结构表示为X={x1,x2,…,xL},xL表示第L层的通道数;对于预训练模型各层的通道数,按照{0.1xi,0.2xi,…,αxi}进行缩小,将预训练模型初始化为n个剪枝结构
Figure BDA0003005741660000031
Figure BDA0003005741660000032
表示为以下形式:
Figure BDA0003005741660000033
x′nL为第n个剪枝结构的第L层的通道数目;第j个剪枝结构X′j的第i层的通道数目表示为x′ji={0.1xi,0.2xi,…,αxi};α={10%,20%,...,100%};i=1,2,……,L;
B)利用下式计算剪枝结构的适应度:
Figure BDA0003005741660000034
其中,
Figure BDA0003005741660000035
为第j个剪枝结构的适应度,Ttrain为训练数据集,Ttest为测试数据集,W′j为第j个剪枝结构X′j的权重集,acc(·)为在剪枝结构X′j,测试数据集Ttest下的精确度;适应度最大的剪枝结构为全局最优剪枝结构X′best,适应度最小的剪枝结构为全局最差剪枝结构X′worst,对适应度值排序,将适应度值最大的前PN只麻雀作为发现者,剩余的n-PN只麻雀作为加入者,从n只麻雀中随机选择SD只作为警戒者;每只所述麻雀对应一个剪枝结构;
C)利用下式更新第t+1次迭代过程中第p只发现者的位置
Figure BDA0003005741660000041
Figure BDA0003005741660000042
其中,p∈[1,PN];t为当前迭代数;itermax为最大迭代次数;μ为(0,1]范围内的随机数;R2∈[0,1],表示预警值;ST∈[0.5,1],表示安全值;Q为服从正态分布的随机数;M为一个1*L的矩阵,其中元素均为1;
利用下式更新第t+1次迭代过程中第q只加入者的位置
Figure BDA0003005741660000043
Figure BDA0003005741660000044
其中,q∈[PN+1,n];
Figure BDA0003005741660000045
为目前发现者占据的最优位置,
Figure BDA0003005741660000046
为第t次迭代后的全局最差位置,A为1或-1的1*L的矩阵,A+=AT(AAT)-1
利用下式更新第t+1次迭代过程中第s只警戒者的位置
Figure BDA0003005741660000047
Figure BDA0003005741660000048
其中,s∈[1,SD];
Figure BDA0003005741660000049
为第t次迭代后的全局最优位置,β为步长,服从均值为0,方差为1的正态分布的随机数,K为[-1,1]的随机数,fitj为第j只麻雀的适应度值,fitg、fitw为当前最佳和最差位置麻雀的适应度值;ε为大于0的极小的数;
D)经过第t+1次迭代后,计算每个更新各位置后的剪枝结构的适应度值,根据适应度值对剪枝结构进行重新排序,若适应度值最高的剪枝结构的适应度值大于全局最优剪枝结构X′best的适应度值,则更新全局最优剪枝结构,返回步骤C),直至达到最大迭代次数,选择更新后的全局最优剪枝结构作为最终的漏洞检测模型的结构,即得到最终的检测模型。
使用麻雀搜索算法搜索模型的最佳通道剪枝结构,实现模型压缩,是一种自动化搜索模型结构的方法,只需要确定每层的通道数,而无需选择重要的通道,可以减少人工干预,避免了基于经验设计的正则化或者重要性来选择通道的方法。麻雀搜索算法在优化问题上很有优势,收敛速度比较快,且稳定性很强,在全局范围内进行搜索的效果比较好,将麻雀搜索算法应用到模型压缩中能够快速得到最终的检测模型。
步骤S3之后,还包括:
S4、使用B2M算法将采集的二进制文件转化为灰度图像;
S5、将该灰度图像作为最终的检测模型的输入,根据输出结果做出预测,并输出所有结果中概率大于80%的预测结果及对应的概率。
通过这种方式,可以对二进制文件可能包含的多种漏洞进行检测,并给出相应的漏洞类型;输出所有结果中概率大于80%的结果,是为了确保准确率。
步骤S5中,根据漏洞编号和文字描述标签文件中的key、value键值对,直接输出漏洞编号对应的文字描述。可以使测试者直接了然的清楚被检测的二进制文件的漏洞编号和漏洞类型。
本发明还提供了一种基于深度学习模型压缩的漏洞检测系统,其包括计算机设备;所述计算机设备被配置或编程为用于执行上述方法的步骤。
作为一个发明构思,本发明还提供了一种移动设备,其内配置漏洞检测模型;所述漏洞检测模型被配置或编程为用于执行上述方法的步骤。
与现有技术相比,本发明所具有的有益效果为:本发明将包含漏洞的二进制文件映射为灰度图像,利用卷积神经网络提取灰度图像纹理特征,通过训练得到预训练模型,然后利用模型压缩的优势,基于麻雀搜索算法找到模型的最佳结构,实现自动化搜索模型结构的压缩方法,从而提高检测模型的准确率和效率,并且能够减少检测模型的空间占用,最终构建了一个面向资源受限的移动设备的高效漏洞检测模型。
附图说明
图1为本发明实施例基于深度学习的高效漏洞检测方法的过程;
图2为本发明实施例将二进制文件映射为灰度图像的过程;
图3为本发明卷积神经网络VGG16模型结构。
具体实施方式
本发明实施例的基于深度学习模型压缩的高效漏洞检测方法主要分为以下四个步骤,过程如图1所示:
第一步:采集数据进行预处理,生成训练数据集和测试数据集;
第二步:模型构建,利用卷积神经网络进行迭代训练;
第三步:将上述训练好的模型作为预训练模型,利用麻雀搜索算法进行模型压缩;
第四步:多次训练,调节参数,使训练达到最佳效果,找到漏洞检测模型的最佳结构。训练完成后,将待检测二进制文件转化为灰度图像,使用训练好的模型数据对其进行漏洞检测。
首先,采集数据进行预处理,生成训练数据集,其主要实施过程如下:
(1)将采集到的包含漏洞的二进制文件利用B2M算法转化为灰度图像。将一个包含漏洞的二进制文件按位读取为一维数组,其中每8bit的数据作为该数组其中一个元素,数据的取值范围为0-255。固定行宽为256,将上述一维数组按照行宽生成一个二维数组,利用cv2库将该二维数据映射为灰度图像,转化为灰度图像的过程如图2;
(2)根据采集到的包含漏洞的二进制文件的漏洞类型、存储路径,生成标签文件。包括训练标签文件和测试标签文件,标签文件的内容以键值对的形式存在(key,value)。对于训练标签文件,key表示该漏洞文件映射为灰度图像后的存储路径,value为该漏洞文件的漏洞类型编号。对于测试标签文件,key为对应的漏洞类型编号,value为该漏洞类型标号的解释说明;
(3)基于标签文件和灰度图像生成hdf5文件,作为深度学习模型的训练数据集和测试数据集。
其次,进行模型构建,利用卷积神经网络进行迭代训练,本发明选用的卷积神经网络为VGG16,其主要实施过程如下:
VGG16网络模型共有16层,如图3所示,前13层为卷积层,在每个卷积层中使用RELU激活函数进行非线性处理,每2个或3个卷积层后,使用最大池化层对卷积层的输出数据进行降维处理。后3层为全连接层,负责对提取的特征进行归一化处理,并在最后一个全连接层后使用Softmax函数进行分类输出。在本发明中,需对VGG16做一些调整:(1)由于训练数据集为灰度图像,只有一个通道,因此设置VGG16输入层的通道数为1;(2)最后一层输出的分类数量需与实际漏洞类型总数一致。
使用pytorch构建VGG16网络:
输入:无
输出:VGG16卷积神经网络
functionVGG16():
1:读取训练数据集,设置图像的宽高为固定值;
2:建立Conv1:使用64个3*3的卷积核进行2次卷积操作,每次卷积操作后都使用Relu激活函数对该次卷积操作的输出结果进行处理;
3:建立池化层1:使用2*2的池化单元对Conv1层的输出结果进行池化操作,采用最大池化的方法,设置步长为2;
4:建立Conv2:使用128个3*3的卷积核进行2次卷积操作,每次卷积操作后都使用Relu激活函数对该次卷积操作的输出结果进行处理;
5:建立池化层2:使用2*2的池化单元对Conv2层的输出结果进行池化操作,采用最大池化的方法,设置步长为2;
6:建立Conv3:使用256个3*3的卷积核进行3次卷积操作,每次卷积操作后都使用Relu激活函数对该次卷积操作的输出结果进行处理;
7:建立池化层3:使用2*2的池化单元对Conv3层的输出结果进行池化操作,采用最大池化的方法,设置步长为2;
8:建立Conv4:使用256个3*3的卷积核进行3次卷积操作,每次卷积操作后都使用Relu激活函数对该次卷积操作的输出结果进行处理;
9:建立池化层4:使用2*2的池化单元对Conv4层的输出结果进行池化操作,采用最大池化的方法,设置步长为2;
10:建立Conv5:使用256个3*3的卷积核进行3次卷积操作,每次卷积操作后都使用Relu激活函数对该次卷积操作的输出结果进行处理;
11:建立池化层5:使用2*2的池化单元对Conv5层的输出结果进行池化操作,采用最大池化的方法,设置步长为2;
12:全连接层1:使用4096个大小为7*7的卷积核对池化层5的输出数据进行卷积操作,完成后,对其进行dropout操作防止过拟合,该层输入的数据大小为1*1*4096;
13:全连接层2:使用4096个大小为1*1的卷积核对全连接层1的输出数据再次进行卷积操作,完成后,对其进行dropout操作防止过拟合,该层输入的数据大小为1*1*4096;
14:全连接层3:使用CLASS_NUM个大小为1*1的卷积核对全连接层2的输出数据进行卷积操作,完成后,使用softmax激活函数对结果进行处理,该步骤的输出结果为CLASS_NUM个float值,表示每种漏洞类型的概率。其中,CLASS_NUM是样本数据中漏洞类型的数量。
建立好卷积神经网络后,进行训练的过程如下:
(1)将第一步中生成的hdf5文件其中90%的数据作为训练数据集,10%的数据作为测试数据集加载进VGG16模型,设置训练数据集的迭代次数、每次训练的数据条数以及在训练过程中使用到的训练数据和验证数据所占比例。
(2)开始进行迭代训练,完成后得到预训练模型。
然后,将上述训练好的模型作为预训练模型,利用麻雀搜索算法搜索模型的最佳结构,确定每层的通道数,来实现模型压缩,具体过程如下:
(1)将上述得到的预训练模型的结构表示为X={x1,x2,…,xL},xL表示第L层的通道数。那么该模型进行通道剪枝后的结构可能有
Figure BDA0003005741660000083
种,这个组合的数目太过庞大,进行穷举的话难以实现,因此,首先将这个组合的数目缩小。对于模型各层的通道数按照{0.1xi,0.2xi,…,αxi}进行缩小,α={10%,20%,...,100%}。此时进行通道剪枝后的结构就有(10α)L,远远小于
Figure BDA0003005741660000081
(2)将预训练模型初始化为n个剪枝结构
Figure BDA0003005741660000082
那么第j个剪枝结构X′j的第i层的通道数目可以表示为x′ji={0.1xi,0.2xi,…,αxi},可以将初始化结构集表示为:
Figure BDA0003005741660000091
x′nL为第n个结构的L层的通道数目。接下来,利用麻雀搜索算法逐步修改结构集,并选出最优的结构。
(3)计算每一种结构X′j={x′j1,x′j2,…,x′jL}的适应度,适应度为该结构的精确度,表示为:
Figure BDA0003005741660000092
Ttrain为训练数据集,Ttest为测试数据集,Wj′为该结构X′j的权重集,acc(·)即为在结构X′j,测试数据集Ttest下的精确度。适应度最大的结构为全局最优结构X′best,适应度最小的结构为全局最差结构X′worst。根据适应度值进行排序,将适应度值大的前PN只麻雀作为发现者,剩余的n-PN只作为加入者,从n只中随机选择sD只作为警戒者。
(4),在每次迭代过程中,需要更新第1~PN只发现者的位置,计算方法为:
Figure BDA0003005741660000093
p∈[1,PN],t为当前迭代数,itermax为最大迭代次数。μ为(0,1]范围内的随机数,R2属于[0,1]表示预警值,ST属于[0.5,1]表示安全值,Q为服从正态分布的随机数,M为一个1*L的矩阵,其中元素均为1。
(5)在每次迭代过程中,需要更新第PN+1~n只加入者的位置,计算方法为:
Figure BDA0003005741660000094
q∈[PN+1,n],
Figure BDA0003005741660000095
为目前发现者占据的最优位置,
Figure BDA0003005741660000096
为第t次迭代后产生的全局最差位置,A为1或-1的1*d的矩阵,A+=AT(AAT)-1
(6)在每次迭代过程中,更新SD只警戒者的位置,计算方法为:
Figure BDA0003005741660000101
s∈[1,SD],
Figure BDA0003005741660000102
为第t次迭代后产生的全局最优位置,β为步长,服从均值为0,方差为1的正态分布的随机数,K为[-1,1]的随机数,fitj为当前麻雀的适应度值,fitg、fitw为当前最佳和最差位置麻雀的适应度值,ε为一个最小数,用来避免分母为0的情况。
(7)一轮迭代结束之后,计算每个更新各位置后的剪枝结构的适应度值,根据适应度值对剪枝结构进行重新排序,若适应度值最高的剪枝结构的适应度值大于全局最优剪枝结构X′best的适应度值,则更新剪枝结构X′best,否则不进行更新,继续进行迭代操作,完成后,选择最终的剪枝结构X′best为最优结构,作为最终的漏洞检测模型的结构,并保存。
最后,使用上述漏洞检测模型对二进制文件进行漏洞挖掘,具体过程如下:
(1)使用B2M算法将二进制文件转化为灰度图像;
(2)将该灰度图像作为最终模型的输入,根据输出结果做出预测,并输出所有结果中概率大于80%的预测结果(漏洞编号)及对应概率。同时,为了方便用户理解,根据漏洞编号和文字描述标签文件中的key、value键值对,直接输出这些漏洞编号对应的文字描述。
本发明的另一实施例还提供了一种基于深度学习模型压缩的漏洞检测系统,其包括计算机设备;所述计算机设备被配置或编程为用于执行上述实施例方法的步骤。
本发明另一实施例还提供了一种移动设备,其内配置漏洞检测模型;所述漏洞检测模型被配置或编程为用于执行上述实施例方法的步骤。
本发明中,计算机设备可以是处理器、上位机等,移动设备可以是手机、平板电脑等。
通过本发明的方法,在Linux系统Ubuntu 18下进行试验,其GPU的型号为NVIDA1650。本实验的样本数据共有5644条,其中共包含58个不同的漏洞类型,在训练的过程中,将90%的数据作为训练数据集,10%的数据作为验证集。在初始训练完成后,将学习到的参数保存为预训练模型,然后加载预训练模型初始化一组结构集,经过麻雀搜索算法进行模型的结构优化,得到最终优化后的漏洞检测模型。在漏洞检测的时候将最终的模型加载进卷积神经网络中。针对该训练模型,使用参与训练的灰度图像文件对其进行正确率测试,其结果如表2所示。
表1使用本发明进行试验的检测结果准确率统计
漏洞类型 dos local remote webapps
测试正确率 83.50% 89.84% 84.82% 97.36%
对压缩前后的模型的通道数和FLOPs数进行比较,在保证精确度不变的情况下,压缩后的模型,通道数比压缩前的模型减少了58.30%,FLOPs数比压缩前的模型减少了69.66%。
相对于现有的漏洞检测技术,本发明改进了传统的基于深度学习的漏洞检测方法准确率和效率低的问题,以及庞大的神经网络模型难以部署到资源受限的移动设备上的问题。将带来以下几方面的优势:
(1)提出一种基于深度学习的漏洞检测方法,该方法将二进制文件转化为灰度图像,采用卷积神经网络对灰度图像样本数据进行特征提取,再进行漏洞检测,能够解决传统基于专家规则的漏洞检测方法不能及时检测潜在漏洞的问题。
(2)采用深度卷积神经网络进行特征提取、漏洞挖掘,能够在一定程度上提高检测模型的准确率。
(3)基于麻雀搜索算法进行模型压缩,实现了对模型结构的优化,提高了漏洞检测模型的检测效率,且减少了庞大的深度学习模型的内存占用。

Claims (10)

1.一种基于深度学习模型压缩的漏洞检测方法,其特征在于,包括以下步骤:
S1、对数据进行预处理,生成训练数据集和测试数据集;所述数据为灰度图像数据;
S2、利用所述训练数据集训练卷积神经网络,得到预训练模型;
S3、利用麻雀搜索算法压缩所述预训练模型,得到最终的检测模型。
2.根据权利要求1所述的基于深度学习模型压缩的漏洞检测方法,其特征在于,步骤S1的实现过程包括:
1)将采集到的包含漏洞的二进制文件转化为灰度图像;根据采集到的包含漏洞的二进制文件的漏洞类型、存储路径,生成标签文件;
2)基于所述标签文件和灰度图像,生成hdf5文件,得到训练数据集和测试数据集。
3.根据权利要求2所述的基于深度学习模型压缩的漏洞检测方法,其特征在于,步骤1)的具体实现过程包括:将一个包含漏洞的二进制文件按位读取为一维数组,其中每Mbit的数据作为该数组其中一个元素,所述数据的取值范围为0-255,固定行宽为256,将上述一维数组按照行宽生成一个二维数组,利用cv2库将该二维数据映射为灰度图像。
4.根据权利要求2所述的基于深度学习模型压缩的漏洞检测方法,其特征在于,步骤2)的具体实现过程包括:所述标签文件包括训练标签文件和测试标签文件;所述标签文件的内容以键值对(key,value)的形式存在;对于训练标签文件,key表示包含漏洞的二进制文件映射为灰度图像后的存储路径,value为包含漏洞的二进制文件的漏洞类型编号;对于测试标签文件,key为包含漏洞的二进制文件对应的漏洞类型编号,value为该漏洞类型标号的解释说明。
5.根据权利要求1所述的基于深度学习模型压缩的漏洞检测方法,其特征在于,所述卷积神经网络为VGG16网络模型;所述VGG16网络模型包括N个级联的卷积层,最后一个卷积层与至少一个全连接层连接;所述VGG16网络模型的输入层通道数为1,最后一层输出的分类数量与漏洞类型总数匹配。
6.根据权利要求1所述的基于深度学习模型压缩的漏洞检测方法,其特征在于,步骤S3的具体实现过程包括:
A)将所述预训练模型的结构表示为X={x1,x2,…,xL},xL表示第L层的通道数;对于预训练模型各层的通道数,按照{0.1xi,0.2xi,…,αxi}进行缩小,将预训练模型初始化为n个剪枝结构
Figure FDA0003005741650000021
Figure FDA0003005741650000022
表示为以下形式:
Figure FDA0003005741650000023
x′nL为第n个剪枝结构的第L层的通道数目;第j个剪枝结构X′j的第i层的通道数目表示为x′ji={0.1xi,0.2xi,…,αxi};α={10%,20%,…,100%};i=1,2,……,L;
B)利用下式计算剪枝结构的适应度:
Figure FDA0003005741650000024
其中,
Figure FDA0003005741650000025
为第j个剪枝结构的适应度,Ttrain为训练数据集,Ttest为测试数据集,W′j为第j个剪枝结构X′j的权重集,acc(·)为在剪枝结构X′j,测试数据集Ttest下的精确度;适应度最大的剪枝结构为全局最优剪枝结构X′best,对适应度值排序,将适应度值最大的前PN只麻雀作为发现者,剩余的n-PN只麻雀作为加入者,从n只麻雀中随机选择SD只作为警戒者;每个所述剪枝结构对应一只麻雀;
C)利用下式更新第t+1次迭代过程中第p只发现者的位置
Figure FDA0003005741650000026
Figure FDA0003005741650000027
其中,p∈[1,PN];t为当前迭代数;itermax为最大迭代次数;μ为(0,1]范围内的随机数;R2∈[0,1],表示预警值;ST∈[0.5,1],表示安全值;Q为服从正态分布的随机数;M为一个1*L的矩阵,其中元素均为1;
利用下式更新第t+1次迭代过程中第q只加入者的位置
Figure FDA0003005741650000031
Figure FDA0003005741650000032
其中,q∈[PN+1,n];
Figure FDA0003005741650000033
为目前发现者占据的最优位置,
Figure FDA0003005741650000034
为第t次迭代后的全局最差位置,A为1或-1的1*L的矩阵,A+=AT(AAT)-1
利用下式更新第t+1次迭代过程中第s只警戒者的位置
Figure FDA0003005741650000035
Figure FDA0003005741650000036
其中,s∈[1,SD];
Figure FDA0003005741650000037
为第t次迭代后的全局最优位置,β为步长,服从均值为0,方差为1的正态分布的随机数,K为[-1,1]的随机数,fitj为第j只麻雀的适应度值,fitg、fitw为当前最佳和最差位置麻雀的适应度值;ε>0;
D)经过第t+1次迭代后,计算每个更新各位置后的剪枝结构的适应度值,根据适应度值对剪枝结构进行重新排序,若适应度值最高的剪枝结构的适应度值大于全局最优剪枝结构X′best的适应度值,则更新全局最优剪枝结构,返回步骤C),直至达到最大迭代次数,选择更新后的全局最优剪枝结构作为最终的漏洞检测模型的结构,即得到最终的检测模型。
7.根据权利要求1所述的基于深度学习模型压缩的漏洞检测方法,其特征在于,步骤S3之后,还包括:
S4、使用B2M算法将采集的二进制文件转化为灰度图像;
S5、将该灰度图像作为最终的检测模型的输入,根据输出结果做出预测,并输出所有结果中概率大于80%的预测结果及对应的概率。
8.根据权利要求7所述的基于深度学习模型压缩的漏洞检测方法,其特征在于,步骤S5中,根据漏洞编号和文字描述标签文件中的key、value键值对,直接输出漏洞编号对应的文字描述。
9.一种基于深度学习模型压缩的漏洞检测系统,其特征在于,包括计算机设备;所述计算机设备被配置或编程为用于执行权利要求1~8之一所述方法的步骤。
10.一种移动设备,其特征在于,其内配置漏洞检测模型;所述漏洞检测模型被配置或编程为用于执行权利要求1~8之一所述方法的步骤。
CN202110361497.XA 2021-04-02 2021-04-02 基于深度学习模型压缩的漏洞检测方法、系统及移动设备 Pending CN113076544A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110361497.XA CN113076544A (zh) 2021-04-02 2021-04-02 基于深度学习模型压缩的漏洞检测方法、系统及移动设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110361497.XA CN113076544A (zh) 2021-04-02 2021-04-02 基于深度学习模型压缩的漏洞检测方法、系统及移动设备

Publications (1)

Publication Number Publication Date
CN113076544A true CN113076544A (zh) 2021-07-06

Family

ID=76614907

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110361497.XA Pending CN113076544A (zh) 2021-04-02 2021-04-02 基于深度学习模型压缩的漏洞检测方法、系统及移动设备

Country Status (1)

Country Link
CN (1) CN113076544A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114024762A (zh) * 2021-11-11 2022-02-08 湖南大学 一种基于S-R分析和FASSA-SVM的LDoS攻击检测方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020033898A1 (en) * 2018-08-09 2020-02-13 Board Of Trustees Of Michigan State University Systems and methods for providing flexible, multi-capacity models for use of deep neural networks in mobile devices
CN111241550A (zh) * 2020-01-08 2020-06-05 湖南大学 基于二进制映射和深度学习的漏洞检测方法
CN112256349A (zh) * 2020-10-26 2021-01-22 重庆邮电大学 一种基于ssa-sa算法的移动边缘计算任务卸载方法
CN112329934A (zh) * 2020-11-17 2021-02-05 江苏科技大学 一种基于改进麻雀搜索算法的rbf神经网络优化算法
CN112396181A (zh) * 2020-12-31 2021-02-23 之江实验室 一种卷积神经网络通用压缩架构的自动剪枝方法及平台
CN112465114A (zh) * 2020-11-25 2021-03-09 重庆大学 基于优化通道剪枝的快速目标检测方法及系统
CN112465119A (zh) * 2020-12-08 2021-03-09 武汉理工光科股份有限公司 一种基于深度学习的消防险情预警方法及装置
CN112485692A (zh) * 2020-11-12 2021-03-12 李忠 一种基于麻雀搜索和最小二乘支持向量机的电池健康状态估计与剩余寿命预测方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020033898A1 (en) * 2018-08-09 2020-02-13 Board Of Trustees Of Michigan State University Systems and methods for providing flexible, multi-capacity models for use of deep neural networks in mobile devices
CN111241550A (zh) * 2020-01-08 2020-06-05 湖南大学 基于二进制映射和深度学习的漏洞检测方法
CN112256349A (zh) * 2020-10-26 2021-01-22 重庆邮电大学 一种基于ssa-sa算法的移动边缘计算任务卸载方法
CN112485692A (zh) * 2020-11-12 2021-03-12 李忠 一种基于麻雀搜索和最小二乘支持向量机的电池健康状态估计与剩余寿命预测方法
CN112329934A (zh) * 2020-11-17 2021-02-05 江苏科技大学 一种基于改进麻雀搜索算法的rbf神经网络优化算法
CN112465114A (zh) * 2020-11-25 2021-03-09 重庆大学 基于优化通道剪枝的快速目标检测方法及系统
CN112465119A (zh) * 2020-12-08 2021-03-09 武汉理工光科股份有限公司 一种基于深度学习的消防险情预警方法及装置
CN112396181A (zh) * 2020-12-31 2021-02-23 之江实验室 一种卷积神经网络通用压缩架构的自动剪枝方法及平台

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
STRONGHORSE: "优化算法笔记(二十一)麻雀搜索算法", 《HTTPS://WWW.JIANSHU.COM/P/70ED22BC609D?IVK_SA=1024320U》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114024762A (zh) * 2021-11-11 2022-02-08 湖南大学 一种基于S-R分析和FASSA-SVM的LDoS攻击检测方法
CN114024762B (zh) * 2021-11-11 2022-08-16 湖南大学 一种基于S-R分析和FASSA-SVM的LDoS攻击检测方法

Similar Documents

Publication Publication Date Title
Aziz et al. Multi-objective whale optimization algorithm for content-based image retrieval
CN109978893B (zh) 图像语义分割网络的训练方法、装置、设备及存储介质
Goodfellow et al. Multi-digit number recognition from street view imagery using deep convolutional neural networks
CN111027069B (zh) 恶意软件家族检测方法、存储介质和计算设备
Salman et al. Classification of real and fake human faces using deep learning
CN110704840A (zh) 一种基于卷积神经网络cnn的恶意软件检测方法
CN110866530A (zh) 一种字符图像识别方法、装置及电子设备
US11720789B2 (en) Fast nearest neighbor search for output generation of convolutional neural networks
CN110674636B (zh) 一种用电行为分析方法
US11593619B2 (en) Computer architecture for multiplier-less machine learning
Dai et al. DA‐ActNN‐YOLOV5: Hybrid YOLO v5 Model with Data Augmentation and Activation of Compression Mechanism for Potato Disease Identification
Chen et al. Applying convolutional neural network for malware detection
CN111694954B (zh) 图像分类方法、装置和电子设备
US20200151603A1 (en) Distributable event prediction and machine learning recognition system
CN111144453A (zh) 构建多模型融合计算模型的方法及设备、网站数据识别方法及设备
CN114897764A (zh) 基于标准化通道注意力的肺结节假阳性排除方法及装置
Lanjewar et al. Modified transfer learning frameworks to identify potato leaf diseases
CN113076544A (zh) 基于深度学习模型压缩的漏洞检测方法、系统及移动设备
CN114065831A (zh) 基于多尺度随机深度残差网络的高光谱图像分类方法
CN117251813A (zh) 一种网络流量异常检测方法和系统
CN116029760A (zh) 消息推送方法、装置、计算机设备和存储介质
Nag et al. CNN based approach for post disaster damage assessment
Chen Air quality index forecasting via deep dictionary learning
Liawatimena et al. Fish classification system using YOLOv3-ResNet18 model for mobile phones
CN111581640A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20210706