具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
可以通过识别UDP数据包的应用将DDOS攻击与UDP协议的正常应用区分开来。“普通报文检测”分析UDP数据包的包头中层4以下的内容来识别UDP数据包的应用,包括五元组:源IP地址、目的IP地址、源端口号、目的端口号以及协议号。当通过检测UDP数据包的目的端口号来识别该UDP数据包的应用时,例如:检测到UDP数据包的目的端口号为80时,则认为该UDP数据包的应用为普通上网应用。而DDOS攻击的UDP数据包会采用仿冒目的端口号的方式躲避检测。因此用L2~L4层的普通报文检测无法将DDOS攻击与UDP协议的正常应用区分开来。
深度包检测(Deep Packet Inspection,以下简称:DPI)与普通报文检测的分析相比较,除了对IP数据包L2~L4层的分析外,还增加了对IP数据包的包体中的应用层的分析。由于非法应用可以隐藏目的端口号,但较难以隐藏应用层的协议特征,因此,通过分析应用层,从而识别UDP数据包的真正应用,从而可以将DDOS攻击与UDP协议的正常应用区分开来。
进一步地,不同的应用通常依赖于不同的应用层协议,因此,可以通过识别应用层协议来识别应用。而应用层协议都有其特殊的协议特征字,这些协议特征字可以是特定的字符串或者特定的位(Bit)序列。例如:Bittorrent协议的识别,通过反向工程的方法对其对等协议进行分析,所谓对等协议指的是peer与peer之间交换信息的协议,其由一个握手开始,后面是循环的消息流,消息流中的每个消息前面,都有一个数字来表示该消息的长度。在其握手过程中,首先是先发送“19”,然后是字符串“BitTorrent protocol”。那么“19BitTorrent Protocol”就是Bittorrent协议的“协议特征字”。
如图1所示,为本发明实施例一提供的过滤UDP数据包的方法的流程示意图,可以包括如下步骤:
步骤11、根据应用层协议的协议特征字,检测UDP数据包的包体;其中,协议特征字为使用应用层协议的UDP数据包的包体共有的数据;
步骤12、若UDP数据包的包体中不存在与协议特征字相匹配的数据,丢弃UDP数据包。
本实施例通过检测UDP数据包的包体,当UDP数据包的包体中不存在与应用层协议的协议特征字匹配的数据时,认为该UDP数据包为DDOS攻击的UDP数据包,因此丢弃该数据包,从而可以克服现有技术中无法有效过滤DDOS攻击的UDP数据包的缺陷,实现有效过滤DDOS攻击的UDP数据包。
如图2所示,为本发明实施例二提供的过滤UDP数据包的方法的流程示意图,可以包括如下步骤:
步骤21、根据应用层协议的协议特征字,检测UDP数据包的包体;其中,协议特征字为使用应用层协议的UDP数据包的包体共有的数据;
步骤22、判断UDP数据包的包体中是否存在与协议特征字相匹配的数据,若UDP数据包的包体中不存在与协议特征字相匹配的数据,执行步骤23,否则执行步骤24;
步骤23、将UDP数据包的指纹与目的指纹相比较,判断UDP数据包的指纹与目的指纹是否匹配,若UDP数据包的指纹与目的指纹匹配,执行步骤25,否则执行步骤24;
其中,UDP数据包的指纹可以包括UDP数据包的源IP地址或目的IP地址。目的指纹由报文长度、数据偏移和数据字段三部分组成。
步骤24、放行该UDP数据包;
步骤25、丢弃UDP数据包;
具体地,步骤23-25对未知协议的UDP数据包进行指纹过滤,对于与目的指纹匹配的UDP数据包进行丢弃处理。
在本实施例中,目的指纹可以包括静态指纹和/或动态指纹,其中,静态指纹通过外部设备输入,动态指纹通过对UDP数据包之前的UDP数据包进行检测得到。静态指纹可以保存在静态指纹表中,动态指纹可以保存在动态指纹表中。将UDP数据包的指纹与静态指纹和/或动态指纹相比较,若UDP数据包的指纹与静态指纹和/或动态指纹相匹配,丢弃UDP数据包。
如图3所示,为本发明实施例二提供的过滤UDP数据包的方法中对未知协议的UDP数据包进行指纹过滤的流程示意图,可以包括如下步骤:
步骤31、判断静态指纹是否有效,若静态指纹有效,执行步骤32,否则执行步骤33;
优选地,可以为静态指纹提供一标志位,当该标志位有效时,表示该静态指纹有效。
步骤32、判断UDP数据包的指纹与静态指纹是否匹配,若UDP数据包的指纹与静态指纹匹配,执行步骤38,否则执行步骤33;
步骤33、判断动态指纹是否有效,若动态指纹有效,执行步骤34,否则执行39;
优选地,可以为动态指纹设置一标志位,当该标志位有效时,表示该动态指纹有效;
步骤34、判断UDP数据包的指纹与动态指纹是否匹配,若UDP数据包的指纹与动态指纹匹配,执行步骤38,否则执行步骤35;
步骤35、判断是否需要学习动态指纹,若需要学习动态指纹,执行步骤36,否则执行步骤39;
优选地,可以设置一标志位,当该标志位有效时,表示需要学习动态指纹;
步骤36,学习动态指纹,判断动态指纹学习是否成功,若动态指纹学习成功,执行步骤37,否则执行步骤39;
具体地,学习动态指纹指的是检测UDP数据包,提取其中的源IP地址或目的IP地址;
步骤37、更新指纹,执行步骤39;
具体地,将学习的动态指纹存储到动态指纹表中;
步骤38、丢弃UDP数据包,执行步骤39;
步骤39、结束。
再参见图2,步骤25之后还可以包括如下步骤:
步骤26、对目标IP地址的UDP数据包的流量进行统计,若流量大于设定阈值,丢弃目标IP地址的UDP数据包。
优选地,经过步骤21-25的处理后,但防范的效果不佳或者并不存在DDOS攻击后,对某一目标IP地址的UDP数据包的流量进行实时统计,该目标IP地址的UDP数据包的流量仍超过设定阈值,将对该目标IP地址的UDP数据包进行随机丢包处理,以保证目标IP地址尽可能少地受到DDOS攻击。
本实施例通过检测UDP数据包的包体,当UDP数据包的包体中不存在与应用层协议的协议特征字匹配的数据时,将UDP数据包的指纹与目的指纹进行匹配,当该UDP数据包的指纹与目的指纹匹配时,认为该UDP数据包为DDOS攻击的UDP数据包,将其过滤掉,最后,对目标IP地址的UDP流量进行限流处理,将应用协议分析、指纹检测、限流几种方式结合,克服现有技术中无法有效过滤DDOS攻击的UDP数据包的缺陷,实现有效过滤DDOS攻击的UDP数据包。
本实施例可以用于网关类设备,例如:防火墙、抗DDOS设备、统一威胁管理(Unified Threat Management,简称:UTM)设备、入侵防护系统(Intrusion Prevention System,简称:IPS)设备等。
如图4所示,为本发明实施例三提供的过滤UDP数据包的装置的结构示意图,可以包括检测模块41和第一过滤模块42。
其中,检测模块41用于根据应用层协议的协议特征字,检测UDP数据包的包体;其中,协议特征字为使用应用层协议的UDP数据包的包体共有的数据。
第一过滤模块42用于若UDP数据包的包体中不存在与协议特征字相匹配的数据,丢弃UDP数据包。
本实施例通过检测模块41检测UDP数据包的包体,当UDP数据包的包体中不存在与应用层协议的协议特征字匹配的数据时,认为该UDP数据包为DDOS攻击的UDP数据包,因此第一过滤模块42丢弃该数据包,从而可以克服现有技术中无法有效过滤DDOS攻击的UDP数据包的缺陷,实现有效过滤DDOS攻击的UDP数据包。
如图5所示,为本发明实施例四提供的过滤UDP数据包的装置的结构示意图,可以包括检测模块41、匹配模块51、第一过滤模块42。
检测模块41用于根据应用层协议的协议特征字,检测UDP数据包的包体。其中,协议特征字为使用应用层协议的UDP数据包的包体共有的数据。
匹配模块51用于若UDP数据包的包体中不存在与协议特征字相匹配的数据,将UDP数据包的指纹与目的指纹相比较;其中,UDP数据包的指纹包括UDP数据包的源IP地址或目的IP地址。
第一过滤模块42用于若匹配模块51确定UDP数据包的指纹与目的指纹相匹配,丢弃UDP数据包。
在本实施例中,目的指纹可以包括静态指纹和/或动态指纹,其中,静态指纹通过外部设备输入,动态指纹通过对UDP数据包之前的UDP数据包进行检测得到。匹配模块51还可以用于若UDP数据包的包体中不存在与协议特征字相匹配的数据,将UDP数据包的指纹与静态指纹和/或动态指纹相比较。第一过滤模块42还用于若匹配模块51确定UDP数据包的指纹与静态指纹和/或动态指纹相匹配,丢弃UDP数据包。
本实施例还可以包括第二过滤模块52,与第一过滤模块42连接,用于对目标IP地址的UDP数据包的流量进行统计,若流量大于设定阈值,丢弃目标IP地址的UDP数据包。
本实施例通过检测模块41检测UDP数据包的包体,当确定UDP数据包的包体中不存在与应用层协议的协议特征字匹配的数据时,匹配模块51将UDP数据包的指纹与目的指纹进行匹配,当该UDP数据包的指纹与目的指纹匹配时,认为该UDP数据包为DDOS攻击的UDP数据包,第一过滤模块42将其过滤掉,最后,第二过滤模块52对目标IP地址的UDP流量进行限流处理。本实施例将应用协议分析、指纹检测、限流几种方式结合,克服现有技术中无法有效过滤DDOS攻击的UDP数据包的缺陷,实现有效过滤DDOS攻击的UDP数据包。
本发明实施例还提供了一种网关设备,包括过滤UDP数据包的装置,用于根据应用层协议的协议特征字,检测UDP数据包的包体,若UDP数据包的包体中不存在与协议特征字相匹配的数据,丢弃UDP数据包;其中,协议特征字为使用应用层协议的UDP数据包的包体共有的数据。
需要说明的是,该过滤UDP数据包的装置可以包括前述过滤UDP数据包的装置实施例中任一模块,在此不再赘述。
本实施例通过过滤UDP数据包的装置检测UDP数据包的包体,当UDP数据包的包体中不存在与应用层协议的协议特征字匹配的数据时,认为该UDP数据包为DDOS攻击的UDP数据包,因此丢弃该数据包,从而可以克服现有技术中无法有效过滤DDOS攻击的UDP数据包的缺陷,实现有效过滤DDOS攻击的UDP数据包。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。最后应说明的是:以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。