数据包检测方法及系统的制作方法

文档序号:9869853阅读:963来源:国知局
数据包检测方法及系统的制作方法
【技术领域】
[0001]本发明涉及一种数据包检测方法及系统。
【背景技术】
[0002]随着互联网技术的普及,越来越多的应用都开始迀移到互联网,随之而来的是越来越多的针对互联网的各种攻击。很多攻击数据包都是黑客直接伪造的非法数据包,然后通过互联网转发到目标机。若不加判断这些数据包和普通包没有太大差别,都会被网络设备和服务器所接受。一旦伪造的攻击数据包到达目标机,将会对目标机上运行的服务产生致命的威胁直至服务器资源耗尽无法正常运行为止。
[0003]所以,一种高效实用的能够判断数据包是否伪造的技术方案就显得尤为重要了。在众多的判断数据包真伪的方法中,TTL(Time To Live,生存时间)值的判断方法是一种非常有效而且性价比极高的策略。IPdnternet Protocol,互联网协议)数据包头都有一个TTL值字段,数据包每进过一个网络转发设备,TTL值就会自动减I,通常来说一个数据包从客户端发出到达服务器端所经过的网络设备是基本固定的,这样服务器端所收到的来自这个客户端的数据包中的TTL值也是相对比较固定。但是若有人想伪造一个这个源地址的数据包,其对应的TTL值和真实的客户端发出的数据包的TTL值很难匹配,除非两者到服务器之间的网络设备数一样,但是这种概率较低。所以通过判断TTL值可有效地判断数据包是否合法。
[0004]中国专利CN200810067292.5公开了一种伪造IP数据包的处理方法及装置,其处理流程大概如下:
[0005]I)接收待处理的IP数据包,并提取TTL值。
[0006]2)判断数据包中的TTL值是否在可信范围,若不可信就丢弃;
[0007]3)若可信,就提取源地址,查找TTL记录,若记录值与实际IP包中的值不一致而且已经标记为探测过就丢弃,没有探测过就会主动发起ICMP(Internet Control MessageProtocol,互联网控制报文协议)探测。
[0008]需要说明的是TTL记录中存储的信息都是真实客户端的相关信息,都是一一对应的关系。CN200810067292.5在实现时是一个老化时间概念,类似于超时机制,一旦时间到了,记录中的TTL值就会无效并做删除操作,并且CN200810067292.5具体存在如下技术问题:
[0009]1、CN200810067292.5中所列举的TTL检测和记录的方法无法在NAT (NetworkAddress Transfer,网络地址转换器)环境中使用,其针对一个源地址记录一个正式的TTL值,但是实际上若这个源地址是一个NAT出口,针对这个源地址的TTL值就有多个段存在,那么表中所记录的实际TTL值会不断地变化,只要不同的操作系统交替访问,就会出现很大的误杀情况。虽然CN200810067292.5的图7中描述时会预先进过一个TTL可信范围的判断,但是在接下来的根据源地址查找TTL对照表时,只要是当前访问者的操作系统和表中记录的TTL值的操作系统不同,就会有可能导致与实际TTL值不符的判断,从而进入丢包流程。
[0010]2、CN200810067292.5中是完全的一个源地址对应一个存储结构,需要大量内存。
[0011]3XN200810067292.5对TTL值的获取方法是主动发送ICMP数据包等待回包或者从正常的三次握手中获取TTL值,但很多网络设备或者软件防火墙会自动禁用ICMP的,因此使用局限性较大。
[0012]4、CN200810067292.5中只描述实际TTL值和预存的TTL记录对比,若两者的TTL值相差I或者2都会被丢弃,但是真实的网络环境中是可能存在一定的差别的,一旦有所差别使用CN200810067292.5描述的TTL记录和真实客户端——对应的关系会造成非常大的误杀。
[0013]5XN200810067292.5中预存的TTL记录有老化时间,即会周期性地更新存储表中每个源地址对应的TTL记录,系统实现冗赘而不够灵活。
[0014]综上可知,现有技术在实际使用上显然存在不便与缺陷,所以有必要加以改进。

【发明内容】

[0015]针对上述的缺陷,本发明的目的在于提供一种数据包检测方法及系统,其不仅能减少非法数据包的透传率,提高后端服务器的安全性能,而且能够适用各种复杂的网络环境,简单实用且安全可靠。
[0016]为了实现上述目的,本发明提供一种数据包检测方法,包括步骤有:
[0017]获取合法数据包中原始生存时间值;
[0018]根据所述原始生存时间值计算出生存时间基准值,所述生存时间基准值对应所述合法数据包的源地址的多个预定邻近地址;
[0019]获取待验数据包中的待验生存时间值;
[0020]根据所述待验生存时间值与所述生存时间基准值,确定所述待验数据包是否合法。
[0021]根据本发明所述的数据包检测方法,所述获取合法数据包中原始生存时间值的步骤包括:
[0022]当客户端主动发起三次握手请求时,被动验证所述客户端的源地址是否真实;
[0023]若所述源地址真实,则获取所述客户端发来的所述合法数据包中的所述原始生存时间值。
[0024]根据本发明所述的数据包检测方法,所述当客户端主动发起三次握手的请求时,被动验证所述客户端的源地址是否真实的步骤包括:
[0025]接收所述客户端主动发起的所述三次握手请求;
[0026]被动向所述客户端发送伪造的SYN_ACK数据包;
[0027]接收所述客户端响应回复的RST数据包;
[0028]判断所述RST数据包中的SEQ值与所述SYN_ACK数据包中的ACK值是否相同,若相同则判定所述客户端的所述源地址真实。
[0029]根据本发明所述的数据包检测方法,所述获取所述客户端发来的所述合法数据包中的所述原始生存时间值的步骤之后还包括:
[0030]当所述客户端再次主动发起三次握手请求时,判断相邻两次所述三次握手请求的时间间隔是否超过预定的时间阈值;
[0031]若超过所述时间阈值,则重新验证所述客户端的所述源地址的真实性,并在验证通过后获取所述客户端的新原始生存时间值进行更新处理。
[0032]根据本发明所述的数据包检测方法,所述根据所述原始生存时间值计算出生存时间基准值的步骤包括:
[0033]对所述原始生存时间值统一进行预定数值的取模运算得到所述生存时间基准值。
[0034]根据本发明所述的数据包检测方法,所述生存时间基准值对应所述合法数据包的源地址的多个预定邻近地址的步骤包括:
[0035]对所述源地址进行掩码处理,使得所述生存时间基准值对应所述合法数据包的源地址的多个预定邻近地址。
[0036]根据本发明所述的数据包检测方法,所述对所述源地址进行掩码处理的步骤包括:
[0037]所述合法数据包的所述源地址为32位,去掉所述源地址的后4位信息,保留所述源地址的前28位信息。
[0038]根据本发明所述的数据包检测方法,所述数据包检测方法应用于数据包检测设备中,并且所述生存时间基准值对应多个操作系统、客户端和/或局域网。
[0039]根据本发明所述的数据包检测方法,所述根据所述待验生存时间值与所述生存时间基准值,确定所述待验数据包是否合法的步骤包括:
[0040]判断所述待验生存时间值与所述生存时间基准值之间的差值是否在预定的生存时间误差值的范围内,若是则判定所述数据包为合法数据包,否则判定所述数据包为非法数据包。
[0041]根据本发明所述的数据包检测方法,所述生存时间误差值根据透传到服务器的数据包的数量进行动态调整。
[0042]本发明还提供一种数据包检测系统,包括有:
[0043]第一 TTL获取模块,用于获取合法数据包中原始生存时间值;
[0044]基准值计算模块,用于根据所述原始生存时间值计算得出生存时间基准值,所述生存时间基准值对应所述合法数据包的源地址的多个预定邻近地址;
[0045]第二 TTL获取模块,用于获取待验数据包中的待验生存时间值;
[0046]TTL判断模块,用于根据所述待验生存时间值与所述生存时间基准值,确定所述待验数据包是否合法。
[0047]根据本发明所述的数据包检测系统,所述第一 TTL获取模块包括:
[0048]地址验证子模块,用于当客户端主动发起三次握手请求时,被动验证所述客户端的源地址是否真实;
[0049]TTL获取子模块,用于若所述源地址真实,则获取所述客户端发来的所述合法数据包中的所述原始生存
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1