一种防御拒接服务攻击的方法

文档序号:7864361阅读:324来源:国知局
专利名称:一种防御拒接服务攻击的方法
技术领域
本发明涉及网络通信领域,尤其涉及的是一种防御拒接服务攻击的方法。
背景技术
拒绝服务攻击(Denial of Service, DoS)是目前比较有效而又非常难于防御的一种网络攻击方式,它的目的就是使服务器不能够为正常访问的用户提供服务。所以,DoS对
一些紧密依靠互联网开展业务的企业和组织带来了致命的威胁。随着移动互联网时代的到来,智能手机已成成为了人们首选的上网设备。随着4G时代和IPV6的时代到来,智能手机在移动互联的网络中也会占据更加重要的地位。而现在电脑用手机当做soft ap和电脑用手机上网的应用越来越多,而在网络的体系架构中,智能设备完全暴露在网络中,极易受到外部网络的攻击,特别是拒绝服务攻击,使手机受到极大的网络威胁,安全性降低。因此,现有技术还有待于改进和发展。

发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种防御拒接服务攻击的方法,以解决现有移动终端特别是手机极易受到拒绝服务攻击的问题。本发明解决技术问题所采用的技术方案如下
一种防御拒接服务攻击的方法,其中,包括以下步骤
A、预先在移动终端中设置一防御拒绝服务攻击的防御模块;
B、当所述连接请求方向所述防御模块发送一请求连接的第一SYN数据包时,所述防御模块伪造第一 SYN+ACK数据包,并将所述第一 SYN+ACK数据包发送至所述连接请求方进行应答;
C、当所述防御模块接收到所述连接请求方应答的第一ACK数据包时,所述防御模块构建一与所述第一 SYN数据包具有相同SEQ号的第二 SYN数据包,并以连接请求方的身份将所述第二 SYN数据包经TCP/IP协议栈发送至移动终端;
D、所述TCP/1P协议栈接收移动终端反馈的第二SYN+ACK数据包,并将所述第二SYN+ACK数据包的SEQ号减去所述第一 SYN+ACK数据包的SEQ号得到一 SEQ差值;
E、所述TCP/IP协议栈修改所述移动终端反馈给所述防御模块的第二SYN+ACK数据包的SEQ号,将所述第二 SYN+ACK数据包的SEQ号减去所述SEQ差值;以及修改所述防御模块向所述移动终端应答的第二 ACK数据包的SEQ号,将所述第二 ACK数据包的SEQ号修改为所述第二 ACK数据包的ACK号加上所述SEQ差值;
F、修改后的所述第二ACK数据包的SEQ号等于所述第二 SYN+ACK数据包的SEQ号加1,所述防御模块与所述移动终端握手成功,由此建立连接请求方与所述移动终端的连接。所述的防御拒接服务攻击的方法,其中,所述步骤C还包括
步骤Cl、所述防御模块在第二 SYN数据包中设定一标识所述第二 SYN数据包的荷载中包含有数据的标记,所述标记用于TCP/IP协议栈提取所述第二 SYN数据包的SEQ号和ACK号。所述的防御拒接服务攻击的方法,其中,所述步骤C还包括
步骤C2、所述TCP/IP协议栈查找路由表,判断所述第二 SYN数据包的发送目的地是移动终端或连接所述移动终端的网络设备。所述的防御拒接服务攻击的方法,其中,所述步骤F之后还包括连接请求方与移动终端建立连接后,所述TCP/IP协议栈修改连接请求方发送的TCP数据包的ACK号和移动终端响应的确认数据包的SEQ号,将所述连接发起方发送的TCP数据包的ACK号加上所述SEQ差值以及移动终端响应的确认数据包的SEQ号减去所述SEQ差值。所述的防御拒接服务攻击的方法,其中,所述步骤F之后还包括在所述连接请求方与所述移动终端的连接成功后,所述移动终端统计所述连接请求方发送的SYN数据包数·量,当所述连接请求方发送的SYN数据包数量处在预定范围时,提取所述连接请求方发送的SYN数据包的源端口、源地址、目的端口、目的地址,并将所述连接请求方发送的SYN数据包的源端口,源地址、目的端口、目的地址保存在预先建立的哈希表中。所述的防御拒接服务攻击的方法,其中,当所述连接请求方向所述移动发送的数据包的协议类型为ICMP或UDP协议时,通过统计收到的ICMP数据包或UDP数据包的数量判断是否受到网络攻击,当ICMP数据包的数量超过第一预定值或UDP数据包的数量超过第二预定值时,丢弃超过第一预定值的ICMP数据包或超过第二预定值的UDP数据包。本发明所提供的防御拒接服务攻击的方法,能够有效的解决现有移动终端特别是手机极易受到拒绝服务攻击的问题,有效的防止DoS攻击,尤其是SYN攻击。而当用户的移动终端特别是手机作为soft ap时,可以有效抵御从网络外部达到移动终端内部的攻击。


图I是本发明提供的防御拒绝服务攻击的方法流程图。图2是本发明提供的防御拒绝服务攻击的方法的优选实施例的原理示意图。
具体实施例方式为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。TCP数据包在数据传输过程中,每个TCP数据包都包含有SEQ号和ACK号,SEQ号和ACK号都是网络字节序,SEQ号TCP数据包的序列号,用于表示TCP数据包的发送顺序,而ACK号表示TCP数据包的确认号,用于确认数据包已经接收。例如,在客户端与服务器通过三次握手原理建立连接时,服务器向客户端发送一个带有数据的TCP数据包,该TCP数据包中的序列号和确认号与建立连接第三步的TCP数据包中的序列号和确认号相同。客户端收到服务器发送的一 TCP数据包,向服务器发送一个确认数据包,该确认数据包中,序列号是为上一个数据包中的确认号,而确认号为服务器发送的上一个数据包中的序列号加上该数据包中所带数据的大小。本发明的主要思想是,针对现有移动终端特别是手机极易受到拒绝服务攻击的问题,预先在移动终端中设置一防御模块,通过该防御模块对外部网络或者内部网络发送的连接请求进行验证,首先根据TCP协议的三次握手原理,当外部网络或者内部网络发送第一个数据包SYN时,防御模块伪造一个SYN+ACK的数据包发送给内部网络或者外部网络。我们定义发起攻击的一方为连接请求方。如果外部网络作为连接请求方,则当防御模块收到连接请求方后续发送的ACK数据包时,防御模块构建一 SYN数据包,并通过网络协议栈判断该SYN数据包是发送给移动终端还是移动终端下面链接的局域网设备,当防御模块收到移动终端发送的SYN+ACK数据包时,防御模块丢弃此数据包,并构造ACK数据包发送给移动终端或移动终端下面链接的局域网设备。移动终端或者移动终端下面链接的局域网设备通过该ACK对连接请求进行验证,如果验证成功,则建立连接请求方与移动终端或者移动终端的下面的局域网设备的连接。通过该防御模块来提高移动终端防御拒绝服务攻击的能力,增强移动终端的安全性。本实施例以外部网络作为连接请求方进行描述。参见图1,图I是本发明提供的防御拒绝服务攻击的方法流程图,包括以下步骤
步骤S100、预先在移动终端中设置一防御拒绝服务攻击的防御模块;
步骤S200、当所述连接请求方向所述防御模块发送一请求连接的第一 SYN数据包时,所述防御模块伪造第一 SYN+ACK数据包,并将所述第一 SYN+ACK数据包发送至所述连接请求方进行应答;
步骤S300、当所述防御模块接收到所述连接请求方应答的第一 ACK数据包时,所述防御模块构建一与所述第一 SYN数据包具有相同SEQ号的第二 SYN数据包,并以连接请求方的身份将所述第二 SYN数据包经TCP/IP协议栈发送至移动终端;
步骤S400、所述TCP/IP协议栈接收移动终端反馈的第二 SYN+ACK数据包,并将所述第二 SYN+ACK数据包的SEQ号减去所述第一 SYN+ACK数据包的SEQ号得到一 SEQ差值;
步骤S500、所述TCP/IP协议栈修改所述移动终端反馈给所述防御模块的第二 SYN+ACK数据包的SEQ号,将所述第二 SYN+ACK数据包的SEQ号减去所述SEQ差值;以及修改所述防御模块向所述移动终端应答的第二 ACK数据包的SEQ号,将所述第二 ACK数据包的SEQ号修改为所述第二 ACK数据包的ACK号加上所述SEQ差值;
步骤S600、修改后的第二 ACK数据包的SEQ号等于所述第二 SYN+ACK数据包的SEQ号加1,所述防御模块与所述移动终端握手成功,由此建立连接请求方与所述移动终端的连接。下面结合具体的实施例对上述步骤进行详细的描述。在本实施例中,移动终端为手机或者其他移动上网终端。该防御模块通过软件实现,可以为移动终端的一个应用。首先,防御模块进行初始化设置,创建一哈希表,用于存放TCP的SYN数据包信息。之后,移动终端会对接收到的连接请求的数据包进行协议类型检测,根据不同的协议类型进行不同的处理。当所述接收到的连接请求的数据包的协议类型为TCP协议时,执行上述步骤 S200-S600。如图2所示,连接请求方首先根据TCP的三次握手原理与防御模块建立连接,然后防御模块以连接请求方的身份向移动终端发送SYN数据包,该数据包的SEQ号与连接请求方向防御模块发送的SYN数据包的SEQ号相同,我们定义连接请求方向防御模块发送的SYN数据包为第一 SYN数据包,防御模块以连接请求方的身份向移动终端发送的SYN数据包为第二 SYN数据包,所述第二 SYN数据包经由移动终端的TCP/IP协议栈处理,为了便于TCP/IP协议栈对第二 SYN数据包的处理,防御模块会在第二 SYN数据包中设置一标识其中包含有数据的标记,该标记用于标识该SYN数据包已经经过防御模块的处理,且其中包含有数据。其中,标记的第一个4字节标识该SYN数据包已经经过处理,例如该4字节的内容为0x123456,而第二个4字节标识数据包中的内容。其中数据的内容为防御模块发送给连接请求方的SYN+ACK数据包的SEQ号,也即是第一 SYN+ACK数据包的SEQ号,我们定义为Y。在TCP/IP协议栈接收到该第二 SYN数据包时,TCP/IP协议栈可以根据防御模块设置的标记,提取第二 SYN数据包的SEQ号和ACK号,所述第二 SYN数据包的SEQ号为第一ACK数据包的SEQ号减去I。这样,第二 SYN数据包的SEQ号和第一 SYN数据包的SEQ号相同,以便防御模块以连接请求方的身份与移动终端进行连接。TCP/IP协议栈还根据该标记提取第二 SYN数据包中的数据,即第一 SYN+ACK数据包的SEQ号Y。TCP/IP协议栈将第二 SYN数据包发送至移动终端,移动终端反馈一 SYN+ACK数据包,我们定义为第二 SYN+ACK数据包。其中,定义第二 SYN+ACK数据包的SEQ号为Z,第二SYN+ACK数据包经TCP/IP协议栈处理,TCP/IP协议栈提取所述第二 SYN+ACK数据包的SEQ号Z,并用第二 SYN+ACK数据包的SEQ号Z减去第一 SYN+ACK数据包的SEQ号Y,得到一SEQ差值R (R=Z-Y)0然后TCP/IP协议栈对第二 SYN+ACK数据包的SEQ号进行修改,将第二 SYN+ACK数据包的SEQ号Z减去所述SEQ差值R,并将修改后的SYN+ACK数据包发送至防御模块,防御模块丢弃该修改后的SYN+ACK数据包,并构建一 ACK数据包,我们定义为第
二ACK数据包,其中,第二 ACK数据包的ACK号设定为上述修改后的SYN+ACK数据包的SEQ号(Z-R)加1,之后防御模块将该ACK数据包发送给TCP/IP协议栈处理,TCP/IP协议栈对第二 ACK数据包进行修改,将第二 ACK数据包的SEQ号修改为第二 ACK数据包的ACK号加 上上述SEQ差值R,修改后的第二 ACK数据包的SEQ号为(Z-R+l )+R=Z+l。移动终端接收到的修改后的第二 ACK数据包的SEQ号刚好等于第二 SYN+ACK数据包的SEQ号加I。此时,防御模块就以连接请求方的身份与移动终端三次握手成功,由此作为连接请求方的外部网络就通过防御模块与移动终端建立了可信连接。而在连接请求方与移动终端建立连接后,所述TCP/IP协议栈修改连接请求方发送的TCP数据包的ACK号和移动终端响应的确认数据包的SEQ号,将所述连接发起方发送的TCP数据包的ACK号加上所述SEQ差值,以及将移动终端响应的确认数据包的SEQ号减去所述SEQ差值。由此来防御拒绝服务攻击。在上述过程中,移动终端会统计接收到的SYN数据包的数量,判断移动终端是否受到TCP的DoS攻击,通过检测一定时间内收到的SYN数据包和只有SYN没有ACK的数据包的数量来判断。例如,每隔3S统计一次当前SYN数据包的数量,将只有发送了 SYN数据包但是没有发送ACK数据包的统计在内,当当前SYN数据包的数量小于100时,判定移动终端当前处于正常状态;当当前SYN数据包的数量大于100小于300时,判定移动终端当前处于中等危险状态,当当前SYN数据包的数量大于300时,判定移动终端处于危险状态。而不管在何种状态下,同一个IP地址,在一定时间内发送了 5个SYN数据包,而没有发送ACK数据包,那么就判定此地址为一个攻击地址,直接丢弃此数据包,以此来抵御拒接服务攻击。在正常状态下,移动终端对所有的SYN数据包都进行处理。而在危险状态下,由于移动终端正处于数据处理的忙碌状态,很有可能在丢弃数据包,此时只处理已经收到的SYN数据包,并且每个地址的发送的SYN数据包的数量要小于5,否则,丢弃此数据包。当移动终端处于中等危险状态时,即连接请求方发送的SYN数据包数量处在预定范围时,该预定范围如上述的当前SYN数据包的数量大于100小于300,只处理未在哈希表里留下记录的SYN数据包,提取SYN数据包包含的源端口、源地址、目的端口和目的地址4个数据,并进行哈希运算,把此4个值保存到哈希表中。而如果移动终端当前处于危险状态,那么直接丢弃此数据包。在上述过程中,所述TCP/IP协议栈会通过查找路由表,判断所述第二 SYN数据包的发送目的地是移动终端或连接所述移动终端的网络设备。而当移动终端作为网络热点时,移动终端下面链接的局域网设备以移动终端为数据中转点,与外部网络建立可信连接。上面实施例主要描述连接请求方发送的数据包类型为TCP协议的情况,而当所述连接请求方向所述移动发送的数据包的协议类型为ICMP或UDP协议时,移动终端会通过统计收到的ICMP数据包或UDP数据包的数量判断是否受到网络攻击,我们可以设定ICMP数据包的限定数量为第一预定值,UDP数据包的限定数量为第二预定值,而当ICMP数据包的 数量超过第一预定值或UDP数据包的数量超过第二预定值时,控制ICMP数据包或UDP数据包的收发数量。例如,第一预定值为100,第二预定值为200,则设定每秒之内是只收取100个ICMP数据包,而每秒只收取200个UDP数据包,如果超过设定的数量,则直接丢弃多余的ICMP数据包或UDP数据包。本发明中的移动终端为手机或平板电脑等通信终端。通过本发明提供的防御拒绝服务攻击的方法,通过预先在移动终端中设置一防御拒绝服务攻击的防御模块,连接请求方首先根据TCP的三次握手原理与防御模块建立连接,防御模块以连接请求方的身份向移动终端发送SYN数据包。当防御模块与所述移动终端握手成功,建立连接请求方与所述移动终端的连接。能够有效的防止DoS攻击,尤其是SYN攻击。而当用户的移动终端特别是手机作为网络热点时,可以有效抵御从网络外部达到移动终端内部的攻击。应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
权利要求
1.一种防御拒接服务攻击的方法,其特征在于,包括以下步骤 A、预先在移动终端中设置一防御拒绝服务攻击的防御模块; B、当所述连接请求方向所述防御模块发送一请求连接的第一SYN数据包时,所述防御模块伪造第一 SYN+ACK数据包,并将所述第一 SYN+ACK数据包发送至所述连接请求方进行应答; C、当所述防御模块接收到所述连接请求方应答的第一ACK数据包时,所述防御模块构建一与所述第一 SYN数据包具有相同SEQ号的第二 SYN数据包,并以连接请求方的身份将所述第二 SYN数据包经TCP/IP协议栈发送至移动终端; D、所述TCP/1P协议栈接收移动终端反馈的第二SYN+ACK数据包,并将所述第二SYN+ACK数据包的SEQ号减去所述第一 SYN+ACK数据包的SEQ号得到一 SEQ差值; E、所述TCP/IP协议栈修改所述移动终端反馈给所述防御模块的第二SYN+ACK数据包的SEQ号,将所述第二 SYN+ACK数据包的SEQ号减去所述SEQ差值;以及修改所述防御模块向所述移动终端应答的第二 ACK数据包的SEQ号,将所述第二 ACK数据包的SEQ号修改为所述第二 ACK数据包的ACK号加上所述SEQ差值; F、修改后的所述第二ACK数据包的SEQ号等于所述第二 SYN+ACK数据包的SEQ号加1,所述防御模块与所述移动终端握手成功,由此建立连接请求方与所述移动终端的连接。
2.根据权利要求I所述的防御拒接服务攻击的方法,其特征在于,所述步骤C还包括 步骤Cl、所述防御模块在第二 SYN数据包中设定一标识所述第二 SYN数据包的荷载中包含有数据的标记,所述标记用于TCP/IP协议栈提取所述第二 SYN数据包的SEQ号和ACK号。
3.根据权利要求I所述的防御拒接服务攻击的方法,其特征在于,所述步骤C还包括 步骤C2、所述TCP/IP协议栈查找路由表,判断所述第二 SYN数据包的发送目的地是移动终端或连接所述移动终端的网络设备。
4.根据权利要求I所述的防御拒接服务攻击的方法,其特征在于,所述步骤F之后还包括连接请求方与移动终端建立连接后,所述TCP/IP协议栈修改连接请求方发送的TCP数据包的ACK号和移动终端响应的确认数据包的SEQ号,将所述连接发起方发送的TCP数据包的ACK号加上所述SEQ差值以及移动终端响应的确认数据包的SEQ号减去所述SEQ差值。
5.根据权利要求I所述的防御拒接服务攻击的方法,其特征在于,所述步骤F之后还包括在所述连接请求方与所述移动终端的连接成功后,所述移动终端统计所述连接请求方发送的SYN数据包数量,当所述连接请求方发送的SYN数据包数量处在预定范围时,提取所述连接请求方发送的SYN数据包的源端口、源地址、目的端口、目的地址,并将所述连接请求方发送的SYN数据包的源端口,源地址、目的端口、目的地址保存在预先建立的哈希表中。
6.根据权利要求5所述的防御拒接服务攻击的方法,其特征在于,当所述连接请求方向所述移动发送的数据包的协议类型为ICMP或UDP协议时,通过统计收到的ICMP数据包或UDP数据包的数量判断是否受到网络攻击,当ICMP数据包的数量超过第一预定值或UDP数据包的数量超过第二预定值时,丢弃超过第一预定值的ICMP数据包或超过第二预定值的m)P数据包。
全文摘要
本发明公开了一种防御拒绝服务攻击的方法。预先在移动终端中设置一防御拒绝服务攻击的防御模块,连接请求方首先根据TCP的三次握手原理与防御模块建立连接,防御模块以连接请求方的身份向移动终端发送SYN数据包。当防御模块与所述移动终端握手成功,建立连接请求方与所述移动终端的连接。能够有效的防止DoS攻击,尤其是SYN攻击。而当用户的移动终端特别是手机作为网络热点时,可以有效抵御从网络外部达到移动终端内部的攻击。
文档编号H04L29/06GK102946387SQ20121043024
公开日2013年2月27日 申请日期2012年11月1日 优先权日2012年11月1日
发明者向金明, 周丹, 卢晓峰, 吴俊 申请人:惠州Tcl移动通信有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1