防御分布式反射拒绝服务攻击的方法、装置及交换机与流程

文档序号:13908694阅读:461来源:国知局
防御分布式反射拒绝服务攻击的方法、装置及交换机与流程

本发明涉及网络安全领域,尤其涉及一种防御分布式反射拒绝服务(distributedreflectiondenialofservice,简称:drdos)攻击的方法、装置及交换机。



背景技术:

网络时间协议(networktimeprotocol,简称:ntp)是一种在分布式时间服务器和客户端之间进行时间同步的协议,使用该协议的目的是对网络内所有具有时钟的设备进行时钟同步,使网络内所有设备的时钟保持一致,从而使设备能够提供基于统一时间的多种应用。对于运行ntp的本地系统,既可以接收来自其他时钟源的同步,又可以作为时钟源同步其他的时钟,并且可以和其他设备互相同步。

ntp以客户机和服务器方式进行通信,客户机发送一个请求数据包,服务器接收后回送一个应答数据包,两个数据包都带有时间戳。ntp根据这两个数据包带的时间戳确定时间误差,并通过一系列算法来消除网络传输的不确定性的影响。在数据包的传送方式上,有客户机和服务器一对一的点对点方式,还有多个客户机对一个服务器的广播/多播方式,两者工作方法基本相同。处于两种方式下的客户机在初始时和服务器进行简短的信息交换,据此对往返延时进行量化判断。

ntp基于用户数据报协议(userdataprotocol,简称:udp)进行报文传输,使用的udp端口号为123。由于udp协议是面向无连接的,所以客户端发送请求包的源网络协议(internetprotocol,简称ip)地址很容易进行伪造,当攻击者发送大量带有客户端ip地址的数据包给服务器,服务器根据客户端ip地址做出大量回应,从而形成了一次反射攻击。drdos攻击正是基于udp的这种特点。

ntp包含一个monlist命令,该指令可以获取与目标ntp服务器进行过同步的最新600个客户机ip,响应包按照每6个ip进行分割,每个客户机ip最多会收到返回的100个响应包。因此一个很小的请求包,就能获取到大量的由ip地址组成的连续udp包,利用这个特性,再结合ntp协议为面向无连接的udp协议的特点,攻击者如果伪造被攻击目标ip向多个ntp服务器发起monlist查询指令,多个ntp服务器则将大量含有最新同步过的客户端ip数据包发送至被攻击目标ip,占用目标ip带宽资源,从而造成反射式分布式拒绝服务攻击。这是一种典型的drdos攻击方式。欧洲知名内容传送网络及分散式域名服务供应商就曾经遭受大规模的ntpdrdos攻击,攻击尖峰流量为350gbps且持续两小时,甚至影响整个欧洲网络,给网络的稳定带来极大的风险。

除了ntpdrdos攻击风险之外,波士顿大学的研究发现ntp的kiss-o'-death机制还存在一个漏洞,kiss-o'-death机制用于限制请求频率,在实际应用当中,该机制会使ntp服务器在客户端请求同步频率过高时发送kiss-o'-death报文,并且停止时间同步。然而研究人员指出,因为这种机制的存在,黑客组织可以伪装一份来自于ntp服务器的kiss-o'-death报文,且将它传送到与服务器连接的客户端上,之后客户端将不再向服务器请求同步,从而无法更新时间,形成阻断服务攻击,最终增加因系统的时间错误带来诸多的安全隐患和风险。



技术实现要素:

有鉴于此,本发明实施例期望提供一种防御drdos攻击的方法、装置及交换机,避免了由于drdos攻击造成的系统网络拥塞崩溃,同时有效地防止kiss-o'-death攻击导致的时间同步失败的发生。

本发明实施例的技术方案是这样实现的:

一种防御分布式反射拒绝服务攻击的方法,包括:

接收服务器发送的第一网络时间协议ntp报文;

获取所述第一ntp报文的数据类型以及所述第一ntp报文中包含的客户端的互联网协议ip地址、媒体访问控制mac地址;

根据所述第一ntp报文的数据类型、预存的绑定表以及所述客户端的ip地址、mac地址对所述第一ntp报文进行处理;其中,所述绑定表通过解析并存储客户端发送的第二ntp报文中包含的ip地址和mac地址生成。

如上所述的方法,所述根据所述第一ntp报文的数据类型、预存的绑定表以及所述客户端的ip地址、mac地址对所述第一ntp报文进行处理包括:

若所述第一ntp报文的数据类型为类型3,丢弃所述第一ntp报文;

若所述第一ntp报文的数据类型为类型1、2或6,转发所述第一ntp报文;

若所述第一ntp报文的数据类型为类型4、5或7,查看所述客户端的ip地址、mac地址是否存在于所述预存的绑定表中,若所述客户端的ip地址、mac地址不存在于所述预存的绑定表中,丢弃所述第一ntp报文,若所述客户端的ip地址、mac地址存在于所述预存的绑定表中,将所述第一ntp报文转发给所述客户端。

如上所述的方法,所述接收服务器发送的第一ntp报文之前,还包括:

接收客户端发送的第二ntp报文;

获取所述第二ntp报文的数据类型以及所述客户端的ip地址、mac地址;

根据所述第二ntp报文的数据类型、所述预存的绑定表以及所述客户端的ip地址、mac地址对所述第二ntp报文进行处理。

如上所述的方法,所述根据所述第二ntp报文的数据类型、预存的绑定表以及所述客户端的ip地址、mac地址对所述第二ntp报文进行处理包括:

若所述第二ntp报文的数据类型为类型4、5或6,丢弃所述第二ntp报文;

若所述第二ntp报文的数据类型为类型1、2或7,向服务器转发所述第二ntp报文;

若所述第二ntp报文的数据类型为类型3,查看所述客户端的ip地址、mac地址是否存在于所述预存的绑定表中,若所述客户端的ip地址、mac地址不存在于所述预存的绑定表中,绑定且存储所述客户端的ip地址、mac地址,并向所述服务器转发所述第二ntp报文,若所述客户端的ip地址、mac地址存在于所述预存的绑定表中,向所述服务器转发所述第二ntp报文。

如上所述的方法,还包括:

为所述预存的绑定表的每个表项设置一个定时器;

若超过所述定时器时间,删除所述定时器对应表项中的所述客户端的ip地址、mac地址。

如上所述的方法,若所述客户端的ip地址、mac地址存在于所述预存的绑定表中,向所述服务器转发所述第二ntp报文之后,还包括:

刷新所述客户端的ip地址、mac地址对应表项的定时器。

一种防御分布式反射拒绝服务攻击的装置,包括:

接收模块,用于接收服务器发送的第一网络时间协议ntp报文;

获取模块,用于获取所述第一ntp报文的数据类型以及所述第一ntp报文中包含的客户端的互联网协议ip地址、媒体访问控制mac地址,其中,所述绑定表通过解析并存储客户端发送的第二ntp报文中包含的ip地址和mac地址生成;

处理模块,用于根据所述第一ntp报文的数据类型、预存的绑定表以及所述客户端的ip地址、mac地址对所述第一ntp报文进行处理。

如上所述的装置,所述处理模块具体用于:

若所述第一ntp报文的数据类型为类型3,丢弃所述第一ntp报文;

若所述第一ntp报文的数据类型为类型1、2或6,转发所述第一ntp报文;

若所述第一ntp报文的数据类型为类型4、5或7,查看所述客户端的ip地址、mac地址是否存在于所述预存的绑定表中,若所述客户端的ip地址、mac地址不存在于所述预存的绑定表中,丢弃所述第一ntp报文,若所述客户端的ip地址、mac地址存在于所述预存的绑定表中,将所述第一ntp报文转发给所述客户端。

如上所述的装置,所述接收模块,还用于接收客户端发送的第二ntp报文;

所述获取模块,用于获取所述第二ntp报文的数据类型以及所述客户端的ip地址、mac地址;

所述处理模块,用于根据所述第二ntp报文的数据类型、预存的绑定表以及所述客户端的ip地址、mac地址对所述第二ntp报文进行处理。

如上所述的装置,所述处理模块具体还用于:

若所述第二ntp报文的数据类型为类型4、5或6,丢弃所述第二ntp报文;

若所述第二ntp报文的数据类型为类型1、2或7,向服务器转发所述第二ntp报文;

若所述第二ntp报文的数据类型为类型3,查看所述客户端的ip地址、mac地址是否存在于所述预存的绑定表中,若所述客户端的ip地址、mac地址不存在于所述预存的绑定表中,绑定且存储所述客户端的ip地址、mac地址,并向所述服务器转发所述第二ntp报文,若所述客户端的ip地址、mac地址存在于所述预存的绑定表中,向所述服务器转发所述第二ntp报文。

如上所述的装置,还包括:

设置模块,用于为所述预存的绑定表的每个表项设置一个定时器;

所述处理模块,还用于若超过所述定时器时间,删除所述定时器对应表项中的所述客户端的ip地址、mac地址。

如上所述的装置,所述处理模块,还用于刷新所述客户端的ip地址、mac地址对应表项的定时器。

一种防御分布式反射拒绝服务攻击的交换机,包括如上所述的任一一种装置。

本发明实施例提供的防御drdos攻击的方法、装置及交换机,该方法包括接收客户端或服务器发送的ntp报文;获取ntp报文的数据类型以及客户端的ip地址、媒体访问控制(mediaaccesscontrol,简称:mac)地址;根据ntp报文的数据类型、预存的绑定表以及客户端的ip地址、mac地址对ntp报文进行处理;如此,避免了由于drdos攻击造成的系统网络拥塞崩溃,同时有效地防止kiss-o'-death攻击导致的时间同步失败的发生。

附图说明

图1为本发明防御drdos攻击的方法实施例一的流程图;

图2为本发明对ntp报文头部处理的过程;

图3为本发明防御drdos攻击的方法实施例二的流程图;

图4为本发明对客户端发送的ntp报文的处理流程图;

图5为本发明对服务器发送的ntp报文的处理流程图;

图6为本发明防御drdos攻击的装置实施例的结构示意图。

具体实施方式

需要说明的是,本发明提供的实施例的执行主体是交换机,下面结合图示具体说明防御drdos攻击的方法。

图1为本发明防御drdos攻击的方法实施例一的流程图。如图1所示,本实施例提供的方法包括:

步骤101:接收服务器发送的第一ntp报文;

步骤102:获取第一ntp报文的数据类型以及第一ntp报文中包含的客户端的ip地址、mac地址。

具体的,图2为本发明对ntp报文头部处理的过程。如图2所示,底层驱动收到ntp报文;然后按照eth->ip->udp顺序对ntp报文进行解析、记录,其中,eth是报文的二层头;接着对解析后的报文进行处理,获取ntp报文的数据类型以及客户端的ip地址、mac地址;再按照udp->ip->eth顺序进行ntp报文的封装。

步骤103:根据第一ntp报文的数据类型、预存的绑定表以及客户端的ip地址、mac地址对第一ntp报文进行处理。其中,所述绑定表通过解析并存储客户端发送的第二ntp报文中包含的ip地址和mac地址生成。

具体的,若第一ntp报文的数据类型为类型3,丢弃第一ntp报文;

若第一ntp报文的数据类型为类型1、2或6,转发第一ntp报文;

若第一ntp报文的数据类型为类型4、5或7,查看客户端的ip地址、mac地址是否存在于预存的绑定表中,若客户端的ip地址、mac地址不存在于预存的绑定表中,丢弃第一ntp报文,若客户端的ip地址、mac地址存在于预存的绑定表中,将第一ntp报文转发给客户端。

需要说明的是,ntp报文的数据类型为1表示该报文是主动对等体模式报文,数据类型为2表示该报文是被动对等体模式报文,数据类型为3表示该报文是ntp时间同步请求报文,数据类型为4表示该报文是ntp时间同步应答报文,数据类型为5表示该报文是广播/组播同步报文,数据类型为6表示该报是控制报文,数据类型为7表示该报文是控制报文是预留给内部使用的报文。

还需要说明的是,初始时,可以通过人为方式指定信任的客户端,将信任客户端的ip地址、mac地址绑定并存储在一张表里,从而形成预存的绑定表。

图3为本发明防御drdos攻击的方法实施例二的流程图。如图3所示,接收服务器发送的第一ntp报文之前,本实施例提供的方法还包括:

步骤104:接收客户端发送的第二ntp报文。

步骤105:获取第二ntp报文的数据类型以及客户端的ip地址、mac地址。

步骤106:根据第二ntp报文的数据类型、预存的绑定表以及客户端的ip地址、mac地址对第二ntp报文进行处理。

具体的,若第二ntp报文的数据类型为类型4、5或6,丢弃第二ntp报文;

若第二ntp报文的数据类型为类型1、2或7,向服务器转发第二ntp报文;

若第二ntp报文的数据类型为类型3,查看客户端的ip地址、mac地址是否存在于预存的绑定表中,若客户端的ip地址、mac地址不存在于预存的绑定表中,绑定且存储客户端的ip地址、mac地址,并向服务器转发第二ntp报文,若客户端的ip地址、mac地址存在于预存的绑定表中,向服务器转发第二ntp报文。

需要说明的是,预存的绑定表中还可以存储客户端发送第二ntp报文的端口信息,如果预存的绑定表中包含端口信息这一表项,相应的,在接收服务器发送的第一ntp报文或接收客户端发送的第二ntp报文时也要获取报文中包含的端口信息。

进一步的,防御drdos攻击的方法还包括:为预存的绑定表的每个表项设置一个定时器;若超过定时器时间,删除定时器对应表项中的客户端的ip地址、mac地址。

需要说明的是,定时器的时间可以根据具体情况和需要进行设定,某一客户端若在定时器设定的时间内没有发送报文,则在预存的绑定表中删除该客户端的ip地址、mac地址,以节省交换机的内存空间。

进一步的,若客户端的ip地址、mac地址存在于预存的绑定表中,向服务器转发第二ntp报文之后,还包括:刷新客户端的ip地址、mac地址对应表项的定时器。

下面提供一个对客户端发送的ntp报文的处理流程图。图4为本发明对客户端发送的ntp报文的处理流程图。如图4所示,交换机接收客户端发送的ntp报文,通过解析获取ntp报文的数据类型以及客户端的ip地址、mac地址,然后判断报文类型(mode),如果该报文的mode为4、5或6,交换机认为这三类型的报文不应该是通过客户端接收到的,所以将该报文丢弃;如果该报文的mode为1、2或7,交换机对该报文进行正常转发;如果该报文的mode为3,交换机判断发送该报文的客户端的ip地址、mac地址是否存在于预存的绑定表中,如果存在,则刷新所对应表项的定时器并将该报文转发给服务器,如果不存在,将客户端的ip地址、mac地址绑定且存储在预存的绑定表中,并将该报文转发给服务器。

下面提供一个对服务器发送的ntp报文的处理流程图。图5为本发明对服务器发送的ntp报文的处理流程图。如图5所示,交换机接收服务器发送的ntp报文,通过解析获取ntp报文的数据类型以及客户端的ip地址、mac地址,然后判断报文类型(mode),如果该报文的mode为3,交换机认为这类型的报文不应该是通过服务器接收到的,所以将该报文丢弃;如果该报文的mode为1、2或6,交换机对该报文进行正常转发;如果该报文的mode为4、5或7,交换机判断该报文中包含的客户端的ip地址、mac地址是否存在于预存的绑定表中,如果存在,将该报文转发给服务器,如果不存在,丢弃该报文。

本实施例提供的防御drdos攻击的方法,通过获取客户端发送第二ntp报文的客户端的ip地址、mac地址以及所发送报文的数据类型,然后根据获取的这些信息对ntp报文进行相应的处理,从而避免了攻击者假冒客户端ip向多个ntp服务器发起monlist查询指令而造成drdos攻击的情况发生,维护了系统网络的稳定;通过获取服务器发送第一ntp报文中包含的客户端的ip地址、mac地址以及服务器所发送报文的数据类型,然后根据获取的这些信息对ntp报文进行相应的处理,从而使得交换机能够对假冒ntp服务器发送的报文进行屏蔽,确保客户端从合法的服务器获取ntp时间同步应答报文或者kiss-o'-death等报文。

图6为本发明防御drdos攻击的装置实施例的结构示意图。如图6所示,本实施例提供的装置包括:

接收模块20,用于接收服务器发送的第一ntp报文;

获取模块21,用于获取第一ntp报文的数据类型以及第一ntp报文中包含的客户端的ip地址、mac地址。

处理模块22,用于根据第一ntp报文的数据类型、预存的绑定表以及客户端的ip地址、mac地址对第一ntp报文进行处理;其中,所述绑定表通过解析并存储客户端发送的第二ntp报文中包含的ip地址和mac地址生成。

具体的,处理模块22具体用于:

若第一ntp报文的数据类型为类型3,丢弃第一ntp报文;

若第一ntp报文的数据类型为类型1、2或6,转发第一ntp报文;

若第一ntp报文的数据类型为类型4、5或7,查看客户端的ip地址、mac地址是否存在于预存的绑定表中,若客户端的ip地址、mac地址不存在于预存的绑定表中,丢弃第一ntp报文,若客户端的ip地址、mac地址存在于预存的绑定表中,将第一ntp报文转发给客户端。

接收模块20,还用于接收客户端发送的第二ntp报文;

获取模块21,还用于获取第二ntp报文的数据类型以及客户端的ip地址、mac地址;

处理模块22,还用于根据第二ntp报文的数据类型、预存的绑定表以及客户端的ip地址、mac地址对第二ntp报文进行处理。

具体的,处理模块22具体用于:

若第二ntp报文的数据类型为类型4、5或6,丢弃第二ntp报文;

若第二ntp报文的数据类型为类型1、2或7,向服务器转发第二ntp报文;

若第二ntp报文的数据类型为类型3,查看客户端的ip地址、mac地址是否存在于预存的绑定表中,若客户端的ip地址、mac地址不存在于预存的绑定表中,绑定且存储客户端的ip地址、mac地址,并向服务器转发第二ntp报文,若客户端的ip地址、mac地址存在于预存的绑定表中,将第二ntp报文转发给服务器。

进一步的,防御drdos攻击的装置还包括:

设置模块23,用于为预存的绑定表的每个表项设置一个定时器;

处理模块22,还用于若超过定时器时间,删除定时器对应表项中的客户端的ip地址、mac地址;刷新客户端的ip地址、mac地址对应表项的定时器。

本实施例提供的防御drdos攻击的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

在实际应用中,所述接收模块20、获取模块21、处理模块22和设置模块23可由位于防御drdos攻击的装置中的中央处理器(centralprocessingunit,cpu)、微处理器(microprocessorunit,mpu)、数字信号处理器(digitalsignalprocessor,dsp)或现场可编程门阵列(fieldprogrammablegatearray,fpga)等实现。

本发明还提供一种防御drdos的交换机,由上述装置实施例提供的装置组成。

本实施例提供的防御drdos的交换机,能够避免攻击者假冒客户端ip向多个ntp服务器发起monlist查询指令而造成drdos攻击的情况发生,并且能够对假冒ntp服务器发送的报文进行屏蔽,确保客户端从合法的服务器获取ntp时间同步应答报文或者kiss-o'-death等报文,从而维护网络的稳定。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1