一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种网络入侵检测方法及系统与流程

2022-02-20 03:46:26 来源:中国专利 TAG:


1.本发明属于网络安全技术领域,尤其涉及一种网络入侵检测方法。


背景技术:

2.随着互联网时代的到来,网络已经渗透在人们生活的各个方面之中,给人们生活带来便利的同时,各种变化多端的网络入侵手段也可能导致个人信息泄露,机密文件窃取和账户盗用等各种安全问题,造成难以估量的损失。因此如何构建有效的网络入侵检测模型越来越受到相关学者们的重视。
3.近年来,各种机器学习算法被应用到网络入侵检测中来,一些经典的算法如knn、决策树和svm等算法已经有所应用,然而这些算法在应用中存在检测效率低,误检率高等问题。v.raovemuri等人采用knn进行入侵检测,该方法具有较低的误检率,然而存在的明显缺陷就是预测时间较长;肖海军等人为了提高检测率和降低误检率,在数据处理过程中根据特征之间的相关性及同类样本之间的相似性进行降维和剔除样本的操作,之后利用svm算法进行建模,然而这种直接剔除特征和舍弃样本的操作必然带来信息的损失,检测的准确性也必然有限;陈虹等人基于深度信念神经网络(deep belief networks,dbn)进行数据降维,利用多个梯度提升树进行入侵检测,对于入侵数据的不均衡入侵数据有较好的检测效果,然而其处理过程复杂,实验耗时较长;张阳等人将xgboost算法引入到入侵检测中,取得了较好的检测率和较低的误检率,但存在高维数据处理困难以及对样本数目较少的攻击类型的检测效果不够理想的问题。
4.网络中的数据无时不刻都处于增长的状态,少数入侵威胁行为往往隐藏在海量的正常网络行为中,同时网络环境十分复杂,影响因素很多,导致在入侵检测过程中数据存在大规模、高维度和不均衡的特点。目前的研究方法虽然取得一些成果,但存在高维数据处理困难以及对样本数目较少的攻击类型的检测效果不够理想的问题。


技术实现要素:

5.为了解决现有技术存在的问题,本发明提供一种网络入侵检测方法,能够准确的检测网络入侵数据。
6.本发明所要解决的技术问题是通过以下技术方案实现的:
7.第一方面,提供了一种网络入侵检测方法,包括:整理截获的网络数据包得到网络数据集;
8.对网络数据集进行特征工程处理得到网络检测数据集;
9.采用训练好的去噪自编码神经网络模型对网络检测数据集进行降维;
10.采用训练好的xgboost网络入侵检测模型对降维后的网络检测数据进行入侵检测;
11.根据检测结果为入侵的网络数据以及公开的入侵数据构建入侵数据库;
12.根据入侵数据库定期对去噪自编码神经网络模型模型和xgboost网络入侵检测模
型重新进行训练,根据重新训练的模型对网络数据进行入侵检测。
13.结合第一方面,进一步的,所述整理截获的网络数据包得到网络数据集具体为:根据所截获的网络数据包中的tcp连接的基本特征属性、tcp连接的内容属性、基于时间的网络流量特征属性以及基于主机的网络流量统计特征的内容得到网络数据集nd。
14.结合第一方面,进一步的,所述对网络数据集进行特征工程处理得到网络检测数据集具体为:
15.对网络数据集中的字符型数据采用onehot编码进行数值化,对网络数据集中的数值数据进行归一化,根据数值化和归一化后的数据得到网络检测数据集d。
16.结合第一方面,进一步的,所述训练好的去噪自编码神经网络训练过程包括:
17.将同一网络环境下的历史数据进行人工标注,将标注后的历史数据和公开的网络攻击数据组成训练数据集;
18.对训练数据集中的字符型数据采用onehot编码进行数值化处理,对其中的数值型数据进行归一化处理,将处理过的训练数据集分为训练集t1和测试集t2;
19.将训练集输入到去噪自编码神经网络模型对该模型进行训练;
20.将测试数据集t2输入到训练好的去噪自编码神经网络模型对该模型进行测试,若不达标准则对该模型参数进行调整后继续训练,直到达标为止。
21.结合第一方面,进一步的,所述采用训练好的去噪自编码神经网络模型对网络检测数据集进行降维包括:
22.将训练集t1和测试集t2输入到训练好达到标准的自编码神经网络模型中的encoder部分,输出降维后的训练集t1'和测试集t2'。
23.结合第一方面,进一步的,所述采用训练好的去噪自编码神经网络模型对网络检测数据集进行降维包括:
24.将网络检测数据集d输入到训练好的去噪自编码神经网络模型的encoder部分,encoder的输出降维后的网络检测数据集d'。
25.结合第一方面,进一步的,所述训练好的xgboost网络入侵检测模型的训练过程包括:
26.采用降维后的训练集t1'对xgboost网络入侵检测模型进行训练;
27.通过降维后的测试集t2'对训练后的模型进行测试,若不达标则对该模型参数调整后继续训练直至测试结果达标为止。
28.结合第一方面,进一步的,建入侵数据库包括:
29.将降维后的网络检测数据集d'输入到xgboost网络入侵检测模型中,将检测结果为入侵的网络数据放入数据集d
p
中,将检测结果为正常的网络数据放入数据集dn中;
30.根据d
p
和netlab中公开的网络入侵数据构建入侵数据库idb。
31.第二方面,提供了一种网络入侵检测系统,包括:
32.数据处理模块,用于整理截获的网络数据包得到网络数据集;
33.对网络数据集进行特征工程处理得到网络检测数据集;
34.入侵检测模块,用于采用训练好的去噪自编码神经网络模型对网络检测数据集进行降维;
35.采用训练好的xgboost网络入侵检测模型对降维后的网络检测数据进行入侵检
测;
36.根据检测结果为入侵的网络数据以及公开的入侵数据构建入侵数据库;
37.根据入侵数据库定期对去噪自编码神经网络模型模型和xgboost网络入侵检测模型重新进行训练,根据重新训练的模型对网络数据进行入侵检测。
38.本发明有益效果:本发明在用xgboost模型检测之前,先将网络数据输入到dae模型对其进行降维。在自编码神经网络模型训练过程中,在将样本输入神经网络之前随机将部分样本的某些特征随机掩盖或替换,有助于从海量复杂的网络数据有效地提取出有效信息和数据降维,提高模型的信息提取能力和鲁棒性;同时本发明在xgboost模型的损失函数中加入样本权衡因子,影响其树的构建过程,使其建模过程中对于罕见攻击类型的更加重视,提高了该模型对于罕见网络入侵的检测能力;本发明将dae对于大规模高维数据的信息提取能力与加入权衡因子后的xgboost模型对于不均衡入侵类型的检测能力相结合,构建出dae-xgboost入侵检测模型,很好地解决了网络入侵检测过程中,高维困难和罕见攻击类型检测效果不理想的问题。
附图说明
39.图1是本发明提供的一种网络入侵检测方法的流程图。
具体实施方式
40.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
41.为了更好地理解本发明,下面对本发明技术方案中的相关技术进行说明。
42.实施例1
43.本发明提供的一种网络入侵检测方法,包括如下步骤:
44.步骤一、用网络分析工具收集网络数据,选取数据包中的tcp连接的基本特征属性(tcp_b)、tcp连接的内容属性(tcp_c),基于时间的网络流量特征属性(tcp_tf)和基于主机的网络流量统计特征(host_nf),形成网络数据集。每种属性包含的具体内容如表1所示:
45.表1网络数据包中属性的具体内容
[0046][0047][0048]
步骤二、对收集到的网络数据集nd进行数据预处理和特征工程,特征工程包括:对于网络数据的字符型特征采用onehot编码技术转化为计算机可识别的数值向量,如协议类型有“tcp”、“udp”和“icmp”三种,采用onehot编码后分别为[1,0,0]、[0,1,0]和[0,0,1];对于数值型的特征要采取归一化的方法,其数学表达如式(1)所示,目的是将数值约束在[0,1]范围内,以减小不同特征之间量纲的不同对于建模过程的影响,此时得到网络检测数据集d;
[0049][0050]
其中,为x'归一化后的样本;x为原样本;x
max
为样本的最大值;x
min
为样本的最小值。
[0051]
步骤三、利用网络分析器收集的网络数据和网上公开的网络入侵数据,人工将所有数据标记为为“正常”、“dos攻击”、“probe攻击”、“u2r攻击”和“r2l攻击”五种类型,形成预训练数据集t;
[0052]
步骤四、将分为预训练数据集t按照8:2的比例分成训练集t1和测试集t2,用t1训练dae模型(去噪自编码神经网络模型),在训练过程中,当的损失函数值低于0.0001时,停止训练;使用测试集t2对dae模型的训练效果进行测试,测试中若式(6)表示的损失函数值低于0.0001,说明dae模型训练完毕,可用于网络入侵检测过程中;若大于0.0001,人工对神经元个数、神经网络的层数进行调整,重新训练dae模型;训练结束后,将训练集t1和测试集t2输入到训练好的dae模型中的编码器部分,经编码器输出得到低维训练集t1'和低维测试集t
′2用于后续xgboost模型的训练。
[0053]
步骤五、利用低维训练集t1'对xgboost模型进行训练,在训练过程中,当后文式(16)所示的召回率大于等于0.75时,停止训练;用低维测试集t
′2对xgboost模型入侵检测效果进行测试,测试中的召回率大于等于0.75时,说明模型已经训练好,可以用于实际的网络入侵检测过程中;若召回率小于0.75,则调整xgboost模型的参数,进行重新训练。
[0054]
步骤六、将网络数据集d输入到步骤四中训练好的dae模型的编码器部分,编码器输出得到低维网络检测数据集d'。
[0055]
步骤七、将低维网络检测数据集d'输入到步骤五中训练好的xgboost网络入侵检测模型中;构建数据集d
p
,将检测结果为入侵的网络数据放入d
p
中;构建数据集dn,将检测结果为正常的网络数据放入dn中。
[0056]
步骤八、构建入侵数据库idb,将d
p
和netlab中公开的网络入侵数据存入idb中。
[0057]
步骤九、利用整个idb和5000条dn中的网络数据每隔两个月对dae和xgboost模型进行重新训练,当训练中损失函数值低于0.0001且召回率大于等于0.75时,结束训练,保证其对于新的入侵手段也有较好的检测效果。
[0058]
经过前面步骤得到的dae模型和xgboost模型联合起来可用于网络环境中进行网络入侵的检测,本发明的目的在于克服现有技术的不足,提供了一种基于神经网络dae和集成学习xgboost的网络入侵检测模型,解决了网络入侵检测中处理高维数据困难和不均衡攻击类型检测效果不够理想的问题的同时,对各种入侵检测具有更高的检测效果。
[0059]
在数据预处理阶段,本发明构造了一个由26个字段构成的数据结构,网络分析工具采集到的数据经过数据预处理和特征工程之后的网络数据,都以此结构存储在.csv文件中,该结构由以下26个元组组成网络数据集nd中的每一次的事务特征,每个字段的具体含义如表1所示:
[0060]
《“duration”,“protocol_type”,“service”,“flag”,“src_bytes”,“dst_bytes”,“land”,“wrong_fragment”,“urgent”,“hot”,“num_failed_logins”,“logged_in”,“num_compromised”,“root_shell”,“su_attempted”,“num_root”,“num_file_creations”,“num_shells”,“num_access_files”,“num_outbound_cmds”,“is_hot_logins”,“is_
guest_login”,“count”,“srv_count”,“dst_host_count”,“dst_host_srv_count”》
[0061]
如网络分析工具中收集到一条数据如下:
[0062]
《“2”,“tcp”,“smtp”,“sf”,“1684”,“363”,“0”,“0”,“0”,“0”,“0”,“1”,“0”,“0”,“0”,“0”,“0”,“0”,“0”,“0”,“0”,“0”,“1”,“1”,“104”,“66”》
[0063]
经过onehot编码及归一化的特征工程操作后可得到本发明设计的数据结构的结果如下:
[0064]
《“0.16”,“0,0,1”,“1,0(69)”,“1,0(10)”,“0.37”,“0.15”,“0”,“0”,“0”,“0”,“0”,“1”,“0”,“0”,“0”,“0”,“0”,“0”,“0”,“0”,“0”,“0”,“1”,“1”,“0.24”,“0.19”》
[0065]
在dae数据降维阶段,本实施例预先训练好的模型参数保存在.pkl文件中,在进行入侵检测的过程中只需调用该模型参数即可进行dae数据降维。
[0066]
在xgboost入侵检测阶段,本实施例将预先训练好的模型参数保存在.pkl文件中,入侵检测时,调用该文件进行模型恢复,然后将经过dae降维的低维网络检测数据,输入到xgboost模型中,即可得到检测结果,将结果为入侵的数据保存在d
p
中,连同网上最新公开的网络入侵数据同时存储在入侵数据库idb中;将结果为正常的数据保存在dn中。
[0067]
在模型定期更新阶段,利用入侵数据库idb的数据和部分dn中的数据对dae模型和xgboost模型进行重新训练,保证其对新的入侵手段的检测能力。
[0068]
以下给出实验结果及分析:
[0069]
实验环境为cpu intel(r)core(tm)i5-6300@2.30ghz,8内存,硬盘1t,操作系统为windows 10的计算机。使用python语言在anaconda jupyter notebook中运行的。
[0070]
实验选择的测试数据集如下:
[0071]
本发明选用的数据集为kdd99数据集,该数据集来源于1998年美国国防部高级规划署(darpa)在mit林肯实验室进行了一项入侵检测评估项目,仿真各种用户类型、各种不同的网络流量和攻击手段,就像一个真实的网络环境。
[0072]
性能分析:
[0073]
为了衡量各入侵检测模型对于每一类攻击的分类检测情况,根据多分类问题的常见“宏平均”macro的评价方式设计了准确率(precision)、召回率(recall)、误检率和f1score几种评价指标。
[0074]
为了对本发明所设计的模型进行全面的评价,设计了两种级别的验证实验,一是分为normal和attack两种类别,此时除了normal以外的攻击类型均统一成attack类别;二是多分类,即按照数据集中的标签情况,进行多种攻击类型的检测。
[0075]
本发明对于训练集和测试集中样本类别,数目的情况分别如表2和表3所示。在对模型评价时,构建了四组测试集,目的是检测模型对于不同数据集的泛化能力。
[0076]
表2训练集的攻击类别、数量
[0077]
攻击类型normaldosprober2lu2rtotal数量472781914581607500180241023
[0078]
表3测试集的攻击类别、数量
[0079]
test datanormaldosprober2lu2rtotaldata11263453621032263519159data2283678326262323681753
data3320488634356914832119140data42482299696371292733244
[0080]
为了对检测效果进行比较,本发明设计了将dae模型分别与随机森林(rf)、k-近邻(knn)和支持向量机(svm)相结合以及不结合dae模型直接使用xgboost进行检测的四组对比实验,得到各模型的评价指标。
[0081]
(1)二分类实验时,各实验在测试数据集所得到的评价指标的平均值情况如表4所示:
[0082]
表4二分类情况下各测试集平均评价指标
[0083]
modelprecisionrecallf1scorefalsedae-knn0.97950.96850.9740.00214dae-svm0.95620.94880.95240.00162dae-rf0.96260.95280.95770.00174xgboost0.98420.97860.98130.00186dae-xgboost0.99210.98230.98710.0008
[0084]
综合表中所展示的各评价指标结果可知,对于入侵检测二分类的情况,各个方法检测的效果都不错,本发明所设计的方法与其他对比方法效果相差不多。
[0085]
(2)对于多分类检测的情况,各测试集的平均评价指标如表5所示,
[0086]
表5多分类情况下各测试集平均评价指标
[0087]
modelmacro-pmacro-rmacro-f1macro-fdae-knn0.75940.75620.75780.0427dae-svm0.78470.76840.77650.0254dae-rf0.81260.80420.80840.0204xgboost0.83940.80940.82410.0214dae-xgboost0.87850.85720.86770.00809
[0088]
实施例2
[0089]
提供了一种网络入侵检测系统,包括:
[0090]
数据处理模块,用于整理截获的网络数据包得到网络数据集;
[0091]
对网络数据集进行特征工程处理得到网络检测数据集;
[0092]
入侵检测模块,用于采用训练好的去噪自编码神经网络模型对网络检测数据集进行降维;
[0093]
采用训练好的xgboost网络入侵检测模型对降维后的网络检测数据进行入侵检测;
[0094]
根据检测结果为入侵的网络数据以及公开的入侵数据构建入侵数据库;
[0095]
根据入侵数据库定期对去噪自编码神经网络模型模型和xgboost网络入侵检测模型重新进行训练,根据重新训练的模型对网络数据进行入侵检测。
[0096]
由表中各测试集的平均评价指标可知,从总体检测效果看上看,在各种攻击类型分布不均衡的情况下,对入侵检测进行多种攻击类型进行检测时,本发明所设计的方法对比于其他方法,具有较高的准确率和较低的误检率。
[0097]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序
产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0098]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0099]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0100]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献