使用复制确认和重组间隙方法防止网络数据注入攻击技术

技术编号:2919946 阅读:225 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种用于防止分组交换网络中的TCP数据注入攻击的方法。ACK消息或哑段被发送,以验证重组缓冲区中数据的真实性,并且帮助更快地丢弃虚假数据。这些方法涉及发送者检测虚假数据,并增强了对典型TCP实现所固有的用于处理ACK消息的机制的使用。后一方法可在不修改发送者的TCP实现的情况下实现。此外,接收者的TCP实现维持与RFC  793的兼容性。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术一般地涉及计算机网络。本专利技术更具体而言涉及防止网络中的数据注入攻击。
技术介绍
这一部分中描述的方法可以被实行,但并不一定是先前已被设计或实行了的方法。因此,除非在这里另行指出,否则这一部分中描述的方法不是本申请的权利要求的现有技术,并且也并不因为被包括在这一部分中而被承认是现有技术。对于商家和顾客等来说,网络已经成为了一种很重要的工具,他们中的很多人现在都依赖于诸如邮件服务器、Web站点和内容服务器等网络资源的持续可用性。随着对网络的使用增加,保护网络不受恶意实体的干扰变得越来越重要。例如,拒绝服务(“DoS”)攻击可能使合法用户不能访问网络服务,并且已经被成功地用来干扰对诸如Yahoo!和CNN等因特网站点的合法用户访问。数据注入攻击可能导致DoS或其他负面影响。一种类型的数据注入攻击利用如在因特网工程任务组(IETF)请求注解(RFC)793中定义的作为因特网的基本协议之一的传输控制协议(“TCP”)的基本设计。在数据注入攻击中,攻击者猜测有效TCP连接的参数值,然后发送包含恶意或虚假数据净荷的虚假段。如果接收者将这些段传递给应用,则当应用处理或执行这些数据净荷时可能会出现故障。遵从RFC 793并且充当数据接收者的一种典型的TCP实现在接收到任何丢失段之前,在重组缓冲区中维护无序数据。该接收者针对被无序接收的每个段发送确认(“ACK”)消息,指示最近的有效顺序号。发送者在重传缓冲区中保持未被确认的段。这一处理使得发送者可迅速地重传在传送中丢失的段,因为这些段未被确认。一种TCP数据注入攻击利用上述TCP实现机制,所述机制试图在无序到达并且需要被重组为正确顺序的段被传递给TCP以上的逻辑层的应用之前管理这些段。边界网关协议(BGP)、超文本传输协议(HTTP)、一些语音协议、多协议标签交换(MPLS)和使用TCP连接的其他协议是这些攻击的目标。后果可能是很严重的。例如,当路由器的BGP会话被关闭相关的TCP连接干扰时,路由器将丢弃其创建的所有BGP路由,基本上导致BGP处理的故障。因此,BGP处理必须将自身与网络中的对等路由器重新同步,在重新同步期间,故障路由器不能转发任何流量。此外,数据注入攻击可能导致向上游处理提供恶意命令、不必要地填充重组缓冲区、其他高层应用的误操作、发起“ACK战争”,等等。因此,本领域的研究人员正致力于研究在不从根本上改变如RFC 793中规定的TCP的操作的情况下挫败TCP数据注入攻击的方法。成功的攻击必须注入携带用于源端口、目的地端口的正确值的TCP段;对于顺序号和ACK号来说,一个范围内的值是允许的。这些值的允许范围很大,因此发动涉及顺序地检查每个参数的所有可能值的强力攻击似乎是不可能的。但是,在大多数TCP实现中,选择有效值的任务较为简单,因为在RFC 793中存在某些漏洞。这些漏洞在遵从RFC 793的实现中产生了安全弱点。例如,将伪随机32位值指定为新TCP连接的初始顺序号(ISN)似乎防止了攻击者以任何可行的方式猜测正确的顺序号,因为潜在的正确值的数量是232或约40亿个值。但是,即使段的顺序号不与下一预期顺序号严格匹配,如果段的顺序号落在可接受值的一个窗口或范围内,则遵从RFC 793的传统TCP实现也将接受这个段。所述窗口或范围的大小一般与重组缓冲区的字节数相同,并且被用来补偿段可能丢失的可能性。在一些TCP实现中,允许的顺序值的范围可以是16,384、65,535,或更大。一个后果是即使当真随机或伪随机ISN被使用时,攻击者也不需要正确地生成顺序号的所有32位以提供接收节点将接受的号码。如果允许的顺序值的范围足够大,则攻击者在可行的时间中通过随机或强力选择而猜到正确的顺序值的机会就大大增加。接收节点建立的窗口越大,黑客就越容易实施攻击。此外,大多数实现将较小范围的值用于初始端口号,并简单地对每个新连接增加端口号。因此,攻击者较容易使用普通的计算资源猜到被两个端点用于合法TCP连接的端口值。还出现了另一个弱点,因为大多数TCP实现不测试ACK值是否等于预期的ACK值,甚至也不测试ACK值是否落在允许的ACK值的范围内。相反,大多数实现将接受携带大于先前接收的ACK值的ACK值的任何段,只要顺序号在允许范围内。RFC 793将ACK值定义为在从1到232这个范围内的无符号整数。因此,猜到允许的顺序号的攻击者可通过仅尝试两个ACK值(1或232-1,其中一个必定被接受)就能成功地进行数据注入攻击。上述危害的结果是在大多数实现中,攻击者可在理论上在(232/窗口大小/2)个段或大约30,000个段中将数据注入连接。因此,即使使用传统的计算设备也能较快地进行强力攻击。Mitesh Dalal等人于2004年1月9日提交的题为“Preventing NetworkReset Denial of Service Attacks”的共同未决申请No.10/755,146(律师卷号50325-0868)中描述了用于防止网络DoS复位攻击的方法。Pritam Shah等人于2003年8月14日提交的题为“Detecting network denial of serviceattacks”并被转让给本受让人的共同未决申请No.10/641,494中提供了用于处理被称为SYN-RST攻击的类似攻击的方法。Shah等人的方法适合于中间路由器而不是TCP端点设备,但是并没有完全解决本公开中描述的所有问题。附图说明在附图中以示例而非限制的方式示出了本专利技术,在附图中,相似的标号指代相似的元件,其中图1是示出了用于施行TCP数据注入攻击的一种技术的消息流示意图; 图2是示出了用于在数据段到达时将其丢弃的方法的流程图;图3是示出了基于重叠而从重组缓冲区删除虚假数据段的方法的流程图;图4是示出了图3的操作示例的框图;图5A是示出了由数据发送者执行的用于使用复制ACK消息作为触发来从重组缓冲区删除虚假数据段的方法的流程图;图5B是示出了在由数据接收者执行的用于使用复制ACK消息作为触发来从重组缓冲区删除虚假数据段的方法中的步骤的流程图;图5C是示出了图5A的操作示例的消息流示意图;图5D是示出了图5C的示例中的其他步骤的消息流示意图;图6是示出了用于基于对重组间隙的分析来从重组缓冲区删除虚假数据段的方法的流程图;图7是示出了可在其上实现实施例的计算机系统的框图。具体实施例方式描述了用于防止网络数据注入攻击的方法和装置。在以下描述中,为了说明的目的列举了很多具体细节,以提供对本专利技术的全面理解。但是本领域的技术人员应当清楚,本专利技术可在没有这些具体细节的情况下实施。在其他情形下,公知的结构和设备以框图的形式示出,以避免不必要地模糊本专利技术。这里根据以下大纲描述实施例1.0概述2.0用于防止网络数据注入攻击的方法2.1用于在到达时丢弃数据段的方法2.2用于基于重叠而从重组缓冲区删除虚假数据段的方法2.3用于使用复制ACK消息作为触发来从重组缓冲区删除虚假数据段的方法2.4用于基于对重组间隙的分析来从重组缓冲区删除虚假数据段的方法 3.0实现机制——硬件概述4.0扩展和替换1.0概述仅作为简介,并且不限制所附权利要求的范围,本专利技术满足了在
技术介绍
中提到的需要以及将从以本文档来自技高网
...

【技术保护点】
一种用于防止网络上的攻击的方法,其中所述攻击包括将虚假传输控制协议(TCP)段注入发送者和接收者之间的TCP连接,所述方法包括由计算机实现的以下步骤:接收复制TCPACK消息;当由接收者维护的TCP重传缓冲区为空时,使假 复制ACK计数器递增;当假复制ACK计数器等于指定的击发因子时,发送提供正确的顺序值和ACK值的纠正ACK消息。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:阿纳恩萨拉迈阿兰德尔斯图尔特彼得李帕特里克梅翰
申请(专利权)人:思科技术公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利