CN113076544A - 基于深度学习模型压缩的漏洞检测方法、系统及移动设备 - Google Patents
基于深度学习模型压缩的漏洞检测方法、系统及移动设备 Download PDFInfo
- 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
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 69
- 230000006835 compression Effects 0.000 title claims abstract description 32
- 238000007906 compression Methods 0.000 title claims abstract description 32
- 238000013136 deep learning model Methods 0.000 title claims abstract description 20
- 238000012549 training Methods 0.000 claims description 61
- 238000000034 method Methods 0.000 claims description 53
- 238000013138 pruning Methods 0.000 claims description 45
- 238000012360 testing method Methods 0.000 claims description 31
- 230000008569 process Effects 0.000 claims description 29
- 241000287127 Passeridae Species 0.000 claims description 25
- 238000013527 convolutional neural network Methods 0.000 claims description 16
- 238000010845 search algorithm Methods 0.000 claims description 12
- 239000011159 matrix material Substances 0.000 claims description 6
- 238000007781 pre-processing Methods 0.000 claims description 3
- 239000000126 substance Substances 0.000 claims description 2
- 238000011176 pooling Methods 0.000 description 22
- 238000012545 processing Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 230000004913 activation Effects 0.000 description 7
- 238000005065 mining Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012706 support-vector machine Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
- 238000012038 vulnerability analysis 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/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial 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]
-
- 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
- G06N3/082—Learning 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个剪枝结构则表示为以下形式:
x′nL为第n个剪枝结构的第L层的通道数目;第j个剪枝结构X′j的第i层的通道数目表示为x′ji={0.1xi,0.2xi,…,αxi};α={10%,20%,...,100%};i=1,2,……,L;
为第j个剪枝结构的适应度,Ttrain为训练数据集,Ttest为测试数据集,W′j为第j个剪枝结构X′j的权重集,acc(·)为在剪枝结构X′j,测试数据集Ttest下的精确度;适应度最大的剪枝结构为全局最优剪枝结构X′best,适应度最小的剪枝结构为全局最差剪枝结构X′worst,对适应度值排序,将适应度值最大的前PN只麻雀作为发现者,剩余的n-PN只麻雀作为加入者,从n只麻雀中随机选择SD只作为警戒者;每只所述麻雀对应一个剪枝结构;
其中,p∈[1,PN];t为当前迭代数;itermax为最大迭代次数;μ为(0,1]范围内的随机数;R2∈[0,1],表示预警值;ST∈[0.5,1],表示安全值;Q为服从正态分布的随机数;M为一个1*L的矩阵,其中元素均为1;
其中,s∈[1,SD];为第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层的通道数。那么该模型进行通道剪枝后的结构可能有种,这个组合的数目太过庞大,进行穷举的话难以实现,因此,首先将这个组合的数目缩小。对于模型各层的通道数按照{0.1xi,0.2xi,…,αxi}进行缩小,α={10%,20%,...,100%}。此时进行通道剪枝后的结构就有(10α)L,远远小于
x′nL为第n个结构的L层的通道数目。接下来,利用麻雀搜索算法逐步修改结构集,并选出最优的结构。
(3)计算每一种结构X′j={x′j1,x′j2,…,x′jL}的适应度,适应度为该结构的精确度,表示为:
Ttrain为训练数据集,Ttest为测试数据集,Wj′为该结构X′j的权重集,acc(·)即为在结构X′j,测试数据集Ttest下的精确度。适应度最大的结构为全局最优结构X′best,适应度最小的结构为全局最差结构X′worst。根据适应度值进行排序,将适应度值大的前PN只麻雀作为发现者,剩余的n-PN只作为加入者,从n只中随机选择sD只作为警戒者。
(4),在每次迭代过程中,需要更新第1~PN只发现者的位置,计算方法为:
p∈[1,PN],t为当前迭代数,itermax为最大迭代次数。μ为(0,1]范围内的随机数,R2属于[0,1]表示预警值,ST属于[0.5,1]表示安全值,Q为服从正态分布的随机数,M为一个1*L的矩阵,其中元素均为1。
(5)在每次迭代过程中,需要更新第PN+1~n只加入者的位置,计算方法为:
(6)在每次迭代过程中,更新SD只警戒者的位置,计算方法为:
s∈[1,SD],为第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个剪枝结构 表示为以下形式:
x′nL为第n个剪枝结构的第L层的通道数目;第j个剪枝结构X′j的第i层的通道数目表示为x′ji={0.1xi,0.2xi,…,αxi};α={10%,20%,…,100%};i=1,2,……,L;
B)利用下式计算剪枝结构的适应度:其中,为第j个剪枝结构的适应度,Ttrain为训练数据集,Ttest为测试数据集,W′j为第j个剪枝结构X′j的权重集,acc(·)为在剪枝结构X′j,测试数据集Ttest下的精确度;适应度最大的剪枝结构为全局最优剪枝结构X′best,对适应度值排序,将适应度值最大的前PN只麻雀作为发现者,剩余的n-PN只麻雀作为加入者,从n只麻雀中随机选择SD只作为警戒者;每个所述剪枝结构对应一只麻雀;
其中,p∈[1,PN];t为当前迭代数;itermax为最大迭代次数;μ为(0,1]范围内的随机数;R2∈[0,1],表示预警值;ST∈[0.5,1],表示安全值;Q为服从正态分布的随机数;M为一个1*L的矩阵,其中元素均为1;
其中,s∈[1,SD];为第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之一所述方法的步骤。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114024762A (zh) * | 2021-11-11 | 2022-02-08 | 湖南大学 | 一种基于S-R分析和FASSA-SVM的LDoS攻击检测方法 |
Citations (8)
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 | 李忠 | 一种基于麻雀搜索和最小二乘支持向量机的电池健康状态估计与剩余寿命预测方法 |
-
2021
- 2021-04-02 CN CN202110361497.XA patent/CN113076544A/zh active Pending
Patent Citations (8)
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)
Title |
---|
STRONGHORSE: "优化算法笔记(二十一)麻雀搜索算法", 《HTTPS://WWW.JIANSHU.COM/P/70ED22BC609D?IVK_SA=1024320U》 * |
Cited By (2)
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 |