首页> 中国专利> 一种基于随机森林的入侵检测分类方法及装置

一种基于随机森林的入侵检测分类方法及装置

摘要

本发明涉及一种基于随机森林的入侵检测分类方法及装置。使用网络入侵检测数据集进行网络流量的攻击识别,选取的特征属性有TCP连接的基本特征、TCP连接的内容特征、基于时间的网络流量统计特征和基于主机的网络流量统计特征,并将入侵检测数据集分为70%的训练集和30%测试集,然后对非数值型特征进行数值转换,对于没有关联的特征分类数值进行one‑hot编码,将这四类特征作为随机森林入侵检测模型的输入,通过训练集构建随机森林分类器模型,调整基评估其数量以得到最佳的分类器模型,后用测试集对该模型进行评估,实现对入侵检测的精确分类。实验表明,本方法准确率可达99.91%,该模型具有非常好的入侵检测分类效果。

著录项

  • 公开/公告号CN112187752A

    专利类型发明专利

  • 公开/公告日2021-01-05

    原文格式PDF

  • 申请/专利权人 湖北大学;赛尔网络有限公司;

    申请/专利号CN202010983674.3

  • 发明设计人 朱国胜;曹扬晨;祁小云;邹洁;

    申请日2020-09-18

  • 分类号H04L29/06(20060101);G06K9/62(20060101);

  • 代理机构42258 武汉聚信汇智知识产权代理有限公司;

  • 代理人刘丹

  • 地址 430062 湖北省武汉市武昌区友谊大道368号

  • 入库时间 2023-06-19 09:26:02

说明书

技术领域

本发明涉及网络安全技术领域,具体涉及一种基于随机森林的入侵检测分类方法及装置。

背景技术

随着互联网的快速发展,新的网络技术数见不鲜,网络入侵却不断带来网络安全问题,面对如此复杂网络环境下的攻击,我们如何及时发现黑客的攻击行为,尽可能抵御、减少网络上的恶意攻击、维护网络安全,这使网络流量的监控和入侵检测变得越发重要。

入侵检测技术可通过识别网络流量数据中的攻击来保障网络空间的安全。主机型和网络型的入侵检测系统一般比较常见,以日志为数据源的主机型入侵检测系统,能很好的识别分析、紧密关注特殊主机事件以及成本低廉,可以检测到攻击但不快捷;而网络型入侵检测系统一般是通过捕获网络流量的数据包作为数据源,将系统放置在网关或者防火墙之后,对所有的数据包起到监视的作用。

近年来,机器学习的分类、聚类、降维、回归的方法被广泛用于入侵检测研究,如何建立正确的入侵检测模型成为研究热点之一。网络流量分类存在准确率低的问题,因此,本发明提出基于随机森林的入侵检测分类方法及装置。

发明内容

本发明的目的是:为了解决上述问题,本发明提出一种基于随机森林的入侵检测分类方法及装置。该方法基于并行式集成学习的随机森林模型,利用样本的随机选择和特征的随机选择,解决了传统机器学习算法容易过拟合的问题,而且,随机森林中的决策树数量多,不但可以解决单个决策树泛化能力弱的问题,对数量大维度高的数据也能进行较好的分类,提高入侵检测的准确性。

为了解决上述问题,本发明所采用的技术方案是:

一种基于随机森林的入侵检测分类方法,其特征在于,包括如下步骤:

选取入侵检测数据集的特征属性:对NSL-KDD网络入侵检测数据集进行分析,选取与入侵检测有密切关系的四类特征属性作为输入,包括:TCP连接的基本特征、TCP连接的内容特征、基于时间的网络流量统计特征和基于主机的网络流量统计特征;

划分训练集和测试集:导入NSL-KDD网络入侵检测数据集的数据,并将其随机划分为70%的训练集和30%的测试集;

数值转换:对训练集和测试集的数据进行数值转换处理,将分类标签转换成分类数值,将文字型特征也转换为数值类型;

one-hot编码:对没有关联的特征分类数值进行one-hot编码,将字符型特征转换为哑变量覆盖原来的数值;

建立随机森林分类器模型:选取训练集的数据作为输入导入随机森林算法中,通过训练集建立随机森林分类器模型,实现对入侵检测分类;

调整基评估器数量:比较不同的基评估器数量对精确度的影响,选择分类结果最好的一个作为最终的分类器;

完善随机森林分类器模型:通过测试集对随机森林分类器模型进行评估,从而完善随机森林分类器模型,实现对入侵检测数据精确分类。

进一步的,选取入侵检测数据集的特征属性,包括:基于随机森林分类算法,选取入侵检测数据集中与入侵检测紧密相关的四类特征属性共41个特征属性建立入侵检测分类模型,表1至表4是属性说明:

表1 TCP连接的基本特征

表2 TCP连接的内容特征

表3基于时间的网络流量统计特征

表4基于主机的网络流量统计特征

进一步的,数值转换,包括:由于机器学习的第三方模块sklearn规定导入模型的数据只能为数值型,所以利用Preprocessing.LabelEncoder模块将分类标签转成分类数值;同理,用Preprocessing.OrdinalEncoder模块将分类特征转换成分类数值,将协议类型、主机的服务类型、连接状态三个特征值转换为数值类型。

进一步的,one-hot编码,包括:将分类转换成数字的时候,如果忽略数字中自带的数学性质,会给算法传达不准确的信息,影响建模过程,所以使用独热编码,将协议类型、主机的服务类型、连接状态这三个特征转换为哑变量覆盖原来的数值,将处理好的数据作为随机森林算法的输入。

进一步的,调整基评估器数量,包括:给定决策树参数范围1~200,随着随机森林中树的数量的增加,模型分类的准确率呈突发式增长,之后处于一个比较平稳的状态,经实验证明当随机森林中决策树的数量为114时,模型的准确率最高。

本发明还提供一种基于随机森林的入侵检测分类装置,其特征在于,包括:

入侵检测数据集的特征属性选取模块:对NSL-KDD网络入侵检测数据集进行分析,选取与入侵检测有密切关系的四类特征属性作为输入,包括:TCP连接的基本特征、TCP连接的内容特征、基于时间的网络流量统计特征和基于主机的网络流量统计特征;

训练集和测试集的划分模块:导入NSL-KDD网络入侵检测数据集的数据,并将其随机划分为70%的训练集和30%的测试集;

数值转换模块:对训练集和测试集的数据进行数值转换处理,将分类标签转换成分类数值,将文字型特征也转换为数值型;

one-hot编码模块:对没有关联的特征分类数值进行one-hot编码,将字符型特征转换为哑变量覆盖原来的数值;

随机森林分类器模型的建立模块:选取训练集的数据作为输入导入随机森林算法模型中,通过训练集建立随机森林分类器模型,实现对入侵检测分类;

基评估器数量的调整模块:比较不同的基评估器数量对精确度的影响,选择分类结果最好的一个作为最终的分类器;

随机森林分类器模型的完善模块:通过测试集对随机森林分类器模型进行评估,从而完善随机森林分类器模型,实现对入侵检测数据精确分类。

本发明提供的上述技术方案的有益效果至少包括:本发明相对于现有技术的优点是:

1、由于引入并行式集成学习的思想,提出基于随机森林的入侵检测模型,可以很好的提高分类的准确性。

2、将非数值型特征进行数值转换,有利于数据的有效处理。

3、采用one-hot编码,使训练模型时不会因为数值之间本身存在的关系而产生影响。

4、采用范围数值训练模型的方法,找出最合适的决策树数量,避免决策树数量过大带来计算量过大的问题以及决策树数量过小带来的分类不准确的问题。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1是本发明实施例公开的一种基于随机森林的入侵检测分类方法的流程示意图;

图2是本发明实施例公开的随机森林的学习曲线图;

图3是随机森林与决策树在进行十次十组交叉验证的效果比较图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施方式。虽然附图中显示了本公开的示例性实施方式,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

本发明通过并行式集成学习的方法对经典的网络入侵数据集的特征属性进行分析,提出一种基于随机森林的入侵检测分类方法。将样本全集根据7:3的比例分为训练集和测试集,通过对特征进行数值转换以及one-hot编码得到的数据作为输入,对模型进行训练,得到随机森林分类器模型。选择对随机森林模型精确度影响最高的基评估器的数量参数,进行模型的调参,基评估器的数量越大,模型的效果往往越好,但是需要的计算量和内存也越大,所以需要调整参数,使得训练难度和模型效果之间取得平衡。通过测试集,验证模型的精确度,实现对入侵检测的精确分类。具体的,本发明包括如下步骤:

选取入侵检测数据集的特征属性:对NSL-KDD网络入侵检测数据集进行分析,选取与入侵检测有密切关系的四类特征属性作为输入,包括:TCP连接的基本特征、TCP连接的内容特征、基于时间的网络流量统计特征和基于主机的网络流量统计特征;

划分训练集和测试集:导入NSL-KDD网络入侵检测数据集的数据,并将其随机划分为70%的训练集和30%的测试集;

数值转换:对训练集和测试集的数据进行数值转换处理,将分类标签转换成分类数值,将文字型特征也转换为数值类型;

one-hot编码:对没有关联的特征分类数值进行one-hot编码,将字符型特征转换为哑变量覆盖原来的数值;

建立随机森林分类器模型:选取训练集的数据作为输入导入随机森林算法中,通过训练集建立随机森林分类器模型,实现对入侵检测分类;

调整基评估器数量:比较不同的基评估器数量对精确度的影响,选择分类结果最好的一个作为最终的分类器;

完善随机森林分类器模型:通过测试集对随机森林分类器模型进行评估,从而完善随机森林分类器模型,实现对入侵检测数据精确分类。

下面详细的介绍NSL-KDD数据集的特征。

TCP连接的基本特征共包含9列,是判断入侵检测的基础依据,见表1:

表1 TCP连接的基本特征

TCP连接的内容特征有13列。对于嵌入在数据包的数据负载里的攻击,单从数据包的连接特征上来看,与普通的数据包并无差异,如U2R和R2L之类的攻击,需要从TCP连接的内容特征中筛选相应内容特征来检测是否存在攻击行为。见表2:

表2 TCP连接的内容特征

基于时间的网络流量统计特征有9列。网络攻击行为通常在时间上有一定的联系,统计当前连接与之前一段时间的连接之间的关系可以对攻击行为有较好的识别,以两秒为时间节点,统计过去两秒内,在与当前连接具有相同目标主机或是有相同服务的连接数量和百分比。见表3:

表3基于时间的网络流量统计特征

基于主机的网络流量统计特征有10列,对于慢速攻击如Probe,基于时间的网络流量统计特征已无法很好的识别出相应的联系,而需要以100个连接为窗口,统计前100个连接中,与当前连接具有相同目标主机或是相同服务的连接数量和百分比。见表4:

表4基于主机的网络流量统计特征

如图1所示,本发明实施例提出的入侵检测算法的训练步骤如下:

(1)首先导入NSL-KDD网络入侵数据集的训练集部分,并将其分为70%的训练集和30%测试集。

(2)将非数值型特征进行数值转换。

(3)对于没有关联的特征分类数值进行one-hot编码。

(4)调整随机森林中基评估器的数量n_estimators,这个参数对于随机森林的精确度影响是单调的,n_estimators越大,模型的效果往往越好,但是需要的计算量和内存也越大,所以需要调整参数,使得训练难度和模型效果之间取得平衡。

(5)将数据导入随机森林算法中,让模型对网络流量的数据进行训练,这样可得到一个随机森林分类器。

(6)比较不同的n_estimators对精确度的影响,选择分类结果最好的一个作为最终的分类器。

(7)通过测试集对随机森林分类器模型进行评估,从而完善随机森林分类器模型,实现对入侵检测数据精确分类。

实例分析

1数据描述

NSL-KDD数据集是目前最常用的用于入侵检测研究的数据集,数据集中的每条记录均被标注为正常或异常,包括了Normal,Probe,DoS,R2L和U2R五种类型的数据,训练集中有22种攻击类型,总数据量达到125973个样本。与KDD99数据集相比,NSL-KDD数据集一方面删除了数据集中重复记录的数据,解决了记录冗余的问题,另一方面优化配置,使数据合理分布,克服了训练出的模型对攻击记录数量较少的类别学习能力降低,而大量相似的数据分类效果较好的问题。NSL-KDD数据集已经逐步替代KDD99数据集,成为评估分类模型的性能上应用最广泛的数据集。

表5 NSL-KDD数据集入侵数据分布

NSL-KDD数据集有43列特征,其中前42列与KDD99特征相同,第43列代表分类的难易程度,数值越大表示越容易分类。

2数据预处理

因为sklearn规定导入模型的数据只能为数值型,所以利用Preprocessing.LabelEncoder模块将分类标签转成分类数值,这里23个标签数据编码为数值0~22;同理,用Preprocessing.OrdinalEncoder将分类特征转换成分类数值,将协议类型、主机的服务类型、连接状态三个特征值转换为数值类型,而将分类转换成数字的时候,如果忽略数字中自带的数学性质,会给算法传达一些不准确的信息,影响建模过程。所以我们使用独热编码,将这三个特征转换为哑变量覆盖原来的数值,将处理好的数据作为随机森林算法的输入。

3实验过程

实验中将python作为编程语言,Jupyter lab作为训练神经网络的工具,用到的python模块包括Scikit-learn、Pandas、Matplotlib。采用NSL-KDD数据集作为训练数据和测试数据。

实验将NSL-KDD数据集125973条数据,分为70%的训练集和30%的测试集,在进行数据的预处理之后,提取数据集中除标签数据外的42列特征,构建随机森林的模型,在随机森林调参上,sklearn中n_estimators为基评估器的数量,n_estimators越大,模型的效果往往越好,鲁棒性越强,但是n_estimators达到一定程度后,随机森林的准确率趋于平稳,不再上升,且n_estimators越大计算量和内存的消耗也越大。

4结果分析

随机森林的学习曲线,如图2。如图2所知,0~15之间,随着随机森林中树的数量的增加,模型分类的准确率呈突发式增长,之后处于一个比较平稳的状态,经过实验可知,准确率最高时,随机森林的决策树个数为114,达到99.91%。

随机森林与决策树在进行十次十组交叉验证的效果比较,如图3。由图3可知,随机森林的预测准确性始终在决策树之上,表现出非常好的分类性能。

随机森林不仅降低了异常值对模型带来的影响,而且降低了过拟合的可能性。异常值对于单个决策树来说极易导致预测结果不准确,而随机森林采用多棵决策树分类结果投票的方式,这样使得准确率大大的提高;随机森林在样本和特征值上的两个随机选择特性,使得决策树容易过拟合的问题也得以解决,极大的增加了模型的泛化性能。

本发明提出的一种基于随机森林的入侵检测分类方法,使用网络入侵检测数据集进行网络流量的攻击识别,选取的特征主要有TCP连接的基本特征、TCP连接的内容特征、基于时间的网络流量统计特征和基于主机的网络流量统计特征,将这四类特征作为随机森林入侵检测模型的输入,并将其分为70%的训练集和30%测试集。然后对非数值型特征进行数值转换,对于没有关联的特征分类数值进行one-hot编码,通过训练集构建随机森林分类模型后用测试集对该模型进行评估,实现对入侵检测的精确分类。实验表明,本方法准确率可达99.91%,该模型具有非常好的入侵检测分类效果。解决了传统机器学习的容易过拟合的问题,拥有很高的准确率,可以很好的识别攻击。

应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。

在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。

本领域技术人员还应当理解,结合本文的实施例描述的各种说明性的逻辑框、模块、电路和算法步骤均可以实现成电子硬件、计算机软件或其组合。为了清楚地说明硬件和软件之间的可交换性,上面对各种说明性的部件、框、模块、电路和步骤均围绕其功能进行了一般地描述。至于这种功能是实现成硬件还是实现成软件,取决于特定的应用和对整个系统所施加的设计约束条件。熟练的技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是,这种实现决策不应解释为背离本公开的保护范围。

结合本文的实施例所描述的方法或者算法的步骤可直接体现为硬件、由处理器执行的软件模块或其组合。软件模块可以位于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动磁盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质连接至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。该ASIC可以位于用户终端中。当然,处理器和存储介质也可以作为分立组件存在于用户终端中。

对于软件实现,本申请中描述的技术可用执行本申请所述功能的模块(例如,过程、函数等)来实现。这些软件代码可以存储在存储器单元并由处理器执行。存储器单元可以实现在处理器内,也可以实现在处理器外,在后一种情况下,它经由各种手段以通信方式耦合到处理器,这些都是本领域中所公知的。

上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号