一种基于XGBoost的端口扫描恶意流量的检测方法技术

技术编号:30903488 阅读:9 留言:0更新日期:2021-11-22 23:48
一种基于XGBoost的端口扫描恶意流量的检测方法,利用已知的标准恶意流量数据集(CICIDS2017数据集)构成的基础流量数据集B,确认根据该基础数据集对XGBoost模型进行训练,获得训练好的XGBoost模型,使用训练好的XGBoost模型对软件定义网络的流量进行在线检测是否存在端口扫描恶意流量,对于存在误检或者漏检的情况采用人工办法进行干预;将误检或者漏检的流量标签进行重置,并将该流量加入到基础数据集中形成更新的数据集B

【技术实现步骤摘要】
一种基于XGBoost的端口扫描恶意流量的检测方法


[0001]本专利技术涉及互联网
,更具体地说,本专利技术涉及一种基于XGBoost 的端口扫描恶意流量的检测方法。

技术介绍

[0002]随着互联网技术的发展,网络流量正在迅速增加,用户访问互联网所产生的流量部分来源于传统的网络服务,例如网页浏览、电子邮件,另一部分则来源于种类繁多的多媒体服务,例如视频、游戏、社交平台等等。互联网的总体流量正在迅速增加,伴随着商业或其他的目的,随之而来的是恶意流量也在迅猛增加,严重影响着互联网服务商为用户提供服务的质量。
[0003]一般而言,端口扫描是进攻一台机器的第一步。因此,IDS能够从端口扫描阶段就发现威胁就变得尤为重要。目前,对端口扫描的恶意流量检测主要分为两大类。一是基于规则的检测技术,主要方式是定义一系列规则,如果某个行为满足了这一系列规则所定义的条件,则判定为是端口扫描攻击。这种检测方法的局限性在于随着攻击的模式增加,所需要的规则数量也在不断增加,从而影响到检测性能,而且容易被攻击者绕开。
[0004]另一种是应用机器学习的方法检测攻击行为,通过对大量数据的分析提取特征、标注等手段建立攻击行为模型,从而达到检测端口扫描恶意流量的目的。目前,基于机器学习的恶意流量检测方法上,主要算法有朴素贝叶斯、决策树以及SVM等。但这些方法在实际的运用中,存在检测成功不太高的问题;本专利技术基于机器学习的方法的优势,专利技术了一种基于XGBoost的端口扫描恶意流量的检测方法,有效地提升了检测成功率的同时,还保持着检测速度快的优势。

技术实现思路

[0005]为了克服现有技术的上述缺陷,本专利技术的实施例提供一种基于XGBoost 的端口扫描恶意流量的检测方法,通过需要设计一套方法来避免这些问题,以达到升了检测成功率的同时,还保持着检测速度快的优势的目的,以解决上述
技术介绍
中提出的问题。
[0006]为实现上述目的,本专利技术提供如下技术方案:一种基于XGBoost的端口扫描恶意流量的检测方法,利用已知的标准恶意流量数据集(CICIDS2017数据集)构成的基础流量数据集B,确认根据该基础数据集对XGBoost模型进行训练,获得训练好的XGBoost模型,使用训练好的XGBoost模型对软件定义网络的流量进行在线检测是否存在端口扫描恶意流量,对于存在误检或者漏检的情况采用人工办法进行干预,将误检或者漏检的流量标签进行重置,并将该流量加入到基础数据集中形成更新的数据集B

,当数据集B

中的样本数量增加到一定的比例时,重启XGBoost训练,获得优化的XGBoost模型,从而达到不断提升恶意流量检测成功率的目的。
[0007]在一个优选地实施方式中,步骤一:基于标准流量数据集对XGBoost模型初始化:从互联网上下载CICIDS2017数据集构成本方法的基础流量数据集 B,所述该数据集包含良
性流量和常见攻击,其中包括端口扫描恶意流量,与真实世界流量数据具有高度的一致性,该数据集还包括使用CICFlowMeter进行的网络流量分析的结果,使用包头信息中的五元组基于时间戳、源和目标 ip、源和目标端口、协议和攻击CSV文件的标记流量。
[0008]在一个优选地实施方式中,将所述基础流量数据集B按比例分成两部分B1和B2,其中B1为训练数据集,所述训练数据集B1的样本从B中随机挑选;B2为验证数据集,其样本为数据集B中除去B1的部分。
[0009]在一个优选地实施方式中,利用训练集B1的网络流量样本数据对XGBoost 模型进行训练,针对端口扫描恶意流量,先对网络流量的特征进行优化,使其对端口扫描恶意流量更精确,流量特征优选为:
[0010][0011]在一个优选地实施方式中,基于训练集B1对XGBoost模型进行训练, XGBoost采用特征并行的方法进行计算选择要分裂的特征,即用多个线程,尝试把各个特征都作为分裂的特征,找到各个特征的最优分割点,计算根据它们分裂后产生的增益,选择增益最大的那个特征作为分裂的特征,其中 XGBoost在每次迭代之后,为叶子结点分配学习速率,降低每棵树的权重,减少每棵树的影响,为后面提供更好的学习空间,XGBoost目标函数定义为:其中,目标函数由两部分构成,第一
部分用来衡量预测分数和真实分数的差距,另一部分则是正则化项,正则化项同样包含两部分,T表示叶子结点的个数,w表示叶子节点的分数,γ可以控制叶子结点的个数,λ可以控制叶子节点的分数不会过大,防止过拟合,二分类时将输出预测值限制为0到1之间的值,得到返回给定流为端口扫描恶意攻击的概率p∈[0,1],当p>0.5时,输出1,表示网络流被识别为扫描端口恶意攻击流,否则输出为0表示为正常流。
[0012]在一个优选地实施方式中,采用验证数据集B2的样本对训练好的 XGBoost模型进行验证,若验证结果满足预定义的正确率,则可将训练好的模型用于线上的检测,否则,调整XGBoost的相关参数,持续进行上述训练过程。
[0013]在一个优选地实施方式中,步骤二:采集网络线上流量,在预设的时间窗T内,根据数据包头信息中的五元组将收集的数据包划分为不同的网络流,所述五元组为源IP、源端口、目的IP、目的端口和协议,使用网络流量特征提取工具CICFlowMeter对基础数据集网络流进行特征提取,并按照步骤一所述特征表进行优化,获得网络线上的优化流量特征集。
[0014]在一个优选地实施方式中,步骤三:利用XGBoost模型进行端口扫描恶意流量检测,将上述采集的流量特征集输入训练好的XGBoost模型中,进行端口扫描恶意流量检测,获得该流量是正常流量或恶意流量,对于检测为端口扫描的恶意流量,根据FlowID确认其相应的源IP地址,将该源IP地址加入到禁止访问资源的列表中,并终止该IP地址正在进行的网络流。
[0015]在一个优选地实施方式中,步骤四:XGBoost模型优化,在实际运行的网络中,总存在误检或漏检的端口扫描恶意流量,若来自正常数据访问的流量被检测为恶意流量,称之为恶意流量的误检,会影响用户的正常访问;若网络中的资源遭遇恶意流量攻击,被系统检测为正常流量,称之为漏检,漏检会引发系统资源遭受恶意流量的攻击,影响正常用户的访问。为了进一步提升系统的检测成功率,本专利技术中引入人工干预的方法,从系统异常流量日志中,对误检或者漏检的事件进行确认,并将确认的事件根据flow ID进行检索,将检索获得该流量作为样本更新至基础训练数据集中,形成优化后的训练数据集B

,若更新的训练数据集B

中更新的样本数量达到一定的比例,则重新启动XGBoost模型训练过程,按上述XGBoost模型训练方法,获得达到标准的优化后的模型,若人工干预后,发现是新的攻击类型,则在该数据集中更新攻击类型的标签。
[0016]本专利技术的有益效果:本专利技术提供了一种基于XGBoost的端口扫描恶意流量的检测方法,利用已知的标准恶意流量数据集本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于XGBoost的端口扫描恶意流量的检测方法,其特征在于:利用已知的标准恶意流量数据集(CICIDS2017数据集)构成的基础流量数据集B,确认根据该基础数据集对XGBoost模型进行训练,获得训练好的XGBoost模型,使用训练好的XGBoost模型对软件定义网络的流量进行在线检测是否存在端口扫描恶意流量,对于存在误检或者漏检的情况采用人工办法进行干预,将误检或者漏检的流量标签进行重置,并将该流量加入到基础数据集中形成更新的数据集B

,当B

的新增数据样本增加到一定的比例时,重启XGBoost训练,获得优化的XGBoost模型,从而达到不断提升恶意流量检测成功率的目的。2.根据权利要求1所述的一种基于XGBoost的端口扫描恶意流量的检测方法,其特征在于:步骤一:基于标准流量数据集对XGBoost模型初始化:从互联网上下载CICIDS2017数据集构成本方法的基础流量数据集B,所述该数据集包含良性流量和常见攻击,其中包括端口扫描恶意流量,与真实世界流量数据具有高度的一致性,该数据集还包括使用CICFlowMeter进行的网络流量分析的结果,使用包头信息中的五元组基于时间戳、源和目标ip、源和目标端口、协议和攻击CSV文件的标记流量。3.根据权利要求2所述的一种基于XGBoost的端口扫描恶意流量的检测方法,其特征在于:将所述基础流量数据集B按比例分成两部分B1和B2,其中B1为训练数据集,所述训练数据集B1的样本从B中随机挑选;B2为验证数据集,其样本为数据集B中除去B1的部分。4.根据权利要求3所述的据权利要求1所述的一种基于XGBoost的端口扫描恶意流量的检测方法,其特征在于:利用训练集B1的网络流量样本数据对XGBoost模型进行训练,针对端口扫描恶意流量,先对网络流量的特征进行优化,使其对端口扫描恶意流量更精确,流量特征优选为:
5.根据权利要求4所述的一种基于XGBoost的端口扫描恶意流量的检测方法,其特征在于:基于训练集B1对XGBoost模型进行训练,XGBoost采用特征并行的方法进行计算选择要分裂的特征,即用多个线程,尝试把各个特征都作为分裂的特征,找到各个特征的最优分割点,计算根据它们分裂后产生的增益,选择增益最大的那个特征作为分裂的特征,其中XGBoost在每次迭代之后,为叶子结点分配学习速率,降低每棵树的权重,减少每棵树的影响,为后面提供更好的学习空间,XGBoost目标函数定义为:其中,目标函数由两部分构成,第一部分用来衡量预测分数和真实分数的差距,另一部分则是正则化项,正则化项同样包...

【专利技术属性】
技术研发人员:黄园园苏俊方顺健彭宣正
申请(专利权)人:中电积至海南信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1