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

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

2021-11-22 17:36:00 来源:中国专利 TAG:

一种基于xgboost的端口扫描恶意流量的检测方法
技术领域
1.本发明涉及互联网技术领域,更具体地说,本发明涉及一种基于xgboost 的端口扫描恶意流量的检测方法。


背景技术:

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


技术实现要素:

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

,当数据集b

中的样本数量增加到一定的比例时,重启xgboost训练,获得优化的xgboost模型,从而达到不断提升恶意流量检测成功率的目的。
7.在一个优选地实施方式中,步骤一:基于标准流量数据集对xgboost模型初始化:从互联网上下载cicids2017数据集构成本方法的基础流量数据集 b,所述该数据集包含良
性流量和常见攻击,其中包括端口扫描恶意流量,与真实世界流量数据具有高度的一致性,该数据集还包括使用cicflowmeter进行的网络流量分析的结果,使用包头信息中的五元组基于时间戳、源和目标 ip、源和目标端口、协议和攻击csv文件的标记流量。
8.在一个优选地实施方式中,将所述基础流量数据集b按比例分成两部分b1和b2,其中b1为训练数据集,所述训练数据集b1的样本从b中随机挑选;b2为验证数据集,其样本为数据集b中除去b1的部分。
9.在一个优选地实施方式中,利用训练集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的端口扫描恶意流量的检测方法,利用已知的标准恶意流量数据集(cicids2017数据集)构成的基础流量数据集b,确认根据该基础数据集对xgboost模型进行训练,获得训练好的xgboost模型,使用训练好的xgboost模型对软件定义网络的流量进行在线检测是否存在恶意流量,对于存在误检或者漏检的情况采用人工办法进行干预,将误检或者漏检的流量标签进行重置,并将该流量加入到基础数据集中形成更新的数据集b

,当b

的数据集比例增加到一定的比例时,重启xgboost训练,获得优化的xgboost模型,从而达到不断提升恶意流量检测成功率的目的。
附图说明
[0017]
图1为端口扫描恶意流量检测处理流程。
具体实施方式
[0018]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0019]
如附图1所示的一种基于xgboost的端口扫描恶意流量的检测方法,利用已知的标准恶意流量数据集(cicids2017数据集)构成的基础流量数据集 b,确认根据该基础数据集对xgboost模型进行训练,获得训练好的xgboost 模型,使用训练好的xgboost模型对软件定义网络的流量进行在线检测是否存在恶意流量,对于存在误检或者漏检的情况采用人工办法进行干预,将误检或者漏检的流量标签进行重置,并将该流量加入到基础数据集中形成更新的数据集b,当b的数据集比例增加到一定的比例时,重启xgboost训练,获得优化的xgboost模型,从而达到不断提升恶意流量检测成功率的目的。
[0020]
优选的,步骤一:基于标准流量数据集对xgboost模型初始化:从互联网上下载cicids2017数据集构成本方法的基础流量数据集b,所述该数据集包含良性流量和常见攻击,其中包括端口扫描恶意流量,与真实世界流量数据具有高度的一致性,该数据集还包括使用cicflowmeter进行的网络流量分析的结果,使用包头信息中的五元组基于时间戳、源和目标ip、源和目标端口、协议和攻击csv文件的标记流量。
[0021]
优选的,将所述基础流量数据集b按比例分成两部分b1和b2,其中b1为训练数据集,所述训练数据集b1的样本从b中随机挑选;b2为验证数据集,其样本为数据集b中除去b1的部分。
[0022]
优选的,利用训练集b1的网络流量样本数据对xgboost模型进行训练,针对端口扫描恶意流量,先对网络流量的特征进行优化,使其对端口扫描恶意流量更精确,流量特征优选为:
[0023][0024]
优选的,基于训练集b1对xgboost模型进行训练,xgboost采用特征并行的方法进行计算选择要分裂的特征,即用多个线程,尝试把各个特征都作为分裂的特征,找到各个特征的最优分割点,计算根据它们分裂后产生的增益,选择增益最大的那个特征作为分裂的特征,其中xgboost在每次迭代之后,为叶子结点分配学习速率,降低每棵树的权重,减少每棵树的影响,为后面提供更好的学习空间,xgboost目标函数定义为:其中,目标函数由两部分构成,第一部分用来衡量预测分数和真实分数的差距,另一部分则是正则化项,正则化项同样包含两部分,t表示叶子结点的个数,w表示叶子节点的分数,γ可以控制叶子结点的个数,λ可以控制叶子节点的分数不会过大,防止过拟合,二分类时将输出预测值限制为0到1之间的值,得到返回给定流为端口扫描恶意攻击的概率p∈[0,1],当p>0.5时,输出1,表示网络流被识别为扫描端口恶意攻击流,否则输出为0表示为正常流。
[0025]
优选的,采用验证数据集b2的样本对训练好的xgboost模型进行验证,若验证结果满足预定义的正确率,则可将训练好的模型用于线上的检测,否则,调整xgboost的相关参数,持续进行上述训练过程。
[0026]
优选的,步骤二:采集网络线上流量,在预设的时间窗t内,根据数据包头信息中的
五元组将收集的数据包划分为不同的网络流,所述五元组为源 ip、源端口、目的ip、目的端口和协议,使用网络流量特征提取工具 cicflowmeter对基础数据集网络流进行特征提取,并按照步骤一所述特征表进行优化,获得网络线上的优化流量特征集。
[0027]
优选的,步骤三:利用xgboost模型进行端口扫描恶意流量检测,将上述采集的流量特征集输入训练好的xgboost模型中,进行端口扫描恶意流量检测,获得该流量是正常流量或恶意流量,对于检测为端口扫描的恶意流量,根据flowid确认其相应的源ip地址,将该源ip地址加入到禁止访问资源的列表中,并终止该ip地址正在进行的网络流。
[0028]
优选的,步骤四:xgboost模型优化,在实际运行的网络中,总存在误检或漏检的端口扫描恶意流量,若来自正常数据访问的流量被检测为恶意流量,称之为恶意流量的误检,会影响用户的正常访问;若网络中的资源遭遇恶意流量攻击,被系统检测为正常流量,称之为漏检,漏检会引发系统资源遭受恶意流量的攻击,影响正常用户的访问。为了进一步提升系统的检测成功率,本发明中引入人工干预的方法,从系统异常流量日志中,对误检或者漏检的事件进行确认,并将确认的事件根据flow id进行检索,将检索获得该流量作为样本更新至基础训练数据集中,形成优化后的训练数据集b

,若更新的训练数据集b

中更新的样本数量达到一定的比例,则重新启动 xgboost模型训练过程,按上述xgboost模型训练方法,获得达到标准的优化后的模型,若人工干预后,发现是新的攻击类型,则在该数据集中更新攻击类型的标签。
[0029]
本发明工作原理:本发明提供了一种基于xgboost的端口扫描恶意流量的检测方法,利用已知的标准恶意流量数据集(cicids2017数据集)构成的基础流量数据集b,确认根据该基础数据集对xgboost模型进行训练,获得训练好的xgboost模型,使用训练好的xgboost模型对软件定义网络的流量进行在线检测是否存在恶意流量,对于存在误检或者漏检的情况采用人工办法进行干预,将误检或者漏检的流量标签进行重置,并将该流量加入到基础数据集中形成更新的数据集b

,当b

的数据集比例增加到一定的比例时,重启xgboost训练,获得优化的xgboost模型,从而达到不断提升恶意流量检测成功率的目的。
[0030]
最后应说明的几点是:首先,在本技术的描述中,需要说明的是,除非另有规定和限定,术语“安装”、“相连”、“连接”应做广义理解,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变,则相对位置关系可能发生改变;
[0031]
其次:本发明公开实施例附图中,只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计,在不冲突情况下,本发明同一实施例及不同实施例可以相互组合;
[0032]
最后:以上仅为本发明的优选实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

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

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

相关文献