本发明涉及数据安全检测和病毒识别的技术领域,特别涉及一种基于深度学习卷积神经网络的计算机病毒检测方法及深度学习神经网络的压缩方法。
背景技术:
目前,盗取个人信息数据、获取网上交易密码、比特币勒索等事件频频出现,现有的通过特征码对比、签名或者基于启发式等病毒检测安全机制已无法很好的处理大数据时代下大量未知、且使用了高新混淆反检测技术的病毒。已有研究表明,大数据时代下需要深度学习技术,基于深度神经网络的自主学习检测恶意程序是病毒检测技术的发展趋势,将给计算机安全带来深远影响。但是,深度神经网络模型通常具有庞大的参数,因而要求要部署应用该模型的设备必须要有较高的计算性能和较大的硬件资源,这使得深度神经网络模型很难部署在嵌入式设备上。
技术实现要素:
针对现有技术存在的缺陷,本发明提供一种基于深度学习卷积神经网络的计算机病毒检测方法。该计算机病毒检测方法的检测机制原理设计为:首先对病毒数据预处理,对使用了加壳技术为隐藏其真实意图躲避杀毒软件检测或为压缩体积便于传播渗透的病毒进行查壳和脱壳处理;采用b2m算法将检测病毒映射为二进制灰度图像,计算灰度共生矩阵,以灰度共生矩阵作为深度学习卷积神经网络cnn的输入,将传统视觉特征与深度神经网络的整合问题;最后cnn对病毒进行高确率的检测识别。该计算机病毒检测系统是将上述卷积神经网络模型进行了精度无损压缩并将上述检测方法嵌入到app中,形成一个适用于嵌入式设备的计算机病毒检测系统,解决了深度神经网络模型长期因参数庞大需消耗大量硬件资源而无法应用到嵌入式设备上的问题。
本发明提供一种基于深度学习卷积神经网络的计算机病毒检测方法,其特征在于,所述计算机病毒检测方法包括如下步骤:
步骤s1,对待检测数据进行预处理;
步骤s2,获取预处理之后的待检测数据的灰度共生矩阵;
步骤s3,将灰度共生矩阵输入到深度学习卷积神经网络cnn模型中,深度学习卷积神经网络cnn模型输出待检测的数据是否为病毒。
优选地,步骤s1具体包括如下步骤:
步骤s101,获取所述待检测数据对应的特征码或者信息熵;
步骤s102,基于该特征码或者该信息熵,对所述待测数据依次进行查壳处理并获取查壳结果;
步骤s103,如果待检测数据具有壳,则对待检测的数据进行脱壳处理。
优选地,所述步骤s2具体包括,
步骤s201,对预处理之后的待检测的数据进行关于b2m算法的图像变换处理,获得二进制灰度图像;
步骤s202,对该二进制灰度图像进行共生矩阵计算处理,以此得到关于该二进制灰度图像的灰度共生矩阵。
优选地,在步骤s202中,首先获取水平灰度共生矩阵、垂直灰度共生矩阵、45度灰度共生矩阵和135度灰度共生矩阵,然后计算这四个矩阵的平均值作为所述灰度共生矩阵。
优选地,步骤s3中的深度学习卷积神经网络cnn模型在使用之前需要进行训练,训练的步骤为所述步骤s1-s3,训练过程中的待检测数据为预先确定的样本。
优选地,训练之后的深度学习卷积神经网络cnn模型还需要进行压缩,压缩步骤如下:
步骤s3011,对经过该训练处理的所述深度学习卷积神经网络cnn模型进行裁剪处理;
步骤s3012,基于预设权值量化和权值共享模式,对裁切后的深度学习卷积神经网络cnn模型进行关于比特数的减小处理;
步骤s3013,基于哈弗曼编码模式,对该深度学习卷积神经网络进行编码处理。
优选地,所述步骤s3011具体的裁剪处理为将深度学习卷积神经网络cnn模型中神经连接的权值小于设定值的神经连接去掉,并且去掉之后,对剩余的神经元连接的权值进行更新。
本发明还提供了一种深度学习神经网络的压缩方法,其特征在于,具体包括如下步骤:
步骤s3011,对经过该训练处理的所述深度学习卷积神经网络cnn模型进行裁剪处理;
步骤s3012,基于预设权值量化和权值共享模式,对裁切后的深度学习卷积神经网络cnn模型进行关于比特数的减小处理;
步骤s3013,基于哈弗曼编码模式,对该深度学习卷积神经网络进行编码处理。
优选地,所述步骤s3011具体的裁剪处理为将深度学习卷积神经网络cnn模型中神经连接的权值小于设定值的神经连接去掉,并且去掉之后,对剩余的神经元连接的权值进行更新。
相比于现有技术,该基于深度学习卷积神经网络的计算机病毒检测方法和系统的检测机制原理设计为:首先对病毒数据预处理,对使用了加壳技术为隐藏其真实意图躲避杀毒软件检测或为压缩体积便于传播渗透的病毒进行查壳和脱壳处理;采用b2m算法将检测病毒映射为二进制灰度图像,计算灰度共生矩阵,提取纹理特征向量,以纹理特征向量作为深度学习卷积神经网络cnn的输入,深度学习卷积神经网络cnn对病毒进行学习与识别,并且根据传统视觉特征与深度神经网络的整合问题,设计并训练出深度学习卷积神经网络cnn的病毒检测网络模型,使该病毒检测网络模型能精准高效的检测病毒;此外,该计算机病毒检测方法和系统还通过深度压缩算法将训练出来的深度学习卷积神经网络cnn进行无精度损失的深度压缩,使其深度网络模型能部署运行在嵌入式系统上,解决深度网络模型长期因参数庞大需消耗大量硬件资源而难以部署在嵌入式设备上应用的问题。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种基于深度学习卷积神经网络的计算机病毒检测方法的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参阅图1,为本发明实施例提供的一种基于深度学习卷积神经网络的计算机病毒检测方法的流程示意图。该计算机病毒检测方法包括如下步骤:
步骤s1,对待检测数据进行预处理;
步骤s2,获取预处理之后的待检测数据的灰度共生矩阵;
步骤s3,将灰度共生矩阵输入到深度学习卷积神经网络cnn模型中,深度学习卷积神经网络cnn模型输出待检测的数据是否为病毒。
步骤s1中所述的预处理包括查壳处理和脱壳处理。大部分病毒为了隐藏起真实意图而躲避杀毒软件的检测或者是为了压缩体积便于传播和渗透都经过了加壳处理,因此,需要对待检测的数据进行查壳和脱壳处理。通过查壳处理,能够获知待测样本是否加壳、加的什么壳以及使用的什么加壳技术,目前查壳常用的查壳技术有基于特征码和基于信息熵。脱壳是用于去掉待测样本所加的壳,还原待测样本最本质的结构,用于提升病毒检测的准确率。具体地,查壳和脱壳均采用现有的软件。
为此步骤s1具体包括如下步骤:
步骤s101,获取所述待检测数据对应的特征码或者信息熵;
步骤s102,基于该特征码或者该信息熵,对所述待测数据依次进行查壳处理并获取查壳结果;
步骤s103,如果待检测数据具有壳,则对待检测的数据进行脱壳处理。
优选地,所述步骤s2具体包括,
步骤s201,对预处理之后的待检测的数据进行关于b2m算法的图像变换处理,获得二进制灰度图像。将样本映射为灰度图像能够将样本作为可视化图像来处理。
步骤s202,对该二进制灰度图像进行共生矩阵计算处理,以此得到关于该二进制灰度图像的灰度共生矩阵。通过灰度共生矩阵能够获取图像的纹理信息进而将纹理信息作为样本识别的主要判别依据,由于纹理对图像识别具有显著的效果,这样能够提高对待检测数据的识别准确率。其中,在计算灰度共生矩阵时,首先计算水平灰度共生矩阵、垂直灰度共生矩阵、45度灰度共生矩阵和135度灰度共生矩阵,然后取这四个矩阵的平均值作为最终的灰度共生矩阵。具体地,每一个灰度共生矩阵的获取采用现有技术。
所述步骤s3中的深度学习卷积神经网络cnn模型在使用之前需要进行训练,训练的步骤采用上述步骤s1-s3,训练时采用的数据为预先选定的数据,通过训练能够使cnn模型不断的学习而提高对病毒的识别准确率。
由于深度学习卷积神经网络是具有庞大参数权重的网络模型,其需要非常大的容量存储空间及较高的硬件要求,这使得深度学习卷积神经网络cnn模型难以部署在嵌入式系统或者硬件资源受阻的系统上,为此需要对cnn模型进行压缩,压缩步骤如下:
步骤s3011,对经过该训练处理的所述深度学习卷积神经网络进行依次网络裁剪处理;
步骤s3012,基于预设权值量化和权值共享模式,对经过所述网络裁剪处理和所述网络权值更新处理的该深度学习卷积神经网络进行关于比特数的减小处理;
步骤s3013,基于哈弗曼编码模式,对该深度学习卷积神经网络cnn模型进行编码处理以对cnn模型进一步压缩。
所述步骤s3011具体的裁剪处理为将深度学习卷积神经网络cnn模型中神经连接的权值小于设定值的神经连接去掉,并且去掉之后,对剩余的神经元连接的权值进行更新。
在上述步骤s3中的深度学习卷积神经网络cnn模型为经过训练及压缩后的模型。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
1.一种基于深度学习卷积神经网络的计算机病毒检测方法,其特征在于,所述计算机病毒检测方法包括如下步骤:
步骤s1,对待检测数据进行预处理;
步骤s2,获取预处理之后的待检测数据的灰度共生矩阵;
步骤s3,将灰度共生矩阵输入到深度学习卷积神经网络cnn模型中,深度学习卷积神经网络cnn模型输出待检测的数据是否为病毒。
2.根据权利要求1所述的方法,其特征在于,步骤s1具体包括如下步骤:
步骤s101,获取所述待检测数据对应的特征码或者信息熵;
步骤s102,基于该特征码或者该信息熵,对所述待测数据依次进行查壳处理并获取查壳结果;
步骤s103,如果待检测数据具有壳,则对待检测的数据进行脱壳处理。
3.根据权利要求1所述的方法,其特征在于,所述步骤s2具体包括,
步骤s201,对预处理之后的待检测的数据进行关于b2m算法的图像变换处理,获得二进制灰度图像;
步骤s202,对该二进制灰度图像进行共生矩阵计算处理,以此得到关于该二进制灰度图像的灰度共生矩阵。
4.根据权利要求3所述的方法,其特征在于,在步骤s202中,首先获取水平灰度共生矩阵、垂直灰度共生矩阵、45度灰度共生矩阵和135度灰度共生矩阵,然后计算这四个矩阵的平均值作为所述灰度共生矩阵。
5.根据权利要求1所述的方法,其特征在于,步骤s3中的深度学习卷积神经网络cnn模型在使用之前需要进行训练,训练的步骤为所述步骤s1-s3,训练过程中的待检测数据为预先确定的样本。
6.根据权利要求5所述的方法,其特征在于,训练之后的深度学习卷积神经网络cnn模型还需要进行压缩,压缩步骤如下:
步骤s3011,对经过该训练处理的所述深度学习卷积神经网络cnn模型进行裁剪处理;
步骤s3012,基于预设权值量化和权值共享模式,对裁切后的深度学习卷积神经网络cnn模型进行关于比特数的减小处理;
步骤s3013,基于哈弗曼编码模式,对该深度学习卷积神经网络进行编码处理。
7.根据权利要求6所述的方法,其特征在于,所述步骤s3011具体的裁剪处理为将深度学习卷积神经网络cnn模型中神经连接的权值小于设定值的神经连接去掉,并且去掉之后,对剩余的神经元连接的权值进行更新。
8.一种深度学习神经网络的压缩方法,其特征在于,具体包括如下步骤:
步骤s3011,对经过该训练处理的所述深度学习卷积神经网络cnn模型进行裁剪处理;
步骤s3012,基于预设权值量化和权值共享模式,对裁切后的深度学习卷积神经网络cnn模型进行关于比特数的减小处理;
步骤s3013,基于哈弗曼编码模式,对该深度学习卷积神经网络进行编码处理。
9.根据权利要求8所述的压缩方法,其特征在于,所述步骤s3011具体的裁剪处理为将深度学习卷积神经网络cnn模型中神经连接的权值小于设定值的神经连接去掉,并且去掉之后,对剩余的神经元连接的权值进行更新。
技术总结