异常tcp报文处理方法及装置的制作方法

文档序号:7866802阅读:505来源:国知局
专利名称:异常tcp报文处理方法及装置的制作方法
技术领域
本发明涉及互联网技术领域,特别涉及一种异常TCP报文处理方法及装置。
背景技术
现今利用网络存在的漏洞和安全缺陷对网络系统的硬件、软件及其系统中的数据进行的攻击越来越多,用户需要对这些恶意攻击采取必要的防范措施。但是,现有的防御方案主要防止SYN Flood攻击、异常标志位组合攻击以及空标志位攻击等等。
其中,SYN Flood攻击是当前最流行的DoS (Denial of Service,拒绝服务攻击) 与 DdoS(Distributed Denial of Service,分布式拒绝服务攻击)的方式之一。SYN Flood 是一种利用TCP协议缺陷,发送大量伪造的TCP(Transmission Control Protocol,传输控制协议)连接请求,从而使得被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。对这种攻击方式的防御主要采取设置SYN Cookie、TCP反向探测以及TCP代理等方式进行检测和过滤。
异常标志位组合攻击时在异常集合中的标志位组合为恶意行为的攻击。对这种攻击方式的防御主要采取报文解析和协议分析结合,通过制定相关策略,过滤非法的TCP Flag组合(如SYN/FIN)以及NULL包的攻击。
但是上述防御方式存在以下缺点未对特定标志位的TCP异常包进行检测,可能会造成由于目标操作系统对异常包处理不恰当进而系统崩溃。某些特殊的TCP标志位对于 payload的长度有一般化的要求,如FIN包的payload—般为O。不同操作系统对于非常规的TCP标志位有不同的处理,如果攻击者针对某种操作系统大量发送长度过长的特殊TCP 报文,轻则占用带宽和系统资源,造成拒绝服务攻击,重则造成协议栈内存溢出系统崩溃。 因此这种攻击应当得到重视。 发明内容
本发明的目的旨在至少解决上述的技术缺陷之一。
为此,本发明的第一个目的在于提供一种异常TCP报文处理方法,该方法可以对异常长短TCP报文攻击进行有效地检测和过滤。本发明的第二个目的在于提供一种TCP报文处理装置。
为实现上述目的,本发明第一方面的实施例提供一种异常TCP报文处理方法,包括如下步骤
检测TCP报文的标志位是否匹配;
如果所述标志位匹配,则获取所述标志位的包长度,并将所述包长度与预设长度门限进行比较;
根据长度比较结果和预设的数据丢弃条件,判断所述TCP报文是否异常;以及
如果异常,则丢弃所述TCP报文,否则转发所述TCP报文。
根据本发明实施例的异常TCP报文处理方法,可以实现对异常长度的TCP报文的检测和过滤功能,保护目标操作系统免受对这类非常规TCP报文处理不当引起的崩溃危险。在现有攻击检测防护设备的基础上,可以有效补充对异常长度TCP报文攻击的检测和过滤,使服务器更加安全和有效的工作。
在本发明的一个实施例中,利用Netfilter架构中的钩子函数对所述TCP报文的标志位进行匹配。
在本发明的一个实施例中,当所述包长度大于所述预设长度门限时,进一步判断所述预设的数据丢弃条件,如果所述预设的数据丢弃条件为所述包长度大于所述预设长度门限,则丢弃所述TCP报文,否则转发所述TCP报文。
在本发明的一个实施例中,当所述包长度小于或等于所述预设长度门限时,进一步判断所述预设的数据丢弃条件,如果所述预设的数据丢弃条件为所述包长度小于或等于所述预设长度门限,则丢弃所述TCP报文,否则转发所述TCP报文。
在本发明的一个实施例中,如果检测到的所述TCP报文的标志位不匹配,则转发所述TCP报文。
本发明第二方面的实施例提供一种异常TCP报文处理装置,包括检测模块,用于检测TCP报文标志位是否匹配;比较模块,用于在所述标志位匹配时获取所述标志位的包长度,并将所述包长度与预设长度门限进行比较;异常判断模块,用于根据所述比较模块的长度比较结果和预设的数据丢弃条件,判断所述TCP报文是否异常;报文处理模块,用于在所述异常判断模块判断所述TCP报文异常时,丢弃所述TCP报文,否则转发所述TCP报文。
根据本发明实施例的异常TCP报文处理装置,可以实现对异常长度的TCP报文的检测和过滤功能,保护目标操作系统免受对这类非常规TCP报文处理不当引起的崩溃危险。在现有攻击检测防护设备的基础上,可以有效补充对异常长度TCP报文攻击的检测和过滤,使服务器更加安全和有效的工作。
在本发明的一个实施例中,所述检测模块利用Netfilter架构中的钩子函数对所述TCP报文的标志位进行匹配。
在本发明的一个实施例中,所述异常判断模块还用于在所判断述包长度大于所述预设长度门限时,进一步判断所述预设的数据丢弃条件,如果所述预设的数据丢弃条件为所述包长度大于所述预设长度门限,则所述报文处理模块丢弃所述TCP报文,否则转发所述TCP报文。
在本发明的一个实施例中,所述异常判断模块还用于在判断所述包长度小于或等于所述预设长度门限时,进一步判断所述预设的数据丢弃条件,如果所述预设的数据丢弃条件为所述包长度小于或等于所述预设长度门限,则所述报文处理模块丢弃所述TCP报文,否则转发所述TCP报文。
在本发明的一个实施例中,所述报文处理模块还用于在所述检测模块检测到的所述TCP报文的标志位不匹配时转发所述TCP报文。
为此,本发明的目的在于本发明附加的方面和优点将在下面的描述中部分给出, 部分将从下面的描述中变得明显,或通过本发 明的实践了解到。


本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中
图1为根据本发明一个实施例的异常TCP报文处理方法的流程图2为根据本发明另一个实施例的异常TCP报文处理方法的流程图3为根据本发明实施例的异常TCP报文处理装置的示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
下面参考图1和图2描述本发明实施例的异常TCP报文处理方法。
如图1所示,本发明实施例的异常TCP报文处理方法,包括如下步骤
步骤SlOl,检测TCP报文的标志位是否匹配。
在本发明的一个实施例中,可以利用Netfilter架构中的钩子函数对TCP报文的标识位进行匹配。具体地,采用基于Netfilter架构,设置TCP报文的特定标志位的包长度的预设长度门限。在流量经过清洗机时,由Netfilter中注册的钩子函数对标志位进行匹配。
步骤S102,如果标志位匹配,则获取标志位的包长度,并将包长度与预设长度门限进行比较。
在本发明的一个实施例中,如果检测到TCP报文的标志位不匹配,则执行步骤 S105。
步骤S103,根据长度比较结果和预设的数据丢弃条件,判断TCP报文是否异常,如果异常,则执行步骤S104,否则执行步骤S105。
由于不同操作系统对于非常规的TCP标志位有不同的处理,对数据包的丢弃条件可以包括以下两种形式
(I)在TCP报文的包长度大于预设长度门限时丢弃。例如,对于SYN包,预设长度门限为10,当包长度大于10时,即视为非法包,应当丢弃。
(2)在TCP报文的包长度小于或等于预设长度门限时丢弃。例如,对于URG包,预设长度门限为10,当长度小于10时,即视为非法包,应当丢弃。
具体地,当包长度大于预设长度门限时,进一步判断预设的数据丢弃条件,如果预设的数据丢弃条件为TCP报文的包长度大于预设长度门限,则执行步骤S104,否则执行步骤 S105.
当包长度小于或等于预设长度门限时,也需要进一步判断预设的数据丢弃条件, 如果预设的数据丢弃条件为包长度小于预设长度门限,则执行步骤S104,否则执行步骤 S105。
步骤S104,丢弃TCP报文。
步骤S105,转发TCP报文。
下面参考图2对本发明实施例的异常TCP报文处理方法进行详细描述。
步骤S201,执行回调函数(callback entry)。
步骤S202,判断stg是否激活(active),如果是,则执行步骤S203,否则执行步骤 S205。
具体地,判断stg是否激活,如果未激活则直接转发该报文,否则需要执行步骤 S203判断其报文类型。其中,stg为过滤策略,例如数据包黑白名单策略等等。
步骤S203,判断是否为TCP报文,如果是,则执行步骤S204,否则执行步骤S205。
具体地,判断收到的报文是否为TCP类型的报文,如果是,则需要对其进行异常长度的判断,否则直接转发该报文。
步骤S204,判断标志位(flag)是否匹配(match),如果是,则执行步骤S206,否则执行步骤S2 05。
步骤S205,转发该TCP报文。
步骤S206,判断TCP报文的包长度(Ien)是否大于预设长度门限(thresh),如果是,则执行步骤S207,否则执行步骤S209。
步骤S207,判断drop_cond==l是否成立,如果是,则执行步骤S208,否则执行步骤 S205。
判断dr0p_C0nd==l是否成立,即判断数据丢弃条件是否为在TCP报文的包长度大于预设长度门限时丢弃报文。
步骤S208,丢弃该TCP报文。
步骤S209,判断drop_cond==0是否成立,如果是,则执行步骤S205,否则执行步骤 S208。
判断drOp_COnd==0是否成立,即判断数据丢弃条件是否为在TCP报文的包长度小于或等于预设长度门限时丢弃报文。
根据本发明实施例的异常TCP报文处理方法,实现对异常长度的TCP报文的检测和过滤功能,保护目标操作系统免受对这类非常规TCP报文处理不当引起的崩溃危险。在现有攻击检测防护设备的基础上,可以有效补充对异常长度TCP报文攻击的检测和过滤, 使服务器更加安全和有效的工作。本发明实施例的异常TCP报文处理方法与流量清洗系统结合,则可实现服务与策略的灵活部署,并且可以与其他策略组合使用,达到更好的防护效果O
下面参考图3对本发明实施例的异常TCP报文处理装置进行描述。
如图3所示,本发明实施例的异常TCP报文处理装置300,包括检测模块310、比较模块320、异常判断模块330和报文处理模块340。
检测模块310用于检测TCP报文标志位是否匹配。在本发明的一个实施例中,检测模块310利用Netfilter架构中的钩子函数对TCP报文的标志位进行匹配。具体地,在流量经过清洗机时,检测模块310通过Netfilter中注册的钩子函数对标志位进行匹配。
比较模块320用于在标志位匹配时,获取标志位的包长度,并将包长度与预设长度门限进行比较。比较模块320可以基于Netfilter架构,设置TCP报文的特定标志位的包长度的预设长度门限。
异常判断模块330用于根据比较模块330的长度比较结果和预设的数据丢弃条件,判断TCP报文是否异常。报文处理模块340用于在异常判断模块330判断TCP报文异常时,丢弃TCP报文,否则转发该TCP报文。
由于不同操作系统对于非常规的TCP标志位有不同的处理,对数据包的丢弃条件可以包括以下两种形式
(I)在TCP报文的包长度大于预设长度门限时丢弃。例如,对于SYN包,预设长度门限为10,当包长度大于10时,即视为非法包,应当丢弃。
(2)在TCP报文的包长度小于或等于预设长度门限时丢弃。例如,对于URG包,预设长度门限为10,当长度小于10时,即视为非法包,应当丢弃。
由此,异常判断模块330在获得TCP报文好预设长度门限的比较结果后路,还需要进一步获得操作系统的数据丢弃条件,然后再判断丢弃该TCP报文还是转发TCP报文。
具体地,异常判断模块330在判断包长度大于预设长度门限时,进一步判断预设的数据丢弃条件。如果预设的数据丢弃条件为包长度大于预设长度门限,则报文处理模块 340丢弃TCP报文,否则转发该TCP报文。
并且,异常判断模块330在判断包长度小于或等于预设长度门限时,也需要进一步判断预设的数据丢弃条件。如果预设的数据丢弃条件为包长度小于或等于预设长度门限,则报文处理模块340丢弃TCP报文,否则转发该TCP报文。
在本发明的实施例中,报文处理模块340还用于在检测模块310检测到TCP报文的标志位不匹配时,转发该TCP报文。
根据本发明实施例的异常TCP报文处理装置,实现对异常长度的TCP报文的检测和过滤功能,保护目标操作系统免受对这类非常规TCP报文处理不当引起的崩溃危险。在现有攻击检测防护设备的基础上,可以有效补充对异常长度TCP报文攻击的检测和过滤, 使服务器更加安全和有效的工作。本发明实施例的异常TCP报文处理装置与流量清洗系统结合,则可实现服务与策略的灵活部署,并且可以与其他策略组合使用,达到更好的防护效果O
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器 (ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(⑶ROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。本发明的范围由所附权利要求极其等同限定。
权利要求
1.一种异常TCP报文处理方法,其特征在于,包括如下步骤检测传输控制协议TCP报文的标志位是否匹配;如果所述标志位匹配,则获取所述标志位的包长度,并将所述包长度与预设长度门限进行比较;根据长度比较结果和预设的数据丢弃条件,判断所述TCP报文是否异常;以及如果异常,则丢弃所述TCP报文,否则转发所述TCP报文。
2.如权利要求1所述的异常TCP报文处理方法,其特征在于,利用Netfilter架构中的钩子函数对所述TCP报文的标志位进行匹配。
3.如权利要求1所述的异常TCP报文处理方法,其特征在于,当所述包长度大于所述预设长度门限时,进一步判断所述预设的数据丢弃条件,如果所述预设的数据丢弃条件为所述包长度大于所述预设长度门限,则丢弃所述TCP报文,否则转发所述TCP报文。
4.如权利要求1所述的异常TCP报文处理方法,其特征在于,当所述包长度小于或等于所述预设长度门限时,进一步判断所述预设的数据丢弃条件,如果所述预设的数据丢弃条件为所述包长度小于或等于所述预设长度门限,则丢弃所述TCP报文,否则转发所述TCP 报文。
5.如权利要求1-4任一项所述的异常TCP报文处理方法,其特征在于,如果检测到的所述TCP报文的标志位不匹配,则转发所述TCP报文。
6.一种异常TCP报文处理装置,其特征在于,包括检测模块,用于检测传输控制协议TCP报文标志位是否匹配;比较模块,用于在所述标志位匹配时获取所述标志位的包长度,并将所述包长度与预设长度门限进行比较;异常判断模块,用于根据所述比较模块的长度比较结果和预设的数据丢弃条件,判断所述TCP报文是否异常;报文处理模块,用于在所述异常判断模块判断所述TCP报文异常时,丢弃所述TCP报文,否则转发所述TCP报文。
7.如权利要求6所述的异常TCP报文处理装置,其特征在于,所述检测模块利用 Netfilter架构中的钩子函数对所述TCP报文的标志位进行匹配。
8.如权利要求6所述的异常TCP报文处理装置,其特征在于,所述异常判断模块还用于在所判断述包长度大于所述预设长度门限时,进一步判断所述预设的数据丢弃条件,如果所述预设的数据丢弃条件为所述包长度大于所述预设长度门限,则所述报文处理模块丢弃所述TCP报文,否则转发所述TCP报文。
9.如权利要求6所述的异常TCP报文处理装置,其特征在于,所述异常判断模块还用于在判断所述包长度小于或等于所述预设长度门限时,进一步判断所述预设的数据丢弃条件,如果所述预设的数据丢弃条件为所述包长度小于或等于所述预设长度门限,则所述报文处理模块丢弃所述TCP报文,否则转发所述TCP报文。
10.如权利要求6-9所述的异常TCP报文处理装置,其特征在于,所述报文处理模块还用于在所述检测模块检测到的所述TCP报文的标志位不匹配时转发所述TCP报文。
全文摘要
本发明提供一种异常TCP报文处理方法,包括如下步骤检测TCP报文的标志位是否匹配;如果所述标志位匹配,则获取所述标志位的包长度,并将所述包长度与预设长度门限进行比较;根据长度比较结果和预设的数据丢弃条件,判断所述TCP报文是否异常;如果异常,则丢弃所述TCP报文,否则转发所述TCP报文。本发明还提供一种异常TCP报文处理装置。本发明可以实现对异常长度TCP报文的检测和过滤,提高服务器工作的效率和安全性。
文档编号H04L29/06GK103001958SQ20121049163
公开日2013年3月27日 申请日期2012年11月27日 优先权日2012年11月27日
发明者胡林, 吴教仁, 刘涛, 刘晓光, 刘宁 申请人:北京百度网讯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1