CN111031051B - 一种网络流量异常检测方法及装置、介质 - Google Patents
一种网络流量异常检测方法及装置、介质 Download PDFInfo
- Publication number
- CN111031051B CN111031051B CN201911302352.1A CN201911302352A CN111031051B CN 111031051 B CN111031051 B CN 111031051B CN 201911302352 A CN201911302352 A CN 201911302352A CN 111031051 B CN111031051 B CN 111031051B
- Authority
- CN
- China
- Prior art keywords
- network
- network model
- training
- characteristic information
- self
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- 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/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种网络流量异常检测方法、装置、设备及介质,该网络流量异常检测方法包括:接收网络报文,根据所述网络报文生成第一特征信息,将所述第一特征信息输入预先训练得到的自编码器网络模型,得到第一输出值,以及,根据所述自编码器网络模型的输出和输入的误差信息与所述网络报文生成第二特征信息,将所述第二特征信息输入预先训练得到的长短期记忆网络模型,得到至少一个第二输出值,将所述第一输出值和第二输出值输入到预先训练得到的异常检测器,输出所述网络报文是否异常的判断结果。本实施例提供的方案,综合了自编码器网络模型的当前预测效果好和长短期记忆网络模型基于历史的预测效果好的优点,具有较好的预测效果。
Description
技术领域
本文涉及网络安全领域,涉及一种网络流量异常检测方法、装置及设备、介质。
背景技术
据中国互联网络信息中心(CNNIC)统计,到2018年,我国网民数量达8.11亿,已成为全球最大的互联网国家。然而,病毒感染、网络攻击等安全事件在我国时有发生,网络诈骗、信息泄露等威胁依然没有得到有效解决,关键信息基础设施防护、物联网安全、勒索病毒传播、僵尸网络肆虐等问题日渐突出,我国网络安全态势依然严峻复杂。本文基于异常流量的发现和分析,对网络攻击检测技术进行研究,旨在进一步提高网络攻击检测模型在真实环境中的准确性。流量异常检测分为误用检测和异常检测。误用检测对已知的攻击行为检测效果比较好,但是不能检测未知的攻击或者可以描述为新的攻击。由于网络变换快,必须要能检测未知的攻击,所以有必要对异常检测。
表1:误用检测和异常检测的对比
发明内容
本申请提供了一种网络流量异常检测方法、装置及设备、介质,实现异常检测。
本申请提供了一种网络流量异常检测方法,包括:
接收网络报文,根据所述网络报文生成第一特征信息,将所述第一特征信息输入预先训练得到的自编码器网络模型,得到第一输出值,以及,根据所述自编码器网络模型的输出和输入的误差信息与所述网络报文生成第二特征信息,将所述第二特征信息输入预先训练得到的长短期记忆网络模型,得到至少一个第二输出值,将所述第一输出值和第二输出值输入到预先训练得到的异常检测器,输出所述网络报文是否异常的判断结果。
在一实施例中,所述根据所述网络报文生成第一特征信息包括:
根据当前接收到的网络报文及之前已接收到的网络报文的统计信息生成初始特征信息,将所述初始特征信息进行降维得到所述第一特征信息。
在一实施例中,所述对所述初始特征信息进行降维包括:使用深度信念网络对所述初始特征信息进行降维。
在一实施例中,根据所述自编码器网络模型的输出和输入的误差信息与所述网络报文生成第二特征信息包括:
将所述自编码器网络模型的输出和输入的误差信息加入所述初始特征信息,得到所述第二特征信息。
在一实施例中,所述自编码器网络模型的输出和输入的误差信息为所述输出和输入的均方根误差或者均方误差。
在一实施例中,将所述第一输出值和第二输出值输入到预先训练得到的异常检测器,输出所述网络报文是否异常的判断结果包括:
将所述第一输出值和所述第二输出值输入到预先训练得到的判别公式,将所述判别公式的输出与训练得到的阈值进行比较,根据比较结果确定所述网络报文是否异常。
在一实施例中,所述方法还包括:
判断所述网络报文是否异常后,根据判断结果标记所述网络报文并保存;
在满足预设条件时,使用包含保存的已标记的网络报文的数据集重新训练所述自编码器网络模型、所述长短期记忆网络模型和所述异常检测器。
在一实施例中,所述方法还包括,在重新训练所述自编码器网络模型、长短期记忆网络模型和所述判别器时,并行使用重新训练之前的自编码器网络模型、长短期记忆网络模型和异常检测器对网络报文进行检测。
本发明至少一实施例提供一种网络流量异常检测装置,包括:
训练模块,配置为训练得到自编码器网络模型、长短期记忆网络模型和异常检测器;
接收模块,配置为接收网络报文;
第一检测模块,配置为根据所述网络报文生成第一特征信息,将所述第一特征信息输入预先训练得到的自编码器网络模型,得到第一输出值;
第二检测模块,配置为根据所述自编码器网络模型的输出和输入的误差信息与所述网络报文生成第二特征信息,将所述第二特征信息输入预先训练得到的长短期记忆网络模型,得到至少一个第二输出值;
异常检测模块,配置为将所述第一输出值和第二输出值输入到预先训练得到的异常检测器,输出所述网络报文是否异常的判断结果。
本发明至少一实施例提供一种网络流量异常检测设备,包括存储器和处理器,所述存储器存储有程序,所述程序在被所述处理器读取执行时,实现上述网络流量异常检测方法。
本发明至少一实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述网络流量异常检测方法。
与相关技术相比,本申请包括一种网络流量异常检测方法,接收网络报文,根据所述网络报文生成第一特征信息,将所述第一特征信息输入预先训练得到的自编码器网络模型,得到第一输出值,以及,根据所述自编码器网络模型的输出和输入的误差信息与所述网络报文生成第二特征信息,将所述第二特征信息输入预先训练得到的长短期记忆网络模型,得到至少一个第二输出值,将所述第一输出值和第二输出值输入到预先训练得到的异常检测器,输出所述网络报文是否异常的判断结果。本申请实施例提供的方案,结合自编码器网络模型和长短期记忆网络模型,从而既具有自编码器模型对即时情况的预测的效果好的优点,也具备长短期记忆网络模型根据历史时刻预测下一时刻的效果比较好的优点,综合了两种网络模型的优势,具有较好的预测效果。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的其他优点可通过在说明书以及附图中所描述的方案来实现和获得。
附图说明
附图用来提供对本申请技术方案的理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1为本申请实施例提供的网络流量异常检测方法流程图;
图2为本发明一实施例提供的深度信念网络示意图;
图3为本发明一实施例提供的自编码器网络模型示意图;
图4为本发明一实施例提供的长短期记忆网络模型示意图;
图5为本发明一实施例提供的网络流量异常检测方法示意图;
图6为本发明一实施例提供的长短期记忆网络(Long Short-Term Memory,简称LSTM)异常检测效果示意图;
图7为本发明一实施例提供的gp固定,p值变化的效果图(200维特征);
图8为本发明一实施例提供的p固定,gp值变化的效果图(200维特征);
图9为本发明一实施例提供的是重新学习和未重新学习的精确率、召回率和F1-score的对比示意图;
图10为本发明一实施例提供的网络流量异常检测装置框图;
图11为本发明一实施例提供的网络流量异常检测设备框图;
图12为本发明一实施例提供的计算机可读存储介质框图。
具体实施方式
本申请描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本申请所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。
本申请包括并设想了与本领域普通技术人员已知的特征和元件的组合。本申请已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本申请中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。
此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本申请实施例的精神和范围内。
入侵检测是网络安全系统的重要组成部分,是网络安全的重要保障。随着网络流量的不断增加和攻击方法的不断变化,传统的检测方法无法应对。神经网络的发展带来了网络入侵检测系统(NIDS)的新解决方案。但是,现有的基于机器学习的异常检测算法通常有三个问题。第一,大多数模型都是根据过时的数据集而构建的,在现实环境中适应性较差;第二,大部分异常检测算法没有学习的能力,无法生成基于攻击环境的变化的新模型;第三,从数据多维度的角度来看,单一检测算法具有峰值,不能很好地满足复杂网络攻击环境的需求。
机器学习和深度学习的核心是数据的表示。换句话说,通过机器学习方法重现或无限接近事物或某种类型现象。同样,模型的初衷是持续不断恢复攻击的特征,允许我们的功能更明确或近似攻击的特征。有三个想法:第一,使用强化学习,结合多个异常检测器,可用于相互补充并使用优化理论。第二,LSTM模型按顺序执行得特别好预测,如果使用得当,结果可能会很好。第三,我们使用更多功能来表示攻击特征,神经网络的训练复杂性增加,因此考虑降维。
因此,本申请实施例中提出一个新的异常检测模型框架-基于异构集成学习(HELAD)的网络流量异常检测算法,该方法基于多重深度学习的有机整合技术,实验结果表明HELAD算法比其他算法具有更好的适应性和准确性。
如图1所示,本发明一实施例提供一种网络流量异常检测方法,包括:
步骤101,接收网络报文,根据所述网络报文生成第一特征信息,将所述第一特征信息输入预先训练得到的自编码器网络模型,得到第一输出值;
步骤102,根据所述自编码器网络模型的输出和输入的误差信息与所述网络报文生成第二特征信息,将所述第二特征信息输入预先训练得到的长短期记忆网络模型,得到至少一个第二输出值;其中,多个第二输出值是指多次经过LSTM后得到的不同时刻的多个输出值。
步骤103,将所述第一输出值和第二输出值输入到预先训练得到的异常检测器,输出所述网络报文是否异常的判断结果。
在一实施例中,所述步骤101中,根据所述网络报文生成第一特征信息包括:
根据当前接收到的网络报文及之前已接收到的网络报文的统计信息生成初始特征信息,将所述初始特征信息进行降维得到所述第一特征信息。统计信息比如包括:一维特征:mean(均值),variance(方差),and standard deviation(标准差)等,以及表征两个数据流之间的关系的二维特征等等。生成统计信息时,可以将之前的网络报文的统计信息进行衰减后再与当前的网络报文进行统计生成新的统计信息。
特征提取普遍存在的问题:报文不同会话的报文是相关的,要体现这种关系;在同一时刻有很多会话,如何用合适的方式采样;每一个时刻可能会报文达到率很高。本申请实施例中采样改进的阻尼增量统计(Damped Incremental Statistics)算法提取初始特征信息。这个算法是将不同属性的数据包当成一条数据流,可以是两个IP地址分组延迟的变化程度,也就是抖动。也可以是Sockets(套接字)之间的抖动。
我们在设计中,根据数据集的特征选择的有所区别,而且样本采集的频率也根据算法的功能有所改变。下面说明指定这条流之后怎么采集特征:
指定一条数据包流S={x1,x2,...},S可以是一系列观察到的数据包大小(S是一条无界流)。为该数据包流建立元组IS=(N;LS;SS),其中,N是Number(数量,即数据包流中的流数量),LS是linear sum(线性求和),SS是squared sum(平方和)。接收到数据包xi时,更新IS:IS←(N+1,LS+xi,SS+xi 2),初始时,元组IS各元素的取值为0。
对于一个给定的时刻T,S的mean(均值),variance(方差),and standarddeviation(标准差)根据上述元组IS更新如下:
本实施例中使用阻尼增量统计,即旧的统计量衰减之后再和新数据生成新的统计量,在阻尼窗口模型中,较旧值的权重随着时间的推移呈指数下降。
定义衰减函数γ=dλ(t)=a-λt,其中a>0,a比如为2,3等,其中,λ>0是衰减因子,t指的是上次观察流以来经过的时间。以元组IS的更新为例,接收到数据包xi时,此时更新IS:IS←{γN+1,γLS+xi,γSS+xi 2}。
本实施例中,定义阻尼增量统计数组ISi,λ:=(ω,LS,SS,SSRij,Tlast)ISi,λ:=(ω,LS,SS,SRij,Tlast),ω是当前的权值,Tlast是上一次更新ISi,λ的时间,SSRij代表流i和流j的各二维特征。在时刻tcur,来了一个新的流元素xcur,根据如下算法更新阻尼增量统计数组ISi,λ:
update(ISi,λ,xcur,tcur,rj)
首先计算衰减函数:γ←dλ(tcur-tlast)
使用衰减函数对已有的统计量进行衰减:ISi,λ←(γω,γLS,γSS,γSSR,Tcur)
使用衰减后的统计量以及新增量计算新的统计量:ISi,λ←(ω+1,LS+Xcur,SS+xcur 2,SSRij+rirj,Tcur),该式中的ω,LS,SS,SSRij为衰减后的统计量,rirj是基于新的流元素xcur计算得到的二维特征。
表2示出了部分一维特征和二维特征,每次抽取20个特征(表2中仅示出了部分特征),5个时间点当成一个样本就是100个特征,对应的λ的取值分别为[5,3,1,0.1,0.01],即一个λ提取20个特征,5个λ提取100个特征。
表2:特征构造公式
上述Si,Sj代表数据流i和数据流j,数据流i和数据流j比如可以分别是A端发往B端的数据流,B端发往A端的数据流,当然,本申请不限于此,也可以是其他数据流。
本实施例中,将所述初始特征信息进行降维得到所述第一特征信息包括:使用深度信念网络(Deep Belief Network,简称DBN)进行降维。
DBN网络结构是由若干层RBM和一层BP(Back propagation,反向传播)组成的一种深层神经网络。DBN模型的训练过程主要分为两步:
第1步:自下而上,单独、无监督地训练每一层RBM(Restricted BoltzmannMachines,限制玻尔兹曼机);
第2步:最后一层为BP神经网络,接收前面一层RBM的输出,然后有监督地训练BP网络。因为单独训练每一层RBM,不会影响到其他层的RBM;所以对每一层RBM的训练,只能得到该层隐藏层对可见层的较好表达,但整个DBN模型不是对训练数据的较好表达。因此,为了改善这个问题,可以在DBN最后设置一层有监督学习网络,如BP神经网络,将整个DBN模型看作是一个多层的BP神经网络,自顶向下微调整个DBN。对DBN的微调过程,可以看作是对一个深层的BP神经网络权值初始化的过程。对DBN的这种训练过程,使其改善了训练BP网络容易陷入局部最优和训练时间较长的缺点。深度学习研究者给上面训练模型的第一步取了个术语叫做预训练,第二步叫做微调。根据具体的应用不同,最上面有监督学习的那一层,可以换成不同的分类器模型。由于RBM可以通过对比散度进行快速训练,因此,DBN模型将复杂的深度神经网络训练简化为对多个RBM的训练问题,较其他深度神经网络模型具有更高的训练效率。本实施例中,使用DBN的降维功能,所以只会用到第一步的训练。如图2所示,是DBN训练图示例。本实施例中使用DBN网络进行降维,需要说明的是,此处仅为示例,也可使用其他算法进行降维,本申请对此不作限定。另外,在另一实施例中,也可以不进行降维。进行降维可以降低神经网络训练的复杂性,减少训练时间。
步骤101中,自编码器(autoencoder)模型是神经网络的一种,经过训练后能尝试将输入复制到输出。自编码器内部有一个隐藏层h,可以产生编码表示输入。该网络可以看作由两部分组成:一个由函数h=f(x)表示的编码器和一个生成重构的解码器r=g(h)。通常需要向自编码器强加一些约束,使它只能近似地复制,并只能复制与训练数据相似的输入。这些约束强制模型考虑输入数据的哪些部分需要被优先复制,因此它往往能学习到数据的有用特性。这里,我们使用自编码器来给每一个样本指定一个异常分数。图3所示的是简单的3层Autoencoder。需要说明的是,此处仅为示例,本申请不限于此,也可以是其他类型的自编码器模型。
步骤102中的LSTM模型是一种时间递归神经网络,适合于处理和预测时间序列中间隔和延迟相对较长的重要事件。图4为本发明一实施例使用的LSTM网络示意图,图4中d1,d2,d3是t时刻输入的特征,y1,y2,y3是未来3个时刻的输出值。
在一实施例中,所述步骤102中,根据所述自编码器网络模型的输出和输入的误差信息与所述网络报文生成第二特征信息包括:
将所述自编码器网络模型的输出和输入的误差信息加入所述初始特征信息,得到所述第二特征信息。在一实施例中,所述自编码器网络模型的输出和输入的误差信息为所述输出和输入的均方根误差(RMSE)或者均方误差(MSE)。
在一实施例中,将所述第一输出值和第二输出值输入到预先训练得到的异常检测器,输出所述网络报文是否异常的判断结果包括:
将所述第一输出值和所述第二输出值输入到预先训练得到的判别公式,将所述判别公式的输出与训练得到的阈值进行比较,根据比较结果确定所述网络报文是否异常。
在一实施例中,所述方法还包括:
判断所述网络报文是否异常后,根据判断结果标记所述网络报文并保存;
在满足预设条件时,使用包含保存的已标记的网络报文的数据集重新训练所述自编码器网络模型、所述长短期记忆网络模型和所述异常检测器。
在一实施例中,所述方法还包括,在重新训练所述自编码器网络模型、长短期记忆网络模型和所述异常检测器时,并行使用重新训练之前的自编码器网络模型、长短期记忆网络模型和异常检测器对网络报文进行检测。
下面通过一个具体实施例进一步说明本申请。
图5所示为本发明一实施例提供的网络流量异常检测方法的实施过程示意图。如图5所示,本实施例提供的网络流量异常检测方法包括如下三个阶段。
第一阶段:初始化阶段
将原始的少量的专家标注(异常或者非异常)的样本数据集dataset0通过滑动时间窗口(改进的Damped Incremental Statistics算法)进行特征采集,得到高维度的特征向量f0。然后,使用DBN对特征向量f0进行特征降维,得到特征向量f1。接着,将特征向量f1作为Autoencoder网络模型的输入,完成Autoencoder网络模型的训练(使得Autoencoder网络模型收敛即完成Autoencoder网络模型的训练)。训练中,准确的记录每个样本重建时候的均方根误差(RMSE)。这个RMSE作为异常检测分数。接下来,将每个样本的RMSE作为一个特征加入特征向量f0中,形成新的特征向量f2。然后,将特征向量f2作为LSTM网络模型的输入,完成LSTM网络模型的训练(使得LSTM网络模型收敛即完成LSTM网络模型的训练)。Autoencoder网络模型和LSTM网络模型训练完成之后,再次使用专家标注的数据集训练出异常检测器中p的值以及阈值gp。具体的,每一个被采集的样本经过Autoencoder网络模型会有一个输出y0,然后3次经过LSTM网络模型(需要说明的是,不限于3次,可以是更多或者更少,可以根据需要设置)时候会输出y1,y2,y3。建立与y0,y1,y2,y3相关的判别公式A,公式A中包括参数p,然后使用每个样本的标签(异常还是非异常)进行参数调优(参数p以及阈值gp)。这样,通过专家标注的标签,可以初始化HELAD算法的gp和p的取值(比如使检测率最高的情况)。公式A比如可以是需要说明的是,此处给出的判别公式仅为示例,可以根据需要使用其他类型的判别公式。
第二阶段:实时流量检测阶段
上述阶段已经将HELAD模型初始化。接下来,HELAD模型可以开始接收实际的网络流量。网络流量连续的通过Autoencoder网络模型和LSTM网络模型,并且,针对每一个在线被采集的样本会得到Autoencoder网络模型的输出值y0,以及LSTM网络模型的输出值y1,y2,y3。根据y0,y1,y2,y3得到公式A的值dv,如果dv大于gp,那么判断结果为是,即当前流量是异常流量。反之,当前流量为非异常流量。使用判断结果标记该流量并存储。这样,在线流量数据就源源不断的被标记和存储,可以后续用来训练模型。
第三阶段:再次模型学习阶段
这里可以设置一个环境计时器K,环境计时器K的值可由用户调节,当然,也可以固定。当K达到一定时间,就将专家数据和在线流量形成的标签数据集合并。然后,将这个数据集替换第一阶段的专家标注数据,重新对模型进行训练。本实施例中,在下一次重新训练完成之前,还是使用上一次的gp和p形成的异常检测器进行检测。该方案可以让训练时间和检测时间并行,不会出现训练时候需要等待的问题。需要说明的是,在其他实施例中,也可以在训练完毕后再进行检测。另外,在其他实施中,也可以是接收到用户的更新指令时,或者,满足其他预设触发条件时,重新进行训练,本申请对此不作限定。
数据集越来越大的时候,LSTM的预测能力会越来越强。如果单一使用Autoencoder算出的异常分数进行异常分类,完全不考虑前后时间攻击的关系,有所缺失。LSTM对历史攻击时刻具有记录功能,随着带标签的数据集越来越大的时候,LSTM的预测效果会越来越好,但是,如果单一的使用LSTM网络训练异常检测器,对突然产生的攻击表型性能不能很好的检测,但是,Autoencoder的无监督性质正好可以完善前后文无关的检测;所以,结合LSTM和Autoencoder一起训练出异常分数的阈值,效果会比单一的Autoencoder好。Autoencoder对即时情况的预测的效果好,LSTM根据历史时刻预测下一时刻的效果比较好,本申请实施例中,结合Autoencoder和LSTM,综合了两种网络模型的优势,具有较好的预测效果。
下面对模型进行评估。本实施例中,使用如下的配置进行实验,使用python作为编程语言。
表3:实验环境配置
为了更好的评估本实施例提供的方案的性能,使用了两种数据集(MAWILab和IDS2017)。
1)MAWILab(http://www.fukuda-lab.org/mawilab/documentation.html)
MAWILab数据集使用四种不同的标签来注释MAWI档案中的流量异常:anomalous,suspicious,notice,and benign。本实施例中,将非benign都标记为异常,benign标记为正常。
2)IDS2017(https://www.unb.ca/cic/datasets/ids-2017.html)
IDS2017数据集包含良性和最新的常见攻击,类似于真实的真实数据(PCAP)。而且,它还包括使用CICFlowMeter进行网络流量分析的结果,该流量分析具有基于时间戳,源和目标IP,源和目标端口,协议和攻击(CSV文件)的标记流。
在机器学习、数据挖掘、推荐系统完成建模之后,需要对模型的效果做评价。目前常常采用的评价指标有准确率(Precision)、召回率(Recall)、F值(F-Measure)等。下文讲对其中某些指标做简要介绍。
True Positive(真正,TP):将正类预测为正类数
True Negative(真负,TN):将负类预测为负类数
False Positive(假正,FP):将负类预测为正类数误报(Type I error)
False Negative(假负,FN):将正类预测为负类数漏报(Type II error)
精确率(precision)定义为:表示被分为正例的示例中实际为正例的比例。召回率(recall)是覆盖面的度量,度量有多个正例被分为正例,recall=TP/(TP+FN)=TP/P=sensitive(灵敏度),可以看到召回率与灵敏度是一样的。
P和R指标有时候会出现矛盾的情况,这样就需要综合考虑,最常见的方法就是F-Measure(又称为F-Score)。F-Measure是Precision和Recall加权调和平均:当参数α=1时,就是最常见的F1,也即可知F1综合了P和R的结果,当F1较高时则能说明试验方法比较有效。
为了验证HELAD模型的有效性,我们分别针对部分有效性、本身有效性、对比有效性一共3个层面来分析算法的有效性。
基于MAWILAB的实验分别检测,。图6表明的是LSTM对于异常检测分数的预测效果达到预期值。证明了部分有效性。
为了进一步的确定我们的模型可以在何时的情况下取得最好的效果,我们要针对算法的本身模型参数进行优化。如表4和表5所示,p值的不同,所达到的检测效果也是不一样的,我们知道在MAWILAB这个截取的环境中p值取值为0.8效果好一点。表6a是留出法(hold-out)不同的分割方式说明,表6b是不同分割方式的留出法的算法的实验结果,分割方式三的情况下最好。所以后面都是基于分割方式三实验的。
表4:200维特征300000数据包情况下分割方式一的算法性能随着p值的变化(gp=0.65)(MAWILAB)
p | 精确率 | 召回率 | f-score |
0.5 | 0.727134543 | 0.76745757 | 0.746752113 |
0.55 | 0.741174823 | 0.78227645 | 0.761171191 |
0.6 | 0.755335107 | 0.797221988 | 0.775713508 |
0.65 | 0.768655373 | 0.811280925 | 0.789393146 |
0.7 | 0.78047561 | 0.823756649 | 0.801532284 |
0.75 | 0.788395768 | 0.832116018 | 0.809666122 |
0.8 | 0.792155843 | 0.836084607 | 0.813527642 |
0.85 | 0.793415868 | 0.837414506 | 0.814821661 |
0.9 | 0.793695874 | 0.83771004 | 0.815109221 |
表5:200维特征300000数据包情况下分割方式二的算法性能随着p值的变化(gp=0.65)(MAWILAB)
表6a不同分割方式比例
表6b不同分割方式下的性能比较
图7指的是在选择200维特征(体现在λ的取值为[5,3,1,0.1,0.01]),10000,30000,100000个数据的情况下,固定gp值,p值不断变化的效果图。接着,我们进一步的进行实验,图8指的是在选择200维特征,10000,30000,100000个数据的情况下,固定p值,gp值不断变化的效果图。图9是重新学习和未重新学习的精确率、召回率和F1-score的对比示意图。使用不同日期的MAWLab数据集,200维特征,gp=0.65,p=0.8,可以看到,重新训练后的异常检测效果优于未重新训练。表7为100维特征下不同数据集的指标(gp=0.65,p=0.8)。
表7:100维特征下不同数据集的指标(gp=0.65,p=0.8)
数据量 | 精确率 | 召回率 | F1-score |
30000 | 0.761 | 0.761 | 0.757 |
100000 | 0.851 | 0.855 | 0.853 |
300000 | 0.871 | 0.864 | 0.861 |
表8:200维特征下不同数据集的指标(gp=0.65,p=0.8)
数据量 | 精确率 | 召回率 | F1-score |
30000 | 0.781 | 0.779 | 0.779 |
100000 | 0.873 | 0.879 | 0.875 |
300000 | 0.901 | 0.884 | 0.892 |
为了进一步的研究多少特征的数量可以得到比较好的效果,我们又将特征的维度提升到200维。对应的λ的取值分别为[10,5,3,2,1.5,1,0.5,0.2,0.1,0.01]。表8阐述了200维特征下不同数据集的指标(gp=0.65,p=0.8),表明了特征增加的情况下,异常检测效果会提升。
验证了我们的算法本身在什么情况下达到最好效果之后,进一步将本申请提供的方案与一些机器学习的算法进行比较。为此,选择了5种表现比较好的算法。具体如下:孤立森林(Isolation Forests,IF)、高斯混合模型(Gaussian Mixture Models,GMM)、支持向量机(Support Vector Machine,SVM)、稀疏自动编码微调神经网络(sparse autoencoderfinetuned neural network,SAE)、Boltzmann machine fine-tuned neural network(玻尔兹曼机微调神经网络,RBM)。表9表明了在MAWILAB数据集的实验效果,200维特征300000数据包下不同算法的性能比较(gp=0.65,p=0.8),可以看到,本申请实施例提供的方案,效果超过其他方案。
表9:200维特征300000数据包下不同算法的性能比较(gp=0.65,p=0.8)(MAWILAB)
算法 | 精确率 | 召回率 | F1-score |
SVM | 0.598 | 0.651 | 0.623 |
RBM | 0.708 | 0.714 | 0.711 |
SAE | 0.759 | 0.711 | 0.734 |
IF | 0.756 | 0.724 | 0.739 |
GMM | 0.645 | 0.668 | 0.657 |
HELAD | 0.901 | 0.880 | 0.891 |
在MAWILAB的数据集上实验后,我们对环境感知这个效果的真实性又需要进一步的验证。所以,我们又选择了一个比较有代表意义的数据集IDS2017。表10表明的是在数据集IDS2017的实验效果,200维特征300000数据包下不同算法的性能比较。表11是HELAD算法和另外一些算法的效果比较。可以看到,HELAD算法优于其他算法。
表10:200维特征300000数据包下不同算法的性能比较(IDS2017)
表11:HELAD和其他算法的性能比较
网络环境越来越复杂,攻击的形式是不断变化的,大多数现有的机器学习相关的异常检测模型是基于陈旧的数据集,导致在现实环境中不实用。通过介绍有机整合各种深度学习技巧的想法,HELAD模型可以更好地组合多个分类器,使其适应真实环境。然后,在我们的实验中使用最新的原始分组数据为未来异常的证明提供了验证思路检测算法。实验结果也显示了我们算法的优越性。
如图10所示,本发明一实施例提供一种网络流量异常检测装置,包括:
训练模块1001,配置为训练得到自编码器网络模型、长短期记忆网络模型和异常检测器;
接收模块1002,配置为接收网络报文;
第一检测模块1003,配置为根据所述网络报文生成第一特征信息,将所述第一特征信息输入预先训练得到的自编码器网络模型,得到第一输出值,输入到所述异常检测模块1005;
第二检测模块1004,配置为根据所述自编码器网络模型的输出和输入的误差信息与所述网络报文生成第二特征信息,将所述第二特征信息输入预先训练得到的长短期记忆网络模型,得到至少一个第二输出值,输入到所述异常检测模块1005;
异常检测模块1005,配置为将所述第一输出值和第二输出值输入到预先训练得到的异常检测器,输出所述网络报文是否异常的判断结果。
如图11所示,本发明一实施例提供一种网络流量异常检测设备110,包括存储器1110和处理器1120,所述存储器1110存储有程序,所述程序在被所述处理器1120读取执行时,实现上述网络流量异常检测方法。
如图12所示,本发明一实施例提供一种计算机可读存储介质120,所述计算机可读存储介质120存储有一个或者多个程序1210,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述网络流量异常检测方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
Claims (12)
1.一种网络流量异常检测方法,其特征在于,包括:
接收网络报文,根据所述网络报文生成第一特征信息,将所述第一特征信息输入预先训练得到的自编码器网络模型,得到第一输出值,以及,根据所述自编码器网络模型的输出和输入的误差信息与所述网络报文生成第二特征信息,将所述第二特征信息输入预先训练得到的长短期记忆网络模型,得到至少一个第二输出值,将所述第一输出值和第二输出值输入到预先训练得到的异常检测器,输出所述网络报文是否异常的判断结果。
2.根据权利要求1所述的网络流量异常检测方法,其特征在于,所述根据所述网络报文生成第一特征信息包括:
根据当前接收到的网络报文及之前已接收到的网络报文的统计信息生成初始特征信息,将所述初始特征信息进行降维得到所述第一特征信息。
3.根据权利要求2所述的网络流量异常检测方法,其特征在于,所述对所述初始特征信息进行降维包括:使用深度信念网络对所述初始特征信息进行降维。
4.根据权利要求2所述的网络流量异常检测方法,其特征在于,根据所述自编码器网络模型的输出和输入的误差信息与所述网络报文生成第二特征信息包括:
将所述自编码器网络模型的输出和输入的误差信息加入所述初始特征信息,得到所述第二特征信息。
5.根据权利要求1所述的网络流量异常检测方法,其特征在于,所述自编码器网络模型的输出和输入的误差信息为所述输出和输入的均方根误差或者均方误差。
6.根据权利要求1所述的网络流量异常检测方法,其特征在于,将所述第一输出值和第二输出值输入到预先训练得到的异常检测器,输出所述网络报文是否异常的判断结果包括:
将所述第一输出值和所述第二输出值输入到预先训练得到的判别公式,将所述判别公式的输出与训练得到的阈值进行比较,根据比较结果确定所述网络报文是否异常。
8.根据权利要求1至7任一所述的网络流量异常检测方法,其特征在于,所述方法还包括:
判断所述网络报文是否异常后,根据判断结果标记所述网络报文并保存;
在满足预设条件时,使用包含保存的已标记的网络报文的数据集重新训练所述自编码器网络模型、所述长短期记忆网络模型和所述异常检测器。
9.根据权利要求8所述的网络流量异常检测方法,其特征在于,所述方法还包括,在重新训练所述自编码器网络模型、长短期记忆网络模型和所述异常检测器时,并行使用重新训练之前的自编码器网络模型、长短期记忆网络模型和异常检测器对网络报文进行检测。
10.一种网络流量异常检测装置,其特征在于,包括:
训练模块,配置为训练得到自编码器网络模型、长短期记忆网络模型和异常检测器;
接收模块,配置为接收网络报文;
第一检测模块,配置为根据所述网络报文生成第一特征信息,将所述第一特征信息输入预先训练得到的自编码器网络模型,得到第一输出值;
第二检测模块,配置为根据所述自编码器网络模型的输出和输入的误差信息与所述网络报文生成第二特征信息,将所述第二特征信息输入预先训练得到的长短期记忆网络模型,得到至少一个第二输出值;
异常检测模块,配置为将所述第一输出值和第二输出值输入到预先训练得到的异常检测器,输出所述网络报文是否异常的判断结果。
11.一种网络流量异常检测设备,其特征在于,包括存储器和处理器,所述存储器存储有程序,所述程序在被所述处理器读取执行时,实现如权利要求1至9任一所述的网络流量异常检测方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1至9任一所述的网络流量异常检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911302352.1A CN111031051B (zh) | 2019-12-17 | 2019-12-17 | 一种网络流量异常检测方法及装置、介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911302352.1A CN111031051B (zh) | 2019-12-17 | 2019-12-17 | 一种网络流量异常检测方法及装置、介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111031051A CN111031051A (zh) | 2020-04-17 |
CN111031051B true CN111031051B (zh) | 2021-03-16 |
Family
ID=70210199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911302352.1A Active CN111031051B (zh) | 2019-12-17 | 2019-12-17 | 一种网络流量异常检测方法及装置、介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111031051B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111526144A (zh) * | 2020-04-21 | 2020-08-11 | 福州大学 | 基于DVAE-Catboost的异常流量检测方法与系统 |
CN112165456B (zh) * | 2020-09-04 | 2022-05-06 | 支付宝(杭州)信息技术有限公司 | 一种劫持流量识别方法、装置及电子设备 |
CN112165485B (zh) * | 2020-09-25 | 2022-08-09 | 昆明市网络建设运营有限公司 | 一种大规模网络安全态势智能预测方法 |
CN112257783A (zh) * | 2020-10-22 | 2021-01-22 | 北京中睿天下信息技术有限公司 | 僵尸网络流量的分类方法、装置和电子设备 |
CN112926633A (zh) * | 2021-02-01 | 2021-06-08 | 长江慧控科技(武汉)有限公司 | 异常能耗检测方法、装置、设备及存储介质 |
CN112839059B (zh) * | 2021-02-22 | 2022-08-30 | 北京六方云信息技术有限公司 | Web入侵检测自适应告警过滤处理方法、装置及电子设备 |
CN113179250B (zh) * | 2021-03-26 | 2022-05-17 | 北京六方云信息技术有限公司 | web未知威胁检测方法及系统 |
CN113242259B (zh) * | 2021-05-27 | 2023-01-31 | 苏州联电能源发展有限公司 | 网络异常流量检测方法及装置 |
CN113408697B (zh) * | 2021-05-31 | 2022-09-16 | 杭州电子科技大学 | 一种基于强化学习自编码器的脑电数据重建方法 |
CN113556319B (zh) * | 2021-06-11 | 2022-09-30 | 杭州电子科技大学 | 物联网下基于长短期记忆自编码分类器的入侵检测方法 |
CN113625681B (zh) * | 2021-07-19 | 2022-12-13 | 湖南大学 | Can总线异常检测方法、系统及存储介质 |
CN116962083B (zh) * | 2023-09-20 | 2023-12-05 | 西南交通大学 | 网络异常行为的检测方法、装置、设备及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109547455A (zh) * | 2018-12-06 | 2019-03-29 | 南京邮电大学 | 工业物联网异常行为检测方法、可读存储介质和终端 |
CN109948117A (zh) * | 2019-03-13 | 2019-06-28 | 南京航空航天大学 | 一种对抗网络自编码器的卫星异常检测方法 |
CN110363290A (zh) * | 2019-07-19 | 2019-10-22 | 广东工业大学 | 一种基于混合神经网络模型的图像识别方法、装置及设备 |
CN110378392A (zh) * | 2019-06-26 | 2019-10-25 | 华东师范大学 | 一种基于lstm-ae的室内老人状态监测方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180032689A1 (en) * | 2016-07-29 | 2018-02-01 | Qatar University | Method and apparatus for performing feature classification on electrocardiogram data |
CN106778700A (zh) * | 2017-01-22 | 2017-05-31 | 福州大学 | 一种基于変分编码器中国手语识别方法 |
US11468262B2 (en) * | 2017-10-30 | 2022-10-11 | Nec Corporation | Deep network embedding with adversarial regularization |
-
2019
- 2019-12-17 CN CN201911302352.1A patent/CN111031051B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109547455A (zh) * | 2018-12-06 | 2019-03-29 | 南京邮电大学 | 工业物联网异常行为检测方法、可读存储介质和终端 |
CN109948117A (zh) * | 2019-03-13 | 2019-06-28 | 南京航空航天大学 | 一种对抗网络自编码器的卫星异常检测方法 |
CN110378392A (zh) * | 2019-06-26 | 2019-10-25 | 华东师范大学 | 一种基于lstm-ae的室内老人状态监测方法 |
CN110363290A (zh) * | 2019-07-19 | 2019-10-22 | 广东工业大学 | 一种基于混合神经网络模型的图像识别方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111031051A (zh) | 2020-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111031051B (zh) | 一种网络流量异常检测方法及装置、介质 | |
Wang et al. | Intrusion detection methods based on integrated deep learning model | |
US10498751B2 (en) | Inline DGA detection with deep networks | |
Abdel-Basset et al. | Semi-supervised spatiotemporal deep learning for intrusions detection in IoT networks | |
Elmasry et al. | Empirical study on multiclass classification‐based network intrusion detection | |
US8762298B1 (en) | Machine learning based botnet detection using real-time connectivity graph based traffic features | |
US8682812B1 (en) | Machine learning based botnet detection using real-time extracted traffic features | |
Lee et al. | Feature selection algorithm for intrusions detection system using sequential forward search and random forest classifier | |
Chen et al. | A novel approach for identifying lateral movement attacks based on network embedding | |
Liu et al. | Multi-step attack scenarios mining based on neural network and Bayesian network attack graph | |
Mannocci et al. | Mulbot: Unsupervised bot detection based on multivariate time series | |
Wakui et al. | GAMPAL: an anomaly detection mechanism for Internet backbone traffic by flow size prediction with LSTM-RNN | |
Awad et al. | Addressing imbalanced classes problem of intrusion detection system using weighted extreme learning machine | |
Bae et al. | A novel anomaly-network intrusion detection system using ABC algorithms | |
Setitra et al. | An efficient approach to detect distributed denial of service attacks for software defined internet of things combining autoencoder and extreme gradient boosting with feature selection and hyperparameter tuning optimization | |
Abdulganiyu et al. | Towards an efficient model for network intrusion detection system (IDS): systematic literature review | |
Sekar et al. | Prediction of Distributed Denial of Service Attacks in SDN using Machine Learning Techniques | |
Huang et al. | A multi-channel anomaly detection method with feature selection and multi-scale analysis | |
Mimura et al. | Long-term performance of a generic intrusion detection method using Doc2vec | |
Shah et al. | Group feature selection via structural sparse logistic regression for ids | |
Zhang et al. | Enhanced Few-Shot Malware Traffic Classification via Integrating Knowledge Transfer with Neural Architecture Search | |
Sun et al. | Reinforced Contrastive Graph Neural Networks (RCGNN) for Anomaly Detection | |
Leevy | Machine Learning Algorithms for Predicting Botnet Attacks in IoT Networks | |
Jawad | Detection of web api content scraping: An empirical study of machine learning algorithms | |
Li et al. | An attack pattern mining algorithm based on fuzzy logic and sequence pattern |
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 |