CN109768985B - 一种基于流量可视化与机器学习算法的入侵检测方法 - Google Patents

一种基于流量可视化与机器学习算法的入侵检测方法 Download PDF

Info

Publication number
CN109768985B
CN109768985B CN201910089266.0A CN201910089266A CN109768985B CN 109768985 B CN109768985 B CN 109768985B CN 201910089266 A CN201910089266 A CN 201910089266A CN 109768985 B CN109768985 B CN 109768985B
Authority
CN
China
Prior art keywords
data
flow
layer
information
attribute
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
CN201910089266.0A
Other languages
English (en)
Other versions
CN109768985A (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.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
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 University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN201910089266.0A priority Critical patent/CN109768985B/zh
Publication of CN109768985A publication Critical patent/CN109768985A/zh
Application granted granted Critical
Publication of CN109768985B publication Critical patent/CN109768985B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

一种基于流量可视化与机器学习算法的入侵检测方法,包括如下步骤:S1:使用高速捕获设备捕获流量;S2:将入侵者数据库无法识别的流量和其所需的包头信息发送到数据处理层进行数据处理;S3:将接收到的进行数据处理的流量转换为灰度图;S4:基于半监督学习,使用K‑means算法对灰度图进行聚类,对聚类后的每个簇使用CNN进行灰度图分类,并基于熵理论和分类结果判断是否发生未知入侵;S5:根据分类结果,基于AIS算法中抗体理论,采用决策树算法对特定攻击进行提纯,获取检测结果;本发明解决了现有技术存在的无法准确检测出每种攻击、无法实时检测网络攻击、建立入侵系统速度慢、特征提取复杂以及资源占用率代价高的问题。

Description

一种基于流量可视化与机器学习算法的入侵检测方法
技术领域
本发明属于互联网技术领域,具体涉及一种基于流量可视化与机器学习算法的入侵检测方法。
背景技术
近年来,随着互联网技术的不断发展,人们对互联网的应用越来越广泛,网络中攻击的频度与强度随之不断增强,网络环境也随之恶化。网络攻击即利用网络漏洞和安全缺陷对网络系统的硬件、软件及数据进行的攻击。从对信息的破坏性上看,攻击类型可以分为被动攻击和主动攻击。主动攻击会导致某些数据流的篡改和虚假数据流的产生。这类攻击可分为篡改、伪造消息数据和终端(拒绝服务)。被动攻击中攻击者不对数据信息做任何修改,是指在未经用户同意和认可的情况下攻击者获得了信息或相关数据。通常包括窃听、流量分析、破解弱加密的数据流等攻击方式。为了抵御这些攻击,改善网络环境,入侵检测系统(IDS)随之提出。
入侵检测系统是一种监视主机和网络是否存在可疑事件,并对可疑事件自动做出相应反应的安全防护技术。IDS主要的监视目标是计算机系统中的网络流量,在对流量嗅探的同时收集网络日志数据。通过对收集的网络数据进行规则分析,或者进行模型检测,便能够判断出是否存在入侵问题。可以通过从先前已知的攻击中提取特定规则来训练基于规则分析的系统,也可以从没有入侵时收集的正常数据中学习。当检测到任何威胁时,IDS将会向网络管理员发出警报进行提醒。IDS分为基于网络的IDS和基于主机的IDS以及后来出现的分布式IDS。
但是大量具有较高精度的算法只能区分出异常数据,无法准确检测出每种攻击,这不利于对攻击的针对性处理,而能够准确检测出每种攻击的算法又存在着精度较低的问题,最为关键的是,大部分特征需要对流量进行长时间、完整的监测方可提取,这导致了难以实时检测网络攻击,此外,还存在着建立入侵系统速度慢、特征提取复杂、资源占用率代价高等不足,同时,每天都会大量新的攻击,因此如何针对新的攻击进行检测又对如今的入侵检测系统提出了新的挑战。
发明内容
针对现有技术中的上述不足,本发明提出一种基于流量可视化与机器学习算法的入侵检测方法,用于解决现有技术存在的无法准确检测出每种攻击、无法实时检测网络攻击、建立入侵系统速度慢、特征提取复杂以及资源占用率代价高的问题。
为了达到上述发明目的,本发明采用的技术方案为:
一种基于流量可视化与机器学习算法的入侵检测方法,包括如下步骤:
S1:使用高速捕获设备捕获流量;
S2:分析并过滤捕获流量中入侵者数据库识别后的流量,并将无法识别的流量和其所需的包头信息发送到数据处理层进行数据处理;
S3:使用数据处理层将接收到的进行数据处理的流量转换为灰度图;
S4:基于半监督学习对灰度图进行聚类,对聚类后的每个簇进行分类,并基于熵理论和分类结果判断是否发生未知入侵,若是则更新入侵检测系统IDS,并进入步骤S5,否则直接进入步骤S5;
S5:根据分类结果,基于AIS算法中抗体理论,采用决策树算法对特定攻击进行提纯,获取检测结果。
进一步地,步骤S2包括以下步骤:
S2-1:建立入侵者数据库,并使用其对当前捕获流量进行检测与分类;
分类类别包括识别后的流量和无法识别的流量;
S2-2:将识别后的流量信息存入入侵者数据库,并基于时间机制,接收其后续到达的数据包;
S2-3:提取该数据包的包头信息,并根据入侵者数据库中已有的流量信息进行搜索和对比,判断是否存在对应的流量信息,若是则输出该数据包为入侵流量,并进入步骤S2-4,否则输出该数据包为正常流量,并进入步骤S2-4;
S2-4:将无法识别的流量和其所需的包头信息发送到数据处理层进行数据处理。
进一步地,步骤S3包括如下步骤:
S3-1:判断接收到的进行数据处理的流量的大小是否大于10KB,若是则保留前10KB的流量,否则将其进行复制直到总体大小为10KB;
S3-2:将大小为10KB的流量二进制读取为8位无符号整数的向量,并将其进行组织获取2D数组;
S3-3:根据2D数组获取大小固定的灰度图。
进一步地,步骤S4中,采用K-means算法对灰度图进行聚类,包括如下步骤:
A-1:将灰度图中标记数据和未标记数据合并为数据集,使用K-means算法对数据集进行聚类;
A-2:将每个簇所关联的中心点移动到平均值的位置,更新中心;
A-3:重复步骤A-2,直至中心点不再变化,完成最终聚类。
进一步地,步骤A-1中,K-means算法通过随机初始化赋给每个簇不同的中心,将每一个数据点赋给距离类最近的中心,其公式为:
c(i)=argminK||x(i)k||2
式中,c(i)为与第i个输入数据的距离最近的聚类中心的索引;x(i)为第i个输入数据;μk为K个簇中的第k个聚类中心;K为簇总数;k为聚类中心指示量;i为输入数据指示量;
距离为欧氏距离,其公式为:
Figure BDA0001962748190000041
式中,d(x,y)为输入数据与聚类中心的欧氏距离;xn为当前样本的第n个特征值;yn为当前聚类中心的第n个特征值;n为特征值变量。
进一步地,步骤S4中,对聚类后的每个簇使用卷积神经网络CNN进行灰度图分类,包括如下步骤:
B-1:遍历检测聚类后的每个簇,将不含标记数据的簇中所有数据标记为未知数据;
B-2:根据簇中未知数据与标记数据对CNN进行训练;
B-3:使用训练后CNN对所有未标记数据进行分类,将分类结果为攻击的流量返回至数据处理层进行特征提取,并将其与对应的流量信息输入至IDS,完成IDS的更新;
所述分类类别包括已知攻击、未知攻击以及良性流量;
B-4:将分类为已知攻击或良性流量的数据合并到标记数据中,并重新标记未知数据,对CNN进行再次训练;
B-5:重复步骤B-1至B-4,直至完成对聚类后的簇中所有数据的分类,输出分类结果。
进一步地,步骤S4中,基于熵理论和分类结果判断是否发生未知入侵并更新入侵检测系统IDS的具体方法为:
当簇分类结果的信息熵超过阈值时,从该簇中随机提取三条流量进行人工检测;
若这三条流量都属于同一种未知攻击,则发生未知入侵,对该簇中所有流量对应的未知攻击标记为新分类类别,重新对CNN进行训练,完成IDS的更新,并创建与训练新分类类别的C4.5决策树;
若这三条流量都属于某一种已知攻击或良性流量,则将该簇中所有流量合并至对应已知攻击训练数据中,重新对CNN进行训练,完成IDS的更新,并对对应的C4.5决策树进行训练;
若这三条流量都属于新的良性流量,则将该簇中所有流量合并至良性流量训练数据中,重新对CNN进行训练。
进一步地,步骤S4中,CNN包括输入层、卷积层、激励层、池化层以及全连接层;
输入层用于接收灰度图的二维形式输入数据,并对灰度图数据进行预处理;预处理包括依次进行的去均值处理、归一化处理以及PCA/白化处理;
卷积层用于进行局部关联和窗口滑动,其公式为:
Figure BDA0001962748190000051
式中,
Figure BDA0001962748190000052
为第l层的输出;
Figure BDA0001962748190000053
为第l层的输入;
Figure BDA0001962748190000054
为第l层的卷积核;
Figure BDA0001962748190000055
为第l层的偏差;q为特征图像的输入集指示量;Mq为特征图像的输入集;l为层数指示量;f(·)为CNN的激活函数;
激励层用于将卷积层的输出结果进行非线性映射;
池化层的采样方法为最大值子采样方法,其公式为:
Figure BDA0001962748190000056
式中,
Figure BDA0001962748190000061
为第l层的输出;
Figure BDA0001962748190000062
为第l层的输入;
Figure BDA0001962748190000063
Figure BDA0001962748190000064
均为第l层的偏差;q为特征图像的输入集指示量;Mq为特征图像的输入集;l为层数指示量;k和t均为汇集矩阵的维数;f(·)为CNN的激活函数;
全连接层的最终输出结果的公式为:
y=f(ωkx+bk)
式中,y为全连接层的最终输出;ωk为连接权重;x为全连接层的输入;bk为偏差;f(·)为CNN的激活函数。
进一步地,步骤S5中,将数据处理层提取的分类结果为攻击的流量的特征输入对应类别的C4.5决策树,并采用决策树算法对特定攻击进行提纯,获取剔除良性流量后的攻击流量
进一步地,决策树算法,包括如下步骤:
S5-1:根据输入特征向量,获取训练集的信息熵,其公式为:
Figure BDA0001962748190000065
式中,Info(D)为训练集D的信息熵,为各项自信息的累加值;D为训练集;pm为随机变量分别属于第m类的概率;m为输入特征向量指示量;M为输入特征向量总数;
S5-2:将训练集按照划分属性进行划分,并获取对应的划分属性的信息熵,其公式为:
Figure BDA0001962748190000066
式中,InfoA(D)为属性A的信息熵;Info(Dv)为训练集中第v类样本的信息熵,且Info(Dv)∈Info(D);|Dv|为第v类样本的样本数量;|D|为训练集中样本数量;v为类别指示量;V为分类类别总数;A为选择的划分属性;
S5-3:根据训练集的信息熵和划分属性的信息熵,获取划分属性的信息增益,其公式为:
InfoGain(S,A)=Info(D)-InfoA(D)
式中,InfoGain(S,A)为属性A的信息增益;Info(D)为训练集D的信息熵;InfoA(D)为属性A的信息熵;
S5-4:获取划分属性的分裂信息,并根据其以及划分属性的信息增益,获取划分属性的信息增益率;
划分属性的分裂信息的公式为:
Figure BDA0001962748190000071
式中,SplitLnfoA(D)为属性A的分裂信息;|Dv|为第v类样本的样本数量;|D|为训练集中样本数量;v为类别指示量;V为分类类别总数;
划分属性的信息增益率的公式为:
Figure BDA0001962748190000072
式中,InfoGainRation(S,A)为属性A的信息增益率;InfoGain(S,A)为属性A的信息增益;SplitLnfoA(D)为属性A的分裂信息;
S5-5:遍历训练集中所有节点,选择信息增益率最大的划分属性作为当前节点的分裂属性进行分类。
本方案的有益效果:
(1)采用切实可行的过滤机制与灰度图转换机制将网络流量转化为灰度图,以新颖的方式来表征网络流量,在具备高精确性的基础上,同时保证了较好的实时性以及较低的资源占有率;
(2)本发明结合人工免疫系统思想,采用CNN+C4.5算法进行分类,采用多层体系,对流量分类,极大地提升了分类的精度;
(3)基于“熵”理论与半监督学习提出了样本拓展与IDS进化机制,样本拓展机制减少了人工标记操作,在训练样本不足的情况下仍能够保证足够的精度,IDS进化机制保证当发生未知攻击时,入侵检测系统可针对未知攻击完成更新进化。
附图说明
图1为基于流量可视化与机器学习算法的入侵检测方法流程图;
图2为本发明步骤S2方法流程图;
图3为本发明步骤S3方法流程图;
图4为采用K-means算法对灰度图进行聚类方法流程图;
图5为对聚类后的每个簇使用CNN进行灰度图分类方法流程图;
图6为决策树算法流程图;
图7为本发明CNN结构图。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
如图1所示,一种基于流量可视化与机器学习算法的入侵检测方法,包括如下步骤:
S1:使用高速捕获设备RF_RING或TNAPI捕获流量;
S2:分析并过滤捕获流量中入侵者数据库识别后的流量,并将无法识别的流量和其所需的包头信息发送到数据处理层进行数据处理,如图2所示,包括以下步骤:
S2-1:建立入侵者数据库,并使用其对当前捕获流量进行检测与分类;
分类类别包括识别后的流量和无法识别的流量;
S2-2:将识别后的流量信息存入入侵者数据库,并基于时间机制,接收其后续到达的数据包;
时间机制为:当某流量对应的最后到达时间已过去90s,仍无属于该流量的数据包到达,那么入侵者数据库中该流量的记录便会被删除;若仍然有属于该流量的数据包到达,便更新最后该流量对应的最后到达时间;
S2-3:提取该数据包的包头信息,并根据入侵者数据库中已有的流量信息进行搜索和对比,判断是否存在对应的流量信息,若是则输出该数据包为入侵流量,并进入步骤S2-4,否则输出该数据包为正常流量,并进入步骤S2-4;
S2-4:将无法识别的流量和其所需的包头信息发送到数据处理层进行数据处理;
S3:使用数据处理层将接收到的进行数据处理的流量转换为灰度图,如图3所示,包括如下步骤:
在现实网络中,流量的大小并不是固定的,有的流量持续时间长,数据量有几百KB甚至MB级单位,而有的流量持续时间短,仅有几百B;
S3-1:判断接收到的进行数据处理的流量的大小是否大于10KB,若是则保留前10KB的流量,否则将其进行复制直到总体大小为10KB;
S3-2:将大小为10KB的流量二进制读取为8位无符号整数的向量,并将其进行组织获取2D数组;
S3-3:根据2D数组获取大小固定的灰度图;灰度图属于[0,255]范围内,其大小设置为固定,避免图像大小的影响;
同时使用数据处理层提取部分特征,这些特征无需对流量进行长时间监控方能提取,简化了特征提取的过程;
S4:基于半监督学习,使用K-means算法对灰度图进行聚类,对聚类后的每个簇使用卷积神经网络CNN进行灰度图分类,并基于熵理论和分类结果判断是否发生未知入侵,若是则更新入侵检测系统IDS,并进入步骤S5,否则直接进入步骤S5;
基于半监督学习,使用K-means算法对灰度图进行聚类,对聚类后的每个簇使用卷积神经网络CNN进行灰度图分类,对未标记数据进行迅速标记并将其纳入训练阶段来构建一个强大的分类器,在人体免疫系统中,由白细胞组成第一层防线,对所有入侵进行识别攻击;结合这个思想,我们采用基于CNN的图像分类模型,实现了对流量的初步分类;将K-means算法与熵理论结合,提出了IDS更新模块,实现针对未知数据的细粒度分类,目标是在识别的未知数据中学习新的类别,并补充IDS的知识,在未来该数据再次出现时能够对新的攻击或良性流量直接完成识别;
采用K-means算法对灰度图进行聚类,如图4所示,包括如下步骤:
A-1:将灰度图中标记数据T1={Ψ123,...,ΨN}和未标记数据T2={Φ123,...,ΦM}合并为数据集T,使用K-means算法对数据集T进行聚类;
K-means算法接受未标记数据集,然后将数据聚类成不同的K个簇,通过随机初始化赋给每个簇不同的中心,将每一个数据点赋给距离类最近的中心,其公式为:
c(i)=argminK||x(i)k||2
式中,c(i)为与第i个输入数据的距离最近的聚类中心的索引;x(i)为第i个输入数据;μk为K个簇中的第k个聚类中心;K为簇总数;k为聚类中心指示量;i为输入数据指示量;
距离为欧氏距离,其公式为:
Figure BDA0001962748190000111
式中,d(x,y)为输入数据与聚类中心的欧氏距离;xn为当前样本的第n个特征值;yn为当前聚类中心的第n个特征值;n为特征值变量;
A-2:将每个簇所关联的中心点移动到平均值的位置,更新中心;
A-3:重复步骤A-2,直至中心点不再变化,完成最终聚类;
对聚类后的每个簇使用CNN进行灰度图分类,如图5所示,包括如下步骤:
B-1:遍历检测聚类后的每个簇,将不含标记数据的簇中所有数据标记为未知数据;
B-2:根据簇中未知数据与标记数据对CNN进行训练;
B-3:使用训练后CNN对所有未标记数据进行分类,将分类结果为攻击的流量返回至数据处理层进行特征提取,并将其与对应的流量信息输入至IDS,完成IDS的更新;
所述分类类别包括已知攻击、未知攻击以及良性流量;
B-4:将分类为已知攻击或良性流量的数据合并到标记数据中,并重新标记未知数据,对CNN进行再次训练;
B-5:重复步骤B-1至B-4,直至完成对聚类后的簇中所有数据的分类,输出分类结果;
信息熵是各项自信息的累加值,由于每一项都是整正数,故而随机变量取值个数越多,状态数也就越多,累加次数就越多,信息熵就越大,混乱程度就越大,因此,信息熵就会越大,簇的分类结果就越多,当信息熵超过某一阈值,就有理由相信分类结果不正确,出现了未知入侵或流量;基于熵理论和分类结果判断是否发生未知入侵并更新入侵检测系统IDS的具体方法为:
当簇分类结果的信息熵超过阈值时,从该簇中随机提取三条流量进行人工检测;
若这三条流量都属于同一种未知攻击,则发生未知入侵,对该簇中所有流量对应的未知攻击标记为新分类类别,重新对CNN进行训练,完成IDS的更新,并创建与训练新分类类别的C4.5决策树;
若这三条流量都属于某一种已知攻击或良性流量,则将该簇中所有流量合并至对应已知攻击训练数据中,重新对CNN进行训练,完成IDS的更新,并对对应的C4.5决策树进行训练;
若这三条流量都属于新的良性流量,则将该簇中所有流量合并至良性流量训练数据中,重新对CNN进行训练;
CNN最显着的特征是通过训练过程自动提取图像特征,如图7所示,CNN包括输入层、卷积层、激励层、池化层以及全连接层,卷积层和池化层交替重复设置构成隐藏层,池化层位于连续的卷积层中间,激励层位于卷积层的输出端,全连接层设置于CNN的尾部;
输入层用于接收灰度图的二维形式输入数据,并对灰度图数据进行预处理;预处理包括依次进行的去均值处理、归一化处理以及PCA/白化处理;白化即对数据各个特征轴上的幅度归一化然后通过卷积核(神经元的权重矩阵)映射到隐藏层,卷积核的作用是在降低了过拟合风险的同时又减少网络各层之间的连接以及神经网络的参数量;
卷积层用于进行局部关联和窗口滑动,其公式为:
Figure BDA0001962748190000131
式中,
Figure BDA0001962748190000132
为第l层的输出;
Figure BDA0001962748190000133
为第l层的输入;
Figure BDA0001962748190000134
为第l层的卷积核;
Figure BDA0001962748190000135
为第l层的偏差;q为特征图像的输入集指示量;Mq为特征图像的输入集;l为层数指示量;f(·)为CNN的激活函数;
激励层用于将卷积层的输出结果进行非线性映射,且其采用的激励函数为修正线性单元ReLU,其优点是收敛快以及求梯度简单;
池化层位于夹在连续的卷积层中间,用于压缩数据和参数的量,减小过拟合,其采样方法为最大值子采样方法,其公式为:
Figure BDA0001962748190000136
式中,
Figure BDA0001962748190000137
为第l层的输出;
Figure BDA0001962748190000138
为第l层的输入;
Figure BDA0001962748190000139
Figure BDA00019627481900001310
均为第l层的偏差;q为特征图像的输入集指示量;Mq为特征图像的输入集;l为层数指示量;k和t均为汇集矩阵的维数;f(·)为CNN的激活函数;
最后到达的是位于卷积神经网络尾部的全连接层,其两层之间所有神经元都有权重连接,与传统的神经网络神经元的连接方式是一样的,其输出被馈送到softmax函数,产生标签(该参数可自行设置)的概率分布,最终输出层将标签中概率最高的判断为最后的结果,完成最后的预测,CNN全连接层和输出层中的操作如下:首先,将前一层的输出特征图像逐一扩展为列向量,并堆叠以形成单列特征向量;全连接层的最终输出结果的公式为:
y=f(ωkx+bk)
式中,y为全连接层的最终输出;ωk为连接权重;x为全连接层的输入;bk为偏差;f(·)为CNN的激活函数;
CNN的配置参数对单相接地故障馈线检测的准确性有很大影响,应研究的CNN主要配置参数包括特征图像大小,归一化样本,激活函数,卷积核大小,合并层采样方法,迭代次数等;本发明对这些配置参数进行全面的分析,通过多次试验,发现特征图像大小在80*128的条件下,分类效果最为优良,并对网络参数进行优化与调整,以获得有利于所提出的故障检测方法性能的适当配置参数;
S5:根据分类结果,基于AIS算法中抗体理论,采用决策树算法对特定攻击进行提纯,获取检测结果;结合人体免疫系统中T淋巴细胞识别特定抗原的思想,本发明在CNN分类的基础上,针对每一种攻击,设计了对应分类的决策树;
将数据处理层提取的分类结果为攻击的流量的特征输入对应类别的C4.5决策树,并采用决策树算法对特定攻击进行提纯,获取剔除良性流量后的攻击流量;
如图6所示,决策树算法,包括如下步骤:
S5-1:根据输入特征向量,获取训练集的信息熵,样本的信息熵表示的是所有样本中各种类别出现的不确定性之和,熵越大,不确定性就越大,把不同类别的数据划分开所需要的信息量就越多,其公式为:
Figure BDA0001962748190000141
式中,Info(D)为训练集D的信息熵,为各项自信息的累加值;D为训练集;pm为随机变量分别属于第m类的概率;m为输入特征向量指示量;M为输入特征向量总数;
S5-2:每个输入特征向量都包含多种属性,将训练集按照划分属性进行划分,并获取对应的划分属性的信息熵,表示设置某种属性为划分条件后,划分后样本熵的大小,其公式为:
Figure BDA0001962748190000151
式中,InfoA(D)为属性A的信息熵;Info(Dv)为训练集中第v类样本的信息熵,且Info(Dv)∈Info(D);|Dv|为第v类样本的样本数量;|D|为训练集中样本数量;v为类别指示量;V为分类类别总数;A为选择的划分属性将训练集D划分成V个不同的类;
S5-3:根据训练集的信息熵和划分属性的信息熵,获取划分属性的信息增益,其公式为:
InfoGain(S,A)=Info(D)-InfoA(D)
式中,InfoGain(S,A)为属性A的信息增益,即原始样本的信息熵减去属性A信息熵;Info(D)为训练集D的信息熵;InfoA(D)为属性A的信息熵;
S5-4:获取划分属性的分裂信息,并根据其以及划分属性的信息增益,获取划分属性的信息增益率;
“分裂信息”(split information)是用来度量某种属性进行分裂时分支的数量信息和尺寸信息,这些信息被称为属性的内在信息(instrisic information);划分属性的分裂信息的公式为:
Figure BDA0001962748190000152
式中,SplitLnfoA(D)为属性A的分裂信息;|Dv|为第v类样本的样本数量;|D|为训练集中样本数量;v为类别指示量;V为分类类别总数;
划分属性的信息增益率的公式为:
Figure BDA0001962748190000153
式中,InfoGainRation(S,A)为属性A的信息增益率;InfoGain(S,A)为属性A的信息增益;SplitLnfoA(D)为属性A的分裂信息;
信息增益率用“信息增益/分裂信息”计算的优点是能够导致属性的重要性随着内在信息的增大而减小,即属性不确定性越大,就越不倾向于选取它,这可以看做对增益进行了归一化处理,避免了偏向选取分支多的属性,最终,C4.5算法构造决策树时,信息增益率最大的属性即为当前节点的分裂属性,随着递归计算,被计算的属性的信息增益率会变得越来越小,到后期则选择相对比较大的信息增益率的属性作为分裂属性;
由于决策树的建立完全是依赖于训练样本,因此对训练样本会产生完美的拟合效果,,但这样的决策树对于测试样本来说过于庞大而复杂,可能产生较高的分类错误率,这种现象称为过拟合,为了避免过拟合,需要将复杂的决策树去掉一些节点,即剪枝,剪枝方法分为预剪枝和后剪枝两大类,本发明采用的是后剪枝类的PEP(Pessimistic ErrorPruning)剪枝法对C4.5决策树剪枝;
S5-5:遍历训练集中所有节点,选择信息增益率最大的划分属性作为当前节点的分裂属性进行分类。
本发明提出一种基于流量可视化与机器学习算法的入侵检测方法,解决了现有技术存在的无法准确检测出每种攻击、无法实时检测网络攻击、建立入侵系统速度慢、特征提取复杂以及资源占用率代价高的问题。

Claims (7)

1.一种基于流量可视化与机器学习算法的入侵检测方法,其特征在于,包括如下步骤:
S1:使用高速捕获设备捕获流量;
S2:分析并过滤捕获流量中入侵者数据库识别后的流量,并将无法识别的流量和其所需的包头信息发送到数据处理层进行数据处理;
S3:使用数据处理层将接收到的进行数据处理的流量转换为灰度图;
S4:基于半监督学习对灰度图进行聚类,对聚类后的每个簇进行分类,并基于熵理论和分类结果判断是否发生未知入侵,若是则更新入侵检测系统IDS,并进入步骤S5,否则直接进入步骤S5;
S5:根据分类结果,基于AIS算法中抗体理论,采用决策树算法对特定攻击进行提纯,获取检测结果;
所述步骤S4中,基于熵理论和分类结果判断是否发生未知入侵并更新入侵检测系统IDS的具体方法为:
当簇分类结果的信息熵超过阈值时,从该簇中随机提取三条流量进行人工检测;
若这三条流量都属于同一种未知攻击,则发生未知入侵,对该簇中所有流量对应的未知攻击标记为新分类类别,重新对CNN进行训练,完成IDS的更新,并创建与训练新分类类别的C4.5决策树;
若这三条流量都属于某一种已知攻击或良性流量,则将该簇中所有流量合并至对应已知攻击训练数据中,重新对CNN进行训练,完成IDS的更新,并对对应的C4.5决策树进行训练;
若这三条流量都属于新的良性流量,则将该簇中所有流量合并至良性流量训练数据中,重新对CNN进行训练;
所述步骤S5中,将数据处理层提取的分类结果为攻击的流量的特征输入对应类别的C4.5决策树,并采用决策树算法对特定攻击进行提纯,获取剔除良性流量后的攻击流量;
所述决策树算法,包括如下步骤:
S5-1:根据输入特征向量,获取训练集的信息熵,其公式为:
Figure FDA0002386827810000021
式中,Info(D)为训练集D的信息熵,为各项自信息的累加值;D为训练集;pm为随机变量分别属于第m类的概率;m为输入特征向量指示量;M为输入特征向量总数;
S5-2:将训练集按照划分属性进行划分,并获取对应的划分属性的信息熵,其公式为:
Figure FDA0002386827810000022
式中,InfoA(D)为属性A的信息熵;Info(Dv)为训练集中第v类样本的信息熵,且Info(Dv)∈Info(D);|Dv|为第v类样本的样本数量;|D|为训练集中样本数量;v为类别指示量;V为分类类别总数;A为选择的划分属性;
S5-3:根据训练集的信息熵和划分属性的信息熵,获取划分属性的信息增益,其公式为:
InfoGain(S,A)=Info(D)-InfoA(D)
式中,InfoGain(S,A)为属性A的信息增益;Info(D)为训练集D的信息熵;InfoA(D)为属性A的信息熵;
S5-4:获取划分属性的分裂信息,并根据其以及划分属性的信息增益,获取划分属性的信息增益率;
划分属性的分裂信息的公式为:
Figure FDA0002386827810000031
式中,SplitLnfoA(D)为属性A的分裂信息;|Dv|为第v类样本的样本数量;|D|为训练集中样本数量;v为类别指示量;V为分类类别总数;
划分属性的信息增益率的公式为:
Figure FDA0002386827810000032
式中,InfoGainRation(S,A)为属性A的信息增益率;InfoGain(S,A)为属性A的信息增益;SplitLnfoA(D)为属性A的分裂信息;
S5-5:遍历训练集中所有节点,选择信息增益率最大的划分属性作为当前节点的分裂属性进行分类。
2.根据权利要求1所述的基于流量可视化与机器学习算法的入侵检测方法,其特征在于,所述步骤S2包括以下步骤:
S2-1:建立入侵者数据库,并使用其对当前捕获流量进行检测与分类;
所述分类类别包括识别后的流量和无法识别的流量;
S2-2:将识别后的流量信息存入入侵者数据库,并基于时间机制,接收其后续到达的数据包;
S2-3:提取该数据包的包头信息,并根据入侵者数据库中已有的流量信息进行搜索和对比,判断是否存在对应的流量信息,若是则输出该数据包为入侵流量,并进入步骤S2-4,否则输出该数据包为正常流量,并进入步骤S2-4;
S2-4:将无法识别的流量和其所需的包头信息发送到数据处理层进行数据处理。
3.根据权利要求1所述的基于流量可视化与机器学习算法的入侵检测方法,其特征在于,所述步骤S3包括如下步骤:
S3-1:判断接收到的进行数据处理的流量的大小是否大于10KB,若是则保留前10KB的流量,否则将其进行复制直到总体大小为10KB;
S3-2:将大小为10KB的流量二进制读取为8位无符号整数的向量,并将其进行组织获取2D数组;
S3-3:根据2D数组获取大小固定的灰度图。
4.根据权利要求1所述的基于流量可视化与机器学习算法的入侵检测方法,其特征在于,所述步骤S4中,采用K-means算法对灰度图进行聚类,包括如下步骤:
A-1:将灰度图中标记数据和未标记数据合并为数据集,使用K-means算法对数据集进行聚类;
A-2:将每个簇所关联的中心点移动到平均值的位置,更新中心;
A-3:重复步骤A-2,直至中心点不再变化,完成最终聚类。
5.根据权利要求4所述的基于流量可视化与机器学习算法的入侵检测方法,其特征在于,所述步骤A-1中,K-means算法通过随机初始化赋给每个簇不同的中心,将每一个数据点赋给距离类最近的中心,其公式为:
c(i)=arg minK||x(i)k||2
式中,c(i)为与第i个输入数据的距离最近的聚类中心的索引;x(i)为第i个输入数据;μk为K个簇中的第k个聚类中心;K为簇总数;k为聚类中心指示量;i为输入数据指示量;
所述距离为欧氏距离,其公式为:
Figure FDA0002386827810000051
式中,d(x,y)为输入数据与聚类中心的欧氏距离;xn为当前样本的第n个特征值;yn为当前聚类中心的第n个特征值;n为特征值变量。
6.根据权利要求5所述的基于流量可视化与机器学习算法的入侵检测方法,其特征在于,所述步骤S4中,对聚类后的每个簇使用CNN进行灰度图分类,包括如下步骤:
B-1:遍历检测聚类后的每个簇,将不含标记数据的簇中所有数据标记为未知数据;
B-2:根据簇中未知数据与标记数据对CNN进行训练;
B-3:使用训练后CNN对所有未标记数据进行分类,将分类结果为攻击的流量返回至数据处理层进行特征提取,并将其与对应的流量信息输入至IDS,完成IDS的更新;
所述分类类别包括已知攻击、未知攻击以及良性流量;
B-4:将分类为已知攻击或良性流量的数据合并到标记数据中,并重新标记未知数据,对CNN进行再次训练;
B-5:重复步骤B-1至B-4,直至完成对聚类后的簇中所有数据的分类,输出分类结果。
7.根据权利要求6所述的基于流量可视化与机器学习算法的入侵检测方法,其特征在于,所述步骤S4中,CNN包括输入层、卷积层、激励层、池化层以及全连接层;
所述输入层用于接收灰度图的二维形式输入数据,并对灰度图数据进行预处理;所述预处理包括依次进行的去均值处理、归一化处理以及PCA/白化处理;
所述卷积层用于进行局部关联和窗口滑动,其公式为:
Figure FDA0002386827810000061
式中,
Figure FDA0002386827810000062
为第l层的输出;
Figure FDA0002386827810000063
为第l层的输入;
Figure FDA0002386827810000064
为第l层的卷积核;
Figure FDA0002386827810000065
为第l层的偏差;q为特征图像的输入集指示量;Mq为特征图像的输入集;l为层数指示量;f(·)为CNN的激活函数;
所述激励层用于将卷积层的输出结果进行非线性映射;
所述池化层的采样方法为最大值子采样方法,其公式为:
Figure FDA0002386827810000066
式中,
Figure FDA0002386827810000067
为第l层的输出;
Figure FDA0002386827810000068
为第l层的输入;
Figure FDA0002386827810000069
Figure FDA00023868278100000610
均为第l层的偏差;q为特征图像的输入集指示量;Mq为特征图像的输入集;l为层数指示量;k和t均为汇集矩阵的维数;f(·)为CNN的激活函数;
所述全连接层的最终输出结果的公式为:
y=f(ωkx+bk)
式中,y为全连接层的最终输出;ωk为连接权重;x为全连接层的输入;bk为偏差;f(·)为CNN的激活函数。
CN201910089266.0A 2019-01-30 2019-01-30 一种基于流量可视化与机器学习算法的入侵检测方法 Active CN109768985B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910089266.0A CN109768985B (zh) 2019-01-30 2019-01-30 一种基于流量可视化与机器学习算法的入侵检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910089266.0A CN109768985B (zh) 2019-01-30 2019-01-30 一种基于流量可视化与机器学习算法的入侵检测方法

Publications (2)

Publication Number Publication Date
CN109768985A CN109768985A (zh) 2019-05-17
CN109768985B true CN109768985B (zh) 2020-06-23

Family

ID=66454509

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910089266.0A Active CN109768985B (zh) 2019-01-30 2019-01-30 一种基于流量可视化与机器学习算法的入侵检测方法

Country Status (1)

Country Link
CN (1) CN109768985B (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110311829B (zh) * 2019-05-24 2021-03-16 西安电子科技大学 一种基于机器学习加速的网络流量分类方法
CN110336789A (zh) * 2019-05-28 2019-10-15 北京邮电大学 基于混合学习的Domain-flux僵尸网络检测方法
CN110399485B (zh) * 2019-07-01 2022-04-08 上海交通大学 基于词向量和机器学习的数据溯源方法和系统
CN110808945B (zh) * 2019-09-11 2020-07-28 浙江大学 一种基于元学习的小样本场景下网络入侵检测方法
CN111144464B (zh) * 2019-12-17 2023-04-07 金陵科技学院 基于CNN-Kmeans算法水果自动识别方法
CN111031071B (zh) * 2019-12-30 2023-01-24 杭州迪普科技股份有限公司 恶意流量的识别方法、装置、计算机设备及存储介质
CN111107102A (zh) * 2019-12-31 2020-05-05 上海海事大学 基于大数据实时网络流量异常检测方法
CN111343182B (zh) * 2020-02-26 2021-08-10 电子科技大学 一种基于灰度图的异常流量检测方法
CN111340727B (zh) * 2020-02-26 2022-05-17 电子科技大学 一种基于gbr图像的异常流量检测方法
CN111553381B (zh) * 2020-03-23 2022-11-18 北京邮电大学 基于多网络模型的网络入侵检测方法、装置及电子设备
CN111556018B (zh) * 2020-03-25 2021-07-27 中国科学院信息工程研究所 一种基于cnn的网络入侵检测方法及电子装置
CN113810333B (zh) * 2020-06-11 2023-06-27 中国科学院计算机网络信息中心 基于半监督谱聚类和集成svm的流量检测方法及系统
CN111967003B (zh) * 2020-07-22 2023-11-28 武汉极意网络科技有限公司 基于黑盒模型与决策树的风控规则自动生成系统及方法
CN111970259B (zh) * 2020-08-05 2022-04-29 贵州大学 一种基于深度学习的网络入侵检测方法和报警系统
CN112491797B (zh) * 2020-10-28 2022-11-22 北京工业大学 一种基于非平衡工控数据集的入侵检测方法及系统
CN112364917B (zh) * 2020-11-10 2024-02-13 辽宁石油化工大学 地质类型的识别方法及装置、存储介质、计算机设备
CN112637084B (zh) * 2020-12-10 2022-09-23 中山职业技术学院 分布式网络流量新奇检测方法及分类器
CN112631226B (zh) * 2020-12-26 2021-10-29 太原师范学院 一种基于数据驱动的生产设备故障监测方法
CN113726785B (zh) * 2021-08-31 2022-11-11 平安普惠企业管理有限公司 网络入侵检测方法、装置、计算机设备以及存储介质
CN114091026A (zh) * 2021-11-25 2022-02-25 云南电网有限责任公司信息中心 一种基于集成学习的网络异常入侵检测方法和系统
CN114124565B (zh) * 2021-12-04 2024-04-05 东南大学 一种基于图嵌入的网络入侵检测方法
CN114567512B (zh) * 2022-04-26 2022-08-23 深圳市永达电子信息股份有限公司 基于改进art2的网络入侵检测方法、装置及终端
CN115296856A (zh) * 2022-07-12 2022-11-04 四川大学 基于ResNet-AIS的加密流量网络威胁检测器进化学习方法
CN116599779B (zh) * 2023-07-19 2023-10-27 中国电信股份有限公司江西分公司 一种增加网络安全性能的IPv6云转换方法
CN117034125B (zh) * 2023-10-08 2024-01-16 江苏臻云技术有限公司 一种用于大数据融合的分类管理系统及方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101345704B (zh) * 2008-08-15 2011-02-16 南京邮电大学 基于支持向量机的对等网络流量检测方法
CN104348741A (zh) * 2013-08-06 2015-02-11 南京理工大学常熟研究院有限公司 基于多尺度分析和决策树的p2p流量检测方法和系统
CN106817248B (zh) * 2016-12-19 2020-10-16 西安电子科技大学 一种apt攻击检测方法
CN108156130B (zh) * 2017-03-27 2020-12-08 上海观安信息技术股份有限公司 网络攻击检测方法和装置
US10567243B2 (en) * 2017-07-21 2020-02-18 Singapore University Of Technology And Design Apparatus and method for monitoring a wireless network
CN108985361B (zh) * 2018-07-02 2021-06-18 北京金睛云华科技有限公司 一种基于深度学习的恶意流量检测实现方法和装置

Also Published As

Publication number Publication date
CN109768985A (zh) 2019-05-17

Similar Documents

Publication Publication Date Title
CN109768985B (zh) 一种基于流量可视化与机器学习算法的入侵检测方法
Shapira et al. FlowPic: A generic representation for encrypted traffic classification and applications identification
CN112738015B (zh) 一种基于可解释卷积神经网络cnn与图检测的多步攻击检测方法
Jha et al. Intrusion detection system using support vector machine
Ektefa et al. Intrusion detection using data mining techniques
CN110213222A (zh) 基于机器学习的网络入侵检测方法
CN111783442A (zh) 入侵检测方法、设备和服务器、存储介质
CN111107102A (zh) 基于大数据实时网络流量异常检测方法
CN111835707B (zh) 一种基于改进后的支持向量机的恶意程序识别方法
TWI715457B (zh) 非監督式惡意流量偵測系統及方法
CN111556016B (zh) 一种基于自动编码器的网络流量异常行为识别方法
CN107483451B (zh) 基于串并行结构网络安全数据处理方法及系统、社交网络
Kong et al. Identification of abnormal network traffic using support vector machine
CN113901448A (zh) 基于卷积神经网络和轻量级梯度提升机的入侵检测方法
CN116318928A (zh) 一种基于数据增强和特征融合的恶意流量识别方法及系统
CN110650124A (zh) 一种基于多层回声状态网络的网络流量异常检测方法
Özalp et al. Detecting Cyber Attacks with High-Frequency Features using Machine Learning Algorithms
Manjula et al. An effective network intrusion detection and classification system for securing WSN using VGG-19 and hybrid deep neural network techniques
CN113098862A (zh) 一种基于混合采样与膨胀卷积相结合的入侵检测方法
CN116684877A (zh) 一种基于gyac-lstm的5g网络流量异常检测方法及系统
Thanh et al. An approach to reduce data dimension in building effective network intrusion detection systems
CN115842645A (zh) 基于umap-rf的网络攻击流量检测方法、装置及可读存储介质
Dalmaz et al. Machine Learning Approaches in Detecting Network Attacks
CN112651422A (zh) 一种时空感知的网络流量异常行为检测方法及电子装置
Lin et al. Behaviour classification of cyber attacks using convolutional neural networks

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