CN108898015B - 基于人工智能的应用层动态入侵检测系统及检测方法 - Google Patents

基于人工智能的应用层动态入侵检测系统及检测方法 Download PDF

Info

Publication number
CN108898015B
CN108898015B CN201810666533.1A CN201810666533A CN108898015B CN 108898015 B CN108898015 B CN 108898015B CN 201810666533 A CN201810666533 A CN 201810666533A CN 108898015 B CN108898015 B CN 108898015B
Authority
CN
China
Prior art keywords
layer
data packet
module
normal
threshold
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.)
Active
Application number
CN201810666533.1A
Other languages
English (en)
Other versions
CN108898015A (zh
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.)
Jinan University
Original Assignee
Jinan 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 Jinan University filed Critical Jinan University
Priority to CN201810666533.1A priority Critical patent/CN108898015B/zh
Publication of CN108898015A publication Critical patent/CN108898015A/zh
Application granted granted Critical
Publication of CN108898015B publication Critical patent/CN108898015B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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

Abstract

本发明公开了一种基于人工智能的应用层动态入侵检测系统及检测方法,检测系统包括应用层网关、检测模块、判定与操作模块、样本数据库、更新模块,检测模块包含一个混合了卷积神经网络和双向长短期记忆神经网络的检测模型。初始化后的检测模块用于对应用层数据包进行攻击性判定,过滤高于阈值的数据包并将数据包放入恶意样本数据库,同时对阈值下的数据包不作处理。更新模块使用样本数据库中的恶意样本和正常样本按一定比例训练新的模型,并且实时更新检测模块中的检测模型。本发明对应用层的攻击方法采取普适的检测方法,具有高检测率,低误判率的特点。同时,入侵检测系统具有动态更新模型的特点,对未知的零日攻击有很好的过滤效果。

Description

基于人工智能的应用层动态入侵检测系统及检测方法
技术领域
本发明涉及计算机应用与网络空间安全技术领域,具体涉及一种基于人工智能的应用层动态入侵检测系统及检测方法,同时涉及到多种深度学习模型的结合应用,是一种基于深度学习模型的,建立在应用层上的动态入侵检测系统。
背景技术
近年来,随着网络技术的不断提升,网络攻击的方式也在不断升级。开放式Web应用程序安全项目(OWASP)在2017的安全报告中指出,绝大多数高危的攻击方式基于应用层。相比于具有针对性地修复每一个网络应用程序的漏洞,布置基于应用层的入侵检测系统效率更高。但是,种类繁多的攻击方式和混淆手段使得攻击很难被入侵检测系统检测出来,导致了服务器的脆弱性和用户隐私的泄露。
在此之前,基于特征检测的方法是通过定义恶意关键字并构建黑名单。通过检测数据包中是否含有黑名单中的关键词来判定是否具有攻击性。但是这种方法需要对每一种攻击方式进行人工分析,在网络技术日新月异的背景下,攻击方式的更新速度远比人工分析的速度快,因此传统的入侵检测方法效率太低,不适用当下背景。
同时,传统的入侵检测系统在实时检测新的攻击方式的效率上的表现不够优秀,部署传统的入侵检测系统的服务器仍然有很大几率受到网络攻击。因此,需要发明一种高精度,低误判率,并且具有动态更新能力的应用层入侵检测系统。
发明内容
本发明的目的是为了克服现有入侵检测系统中的上述缺陷,提供一种基于人工智能的应用层动态入侵检测系统及检测方法,本系统具有更高的检测准确率和更低的误判率,同时具有动态更新检测模型的能力。
根据公开的实施例,本发明的第一方面公开了一种基于人工智能的应用层动态入侵检测系统,检测系统包括:应用层网关,检测模块,判定与操作模块,样本数据库,更新模块。
所述的应用层网关,负责将传输层的流量解封装。应用层网关将解封装后的应用层数据包传递给所述的检测模块。
所述的检测模块,接收来自应用层网关的应用层数据包,检测模块通过卷积神经网络(CNN)对单个应用层数据包进行特征提取匹配,使用双向长短期记忆网络(BLSTM)对应用层数据包语法结构进行匹配,计算该应用层数据包的攻击性置信度。并且,将攻击性置信度和该数据包传递给所述的判定与操作模块。
所述的判定与操作模块,接收来自检测模块的应用层数据包与该数据包的攻击性置信度,判定与操作模块通过将攻击性置信度与阈值比较,决定对该数据包的操作。
具体地,判定与操作模块对阈值的设置和对数据包的操作如下:
1)需要设置的攻击样本判定阈值包括确信攻击阈值m1,模糊攻击阈值下界m2,模糊攻击阈值上界m3。同时,正常样本判定阈值包括确信正常阈值n1,模糊正常阈值下界n2,模糊正常上界n3
2)操作的选择由m1,m2,m3,n1,n2,n3决定。对于置信度大于m1的数据包,确信为恶意数据包,将其丢弃;对于置信度在m2和m3之间的数据包判定为疑似恶意数据包,将其作为恶意样本,加入到样本数据库中;对于置信度小于n1的数据包,确信为正常数据包,采取放行操作;对于置信度在n2和n3之间的数据包判定为疑似正常数据包,将其作为正常样本,加入到样本数据库中。
所述的样本数据库,负责存储用于更新检测模块的数据包数据样本。其中,所述的样本数据库中的数据样本分为两类:恶意数据样本和正常数据样本。
特别地,所述的样本数据库中的训练数据样本来自两方面:
1)当系统刚启动,样本数据库中的训练数据样本为空时,样本数据库从因特网中抓取一定数量的恶意数据包和正常数据包作为初始的恶意数据样本和正常数据样本。
2)来自所述的操作与判定模块的数据包,根据操作与判定模块对该数据包的操作,决定加入样本数据库的恶意数据样本或正常数据样本。
所述的更新模块,通过不断从样本数据库中提取一定量的恶意样本和正常样本,对现有检测模块备份后,对备份的检测模块进行多轮训练。并在检测模块空闲时,使用完成训练的备份的检测模块替换现有的检测模块。
进一步地,所述的检测模块是一个深度学习模型,该深度学习模型主要采用了卷积神经网络(CNN)提取输入的应用层网关数据包的特征和采用双向长短期记忆网络(BLSTM)提取输入的应用层网关数据包的语法结构。
所述的深度学习模型的结构如下:
A)输入层:将输入的定长应用层数据包的文本数据转化为一个一维向量,并且将此一维向量传递到Embedding层。
B)Embedding层:该层将来自输入层的文本数据映射为一个二维向量,并且将该二维向量传递到前置卷积层。
C)前置卷积层:该层的输入为来自Embedding层的二维向量,该层提取二维向量的特征,输出为提取后的二维特征向量,并且将该向量传递到前置BatchNormalizaiton层。前置卷积层具有128个大小为3的卷积核,并且采用ReLU作为该层的激活函数。
D)前置BatchNormalizaiton层:该层的输入为来自前置卷积层的二维特征向量,并且将归一化后的二维向量传递到前置Max-Pooling层。该层通过归一化操作来统一输入的均值和方差,解决了CNN在训练时出现的梯度消失于梯度爆炸问题。
E)前置Max-Pooling层:该层的输入为来自前置BatchNormalizaiton层的二维向量,通过该层的池化操作后,将压缩的二维向量传递给BLSTM层。过滤前置卷积层提取的非攻击特征,,对攻击特征进行放大化处理,同时压缩了向量大小,减少了训练参数。
F)BLSTM层:该层的输入为来自前置Max-Pooling层的压缩二维向量,通过提取压缩二维向量的语法结构输出二维语序特征向量,并且将该二维向量传递给后置CNN层。两层方向相反的LSTM层分别从压缩二维向量的正向和反向进行扫描,学习压缩二维向量中攻击特征的语序结构。BLSTM层共包含128个LSTM单元,正向和反向各包含64个LSTM单元。
G)后置CNN层:该层的输入为来自BLSTM层的二维语序特征向量,经过该层进一步提取特征和压缩后输出一个二维向量,并且将该二维向量传递给Flatten层。该层包含了和前置CNN层(前置卷积层,前置BatchNormalizaiton层和前置Max-Pooling)相同的结构配置。
H)Flatten层:该层的输入为来自后置CNN层的二维向量。Flatten层连接在后置CNN层后,该层将二维向量展开为一维向量。并且将展开的一维向量传递给Dense层。
I)Dense层:该层输入为来自Flatten层的展开后的一维向量,Dense层包含了64个普通神经元,输出为一个长度为64的一维向量,并且将该一维向量传递给输出层。
J)输出层:输出层的输入为来自Dense层的长度为64的一维向量。输出层包含了一个经过sigmoid激活函数处理的神经元。输出层输出一个大小在0到1之间的值,该值代表输入该模型的数据包的攻击性置信度。输出层的输出为所述深度学习模型的输出,同时为检测模块的输出。
根据公开的实施例,本发明的第二方面公开了一种基于人工智能的应用层动态入侵检测方法,所述的检测方法包括下列步骤:
样本数据库的初始化阶段:样本数据库从网络流量中抓取一定数量的恶意应用层数据包和正常应用层数据包作为恶意数据样本和正常数据样本,或者,直接存储网络上公开的样本数据集,其中,样本数据库中的恶意样本和正常样本的数量控制在1:1;
检测模块的初始化阶段:更新模块通过提取样本数据库中的样本数据,训练初始化更新模块,更新模块将训练好的检测模块投入到基于人工智能的应用层入侵检测系统中,检测模块的初始化完成;
判定与操作模块的初始化阶段:初始化判定与操作模块所描述的置信度阈值,包括攻击样本判定阈值和正常样本判定阈值,其中,所述的击样本判定阈值包括确信攻击阈值m1、模糊攻击阈值下界m2、模糊攻击阈值上界m3,所述的正常样本判定阈值包括确信正常阈值n1、模糊正常阈值下界n2、模糊正常上界n3
对数据包的检测和操作:应用层网关对来自传输层的流量解封,将解封后的流量传入检测模块中,检测模块对该数据包的攻击性进行判定,给出攻击性置信度,判定与操作模块收到来自检测模块给出的置信度后,决定对该数据包采取丢包或放行操作,完成一次操作后,重复对数据包的检测和操作步骤;
检测模块的动态更新:在检测系统初始化完毕后,更新模块从样本数据库中1:1提取恶意样本和正常样本,更新模块对检测模块进行备份,并且对备份的检测模块进行多轮训练,更新模块在检测模型模块空闲时,使用完成训练后备份的检测模块替换现有的检测模块,结束替换操作后,更新模块重复检测模块的动态更新步骤。
本发明相对于现有技术具有如下的优点及效果:
1.本发明提出了一种新的深度学习模型,该模型结合了CNN和BLSTM的优点,相比于传统的入侵检测系统,该模型在检测准确度上有很大的提高,同时大幅度地降低了误判率。在迄今为止提出的所有基于BLSTM的深度模型中,本发明提出的模型在收敛速度最快,而且训练模型消耗的时间最短,更加适合用于具有动态更新能力的入侵检测系统中。
2.本发明提出了一种新的动态入侵检测系统架构。通过更新模块和检测模块的联动,系统可以实时更新检测模型,因此该模型具有动态更新检测模型的能力,对未知的零日攻击或经过高级混淆的攻击模式有很好的检测效果。
附图说明
图1是本发明提出的基于人工智能的动态入侵检测系统的结构图;
图2是应用于检测模块的深度模型的具体结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例
如附图1所示,本实施例公开了一种基于人工智能的应用层动态入侵检测系统架构,所述系统包括如下模块包括:应用层网关、检测模块、判定与操作模块、样本数据库、更新模块。
本发明中的检测模块主要基于两种深度学习模型——卷积神经网络(CNN)和双向长短记忆神经(BLSTM)网络,下面简略介绍这两种深度学习模型:
CNN在图像识别和分类问题中表现出色。通常,一个典型的CNN模型包含一个输入层、多个卷积层、池化层和全连接的输出层。卷积层是CNN的核心部分,用于深度提取输入图像的特征,其中卷积层中的卷积核和感受野决定了对特征的敏感程度。随着CNN在图像领域的成功应用,CNN也被应用于自然语言处理问题中(NLP)。CNN以其独特优势,在NLP中也取得不错的效果。本发明中应用CNN提取应用层数据包的攻击特征,从而高效地检测带有恶意攻击向量的数据包。
BLSTM网络包含两层方向相反的长短记忆神经(LSTM)网络。LSTM不同于一般的神经元,具有记忆单元,可以记忆长序列文本在不同时间对神经元的影响。同时,LSTM内部应用多门协同工作的原理,解决了一般的循环神经网络(RNN)在训练时会出现梯度爆炸和梯度消失的问题。BLSTM解决了LSTM只能记忆长序列文本在一个方向上的时间步的问题。同时应用正向和反向的LSTM层,BLSTM能同时学习到序列文本两个方向的文本结构。在本发明中,应用BLSTM作为检测模型的核心层,可以学习带有攻击性的数据包的语法结构,很好地降低了误判率。
下面具体对检测系统的各个组成模块进行介绍:
所述的应用层网关,负责将传输层的流量解封装。应用层网关将解封装后的应用层数据包传递给所述的检测模块。
所述的检测模块,接收来自应用层网关的应用层数据包,检测模块通过卷积神经网络(CNN)对单个应用层数据包的特征进行提取匹配,使用双向长短期记忆网络(BLSTM)对应用层数据包的语法结构进行提取匹配,计算该应用层数据包的攻击性置信度。并且,将攻击性置信度和该数据包传递给所述的判定与操作模块。
所述的判定与操作模块,接收来自检测模块的应用层数据包与该数据包的攻击性置信度。判定与操作模块通过将攻击性置信度与阈值比较,决定对该数据包的操作。
具体地,判定与操作模块对阈值的设置和对数据包的操作如下:
1)需要设置的攻击样本判定阈值包括确信攻击阈值m1,模糊攻击阈值下界m2,模糊攻击阈值上界m3。同时,正常样本判定阈值包括确信正常阈值n1,模糊正常阈值下界n2,模糊正常上界n3
2)操作的选择由m1,m2,m3,n1,n2,n3决定。对于置信度大于m1的数据包,确信为恶意数据包,将其丢弃;对于置信度在m2和m3之间的数据包判定为疑似恶意数据包,将其作为恶意样本,加入到样本数据库中;对于置信度小于n1的数据包,确信为正常数据包,采取放行操作;对于置信度在n2和n3之间的数据包判定为疑似正常数据包,将其作为正常样本,加入到样本数据库中。
所述的样本数据库,负责存储用于更新检测模块的数据包数据样本。其中,样本数据库中的数据样本分为两类:恶意数据样本和正常数据样本。
特别地,所述的样本数据库中的训练数据样本来自两方面:
1)当系统刚启动,样本数据库中的训练数据样本为空时,样本数据库从因特网中抓取一定数量的恶意数据包和正常数据包作为初始的恶意数据样本和正常数据样本。
2)来自所述的操作与判定模块的数据包,根据操作与判定模块对该数据包的操作,决定加入样本数据库的恶意数据样本或正常数据样本。
所述的更新模块,通过不断从样本数据库中提取一定量的恶意样本和正常样本,对现有检测模块备份后,对备份的检测模块进行多轮训练。并在检测模块空闲时,使用完成训练的备份检测模块替换现有的监测模块。
如图2所示,附图给出了一种应用在上述系统中检测模块中的深度学习模型,从模型的输入依次包括:
输入层:输入的数据包按照单词为划分单位,每个数据包的长度限定在1400个单词。对于不满1400单词的数据包则填充至1400。对于长度大于1400的数据包,则进行分片处理。输入层将输入的定长应用层数据包的文本数据转化为一个一维向量,并且将此一维向量传递到Embedding层。
Embedding层:Embedding层将长度为1400的文本向量转换为1400*100的二维向量。相比于传统的one-hot方法,在本模型中采用embedding的方法可以使得语义相似的单词在空间分布中更聚合。该层将来自输入层的文本数据映射为一个1400*100二维向量,并且将该二维向量传递到前置卷积层。
前置卷积层:该卷积层连接在Embedding层后面。Embedding层1400*100的二位向量作为该层的输入。前置卷积层具有128个大小为3的卷积核,并且采用ReLU作为该层的激活函数。该层提取了数据包中的可能存在的攻击特征,输出一个1398*128的二维向量。该层的输入为来自Embedding层的二维向量,该层提取二维向量的特征,输出为提取后的二维特征向量,并且将该向量传递到前置BatchNormalizaiton层。
前置BatchNormalizaiton层:该BatchNormalizaiton层连接在前置卷积层后。该层通过归一化操作来统一输入的均值和方差,解决了CNN在训练时出现的梯度消失于梯度爆炸问题。该层不会改变输入向量的大小,输出为1398*128的二维向量。该层的输入为来自Embedding层的二维向量,该层提取二维向量的特征,输出为提取后的1398*128的二维特征向量,并且将该向量传递到前置BatchNormalizaiton层。
前置Max-Pooling层:前置Max-Pooling层连接在前置BatchNormalizaiton层后,该层的输入是1398*128的二维向量。Max-Pooling层过滤前置卷积层提取的非攻击特征,对攻击特征进行放大化处理,同时压缩了向量大小,减少了训练参数。经过前置Max-Pooling层后的输出为349*128的二维向量。该层的输入为来自前置卷积层的二维特征向量,并且将归一化后的349*128的二维向量传递到前置Max-Pooling层。
BLSTM层:BLSTM层是该模型的核心层,连接在前置CNN后。两层方向相反的LSTM层分别从特征序列的正向和反向进行扫描,学习数据包序列中攻击特征的语序结构。BLSTM层共包含128个LSTM单元,正向和反向各包含64个LSTM单元。同时,为了防止模型过拟合,在BLSTM层中加入了0.3的dropout率和recurrent dropout率。BLSTM层的输入是来自前置Max-Pooling层的349*128的二维向量,输出为349*128的二维向量,并且将该二维向量传递给后置CNN层。
后置CNN层:后置CNN连接在BLSTM层后,该层中包含了和前置CNN层(前置卷积层,前置BatchNormalizaiton层和前置Max-Pooling)相同的结构配置。后置CNN层进一步提取了数据包向量的攻击特征,提高了模型检测的准确率。后置CNN层的输入是来自前置Max-Pooling层的349*128的二维向量,输出是一个86*128的二维向量,并且将该二维向量传递给后置CNN层。
Flatten层:Flatten层连接在后置CNN层后,该层将二维向量展开为一维向量。Flatten层的输入是来自后置CNN层的349*128的二维向量,输出是长度为11008的一维向量。
Dense层:Dense层连接在Flatten层后面,该层包含了64个普通神经元。Dense层的作用是把Flatten层的一维向量长度压缩,输出一个长度为64的一维向量,并且将展开的一维向量传递给Dense层。
输出层:输出层包含了一个经过sigmoid激活函数处理的神经元。输出层输出一个大小在0到1之间的值,该值代表输入该模型的数据包的攻击性置信度。置信度越接近1表明该数据包带有恶意攻击代码的概率越大;反正,越接近0表明该数据包为正常数据包的概率越大。输出层的输入为来自Dense层的长度为64的一维向量。输出层的输出为所述深度学习模型的输出,同时为上述的入侵检测系统架构中的检测模块的输出。
实施例二
本实施例描述了该基于人工智能的应用层动态入侵检测系统的检测方法,首先进行检测系统的初始化,并且应用该系统,对应用层数据包进行检测和过滤/放行操作。具体过程如下:
步骤一,样本数据库的初始化阶段。假设,检测模型的初始化需要20000个数据样本的训练集。数据库从互联网流量中抽取10000个恶意数据样本和10000个正常数据样本;或者,使用公开数据集,将上述数量的数据样本存入样本数据库中。
步骤二,检测模块的初始化阶段。更新模块从样本数据库中抽取10000个恶意数据样本和10000个正常数据样本,初次训练检测模型。当模型的准确率大于99%或者经过多轮训练后准确率保持稳定,并且误判率小于1%或者保持稳定时,停止检测模型的训练。然后,更新模块将初始化完成的检测模型加入到检测模块中。至此,对检测模块的初始化完成。
步骤三,判定与操作模块的初始化阶段。设置该模块的阈值。将攻击样本判定阈值包括确信攻击阈值m1设置为90%,表明当攻击性置信度大于90%时,模块判定该数据包为确信恶意数据包,将其拦截并丢弃。模糊攻击阈值下界m2和模糊攻击阈值上界m3分别设置为50%和90%,攻击性置信度在50%~90%的数据包被判定为疑似恶意数据包,将其拦截并将其标记为恶意样本加入样本数据库。正常样本判定阈值包括确信正常阈值n1设置为20%,当置信度小于20%时判定数据包为确信正常数据包,操作模块不作拦截,将其放行。模糊正常阈值下界n2和模糊正常上界n3分别设置为20%和50%,对于置信度在20%和50%之间的数据包会被判定为疑似正常数据包,操作模块会将其放行,并且备份副本加入作为正常样本数据加入到样本数据库中。
特别地,对于此步骤,要考虑一个特殊操作:
当样本数据库中的恶意样本数量远大于正常样本时,需要平衡数据库中两类样本的数量。此时,需要将一定数量的,经过该入侵检测系统的确信正常数据包加入到样本数据库中。
步骤四,对数据包的检测和操作。应用层网关对来自传输层的流量解封,将应用层数据包传入检测模块中。检测模块对该数据包的攻击性进行判定,给出攻击置信度。判定与操作模块收到来自检测模块给出的置信度后,对比设置的阈值,决定对该数据包采取丢包或放行操作。若攻击性置信度大于90%时,模块判定该数据包为确信恶意数据包,将其拦截并丢弃;如果攻击性置信度在50%~90%的数据包被判定为疑似恶意数据包,将其拦截并加入样本数据库;当置信度小于20%时判定数据包为确信正常数据包,操作模块不作拦截,将其放行;置信度在20%和50%之间的数据包会被判定为疑似正常数据包,操作模块会将其放行,并且备份副本加入作为正常样本数据加入到样本数据库中。完成以上步骤四的操作后,重复步骤四。
步骤五,检测模型的动态更新。更新模块从样本数据库中抽取5000个恶意样本和5000个正常样本。抽取的样本包含了新加入到样本数据库的数据包。更新模块对现有检测模型进行多轮训练。更新模块对完成训练的新模型备份,并在检测模型模块空闲时替换检测模型。结束替换操作后,更新模块重复步骤五。
特别地,步骤一,二,三为检测系统的初始化步骤,步骤四,五为检测系统的正常工作步骤。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (6)

1.一种基于人工智能的应用层动态入侵检测系统,其特征在于,所述的检测系统包括应用层网关、检测模块、判定与操作模块、样本数据库和更新模块,
所述的应用层网关,将传输层的流量解封装,然后将解封装后的应用层数据包传递给所述的检测模块;
所述的检测模块,接收来自应用层网关的应用层数据包,通过卷积神经网络对单个应用层数据包进行特征提取匹配,使用双向长短期记忆网络对应用层数据包进行语法结构提取匹配,计算该应用层数据包的攻击性置信度,并且,将攻击性置信度和该应用层数据包传递给所述的判定与操作模块;
所述的判定与操作模块,接收来自检测模块的应用层数据包与该数据包的攻击性置信度,通过将攻击性置信度与阈值比较,决定对该数据包的操作;
所述的样本数据库,负责存储用于更新检测模块的数据包数据样本,其中,所述的数据样本分为两类:恶意数据样本和正常数据样本;
所述的更新模块,通过不断从样本数据库中提取一定量的恶意样本和正常样本,对现有检测模块备份后,对备份的检测模块进行多轮训练,并在检测模块空闲时,使用完成训练的备份的检测模块替换现有的检测模块;所述的检测模块是一个深度学习模型,该深度学习模型采用卷积神经网络提取输入的应用层网关数据包的特征和采用双向长短期记忆网络提取输入的应用层网关数据包的语法结构,所述的深度学习模型包括依次连接的输入层、Embedding层、前置卷积层、前置BatchNormalizaiton层、前置Max-Pooling层、BLSTM层、后置CNN层、Flatten层、Dense层和输出层,其中,
所述的输入层,将输入的定长应用层数据包的文本数据转化为一个一维向量,并且将此一维向量传递到Embedding层;
所述的Embedding层,将来自输入层的文本数据映射为一个二维向量,并且将该二维向量传递到前置卷积层;
所述的前置卷积层,将来自Embedding层的二维向量,进行二维向量的特征提取,该前置卷积层输出为提取后的二维特征向量,并且将该向量传递到前置BatchNormalizaiton层;
所述的前置BatchNormalizaiton层,将来自前置卷积层的二维特征向量输入归一化为二维向量传递到前置Max-Pooling层;
所述的前置Max-Pooling层,将来自前置BatchNormalizaiton层的二维向量输入,过滤前置卷积层提取的非攻击特征,对攻击特征进行放大化处理,同时压缩向量大小,减少训练参数,然后,通过该层的池化操作后,将压缩的二维向量传递给BLSTM层;
所述的BLSTM层,将来自前置Max-Pooling层的压缩二维向量输入,通过提取压缩二维向量的语法结构输出二维语序特征向量,并且将该二维语序特征向量传递给后置CNN层;
所述的BLSTM层包括两层方向相反的LSTM层,分别从压缩二维向量的正向和反向进行扫描,学习压缩二维向量中攻击特征的语序结构,所述的BLSTM层共包含128个LSTM单元,正向和反向各包含64个LSTM单元;
所述的后置CNN层,将来自BLSTM层的二维语序特征向量输入,经过该层提取特征和压缩后输出一个二维向量,并且将该二维向量传递给Flatten层;
所述的Flatten层,将来自后置CNN层的二维向量输入,展开为一维向量,并且将展开的一维向量传递给Dense层;
所述的Dense层,将来自Flatten层的一维向量输入,通过Dense层包含的64个普通神经元,输出为一个长度为64的一维向量,并且将该一维向量传递给输出层;
所述的输出层,将来自Dense层的一维向量输入,通过输出层包含的一个经过sigmoid激活函数处理的神经元,输出一个大小在0到1之间的值,该值代表输入该深度学习模型的数据包的攻击性置信度,输出层的输出为检测模块和深度学习模型的输出。
2.根据权利要求1所述的基于人工智能的应用层动态入侵检测系统,其特征在于,所述的判定与操作模块中,对阈值的设置和对数据包的操作如下:
1)设置的攻击样本判定阈值和正常样本判定阈值,所述的攻 击样本判定阈值包括确信攻击阈值m1、模糊攻击阈值下界m2、模糊攻击阈值上界m3,所述的正常样本判定阈值包括确信正常阈值n1、模糊正常阈值下界n2、模糊正常上界n3
2)根据确信攻击阈值m1、模糊攻击阈值下界m2、模糊攻击阈值上界m3、确信正常阈值n1、模糊正常阈值下界n2、模糊正常上界n3决定操作的选择,对于置信度大于确信攻击阈值m1的数据包,确信为恶意数据包,将其丢弃;对于置信度在模糊攻击阈值下界m2和模糊攻击阈值上界m3之间的数据包判定为疑似恶意数据包,将其作为恶意样本,加入到样本数据库中;对于置信度小于确信正常阈值n1的数据包,确信为正常数据包,采取放行操作;对于置信度在模糊正常阈值下界n2和模糊正常上界n3之间的数据包判定为疑似正常数据包,将其作为正常样本,加入到样本数据库中。
3.根据权利要求1所述的基于人工智能的应用层动态入侵检测系统,其特征在于,所述的样本数据库中的训练数据样本来自以下两方面:
1)当检测系统刚启动,样本数据库中的训练数据样本为空时,样本数据库从因特网中抓取一定数量的恶意数据包和正常数据包作为初始的恶意数据样本和正常数据样本;
2)来自所述的操作与判定模块的数据包,根据操作与判定模块对该数据包的操作,决定加入样本数据库的恶意数据样本或正常数据样本。
4.根据权利要求1所述的基于人工智能的应用层动态入侵检测系统,其特征在于,所述的前置卷积层具有128个大小为3的卷积核,并且采用ReLU作为该层的激活函数。
5.根据权利要求1所述的基于人工智能的应用层动态入侵检测系统,其特征在于,所述的后置CNN层、所述的前置卷积层、所述的前置BatchNormalizaiton层、所述的前置Max-Pooling层的结构配置相同。
6.一种根据权利要求1至5任一所述的基于人工智能的应用层动态入侵检测系统的检测方法,其特征在于,所述的检测方法包括下列步骤:
样本数据库的初始化阶段:样本数据库从网络流量中抓取一定数量的恶意应用层数据包和正常应用层数据包作为恶意数据样本和正常数据样本,或者,直接存储网络上公开的样本数据集,其中,样本数据库中的恶意样本和正常样本的数量控制在1:1;
检测模块的初始化阶段:更新模块通过提取样本数据库中的样本数据,训练初始化更新模块,更新模块将训练好的检测模块投入到基于人工智能的应用层动态入侵检测系统中,检测模块的初始化完成;
判定与操作模块的初始化阶段:初始化判定与操作模块所描述的置信度阈值,包括攻击样本判定阈值和正常样本判定阈值,其中,所述的攻 击样本判定阈值包括确信攻击阈值m1、模糊攻击阈值下界m2、模糊攻击阈值上界m3,所述的正常样本判定阈值包括确信正常阈值n1、模糊正常阈值下界n2、模糊正常上界n3
对数据包的检测和操作:应用层网关对来自传输层的流量解封,将解封后的流量传入检测模块中,检测模块对该数据包的攻击性进行判定,给出攻击性置信度,判定与操作模块收到来自检测模块给出的置信度后,决定对该数据包采取丢包或放行操作,完成一次操作后,重复对数据包的检测和操作步骤;
检测模块的动态更新:在检测系统初始化完毕后,更新模块从样本数据库中1:1提取恶意样本和正常样本,更新模块对检测模块进行备份,并且对备份的检测模块进行多轮训练,更新模块在检测模型模块空闲时,使用完成训练后备份的检测模块替换现有的检测模块,结束替换操作后,更新模块重复检测模块的动态更新步骤。
CN201810666533.1A 2018-06-26 2018-06-26 基于人工智能的应用层动态入侵检测系统及检测方法 Active CN108898015B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810666533.1A CN108898015B (zh) 2018-06-26 2018-06-26 基于人工智能的应用层动态入侵检测系统及检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810666533.1A CN108898015B (zh) 2018-06-26 2018-06-26 基于人工智能的应用层动态入侵检测系统及检测方法

Publications (2)

Publication Number Publication Date
CN108898015A CN108898015A (zh) 2018-11-27
CN108898015B true CN108898015B (zh) 2021-07-27

Family

ID=64346053

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810666533.1A Active CN108898015B (zh) 2018-06-26 2018-06-26 基于人工智能的应用层动态入侵检测系统及检测方法

Country Status (1)

Country Link
CN (1) CN108898015B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109379379B (zh) * 2018-12-06 2021-03-02 中国民航大学 基于改进卷积神经网络的网络入侵检测方法
CN109784411B (zh) * 2019-01-23 2021-01-05 四川虹微技术有限公司 对抗样本的防御方法、装置、系统及存储介质
CN109871686A (zh) * 2019-01-31 2019-06-11 中国人民解放军战略支援部队信息工程大学 基于图标表示和软件行为一致性分析的恶意程序识别方法及装置
CN110086788A (zh) * 2019-04-17 2019-08-02 杭州安恒信息技术股份有限公司 基于云WAF的深度学习WebShell防护方法
CN110138681B (zh) * 2019-04-19 2021-01-22 上海交通大学 一种基于tcp报文特征的网络流量识别方法及装置
US11132109B2 (en) 2019-05-08 2021-09-28 EXFO Solutions SAS Timeline visualization and investigation systems and methods for time lasting events
CN110135566A (zh) * 2019-05-21 2019-08-16 四川长虹电器股份有限公司 基于lstm二分类神经网络模型的注册用户名检测方法
US11763132B2 (en) * 2019-06-11 2023-09-19 International Business Machines Corporation Detecting non-anomalous and anomalous sequences of computer-executed operations
CN110300127A (zh) * 2019-07-31 2019-10-01 广东电网有限责任公司 一种基于深度学习的网络入侵检测方法、装置以及设备
CN111275350B (zh) * 2020-02-08 2021-06-04 支付宝(杭州)信息技术有限公司 更新事件评估模型的方法及装置
CN111770097B (zh) * 2020-06-29 2021-04-23 中国科学院计算技术研究所 一种基于白名单的内容锁防火墙方法及系统
CN117077763A (zh) * 2023-10-18 2023-11-17 贵州白山云科技股份有限公司 一种模型可更新的注入攻击检测方法及系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106844788A (zh) * 2017-03-17 2017-06-13 重庆文理学院 一种图书馆智能搜索排序方法及系统
CN106911669A (zh) * 2017-01-10 2017-06-30 浙江工商大学 一种基于深度学习的ddos检测方法
CN106919702A (zh) * 2017-02-14 2017-07-04 北京时间股份有限公司 基于文档的关键词推送方法及装置
CN106951783A (zh) * 2017-03-31 2017-07-14 国家电网公司 一种基于深度神经网络的伪装入侵检测方法及装置
CN107402754A (zh) * 2017-06-30 2017-11-28 北京金山安全软件有限公司 信息处理和模型训练方法、装置、电子设备、存储介质
CN107516041A (zh) * 2017-08-17 2017-12-26 北京安普诺信息技术有限公司 基于深度神经网络的WebShell检测方法及其系统
CN108200006A (zh) * 2017-11-21 2018-06-22 中国科学院声学研究所 一种基于层次化时空特征学习的网络流量分类方法及装置
CN108200030A (zh) * 2017-12-27 2018-06-22 深信服科技股份有限公司 恶意流量的检测方法、系统、装置及计算机可读存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106911669A (zh) * 2017-01-10 2017-06-30 浙江工商大学 一种基于深度学习的ddos检测方法
CN106919702A (zh) * 2017-02-14 2017-07-04 北京时间股份有限公司 基于文档的关键词推送方法及装置
CN106844788A (zh) * 2017-03-17 2017-06-13 重庆文理学院 一种图书馆智能搜索排序方法及系统
CN106951783A (zh) * 2017-03-31 2017-07-14 国家电网公司 一种基于深度神经网络的伪装入侵检测方法及装置
CN107402754A (zh) * 2017-06-30 2017-11-28 北京金山安全软件有限公司 信息处理和模型训练方法、装置、电子设备、存储介质
CN107516041A (zh) * 2017-08-17 2017-12-26 北京安普诺信息技术有限公司 基于深度神经网络的WebShell检测方法及其系统
CN108200006A (zh) * 2017-11-21 2018-06-22 中国科学院声学研究所 一种基于层次化时空特征学习的网络流量分类方法及装置
CN108200030A (zh) * 2017-12-27 2018-06-22 深信服科技股份有限公司 恶意流量的检测方法、系统、装置及计算机可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A New Varying-Parameter Recurrent Neural-Network for Online Solution of Time-Varying Sylvester Equation;weng jian etal;《IEEE Transactions on Cybernetics》;20180208;第3135-3148页 *
Applying Convolutional Neural Network for Network Intrusion Detection;Vinayakumar R etal;《2017 International Conference on Advances in Computing, Communications and Informatics (ICACCI)》;20170916;第1222-1228页 *

Also Published As

Publication number Publication date
CN108898015A (zh) 2018-11-27

Similar Documents

Publication Publication Date Title
CN108898015B (zh) 基于人工智能的应用层动态入侵检测系统及检测方法
CN109391602B (zh) 一种僵尸主机检测方法
CN109788079B (zh) Dga域名实时检测方法和装置
CN109450845B (zh) 一种基于深度神经网络的算法生成恶意域名检测方法
CN113961922B (zh) 一种基于深度学习的恶意软件行为检测与分类系统
CN111061843A (zh) 一种知识图谱引导的假新闻检测方法
CN113242259B (zh) 网络异常流量检测方法及装置
CN112235264A (zh) 一种基于深度迁移学习的网络流量识别方法及装置
CN112100614A (zh) 一种基于cnn_lstm的网络流量异常检测方法
CN112949702B (zh) 一种网络恶意加密流量识别方法和系统
CN111835763B (zh) 一种dns隧道流量检测方法、装置及电子设备
US11934536B2 (en) Dynamic network risk predicting method based on a graph neural network
CN109977118A (zh) 一种基于词嵌入技术和lstm的异常域名检测方法
CN115270996A (zh) 一种dga域名检测方法、检测装置及计算机存储介质
CN115169293A (zh) 一种文本隐写分析方法、系统、装置及存储介质
KR102202448B1 (ko) 파일 내 악성 위협을 처리하는 인공지능 기반 장치, 그 방법 및 그 기록매체
CN112232436B (zh) 一种融合集成决策树与层次注意力机制的可解释网络攻击检测方法
CN112948578A (zh) 一种dga域名开集分类方法、装置、电子设备及介质
CN115134176B (zh) 一种基于不完全监督的暗网加密流量分类方法
CN116582372B (zh) 一种物联网入侵检测方法、系统、电子设备及存储介质
CN115037641B (zh) 基于小样本的网络流量检测方法、装置、电子设备及介质
CN114884704B (zh) 一种基于对合和投票的网络流量异常行为检测方法和系统
CN117459247A (zh) 一种基于深度学习的Webshell检测方法及装置
CN115603948A (zh) 一种针对西门子工控网络的过程控制攻击检测方法
CN117692176A (zh) 用于vxlan的网络隐身实现方法、系统、设备及介质

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
GR01 Patent grant
GR01 Patent grant