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

一种针对SYNFlood攻击的检测与防御方法与流程

2022-05-18 13:30:28 来源:中国专利 TAG:

一种针对syn flood攻击的检测与防御方法
技术领域
1.本技术涉及系统网络安全领域,尤其是指一种针对syn flood攻击的检测与防御方法。


背景技术:

2.syn flood攻击是典型的dos(denial of service,拒绝服务)攻击,通过大量发送syn报文或syn与ack混合报文,消耗服务器的tcp连接资源,造成服务器无法响应正常的tcp连接请求,造成无法提供正常的服务。目前,syn flood常用的防御手段大体可分为两类,第一类在tcp通信阶段加入代理,如:syn cookie,syn cache,syn proxy;第二类是tcp源探测判断ip是否合法,对不合法ip进行过滤,这几种方法可以抵挡小规模的syn flood攻击。可是当有大流量攻击时,上述方法就不能有效防御,另外,syn cache等需要维护连接状态表,会占用大量的内存空间,而syn cookie,需要计算cookie值会占用大量cpu计算资源,当流量过大时会很快消耗完系统cpu资源造成系统无法正常响应,也无法起到保护作用;tcp源探测有返回正确确认号的syn-ack报文与返回错误确认号的syn-ack报文两种方案,但它们都存在增加网络负载问题,需要对大量的syn报文发送响应报文,在大流量攻击时额外增加网络负载。


技术实现要素:

3.为解决上述问题,本技术提供一种针对syn flood攻击的检测与防御方法,其特征在于,步骤包括:
4.s1,攻击检测步骤:对系统进行syn flood攻击监控,判断当前系统是否正在被攻击,若判断为是,转入步骤s2;
5.s2,攻击防御步骤:对接收到的报文进行tcp源检测,判断报文的ip是否为合法ip;若判断为是,则将ip加入白名单;若判断为否,则丢弃报文。
6.其中,在步骤s1中,判断系统被攻击的方法包括:
7.s11,获得t时间段内接收到的报文中syn报文个数与tcp报文个数的比值α;
8.设置t时间段内syn报文与tcp报文的正常占比阈值a和风险占比阈值b,a<b;
9.当α≥b时,判断系统正在被攻击,转入步骤s2;
10.当a<α<b时,进入步骤s12;
11.当α≤a时,判断系统未被攻击,结束本步骤;
12.步骤s12,通过分类模型的svm算法进行计算,其中,输入的样本数据的特征包括:t时间段内,syn报文在所有报文中的占比、tcp报文在所有报文中的占比、syn报文在syn报文和ack报文中的占比、具有相同目标地址最多的报文在所有报文中占比、具有相同目标端口最多的报文在所有报文中占比;
13.其中,svm算法如下:
14.设置目标函数:
[0015][0016]
其中,w和b是平面系数,yi代表样本的分类标记,yi=[-1,1],xi则是训练样本;w为平面系数,当扩展到n维空间时,为n维向量如:w=[w1,w2,...,wn],w
t
为w的转置,||w||是超平面的范数。
[0017]
由于svm目标函数假设数据线性可分,但实际上会存在噪声数据,因此加入松弛变量和惩罚参数,通过松弛变量增加模型容忍度量和惩罚参数,通过松弛变量增加模型容忍度
[0018]
其中,c为惩罚系数,εi是松弛变量,由错分点到对应类别支持向量所在平面的距离表示,正确分类样本点的εi=0,惩罚项由所有的离群点所确定。
[0019]
该优化问题利用拉格朗日乘子法和kkt条件转化为对偶问题,并利用smo方法进行求解。其中ai为拉格朗日乘子。通过将该模型进行高维映射所得到的对偶问题形式为:
[0020]
本文所选的核函数为高斯函数:
[0021][0022]
使用上述svm分类器模型对接收到的报文特征进行分析,得到输出结果y=-1时判断系统正在被攻击,y=1时判断系统没有被攻击。
[0023]
其中,在步骤s2中,对报文进行tcp源检测的步骤包括,
[0024]
s21,对报文进行第一阶段源探测:收到syn报文后,向客户端返回一个带有错误确认号的syn-ack报文;
[0025]
若在第一预设时间内收到客户端发回的rst报文,则判断报文具有合法ip,将ip加入白名单,在白名单老化前不对该ip进行探测;
[0026]
若在第一预设时间内没有收到客户端发回的rst报文,转入步骤s22;
[0027]
s22,对报文进行第二阶段源探测:向客户端返回一个带有正确确认号的syn-ack报文;
[0028]
若在第二预设时间内收到客户端返回的正确的ack报文,则判断报文具有合法ip,将ip加入白名单,同时向服务器发送syn报文与服务器建立连接,由客户端和目标服务器直接通信,白名单老化前不对该ip进行检测。
[0029]
若在第二预设时间内没有收到客户端返回的正确的ack报文,则判断报文是非法ip,直接丢弃该报文。
[0030]
其中,在步骤s11中,还包括步骤s111:
[0031]
当α≥b时,判断系统正在被攻击,则开启首包丢弃功能与tcp重传过滤功能;
[0032]
其中,首包丢弃功能为新的tcp连接的第一syn报文进行丢弃;
[0033]
tcp重传过滤功能为将重传超时时间内收到的相同五元组报文进行丢弃。
[0034]
本技术实现的有益效果如下:
[0035]
本发明提供了一种针对syn flood攻击高效准确的检测与防御方法,使用svm算法准确识别syn flood攻击且在检测出攻击后,可以自动切换为防御态,并可以高效过滤攻击报文。本发明优化了现有的syn flood防御机制中的tcp源探测,在原有tcp源探测功能上进行了优化,并引入了首包丢弃与超时重传过滤技术,使该方案可以高效准确的对syn flood攻击进行防御。
[0036]
在原有的tcp源探测功能上进行了优化改进,使攻击ip的确认更加准确,并且攻击报文的过滤更加高效。syn-ack报文的源探测技术相融合,并采用首包丢弃和tcp超时重传过滤技术对其优化,最终形成二阶tcp源探测方案。通过该技术手段,可在不增加网络与主机负载的前提下,高效准确的对攻击报文进行过滤。
附图说明
[0037]
为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施例,对于本领域技术人员来讲,还可以根据这些附图获得其他的附图。
[0038]
图1为本技术的针对syn flood攻击的检测与防御方法的流程图。
[0039]
图2为本技术中攻击检测步骤的流程图。
[0040]
图3为本技术中攻击防御步骤的流程图。
[0041]
图4为本技术中攻击防御步骤中第一阶段源探测的流程图。
[0042]
图5为本技术中攻击防御步骤中第二阶段源探测的流程图。
[0043]
图6为本技术syn flood攻击的检测与防御方法中增加首包丢弃功能与tcp重传过滤功能的一个实施例。
具体实施方式
[0044]
下面结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
[0045]
如图1所示,本技术提供一种针对syn flood攻击的检测与防御方法,主要分为攻击检测部分与攻击防御部分两部分。
[0046]
其中,攻击检测部分通过二阶检测方案实现,包括第一阶段检测和第二阶段检测,在不增加网络与主机负载的前提下,可以准确检测出攻击行为。其中,第一阶段检测的设计基础在于:由于用户正常的网络环境中一个监测时间段内的syn报文个数与tcp报文个数的比例有一定范围,而攻击发生时这个比例会超出这个范围,所以统计判断比例范围则可以确认是否存在攻击。第二阶段检测的原理是统计一段时间内的报文特征信息,将报文特征信息带入训练好的svm模型中进行分析,根据分析结果判断是否存在攻击。
[0047]
如图2所示,攻击检测部分的方法可以概括为是基于网络的二阶检测。这种检测机制将网络分为四个状态:检测态、正常态、二阶检测态、防护态。
[0048]
在开启了syn flood攻击检测功能之后,进入检测态。开启第一阶段检测,统计网
络中syn报文个数与tcp报文个数的比值α作为判断值,来判断比例是否超过范围。用户正常的网络环境中syn报文个数与tcp报文个数的比例有一定范围,而攻击发生时这个比例会超出这个范围。用a代表比例的下限值,用b代表比例的上限值。在检测时,当比值α≤a时,则认为没有攻击。当比值α≥b时,则认为存在攻击。当α∈(a,b),则无法判断是否存在攻击,则进入二阶检测态。当转为二阶检测态时,需要进一步精准检测。在二阶检测态时,开启报文统计,将统计的报文特征信息带入训练好的svm模型进行分析,从而判断当前是否正在受到攻击。统计的特征数据分别为:5s内的syn报文在所有报文中的占比,tcp报文在所有报文中的占比,syn报文在syn报文和ack报文中的占比,相同目标地址报文最多的报文在所有报文中占比,相同目标端口报文最多的报文在所有报文中占比。svm算法如下:
[0049]
目标函数:
[0050][0051]
其中w和b是平面系数,yi代表样本的分类标记,yi=[-1,1],xi则是训练样本;w为平面系数,当扩展到n维空间时,为n维向量如:w=[w1,w2,...,wn],w
t
为w的转置,||w||是超平面的范数。
[0052]
由于svm目标函数假设数据线性可分,但实际上会存在噪声数据,因此加入松弛变量和惩罚参数,通过松弛变量增加模型容忍度:加模型容忍度:
[0053]
c为惩罚系数,εi是松弛变量,由错分点到对应类别支持向量所在平面的距离表示,正确分类样本点的εi=0,惩罚项由所有的离群点所确定。该优化问题利用拉格朗日乘子法和kkt条件转化为对偶问题,并利用smo方法进行求解。其中ai为拉格朗日乘子。通过将该模型进行高维映射所得到的对偶问题形式为:
[0054][0055]
本文所选的核函数为高斯函数:
[0056][0057]
使用svm分类器模型对收集的网络报文特征进行分析,从而得出当前系统是否正在被攻击,-1为被攻击,1为未被攻击。
[0058]
二阶检测态的情况下算法比较复杂,但是在大流量攻击时会快速切换为防御态,而在攻击流量不大时,虽然二阶检测态耗费资源,但由于攻击量大,不会对设备造成太大负载。
[0059]
如图3所示,攻击防御部分采用二阶段tcp源探测的方法来实现,包括返回正确确认号syn-ack报文的源探测方法与返回错误确认号的源探测方法。同时,攻击防御部分使用白名单机制,tcp二阶源探测无需建立大量的tcp连接,因此不会消耗设备资源,将检测出的正常ip加入白名单,在白名单老化前,不对该ip报文进行检测。进入防御态后,对报文进行第一阶段源探测,如果可以确认是合法报文,则将ip加入白名单。如果第一阶段无法确认是
否合法,则进入第二阶段源探测,如果第二阶段判断其为合法ip则加入白名单。如果不能则丢弃该报文。因为第一阶段检测速度远快于第二阶段,可以在不增加设备负载前提下检测ip是否合法。但第一阶段受客户端影响较大,所以采用第二阶段进行弥补,从而实现高效准确的攻击防御。
[0060]
如图4所示,为第一阶段源探测的步骤,设备收到syn报文后,向客户端返回一个带有错误确认号的syn-ack报文,如果客户返回一个rst报文则认为是合法ip,并将ip加入白名单,在白名单老化前不对该ip进行探测。如果设备在一段时间没有接受到rst报文,则认为是非法ip需要第二阶段检测。
[0061]
如图5所示,为第二阶段源探测的步骤,在第一阶段无法确认ip是否合法时,设备返回一个正确确认号的syn-ack报文,如果是合法ip会立即返回一个正确的ack报文,设备则将ip加入白名单,同时向服务器发送syn报文与服务器建立连接,后续客户端和目标服务器直接通信,白名单老化前不对该ip进行检测。如果没有返回正确的ack报文则认为是非法ip,直接丢弃该报文。
[0062]
另外,在一些实施方式中,还能够引入首包丢弃技术与tcp重传过滤技术对二阶段tcp源探测进行优化,如果是第一阶检测态切换为防御态证明攻击流量较大,则开启首包丢弃与tcp重传过滤功能来减轻设备负载。如果是二阶段检测切换为防御态则不启动首包丢弃与tcp重传过滤功能,因为当前的攻击流量并不大不会有太大的设备负载,具体流程步骤如图6所示。首包丢弃原理是有些syn flood攻击会不断变换源ip与源端口,在发送一个报文后就切换ip与端口。首包丢弃即对新的tcp连接的第一syn报文进行丢弃,如果真实客户端会在一段时间后重新发送syn报文而攻击ip则不会重发,首保丢弃可以有效防御该类攻击。
[0063]
tcp重传技术原理是,tcp报文会有一个发送时间戳,根据这个时间戳可以计算tcp连接重传超时时间rto,在大流量攻击时,攻击者会在重传时间内发送大量攻击报文,该技术是将重传超时时间内收到的相同五元组报文进行丢弃。这是因为攻击报文不会考虑rto超时重传时间,会在很短时间内大量发送相同五元组报文。正常客户端在rto时间内不会发送相同五元组的重传syn报文到服务器。所以rto时间内收到的相同五元组报文可以认为是攻击报文进行丢弃。
[0064]
尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
再多了解一些

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

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

相关文献