[0001]
本发明涉及深度学习神经网络技术领域,更具体地,涉及一种僵尸网络检测方法及装置、电子设备、存储介质。
背景技术:[0002]
僵尸网络就是通过入侵网络空间内若干终端构建的可被攻击者远程控制的可协同计算机集群,经过多年的发展已成为当前互联网最严重的安全问题之一。其中,被控制的终端称为僵尸主机(bot),控制者(botmaster)可以通过命令与控制(command and control,c&c)信道对僵尸主机进行一对多的操控。作为一种大规模攻击平台,攻击者可以利用僵尸网络发起分布式拒绝服务(distributed denial of service,ddos)、垃圾邮件、钓鱼攻击、恶意软件分发、加密勒索、虚拟货币挖掘等大规模攻击活动,对互联网造成了极大的安全威胁。
[0003]
于是机器学习技术目前在僵尸网络检测领域得到了广泛应用,如朴素贝叶斯、支持向量机、随机森林等。在近些年的研究成果中,sherif saad等人在2011ninth annual international conference on privacy,security and trust会议中提出使用机器学习的方法来进行检测:detecting p2p botnets through network behavior analysis and machine learning,此方法虽然高效,但是必须依赖人工选取的特征,对于设计者有着较高要求的背景知识,而这些特征也为攻击者逃避模型检测提供了可乘之机。
[0004]
因此,现有技术采取深度学习神经网络来进行僵尸网络检测,如jos van roosmalen等人在symposium on applied computing会议上的论文:applying deep learning on packet flows for botnet detection(2018,4,1629-1636)所提出的。深度学习神经网络是通过多层神经网络结构与大量参数的调节,可以自动对样本的重要特征进行逐层抽象和提取,不需要进行大量的人工特征选取。但在实践中发现,由于网络复杂度较高,存在准确率低的问题。
技术实现要素:[0005]
本发明为克服上述现有技术所述的缺陷,提供一种僵尸网络检测方法及装置、电子设备、存储介质,能够提高僵尸网络的检测准确率。
[0006]
为解决上述技术问题,本发明的技术方案如下:
[0007]
本发明第一方面公开一种僵尸网络检测方法,包括以下步骤:
[0008]
对待检测网络的数据流进行预处理;
[0009]
将预处理后的数据流输入至预先训练好的cnn卷积神经网络,以获得数据流的空间维度特征;以及,将所述预处理后的数据流输入至预先训练好的双向长短记忆网络,以获得时间维度特征;
[0010]
将所述空间维度特征和所述时间维度特征输入至分类层,以使所述分类层根据所述空间维度特征和所述时间维度特征计算得到所述待检测网络为僵尸网络的概率值;所述
分类层分别连接于所述cnn卷积神经网络和所述双向长短记忆网络;
[0011]
根据所述概率值判断出所述待检测网络是否为僵尸网络。
[0012]
进一步地,所述cnn卷积神经网络包括依次连接的cnn卷积层、池化层、第一全连接层和输出层;所述将预处理后的数据流输入至预先训练好的cnn卷积神经网络,以获得数据流的空间维度特征,包括:
[0013]
将预处理后的数据流输入至预先训练好的cnn卷积神经网络,通过所述cnn卷积层对数据流进行卷积操作,以提取出数据流的特征,然后将所述数据流的特征输入至所述池化层进行池化操作,将池化操作后获得的空间维度特征经所述第一全连接层至所述输出层进行输出。
[0014]
进一步地,所述cnn卷积层包括32个卷积核,每个所述卷积核的大小为10
×
10,卷积步长为1;所述池化层包括最大池化层或者平均池化层。
[0015]
进一步地,所述的双向长短记忆网络包括依次连接的第一lstm层、第二全连接层和第二lstm层;所述第一lstm层包括50个lstm单元,所述第二全连接层包括128个神经元,所述第二lstm层包括10个lstm单元。
[0016]
进一步地,所述将所述空间维度特征和所述时间维度特征输入至分类层,以使所述分类层根据所述空间维度特征和所述时间维度特征计算得到所述待检测网络为僵尸网络的概率值之前,所述方法还包括:
[0017]
将所述空间维度特征和所述时间维度特征分别输入至dropout层,以使所述dropout层以预设条件对所述空间维度特征进行选择以获得第一输出结果,以及,使所述dropout层以所述预设条件对所述时间维度特征进行选择以获得第二输出结果;所述dropout层分别连接于所述cnn卷积神经网络、所述双向长短记忆网络和分类层;
[0018]
以及,所述将所述空间维度特征和所述时间维度特征输入至分类层,以使所述分类层根据所述空间维度特征和所述时间维度特征计算得到所述待检测网络为僵尸网络的概率值,包括:
[0019]
将所述第一输出结果和所述第二输出结果输入至所述分类层,以使所述分类层根据所述第一输出结果和所述第二输出结果计算得到所述待检测网络为僵尸网络的概率值。
[0020]
本发明第二方面公开一种僵尸网络检测装置,包括:
[0021]
预处理单元,用于对待检测网络的数据流进行预处理;
[0022]
第一特征提取单元,用于将预处理后的数据流输入至预先训练好的cnn卷积神经网络,以获得数据流的空间维度特征;
[0023]
第二特征提取单元,用于将所述预处理后的数据流输入至预先训练好的双向长短记忆网络,以获得时间维度特征;
[0024]
分类单元,用于将所述空间维度特征和所述时间维度特征输入至分类层,以使所述分类层根据所述空间维度特征和所述时间维度特征计算得到所述待检测网络为僵尸网络的概率值;所述分类层分别连接于所述cnn卷积神经网络和所述双向长短记忆网络;
[0025]
判断单元,用于根据所述概率值判断出所述待检测网络是否为僵尸网络。
[0026]
进一步地,所述cnn卷积神经网络包括依次连接的cnn卷积层、池化层、第一全连接层和输出层;所述第一特征提取单元,具体用于将预处理后的数据流输入至预先训练好的cnn卷积神经网络,通过所述cnn卷积层对数据流进行卷积操作,以提取出数据流的特征,然
后将所述数据流的特征输入至所述池化层进行池化操作,将池化操作后获得的空间维度特征经所述第一全连接层至所述输出层进行输出。
[0027]
进一步地,所述cnn卷积层包括32个卷积核,每个所述卷积核的大小为10
×
10,卷积步长为1;所述池化层包括最大池化层或者平均池化层。
[0028]
进一步地,所述双向长短记忆网络包括依次连接的第一lstm层、第二全连接层和第二lstm层;所述第一lstm层包括50个lstm单元,所述第二全连接层包括128个神经元,所述第二lstm层包括10个lstm单元。
[0029]
进一步地,所述装置还包括泛化单元,用于在所述分类单元将所述空间维度特征和所述时间维度特征输入至分类层,以使所述分类层根据所述空间维度特征和所述时间维度特征计算得到所述待检测网络为僵尸网络的概率值之前,将所述空间维度特征和所述时间维度特征分别输入至dropout层,以使所述dropout层以预设条件对所述空间维度特征进行选择以获得第一输出结果,以及,使所述dropout层以所述预设条件对所述时间维度特征进行选择以获得第二输出结果;所述dropout层分别连接于所述cnn卷积神经网络、所述双向长短记忆网络和分类层;
[0030]
以及,所述分类单元,具体用于将所述第一输出结果和所述第二输出结果输入至所述分类层,以使所述分类层根据所述第一输出结果和所述第二输出结果计算得到所述待检测网络为僵尸网络的概率值。
[0031]
本发明实施例第三方面公开一种电子设备,包括:
[0032]
存储有可执行程序代码的存储器;
[0033]
与所述存储器耦合的处理器;
[0034]
所述处理器调用所述存储器中存储的所述可执行程序代码,用于执行本发明实施例第一方面公开的一种僵尸网络检测方法。
[0035]
本发明实施例第四方面公开一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序,其中,所述计算机程序使得计算机执行本发明实施例第一方面公开的一种僵尸网络检测方法。所述计算机可读存储介质包括rom/ram、磁盘或光盘等。
[0036]
本发明实施例第五方面公开一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得计算机执行第一方面的任意一种方法的部分或全部步骤。
[0037]
与现有技术相比,本发明技术方案的有益效果是:本发明公开一种僵尸网络检测方法及装置、电子设备、存储介质,通过对待检测网络的数据流进行预处理,将预处理后的数据流分别输入至预先训练好的cnn卷积神经网络和双向长短记忆网络,通过cnn卷积神经网络提取获得数据流的空间维度特征,以及通过双向长短记忆网络提取获得时间维度特征,最后将空间维度特征和时间维度特征输入至分类层,以使分类层根据空间维度特征和时间维度特征计算得到待检测网络为僵尸网络的概率值,根据概率值判断出待检测网络是否为僵尸网络,从而能够基于多层监督学习,利用cnn卷积神经网络对数据流进行空间特征的识别,以及利用双向长短记忆网络获取输入各单元之间的依赖关系,更深层地挖掘数据流在时间序列上的特征,进而提高僵尸网络的检测准确率。同时,相比传统的模式识别方法,具有更好的自适应性和容错能力,应用范围更加广泛。
附图说明
[0038]
图1是本发明实施例公开的一种僵尸网络检测方法的流程图。
[0039]
图2是本发明实施例公开的一种cnn-bilstm模型的网络架构示意图。
[0040]
图3是本发明实施例公开的一种僵尸网络检测装置的结构示意图。
[0041]
图4是本发明实施例公开的一种电子设备的结构示意图。
[0042]
其中:301、预处理单元;302、第一特征提取单元;303、第二特征提取单元;304、分类单元;305、判断单元;401、存储器;402、处理器。
具体实施方式
[0043]
附图仅用于示例性说明,不能理解为对本专利的限制;
[0044]
下面结合附图和实施例对本发明的技术方案做进一步的说明。
[0045]
实施例1
[0046]
请参阅图1,图1是本发明实施例公开的一种僵尸网络检测方法的流程图。如图1所示,该方法包括:
[0047]
s1:对待检测网络的数据流进行预处理。
[0048]
其中,数据流具体为僵尸网络流量。
[0049]
可选地,在执行步骤s2之前,可以先获取获取公开数据集,对公开数据集的数据进行预处理,得到训练数据集和测试数据集。
[0050]
其中,可以从网上获取相关的公开数据集,比如isot 2010数据集,该数据集混合了蜜网法国分部(french chapter of honeynet)、匈牙利的爱立信研究所(ericsson research in hungray)等多个项目的公开数据,包括storm和zeus这2种p2p僵尸网络以及http、p2p应用(例如bittorrent)、游戏等多种非恶意流量。接着采用pkt2flow工具将存储格式为pcap的公开数据集的数据进行分组转化为数据流,得到训练数据集和测试数据集。
[0051]
然后,分别搭建cnn卷积神经网络和双向长短记忆网络(又称bilstm网络),并利用训练数据集中的数据流分别对cnn卷积神经网络和双向长短记忆网络进行训练,以及利用测试数据集中的数据流分别对cnn卷积神经网络和双向长短记忆网络进行测试,获得训练好的cnn卷积神经网络和双向长短记忆网络。
[0052]
s2:将预处理后的数据流输入至预先训练好的cnn卷积神经网络,以获得数据流的空间维度特征;以及,将预处理后的数据流输入至预先训练好的双向长短记忆网络,以获得时间维度特征。
[0053]
其中,cnn卷积神经网络和双向长短记忆网络具体可以是cnn-bilstm模型中互相并列的两个子网络,如图2所示,该cnn-bilstm模型可以包括cnn卷积神经网络、bilstm网络、dropout层和分类层。可选地,cnn-bilstm模型所包括的cnn卷积神经网络、bilstm网络可以是互相并列的关系,并且cnn卷积神经网络和bilstm网络各自连接有一个dropout层,最后共同连接一个分类层。
[0054]
步骤s2包括:将预处理后的数据流输入至预先训练好的cnn-bilstm模型,通过cnn-bilstm模型的cnn卷积神经网络提取获得数据流的空间维度特征,以及,通过cnn-bilstm模型的双向长短记忆网络提取获得数据流的时间维度特征。
[0055]
可选地,cnn卷积神经网络可以包括依次连接的cnn卷积层、池化层、第一全连接层
和输出层;那么,在cnn卷积神经网络中,首先可以通过cnn卷积层对数据流进行卷积操作,以提取出数据流的特征,然后将数据流的特征输入至池化层进行池化操作(又称为欠采样或下采样),主要用于特征降维、压缩数据和参数的数量,减小过拟合,同时提高模型的容错性。池化层具体可以是最大池化(max pooling)层或者平均池化(average pooling)层;最后将池化操作后获得的空间维度特征经过第一全连接层至输出层进行输出。其中,cnn卷积层可包括32个卷积核(又称过滤器),每个卷积核的大小为10
×
10,卷积步长为1。
[0056]
可选地,双向长短记忆网络的基础构件可以采用lstm层,包括第一lstm层、第二全连接层和第二lstm层;其中,第一lstm层可包括50个lstm单元,第二全连接层可包括128个神经元,第二lstm层可包括10个lstm单元。
[0057]
其中,lstm层是在门控(gated rnn,rnn)网络层的基础上进行改进的变体。rnn的每一个细胞的隐藏向量h
t
是由输入向量q
t
和前一个细胞的隐藏向量h
t-1
共同决定的,具体的计算过程为h
t
=φo,其中,o是非线性激活函数,一般是tanh函数或sigmoid函数;w和b是可训练的参数。但是简单的rnn网络在反向传播中存在梯度爆炸或者梯度消失问题,从而限制了网络学习期依赖的能力。为了解决长期依赖问题,基于门控rnn的lstm被提出,lstm引入了3个门控单元,分别是遗忘门f
t
、输入门i
t
、和输出门o
t
,计算公式依次为:
[0058][0059][0060][0061]
其中,σ为sigmoid函数。
[0062]
传统的lstm网络从前向后编码句子,只掌握了从前到后的上下文信息,没有掌握从后到前的上下文信息,所以无法表示输入的“上下文”之间的关系,而将前向lstm网络和后向lstm网络组成双向lstm网络(即bilstm网络)后,可以双向学习上下文信息,从而能够提高特征提取的准确性,进而提高僵尸网络的检测准确率。
[0063]
s3:将空间维度特征和时间维度特征输入至分类层,以使分类层根据空间维度特征和时间维度特征计算得到待检测网络为僵尸网络的概率值。其中,分类层分别连接于cnn卷积神经网络和双向长短记忆网络。
[0064]
可选地,cnn-bilstm模型还包括dropout层,dropout层分别连接于cnn卷积神经网络、双向长短记忆网络和分类层;在执行步骤s3之前,还可以将空间维度特征和时间维度特征分别输入至dropout层,以使dropout层以预设条件对空间维度特征进行选择以获得第一输出结果,以及,使dropout层以预设条件对时间维度特征进行选择以获得第二输出结果;相应地,步骤s3包括:将第一输出结果和第二输出结果输入至分类层以使分类层根据第一输出结果和第二输出结果计算得到待检测网络为僵尸网络的概率值。
[0065]
其中,dropout层可以作为训练深度神经网络的一种trick供选择,其可以在每个训练批次中,预设如让一半的特征检测器(即隐层节点)的值为0,以忽略一半的特征检测器的条件,对空间维度特征和时间维度特征分别进行选择筛减,这种方式可以减少特征检测器间的相互作用,防止某些检测器需要依赖其它检测器才能发挥作用,可以明显地减少过拟合现象。
[0066]
相比而言,没有dropout的网络计算公式如下:
[0067][0068][0069]
式中,l表示的是隐藏层的索引,z
(l)
表示的是输入向量层,y
(l)
表示的是输入向量,w
(l)
和b
(l)
是对应层的权重和偏置,f可以表示为任意一个激活函数;
[0070]
而采用dropout的网络计算公式如下:
[0071][0072][0073][0074][0075]
式中,r
(l)
是单独的向量,作为伯努利随机变量,它的每个变量的概率p为1,bernoulli函数是为了生成概率r向量,也就是随机生成一个0、1的向量,表示经过减少神经元处理之后的输出。
[0076]
可见,实施该实施方式,可以通过dropout层概率性地忽略部分特征提取器,进而减少过拟合现象,避免模型的过拟合,进而减小cnn-bilstm模型的神经单元规模,使得cnn-bilstm模型具有更好的泛化能力。
[0077]
s4:根据概率值判断出待检测网络是否为僵尸网络。其中,概率值高于一定阈值的则可以判定为僵尸网络,概率值低于一定阈值的判定不是为僵尸网络。
[0078]
步骤s3中,可以将空间维度特征和时间维度特征输入至softmax分类层,并通过以下公式(10)计算出待检测网络为僵尸网络的概率值y
i
作为softmax分类层的输出结果,然后步骤s4中可以根据概率值y
i
判断出待检测网络是否为僵尸网络:
[0079][0080]
其中,z是dropout层的第一输出结果和第二输出结果,c表示维度。
[0081]
可选地,当概率值高于指定阈值时,判定待检测网络为僵尸网络;当概率值低于指定阈值时,判定待检测网络不是僵尸网络;或者,当概率值低于指定阈值时,判定待检测网络为僵尸网络;当概率值高于指定阈值时,判定待检测网络不是僵尸网络。总之,根据概率值可以判断出待检测网络是或不是僵尸网络。
[0082]
本实施例提供一种僵尸网络检测方法,通过对待检测网络的数据流进行预处理,将预处理后的数据流分别输入至预先训练好的cnn卷积神经网络和双向长短记忆网络,通过cnn卷积神经网络提取获得数据流的空间维度特征,以及通过双向长短记忆网络提取获得时间维度特征,最后将空间维度特征和时间维度特征输入至分类层,以使分类层根据空间维度特征和时间维度特征计算得到待检测网络为僵尸网络的概率值,根据概率值判断出待检测网络是否为僵尸网络,从而能够基于多层监督学习,利用cnn卷积神经网络对数据流进行空间特征的识别,以及利用双向长短记忆网络获取输入各单元之间的依赖关系,更深层地挖掘数据流在时间序列上的特征,进而提高僵尸网络的检测准确率。同时,相比传统的模式识别方法,具有更好的自适应性和容错能力,应用范围更加广泛。
[0083]
实施例2
[0084]
请参阅图3,图3是本发明实施例公开的一种僵尸网络检测装置的结构示意图。如图3所示,该装置包括预处理单元301、第一特征提取单元302、第二特征提取单元303、分类单元304和判断单元305,其中:
[0085]
预处理单元301,用于对待检测网络的数据流进行预处理;
[0086]
第一特征提取单元302,用于将预处理后的数据流输入至预先训练好的cnn卷积神经网络,以获得数据流的空间维度特征;
[0087]
第二特征提取单元303,用于将预处理后的数据流输入至预先训练好的双向长短记忆网络,以获得时间维度特征;
[0088]
分类单元304,用于将空间维度特征和时间维度特征输入至分类层,以使分类层根据空间维度特征和时间维度特征计算得到待检测网络为僵尸网络的概率值;分类层分别连接于cnn卷积神经网络和双向长短记忆网络;
[0089]
判断单元305,用于根据概率值判断出待检测网络是否为僵尸网络。
[0090]
可选地,cnn卷积神经网络包括依次连接的cnn卷积层、池化层、第一全连接层和输出层;第一特征提取单元302,具体用于将预处理后的数据流输入至预先训练好的cnn卷积神经网络,通过cnn卷积层对数据流进行卷积操作,以提取出数据流的特征,然后将数据流的特征输入至池化层进行池化操作,将池化操作后获得的空间维度特征经第一全连接层至输出层进行输出。
[0091]
可选地,cnn卷积层包括32个卷积核,每个卷积核的大小为10
×
10,卷积步长为1;池化层包括最大池化层或者平均池化层。
[0092]
可选地,双向长短记忆网络包括依次连接的第一lstm层、第二全连接层和第二lstm层;第一lstm层包括50个lstm单元,第二全连接层包括128个神经元,第二lstm层包括10个lstm单元。
[0093]
可选地,装置还可以包括未图示的泛化单元,用于在分类单元将空间维度特征和时间维度特征输入至分类层,以使分类层根据空间维度特征和时间维度特征计算得到待检测网络为僵尸网络的概率值之前,将空间维度特征和时间维度特征分别输入至dropout层,以使dropout层以预设条件对空间维度特征进行选择以获得第一输出结果,以及,使dropout层以预设条件对时间维度特征进行选择以获得第二输出结果;dropout层分别连接于cnn卷积神经网络、双向长短记忆网络和分类层;
[0094]
以及,分类单元304,具体用于将第一输出结果和第二输出结果输入至分类层,以使分类层根据第一输出结果和第二输出结果计算得到待检测网络为僵尸网络的概率值。
[0095]
本实施例提供一种僵尸网络检测装置,通过对待检测网络的数据流进行预处理,将预处理后的数据流分别输入至预先训练好的cnn卷积神经网络和双向长短记忆网络,通过cnn卷积神经网络提取获得数据流的空间维度特征,以及通过双向长短记忆网络提取获得时间维度特征,最后将空间维度特征和时间维度特征输入至分类层,以使分类层根据空间维度特征和时间维度特征计算得到待检测网络为僵尸网络的概率值,根据概率值判断出待检测网络是否为僵尸网络,从而能够基于多层监督学习,利用cnn卷积神经网络对数据流进行空间特征的识别,以及利用双向长短记忆网络获取输入各单元之间的依赖关系,更深层地挖掘数据流在时间序列上的特征,进而提高僵尸网络的检测准确率。同时,相比传统的
模式识别方法,具有更好的自适应性和容错能力,应用范围更加广泛。
[0096]
实施例3
[0097]
请参阅图4,图4是本发明实施例公开的一种电子设备的结构示意图。如图4所示,该电子设备包括:
[0098]
存储有可执行程序代码的存储器401;
[0099]
与存储器401耦合的处理器402;
[0100]
其中,处理器402调用存储器401中存储的可执行程序代码,执行上述各实施例中描述的僵尸网络检测方法。
[0101]
需要说明的是,图4所示的电子设备还可以包括电源、输入按键、扬声器、麦克风、屏幕、rf电路、wi-fi模块、蓝牙模块、传感器等未显示的组件,本实施例不作赘述。还可以包括扬声器模组、摄像模组、显示屏、光投射模组、电池模组、无线通信模组(如移动通信模块、wifi模块、蓝牙模块等)、传感器模组(如接近传感器、压力传感器等)、输入模组(如麦克风、按键)以及用户接口模组(如充电接口、对外供电接口、卡槽、有线耳机接口等)等未显示的部件。
[0102]
本申请实施例公开一种计算机可读存储介质,其存储计算机程序,其中,该计算机程序使得计算机执行上述各实施例中描述的僵尸网络检测方法。
[0103]
本申请实施例还公开一种计算机程序产品,其中,当计算机程序产品在计算机上运行时,使得计算机执行如以上各方法实施例中的方法的部分或全部步骤。
[0104]
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。