APP下载

基于机器学习的CSE-CIC-IDS2018入侵检测数据集优化降维分析*

2021-08-07刘江豪张安琳黄子奇黄道颖陈孝文

火力与指挥控制 2021年7期
关键词:决策树分类器准确率

刘江豪,张安琳,黄子奇,黄道颖*,陈孝文

(1.郑州轻工业大学计算机与通信工程学院,郑州 450000;2.北方信息控制研究院集团有限公司,南京 211153;3.郑州轻工业大学工程训练中心,郑州 450000)

0 引言

没有网络安全就没有国家安全。全球大国战略竞争不断加剧,随着大数据、人工智能以及物联网技术的不断发展,网络攻击更加频繁,攻击方式日新月异,网络安全问题呈现出更为严峻的态势。为保障网络和信息化的稳步发展,各国逐步完善网络空间安全国家战略,网络作战能力的提升将是国防安全的新重点[1]。入侵检测作为网络安全系统的第二道防线,在识别日益增多的网络入侵行为方面引起众多研究者的关注。

入侵检测系统(Intrusion Detection System,IDS)在部署前要进行大量的测试、评估和调整,需要对带有入侵和异常行为的标记流量进行系统评估。因此,所用测试数据集的质量对入侵检测系统的性能起着至关重要的作用[2]。基于网络的理想数据集应该包含最新攻击行为和正常用户行为的真实网络流量,不仅正确标记、公开可用,而且需跨越较长的时间[3]。但理想的入侵检测数据集并不存在,通常研究人员使用的数据集都是次优的。常用的实验分析基准数据集有KDD-Cup99 和NSL-KDD 等,目前所做的研究都是基于这些旧数据集[4]。但这些数据集存在着一些致命问题:没有考虑到现代入侵检测需要过滤的更高级的威胁,不能反映最新、最真实的网络流量特性,缺乏多样性[5]。

CSE-CIC-IDS2018 入侵检测数据集是通信安全机构(CSE)和加拿大网络安全研究所(CIC)合作项目。研究人员在其早期数据集版本CIC-IDS2017上做了大量的研究工作,文献[6]认为其不仅包含最新的网络攻击,而且满足现实世界攻击的所有标准,几乎没有重大缺陷。CSE-CIC-IDS2018 数据集相较于之前的CIC-IDS2017 更为庞大,但其中网络流量包含许多与入侵检测无关或相关性很小的特征。当分析大量数据时,这些冗余特征会增加计算工作量,降低检测速度,影响入侵检测系统的整体性能。但目前对CSE-CIC-IDS2018 数据集进行的入侵检测研究还没有太多的文献可供参考。本文的目的是通过机器学习的特征递减式训练,分析各分类器与CSE-CIC-IDS2018 数据集的特征数量依赖关系,尝试从候选特征中选出少数“优秀”的特征,从而降低数据维数,提高系统检测效率[7]。

1 CSE-CIC-IDS201 8 数据集

CSE-CIC-IDS2018 入 侵 检 测 数 据 集(https://www.unb.ca/cic/datasets/ids-2018.html)所提供的流量模拟真实网络流量,由B-Profile 和M-Profile 两部分组成[8]。B-Profile 负责描述用户交互的抽象行为,生成正常的流量;M-Profile 用于描述和执行攻击场景,生成带有攻击行为的流量[9]。该数据集共包含7 种攻击场景:

1)暴力破解(Brute Force);

2)心血漏洞(Heartbleed);

3)僵尸网络(Botnet);

4)拒绝服务(Denial of Service,DoS);

5)分布式拒绝服务(Distributed Denial of Service,DDoS);

6)万维网攻击(Web Attacks);

7)网络渗透(Infiltration of the Network From Inside)。

CSE-CIC-IDS2018 数据集以pcap 文件和csv文件两种方式被提供。pcap 文件由捕获的网络流量和计算机的系统日志形成,主要用于数据挖掘技术的相关研究及应用。csv 文件多用于人工智能的相关分析,由CICFlowMeter-V3 流量特征提取工具从捕获的流量中提取。该工具可获取流量的83 个统计特征,其中不包含数据集的标签,标签为研究人员根据实验环境标注。数据集的特征及说明如表1所示。

表1 数据集特征

初步分析可以发现,其中包含许多与入侵检测无关或相关性很小的冗余特征,实验时可能会影响入侵检测系统的整体性能。

2 机器学习分类算法

2.1 K 近邻

K 近邻(k-Nearest Neighbor,KNN)于1968 年由Cover 和Hart 提出,是最简单的机器学习算法之一,同时也是懒惰学习的著名代表。KNN 模型依据给定的训练集样本,找出其中与之某种距离度量最靠近的k 个样本,以这k 个临近的样本信息为依据来进行预测。KNN 模型构造简单,分类精度高,对异常数据、噪声等有较高的容忍度,适用于多分类问题。

2.2 决策树

决策树(Decision Tree,DT)产生于20 世纪60年代。决策树算法可以对数据进行拟合,执行回归任务;也可以寻找决策边界,完成分类问题;此外,也可实现多输出任务。其基本思想是从训练的数据集中归纳出分类规则。经典的决策树算法有以信息增益为特征选择准则的ID3,以信息增益率为特征选择准则的C4.5 和基尼指数为特征选择准则的CART。决策树模型准确性高且生成模式简单,对噪声数据具有良好的鲁棒性。

2.3 随机森林

随机森林(Random Forest,RF)是决策树的一种集成,是当下最强大的机器学习算法之一,由Leo Breiman 和Adele Cutler 提出[10]。随机森林在决策树生长时引入额外的随机,降低了决策树之间的关联性,使模型的准确性进一步提高。随机森林模型训练速度较快,能处理高维数据,且不易产生过拟合,对各类数据集有较强的适应性。

2.4 Softmax 回归

Softmax 回归模型是Logistic 回归模型在多类别分类问题上的一般化归纳,也可称为多类别Logistic回归。Softmax 回归广泛应用于机器学习和卷积神经网络,可以将多个神经元的输出映射在(0,1)区间中,从而得到样本属于某类别的分类概率。

3 数据集处理相关算法

3.1 特征重要性评估

越重要的特征对分类器预测结果影响越大。通过随机森林算法进行特征重要性评估,可以计算出每个特征对该样本的贡献值,以此进行特征筛选。

随机森林主要通过两种方法来计算特征重要性,分别为平均不纯度减少和平均准确率减少。

3.1.1 平均不纯度减少

平均不纯度减少(Mean Decrease Impurity,MDI)用来说明每个特征对误差的平均减小程度。底层实现的评分标准依据基尼重要性(Gini Importance)。基尼重要性评分VIMj通过基尼指数变化得到,即第j个特征在随机森林的全部决策树中节点分裂不纯度的平均改变量。

基尼指数计算公式为:

其中,K 表示特征样本类别数,pmk表示k 类别在节点m 中的占比。

节点m 处特征Xj的重要性为:

其中,GIl和GIr表示节点m 左右分支的新节点的基尼指数。

第i 颗树中特征Xj的重要性为:

若在有n 颗树的随机森林中,则特征Xj的重要性为:

将重要性进行归一化处理,得到基尼重要性评分VIMj,即特征重要性评分:

3.1.2 平均准确率减少

平均准确率减少(Mean Decrease Accuracy,MDA)核心思想是打乱特征的特征值顺序,评估顺序变动对模型准确率的影响程度。该方法主要利用袋外误差估计(The out-of-bag(OOB)error estimate)进行评估。对于树Ti,使用OOB 样本数据计算得出基本误差e1,接着随机打乱OOB 中特征j 的顺序,得到误差e2。该方法通过计算e1-e2来评估特征j的重要性。重要特征的顺序变动会极大降低模型的准确率,而不重要特征的乱序操作则对准确率影响较小。

相较MDI,MDA 计算量更大。通常机器学习中多用MDI 进行特征重要性计算。

3.2 数据集平衡

在使用不平衡数据集训练分类系统时,分类器很容易偏向多数类而忽略少数类。若选定随机样本用于分类器的训练和测试,很可能在训练集中找不到特定攻击标签的实例,以至于面对此类的攻击时无法检测,致使构建的检测模型效果不佳。基于不平衡数据的分类模型研究主要分为数据层面研究和算法层面研究。

在数据层面对数据集进行平衡,核心思想是采样,主要包括欠采样和过采样。

3.2.1 欠采样

欠采样的基本思想是删除其中一些多数类的部分样本,主要方式是随机采样。

3.2.2 过采样

过采样的基本思想是增加少数类的样本数量。相较于欠采样,过采样更加复杂,通过学习少数类样本特征生成新的少数类样本数据,是一个生成合成数据的过程。

SMOTE(Synthetic Minority Over-sampling Technique)是应用最广泛的过采样算法,其基本原理是计算近邻少数类样本之间的线性差值,以此合成新的少数类样本[11]。

其中,i=1,2,…N;xnews表示算法合成的新样本;x 表示少数类样本;rand(0,1)表示0 到1 之间的随机数;y[i]表示x 的第i 个临近样本。

4 数据集预处理

在真实的网络环境下,捕获的数据可能含有大量的缺失值、噪声,以及由于人工录入而产生的异常信息,因此,需要对数据集信息进行预处理以提高数据的质量[12]。

本文主要对CSE-CIC-IDS2018 数据集的csv文件进行分析,csv 文件由10 个文件组成,如表2所示。由于文件较大,前期对各文件单独进行处理,后期整合。预处理过程主要包括数据清洗、数据集合并、数据集平衡、特征选择、数据归一化和数据集分割等。

表2 csv 文件信息

4.1 数据清洗

4.1.1 缺失值

该数据集缺失值均出现在Flow Byts/s 特征下。在处理缺失数据问题时,通常采用删除、补全和忽略等方法。由于该数据集十分庞大,且缺失比例较小,本文采用删除元组的方法将出现缺失值的数据行删除。

4.1.2 无穷值

特征Flow Byts/s 和Flow Pkts/s 下存在无穷值。在数据处理过程中,无穷值无法正常计算。该数据集无穷值基本都出现在正常流量中,对分类无影响,因此,将含有无穷值的信息行直接删除。

4.1.3 重复数据

重复数据对入侵检测系统的训练几乎没有帮助,因此,只保留第一次出现的数据,将重复的数据删除。

4.1.4 异常值

数据集录入时,错误地将表头信息多次写入数据中,这里将其直接删除。

4.2 数据集合并

为了得到完整的入侵检测数据集,将经过数据清洗的数据集文件合并。合并时,按照特征列对各文件进行纵向拼接。

经统计,合并后的数据集共有15 种标签,包括1 种正常流量的标签和14 种攻击流量的标签,各标签分布和占比如表3 所示。

表3 数据集标签分布

4.3 数据集平衡

通过表3 可以看出,数据集的正常流量占比超过85%,部分攻击流量占比不足0.01%,流量占比严重不平衡。

因计算机性能限制,从Benign 流量中随机选取1 000 000 条用于本次实验。使用SMOTE 算法对数据量较少的DDOS attack-LOIC-UDP、Brute Force-Web、Brute Force -XSS、SQL Injection 数据进行过采样操作。数据过采样操作仅在训练集中使用。

4.4 特征选择

本文使用人工选择和特征重要性分析相结合的方式进行特征选择。

异常检测系统应该根据网络流量的行为特征进行分类,不应偏向于IP 地址等具有特定网络标识的信息[13],因此,将涉及特定网络标识的5 个特征删除,见表4 所示。

表4 具有特定网络标识的5 个特征

pandas.describe()方法可以描述数据的平均值、标准差、最小值等信息。通过计算发现文件中存在数据全为0 的10 个特征,见表5。在对分类器进行训练时,信息相同的数据不会对分类提供有效信息,因此,将这10 个特征删除。

表5 数据全为0 的10 个特征

4.5 数据归一化

不同的指标评价体系中,量纲或量纲单位通常是不同的。某些指标可能因为不同数量级的变化区间而被忽视,因此,需要对数据进行归一化处理以消除数据间的量纲影响。归一化时,通常将数据映射到[0,1]区间内。分别对数据集的每一特征维度进行归一化操作,其基本原理可表示为:

其中,x 为某一特征维度下的数据值,x'为经过归一化处理后的数据值,xmin为该特征维度下的最小值,xmax为该特征维度下的最大值。

4.6 数据集分割

将经过其他预处理的数据集打乱顺序并按照7∶3 的比例随机拆分为训练集和测试集。设置固定的随机数种子,确保进行不同轮次的分类操作时所使用的训练集和测试集是相同的。数据集分割操作可通过scikit-learn 中的train_test_split()方法实现。

5 实验与评估

本文实验在windows10 操作系统,CPU 为Intel Core i5-9400F 2.90 GHz,内存16 GB 的计算机上运行,处理过程主要使用python 的pandas、imblearn 和scikit-learn 等相关库。

每种分类器分别进行68 次训练,从训练所有特征开始,依次按照特征重要性评分从低到高删除一个特征,直至剩余最后一个特征。训练过程中记录各分类器的准确率、精确率和训练时间。

5.1 评估指标

入侵检测应尽量避免将攻击流量识别为正常流量,即要同时保证具有较高的准确率和精确率。因此,本文使用准确率(Accuracy)、精确率(Precise)和训练时间对分类器运行的结果进行评估。准确率是分类正确的正样本和负样本占样本总数的比例,通常情况下,准确率越高分类器越好;精确率(也称查准率)是分类正确的正样本数占被分类为正样本的样本数的比例,体现了分类器的精度,在不平衡数据集分类中常作为重要评估指标。

其中,TP 表示正确地把正样本预测为正,FN 表示错误地把正样本预测为负,FP 表示错误地把负样本预测为正,TN 表示正确地把负样本预测为负。

5.2 特征重要性计算

本文使3.1.1 节所述平均不纯度减少算法计算特征重要性评分。

对经过数据清洗和人工选择特征后的数据集进行特征重要性计算,得到剩余68 个特征的特征重要性评分,如下页图1 所示。平均不纯度减少计算过程中对结果进行了归一化处理,所有特征的评分之和为1,其特征评分代表了该特征对数据分类的贡献大小。可以看到,第57 个特征评分最高,为0.150 698 48,说明该特征对分类器的分类贡献最大;第60 个特征重要性次之,为0.072 224 96;第42个特征贡献最小,仅为0.000 165 79。

图1 特征重要性评分

根据特征重要性评分将原特征序号映射为特征重要性评分从小到大的新序号,其映射关系及特征重要性评分如表6 所示。

表6 特征映射关系对照表

可以看到,原评分最高的第57 个特征在新的排序中序号变为68;原评分最低的第42 个特征在新的排序中序号变为1。按照特征重要性排序后的特征及其评分如下页图2 所示。

图2 特征重要性排序

5.3 不同分类算法的优化降维结果分析

在接下来分类器的训练中,从训练包含所有特征的数据开始,按照5.2 节特征重要性排序,每轮训练依次删除一个特征,直至剩余最后一个特征。即第1 次训练含有68 个特征的数据,第2 次训练除了序号1 之外的剩余67 个特征的数据,第3 次训练除了序号1 和2 之外的剩余66 个特征的数据……第67 次训练剩余序号为67 和68 特征的数据,第68 次训练只包含第68 个特征的数据。每个分类器分别完成68 次训练,记录不同特征个数对分类器评估指标的影响。

5.3.1 K 近邻

如5.1 节所述,分类器的评估指标是通过准确率、精确率和训练时间来表征的。

图3 为K 近邻分类器评估指标(准确率和精确率)与特征数量的关系图。分析各项指标可以发现,特征减少至12 个时,分类器两指标精度有微小的上升,考虑是产生干扰的非关键特征被删除;特征数量为8~12 时,K 近邻分类器取得较好的分类效果;特征少于4 时,准确率和精确率急剧下降,特征数量过少,所提供信息不足以进行高精度流量分类。

图3 K 近邻运行结果

K 近邻训练时间与特征数量关系如图4 所示。特征数量基本和训练时间呈线性关系,特征数量越少,训练所用时间越短。K 近邻算法每预测一个数据点的分类都需要重新进行一次全局的运算,相较于其他几种分类器,训练时间较长。时间的波动部分,考虑是python 解释器无法锁频导致[14]。

图4 K 近邻训练时间

5.3.2 决策树

决策树评估指标(准确率和精确率)与特征数量关系如图5 所示。特征数量为4 时,决策树分类器取得最高准确率,但精确率相对较低,有较多攻击流量被识别为正常流量;特征数量为5~12 时准确率较高;特征数量大于7 时精确率较为稳定;特征数量小于5 时分类器准确率和精确率急剧下降。

图5 决策树运行结果

决策树训练时间与特征数量关系如图6 所示。决策树训练时间和特征数量呈线性关系,且较为稳定,总体时间略高于随机森林,低于K 近邻和Softmax。

图6 决策树训练时间

5.3.3 随机森林

随机森林评估指标(准确率和精确率)与特征数量关系如图7 所示。随机森林在特征数量为9-26时取得较好地分类效果;数量小于5 时准确率开始大幅下降。

图7 随机森林运行结果

随机森林训练时间与特征数量关系如下页图8所示。随机森林训练时间与特征数量正相关,但具有波动性。相较于其他分类器,随机森林所需时间最短。

图8 随机森林运行时间

5.3.4 Softmax 回归

Softmax 回归评估指标(准确率和精确率)与特征数量关系如图9 所示。Softmax 分类器准确率和精确率与特征数量正相关。特征数量小于6 时,各指标具有较大的变化;特征数量大于6 时,各指标数据稳步提升,正确率最高接近92.8%。相较于其他几种分类器,softmax 分类更依赖特征数量,使用中需要耗费更多的时间和计算资源。

图9 Softmax 回归运行结果

Softmax 回归训练时间与特征数量关系如图10所示。特征数量大于2 时,训练时间与特征数量呈线性关系,且较为稳定。

图10 softmax 回归运行时间

6 结论

本文对CSE-CIC-IDS2018 入侵检测数据集进行了降维分析,使用平均不纯度减少的计算方法对该数据集进行了特征重要性计算,通过K 近邻、决策树、随机森林和Softmax 分类器的特征递减式训练,探究了不同特征维数对该数据集分类效果的影响。

实验证明,在保证分类效果的前提下,使用决策树分类算法最低可以将该数据集的依赖特征由83 个缩减至7 个,K 近邻和随机森林分类算法可以将依赖特征分别缩减至8 个和9 个,达到了降维、提升模型和计算性能等效果。

猜你喜欢

决策树分类器准确率
少样本条件下基于K-最近邻及多分类器协同的样本扩增分类
学贯中西(6):阐述ML分类器的工作流程
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
多层螺旋CT技术诊断急性阑尾炎的效果及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
基于朴素Bayes组合的简易集成分类器①
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
简述一种基于C4.5的随机决策树集成分类算法设计
基于AdaBoost算法的在线连续极限学习机集成算法
决策树学习的剪枝方法