攻击报文的识别方法及装置与流程

文档序号:13968659阅读:178来源:国知局

本发明涉及网络安全检测技术领域,特别涉及一种攻击报文的识别方法及装置。



背景技术:

目前,对于web攻击,普遍采用的是规则过滤的方法,例如:sql注入中频繁包含select、from等关键字,则设置相应针对该关键字的规则,一旦匹配成功,则认为当前访问为不安全访问。采用根据关键字的规则过滤的方式的缺陷包括:

1、防护效果因规则决定,很容易被黑客绕过;

2、存在大量的误报,经常拦截正常访问。



技术实现要素:

本发明实施例提供了一种攻击报文的识别方法,用以提高攻击报文识别的准确率,该方法包括:

获取预设场景的待识别报文;

将获取的预设场景的待识别报文转换成报文图像矩阵;

将待识别报文的报文图像矩阵输入预设场景的卷积神经网络模型,识别所述待识别报文;所述卷积神经网络模型根据预设场景的多个攻击报文样本生成。

本发明实施例还提供了一种攻击报文的识别装置,用以提高攻击报文识别的准确率,该装置包括:

获取单元,用于获取预设场景的待识别报文;

转换单元,用于将获取的预设场景的待识别报文转换成报文图像矩阵;

识别单元,用于将待识别报文的报文图像矩阵输入预设场景的卷积神经网络模型,识别所述待识别报文;所述卷积神经网络模型根据预设场景的多个攻击报文样本生成。

本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述攻击报文的识别方法。

本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有执行上述攻击报文的识别方法的计算机程序。

与现有技术中,采用根据关键字的规则过滤的攻击报文识别方案相比较,本发明实施例提供的技术方案:

首先,根据预设场景的大量的攻击报文样本生成预设场景的卷积神经网络模型,在获取到预设场景的待识别报文时,将获取的预设场景的待识别报文转换成报文图像矩阵,将待识别报文的报文图像矩阵输入预设场景的卷积神经网络模型,判断所述识别待识别报文是否为攻击报文,提高了攻击报文识别的准确率。

其次,本发明实施例提供的技术方案针对不同的场景,生成卷积神经网络模型,考虑到场景的卷积神经网络模型,在识别预设场景的攻击报文时,更加地提高了攻击报文识别的准确率。

综上,本发明实施例提供的攻击报文的识别方案,提高了攻击报文识别的准确率,从而提高了网络安全性。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:

图1是本发明实施例中攻击报文的识别方法的流程示意图;

图2是本发明实施例中卷积神经网络模型的结构示意图;

图3是本发明另一实施例中卷积神经网络模型的结构示意图;

图4是本发明实施例中攻击报文的识别装置的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。

由于发明人发现了现有技术存在的技术问题,提出了一种基于卷积神经网络的攻击报文的识别方案,该方案是基于卷积神经网络识别web攻击,即根据深度学习的原理,自动生成web攻击识别模型(下文提到的卷积神经网络模型),然后根据此模型识别sql注入等常见web攻击,弥补了现有web防护方案的不足。该方案是针对传统基于规则的防护方案产生的漏报误报等问题提出新的解决方案。下面对该基于卷积神经网络的攻击报文的识别方案详细介绍如下。

图1是本发明实施例中攻击报文的识别方法的流程示意图,如图1所示,该方法包括如下步骤:

步骤101:获取预设场景的待识别报文;

步骤102:将获取的预设场景的待识别报文转换成报文图像矩阵;

步骤103:将待识别报文的报文图像矩阵输入预设场景的卷积神经网络模型,识别所述待识别报文;所述卷积神经网络模型根据预设场景的多个攻击报文样本生成。

具体实施时,首先,使用大量预设场景的大量攻击报文样本,对神经网络进行训练生成卷积神经网络模型,在实际应用过程中,将获取的预设场景的待识别报文输入到卷积神经网络模型,利用预设场景的卷积神经网络模型,对预设场景的待识别报文进行识别,该攻击报文的识别方法的优点包括:

首先,根据预设场景的大量的攻击报文样本生成预设场景的卷积神经网络模型,在获取到预设场景的待识别报文时,将获取的预设场景的待识别报文转换成图像矩阵,将待识别报文的图像矩阵输入预设场景的卷积神经网络模型,判断所述识别待识别报文是否为攻击报文,提高了攻击报文识别的准确率。

其次,本发明实施例提供的技术方案针对不同的场景,生成卷积神经网络模型,考虑到场景的卷积神经网络模型,在识别预设场景的攻击报文时,更加地提高了攻击报文识别的准确率。

综上,本发明实施例提供的攻击报文的识别方案,提高了攻击报文识别的准确率,从而提高了网络安全性。

具体实施时,多个攻击报文样本可以是以报文图像矩阵的形式存在。

具体实施时,本发明实施例中场景的含义包括不同应用场景,例如不同类型的网站,不同业务领域背景的网站,正常流量与攻击流量的识别类型等等。本发明实施例提供的攻击报文的识别方案,在进行攻击报文识别时,考虑到了不同类型的网站,不同业务领域背景的网站,正常流量与攻击流量的识别类型等场景的攻击报文及卷积神经网络模型,提高了攻击报文识别的准确率。

具体实施时,将获取的预设场景的待识别报文转换成图像矩阵可以为44x44的图像矩阵,然后做图像识别;将44x44的图像矩阵输入预设场景的卷积神经网络模型,识别待识别报文。卷积神经网络一般应用于图像识别领域,该方案首次将卷积神经网络应用到网络安全检测领域,通过预设场景的卷积神经网络模型,识别预设场景的待识别报文(转换成图像矩阵的待识别报文),提高了攻击报文识别的准确率,从而极大地提高了网络安全性。

具体实施时,转换成的图像矩阵也可以不是44x44的图像矩阵,但因本发明实施例中攻击报文样本长度选择的是1936,所以本发明需用44x44的图像矩阵。

在一个实施例中,攻击报文的识别方法还可以包括:

采集实时识别出的预设场景的攻击报文;

在确定实时采集到的预设场景的攻击报文不存在于历史攻击报文样本中时,将实时采集到的预设场景的攻击报文生成实时攻击报文样本;

根据预设场景的实时攻击报文样本和存储的历史攻击报文样本,训练所述卷积神经网络模型。

具体实施时,在进行攻击报文识别的过程中,发现新类型攻击报文样本(不存在于历史攻击报文样本中的新的攻击报文样本)时,将新类型的预设场景的攻击报文生成实时攻击报文样本,结合预设场景的实时攻击报文样本和存储的历史攻击报文样本,训练所述卷积神经网络模型,以优化卷积神经网络模型,利用优化的卷积神经网络模型识别攻击报文,更加可以提高攻击报文识别的准确率。

现有技术中根据关键字的规则过滤的方式,防护规则需要频繁更新,增加了人工维护成本,并且需要专业安全人员维护,因此,基于以上分析,本发明实施例提供的识别攻击报文方案可以识别0day攻击,可以自动学习,基于深度学习神经网络可针对不同场景(不同用户,不同网站)生成独立的识别模型(卷积神经网络模型),同时在深度学习的过程中,还利用了实时采集的攻击报文样本和历史大数据中的攻击报文样本,自动训练卷积神经网络模型,在提高攻击报文识别率的基础上,还减小了人工维护的成本。

在一个实施例中,将实时采集到的预设场景的攻击报文生成实时攻击报文样本,可以包括:

将预设场景的攻击报文样本字符串转换成1936维度的向量,生成实时攻击报文样本;

根据预设场景的实时攻击报文样本和存储的历史攻击报文样本,训练所述卷积神经网络模型,可以包括:

将多个预设场景的实时攻击报文样本和存储的历史攻击报文样本生成训练样本矩阵、训练样本类型矩阵、测试样本矩阵和测试样本类型矩阵;

利用训练样本矩阵、训练样本类型矩阵、测试样本矩阵和测试样本类型矩阵训练所述卷积神经网络模型。

具体实施时,将预设场景的攻击报文样本字符串不是必须要转换成1936维度的向量,1936是发明人经过大量的实验工作,确定的经验长度。1936维度的向量为一个样本,多个样本在一起便形成了样本矩阵。

具体实施时,生成攻击报文样本的过程可以包括:

将样本字符串转换成1936维度的向量,如“admin")or("1"="1”可以转换为[1,1,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,1,1,0,1,1,1,0,1,0,0,1,1,1,0,0...0,0],通过该方法生成训练样本与测试样本矩阵:train_x,train_y,test_x,test_y。其中:train_x为训练样本矩阵,train_y为训练样本分类矩阵,如sql注入,xss等,test_x为测试样本矩阵,test_y为测试样本分类矩阵,上述分类的含义可以为:train_x中对应的报文的攻击类型,testx中对应的报文的攻击类型。

具体实施时,train_x是训练样本集合(矩阵),train_y是训练样本集合中每一训练样本对应的分类(类型);test_x是测试样本集合,test_y是测试样本集合中每一测试样本对应的分类(类型)。通过train_x,train_y作为训练样本,通过卷积神经网络算法生成卷积神经网络模型,test_x,test_y作为测试样本数据对卷积神经网络模型进行测试。

以下实施例中关于卷积神经网络模型中提到的报文图像可以指:测试样本矩阵图像、训练样本矩阵图像、待识别报文的图像。

在一个实施例中,如图2所示,所述卷积神经网络模型可以包括:

第一卷积层,用于对报文图像做卷积操作;所述第一卷积层的函数根据预设场景进行确定;

第一池化层,用于将进行卷积操作之后的报文图像的图像特征进行聚合;

第一隐含层,用于对图像特征聚合之后的报文图像数据进行降维处理。

具体实施时,上述第一卷积层的函数可以为conv2d(x,w),其中,x为输入矩阵,w为权值,卷积函数根据不同场景具体实现有所差异。对攻击报文样本做卷积操作:提取样本特征,对样本做更上一层的抽象,卷积神经网络的过程是通过每一层的卷积运算,使原始数据拥有了更高层次的抽象含义,从而达到或接近人类理解的事物的含义。比如有一张猫的图片,如何通过机器识别这是一张猫的图片呢,神经网络的思想就是使用大量的带有猫的图片作为样本,使用卷积计算(即对猫的图片进行特征提取)归纳猫的特征,从而建立模型。

具体实施时,上述第一池化层函数可以是:max_pool_2x2(x),该第一池化层将进行卷积操作之后的报文图像的图像特征进行聚合,降低了计算量,图像特征聚合具体方式可以是:将2x2的像素转化为1x1的像素。

具体实施时,上述第一隐含层的作用是对图像特征聚合之后的报文图像数据进行降维,减少计算复杂度。

在一个实施例中,如图3所示,所述卷积神经网络模型还可以包括:

第二卷积层,用于对经过第一卷积层卷积操作后的报文图像做进一步卷积操作;

第二池化层,用于将经过第一池化层图像特征聚合之后的报文图像做进一步图像特征聚合;

第二隐含层,用于对经过第一隐含层降维处理之后的报文图像,做进一步降维处理。

具体实施时,根据上述可知,卷积层包括两层(第一卷积层和第二卷积层)、池化层包括两层(第一池化层和第二池化层)、隐含层包括两层(第一隐含层和第二隐含层)的作用是:对特征进行进一步的提取,进行更高一层的抽象,用于提高卷积神经网络模型的精度,为后续提高攻击报文识别率奠定基础。

具体实施时,该卷积神经网络模型还可以包括损失层(图3中未示出),用于对经过第二隐含层降维处理之后的攻击报文样本进行处理,具体处理可以包括随机丢弃部分数据,以提高泛化率。

具体实施时,在经过损失层处理后,攻击报文样本还可以使用梯度下降算法处理,作用是循环计算当前值,直到找到一组值,使当前所有节点都最接近其真实值,即用于提高卷积神经网络模型的精度,为后续提高攻击报文识别率奠定基础。当然,还可以定义优化器参数,训练卷积神经网络模型,进而提高攻击报文识别率。

具体实施时,模型训练成功后,对于未知的攻击样本数据报文,将报文直接输入到卷积神经网络模型,其计算结果记为当前攻击报文的攻击类型,即,识别到前面训练模型中训练出来的某种类型。

具体实施时,通过样本数据训练好模型之后,模型中会生成某些参数的数值。利用测试样本进行识别测试时,只需将测试样本与这些训练好的参数按照特定的数学运算(训练好的卷积神经网络模型中的数学运算)进行计算,即可得出测试结果。图3中的输入样本和矩阵样本可以为训练样本。

基于同一发明构思,本发明实施例中还提供了一种攻击报文的识别装置,如下面的实施例。由于攻击报文的识别装置解决问题的原理与攻击报文的识别方法相似,因此攻击报文的识别装置的实施可以攻击报文的识别方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图4是本发明实施例中攻击报文的识别装置的结构示意图,如图4所示,该装置包括:

获取单元02,用于获取预设场景的待识别报文;

转换单元04,用于将获取的预设场景的待识别报文转换成报文图像矩阵;

识别单元06,用于将待识别报文的报文图像矩阵输入预设场景的卷积神经网络模型,识别所述待识别报文;所述卷积神经网络模型根据预设场景的多个攻击报文样本生成。

在一个实施例中,上述攻击报文的识别装置还可以包括:

采集单元,用于在确定实时采集到的预设场景的攻击报文不存在于历史攻击报文样本中时,将实时采集到的预设场景的攻击报文生成实时攻击报文样本;

攻击报文样本生成单元,用于将预设场景的攻击报文生成实时攻击报文样本;

训练单元,用于根据预设场景的实时攻击报文样本和存储的历史攻击报文样本,训练所述卷积神经网络模型。

在一个实施例中,攻击报文样本生成单元具体可以用于将预设场景的攻击报文样本字符串转换成1936维度的向量,生成实时攻击报文样本;

所述训练单元具体用于:

将多个预设场景的实时攻击报文样本和存储的历史攻击报文样本生成训练样本矩阵、训练样本类型矩阵、测试样本矩阵和测试样本类型矩阵;

利用训练样本矩阵、训练样本类型矩阵、测试样本矩阵和测试样本类型矩阵训练所述卷积神经网络模型。

本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述攻击报文的识别方法。

本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有执行上述攻击报文的识别方法的计算机程序。

本发明实施提供的技术方案的有益技术效果为:可以识别0day攻击,可以自动学习,基于深度学习神经网络可针对不同用户生成独立的识别模型。卷积神经网络一般应用于图像识别领域,该方案首次将卷积神经网络应用到网络安全检测领域,通过针对性的重新实现卷积神经网络的各层,以达到安全检测分类的目的。

显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1