基于决策树的端口扫描恶意流量检测研究*

2020-08-14 06:32王远帆
通信技术 2020年8期
关键词:决策树流量样本

王远帆,施 勇,薛 质

(上海交通大学 电子信息与电气工程学院,上海 200240)

0 引言

一般而言,端口扫描是进攻一台机器的第一步。因此,IDS能够从端口扫描阶段就发现威胁很重要。目前,对端口扫描的检测主要分为两大类[1]。一是基于规则的检测技术,主要方式是定义一系列规则,如果某个行为满足了这一系列规则所定义的条件,则判定为是端口扫描攻击。这种检测方法的局限性在于随着攻击的模式增加,所需要的规则数量也在不断增加,从而影响到检测性能,而且容易被攻击者绕开。另一种是应用机器学习的方法检测攻击行为,通过对大量数据的分析提取特征、标注等手段建立攻击行为模型,从而达到检测端口扫描恶意流量的目的。

目前,机器学习在恶意流量检测上的应用主要分为3个大类,即监督学习、无监督学习和半监督学习。无监督学习即聚类,数据不需要标签,缺点是检测率较低,典型的聚类算法有K-means等。监督学习需要标记样本从而进行训练,检测率较高。典型的监督学习算法有朴素贝叶斯、决策树以及SVM等。而半监督学习则是部分有标记样本加部分无标记样本,通过有标记样本的特征学习无标记样本。

对于一个样本数较大且均有标记的数据集,使用监督学习显然是一个能够获得较高检测率的好方法。而对于端口扫描这类特征较为明确的攻击类型,使用决策树算法拥有准确性高、速度较快的优势。因此,基于这些优势提出了基于决策树的端口扫描恶意流量研究。

1 决策树算法

1.1 ID3算法

如果一个事件有k种结果,其对应的发生概率为Pk,则对样本集合D,信息熵为:

有一随机变量(X,Y),其联合分布概率为P(X=xi,Y=yi)=Pij,则条件熵表示在已知X的分布的情况下随机变量Y的不确定性,有:

当一个离散属性a有V种可能取值(a1,a2,…,aV),且取值为aV的样本集合记为DV,则对该样本集合D,其条件熵为:

则用属性D对样本集合D进行划分所获得的信息增益为:

在ID3算法中,将选取使信息增益最多的划分方式。这种划分方式存在明显的缺点,对于取值较多的特征有明显偏向,且容易过拟合。因此,为了解决这些问题,需要引入新的算法。

1.2 C4.5算法

令:

定义信息增益率:

如在ID3算法中所述,它对取值较多的特征有明显的偏向。因此,引入参数IV(a),a的类别越多,IV(a)就越大,以此避免这种偏向。

在C4.5算法中,对候选划分属性的选择不仅选信息增益率最大的,还要求其信息增益高于平均。这样实际选择的分类特征效果较好。但是,C4.5算法也存在明显缺点[2]。它在处理数据时,需对数据进行多次顺序扫描和排序,效率较低。此外,将数据放在内存中计算,只适合小规模数据集。

1.3 CART算法

CART生成即递归构建二叉树的过程。对CART的运用主要有分类树和回归树两种。分类树即通过对象的特征预测对象所属的类别,而回归树则是通过对象的特征预测某一具体属性。

分类树使用GINI值衡量节点纯度:

对于越不纯的节点,其GINI值越大。因此,在分类时,CART树会选择GINI值最小的作为分类依据,即:

回归树使用样本方差衡量节点纯度:

方差越大,表示节点数据越分散,预测的效果越差。因此,CART树会选择方差最小的特征作为分裂依据。

对于离散型属性,理论上有多少个离散值就应该分裂成多少个节点。但是,CART是一棵二叉树,每一次分裂只会产生两个节点,方法是将其中一个离散值独立作为一个节点,其他离散值生成另外一个节点即可。

决策树不可能无限制生长,因此需要一个终止分裂的条件。最极端的情况是当节点分裂到只剩下一个数据点时自动结束分裂,但这种情况会导致决策树过于复杂,同时容易出现过拟合问题。一般情况下,为了降低决策树复杂度和提高预测精度,会适当提前终止节点的分裂。

一般而言,满足以下几种情况将停止分裂。

(1)最小节点数。当节点的数据量小于一个指定的数量时不继续分裂。两个原因:一是数据量较少时,再做分裂容易强化噪声数据的作用;二是降低树生长的复杂性。提前结束分裂,一定程度上有利于降低过拟合的影响。

(2)熵或GINI值小于阈值。熵和GINI值的大小表示数据的复杂程度,当熵或者GINI值过小时,表示数据的纯度较大。如果熵或者GINI小于一定程度数,节点停止分裂。

(3)决策树的深度达到指定的条件。节点的深度可以理解为节点与决策树与节点的距离,决策树的深度是所有叶子节点的最大深度,当深度到达指定的上限大小时停止分裂。

(4)所有特征已经使用完毕,不能继续进行分裂。

2 决策树实现端口扫描恶意流量检测

2.1 CICIDS2017数据集

CICIDS2017[3]是加拿大网络安全实验室(Canadian Institute for Cybersecurity)提出的一个基于B-Profile[4]的数据集,总结和提取了正常的网络活动流量,同时生成了自然的恶意流量。该数据集囊括了暴力破解、DoS、Heartbleed、僵尸网络、DDoS等攻击形式,也包括端口扫描恶意流量。

根据Gharib在2016年提出的评估框架[5],数据集的建立遵循了以下10个原则[6],如表1所示。

表1 CICIDS2017数据集建立原则

可以认为,在该数据集上训练和测试拥有较强的可信度。

2.2 实 现

2.2.1 数据预处理

因为CICIDS2017的数据是从wireshark直接获取的pcap文件,所以需要先对该数据进行转化。转化后获得的待处理特征如表2所示。

表2 未处理时的特征列表

2.2.2 特征提取

首先对待处理流量进行整合。对来源和目的IP相同的流量,若之后的数个流量包与第一个在特定的时间间隔之内,则视为一个连续的行为。将这几个流量包合并,并记录其端口、协议、流量包大小、长度以及整合了几个流量等信息。

检查整合后的流量包中的协议是否含有icmp,若有则标记为“1”,没有则标记为“0”。

检查整合后的流量包之前单位条数内是否有源IP和目的IP相同的流量,若有,检查二者是否含有相同协议,并统计两个整合后的流量包中相同协议和不同协议的数量。

检查整合后的流量包之前单位秒内是否有源IP和目的IP相同的流量,若有,检查二者是否含有相同协议,并统计两个整合后的流量包中相同协议和不同协议的数量。

经过提取后的特征如表3所示。

表3 提取后的特征列表

2.3 实验和结果分析

利用Scikit learn包的决策树算法,其中CART算法的分类树对提取特征后的数据进行训练和测试。在测试集上验证所得结果,如表4所示。

表4 决策树算法准确率

与传统的基于序列的端口扫描检测技术的准确率[7]对比,如表5所示。

表5 各种算法准确率对比

可以看到,应用机器学习的决策树算法对检测端口扫描攻击的准确率有着较大提升。未来,选择更合适的特征来进一步提升检测准确率仍是研究的目标。

3 结语

本文针对端口扫描恶意流量的问题,提出了一种基于决策树的端口扫描恶意流量检测方法,并在CICIDS2017数据集上进行测试和验证,证明了其拥有较高的准确率。随着信息技术的发展,网络安全问题日益受到更加严峻的挑战,端口扫描作为一般网络入侵行为的第一步,对其的检测对防范入侵有着重要意义。本文提出的检测方法显著提高了对端口扫描恶意流量的检测率,对实际的端口扫描攻击检测有较大的帮助。

猜你喜欢
决策树流量样本
冰墩墩背后的流量密码
张晓明:流量决定胜负!三大流量高地裂变无限可能!
用样本估计总体复习点拨
寻找书业新流量
规划·样本
决策树和随机森林方法在管理决策中的应用
随机微分方程的样本Lyapunov二次型估计
决策树学习的剪枝方法
基于ZigBee 通信的流量研究与改进
决策树多元分类模型预测森林植被覆盖