TCP与IP协议的相互作用

16TCPIP协议的相互作用

16.1、基于TCPtraceroute系统。它不需要维护任何目的端的状态,通常通过发送一个不断递增TTL值的探针包来实现。

有些traceroute使用ICMP“回环请求”消息作为探针包来实现。而其他则使用UDP包或TCPSYN报文作为探针。

在许多情况下,无状态的traceroute工具在通过状态丰富的设备(如网络地址转换NAT或防火墙)时,可能会被阻止,而不能起作用。

为了越过这些限制,黑客需要与目的系统建立一个连接,并在这个连接上发送TCP报文,同时从0开始递增IPTTL值。由于ICMP的错误消息不会被任何中间系统阻止,黑客可以利用这种技术来获取前面描述的传统观traceroute工具不能获得的状态丰富设备的网络拓扑。

NATs以及其他中间件通过覆盖它们发送到网络的包中的TTL值来阻止这种网络绘制技术。比如,它们可以将所有发往网络的包中的TTL值为都置位128.我们强烈建议不要就爱那个TTL值修改为255或其他相近的大值,因为这些值允许黑客越过RFC5087中描述的通用TTL安全机制(GTSM)的保护。[Gontand Srisuresh, 2008]中讨论了NATs的安全实现,并提出了减轻这个或其他问题的方法。

16.2、通过分片IP传输注入TCP数据进行“致盲”

正如在11.2节中讨论的那样,TCP数据注入攻击,通常需要黑客猜出或知道与目标TCP连接相关的一些参数,如连接id{源地址,源端口,目的地址,目的端口}TCP序列号、TCP确认号。如果这些值采用本文档提供的建议进行混淆,黑客利用通用的方法,对一个TCP连接成功进行数据注入攻击的成功率将变得很低。

正如在本文档中讨论的那样,将包含在不同的TCP头字段中的值随机化并不是使用加密方式保护TCP连接的替代方法,如IPsec

然而,[Zalewski,2003b]中描述了一种不需要黑客掌握前述TCP连接参数,而进行TCP数据注入攻击的方法。因而,使用这种方法,可以比传统数据注入攻击方法更少的工作来实现成功攻击。

这种攻击方法按如下方式执行。当一个系统使用TCP发送信息到远端时,发生了包分片,第一个分包中通常会包含完整的TCP头部,同时也包含了IP头部,TCP头部包含了所有黑客进行成功执行数据注入攻击需要获取的所有信息。如果黑客能够伪造除了第一个分片外的其他所有分片,那么他伪造的分片就能与合法的第一个分片重组起来,因而,它可以从繁重的获取该TCP连接的工作中解脱出来。

为了能利用这种攻击进行一次成功的攻击,黑客应能获取到目的TCP连接的IP地址、用于指定目标的IP标号的值和目标包的TCP校验和。在许多场景下,看上去获取这些值十分困难,但由于对TCPIP协议实现中不注重安全的考虑,这些值可能是被猜出来。比如,发送系统使用可以被预计的IP标号值,黑恶可以通过简单的暴力破解,对TCP校验和字段使用每个可能的组合进行试探。在很多特定的方案中,黑客能获取更多在目标TCP连接上传输的数据信息,黑客可以通过这些信息推测目的包的校验和。比如,如果TCP的两端都使用了可以被推测的TCP序列号和IP标号字段,并且黑客获取到了在这个TCP间传输的数据,他就可以通过仔细的设计IP分片包和IP负载包,使得重组后的TCP报文与第一个IP分片中的TCP报文中的校验和匹配。

正如[CPNI,2008]4.1节中讨论的那样,IP分片提供了对一个IP进行各种攻击的方法,因此,我们不建议终端用户依赖IP分片,并建议如15.7.3节和RFC4821中描描述的实现路径MTU发现的机制。我们也不建议使用[CPNI,2008]3.5.2节描述的方式实现IP标号的随机化,因为IP标号随机化后并不能减轻这种攻击,它不会增加黑客利用它成功进行攻击的工作量。

16.3、广播和多播IP地址

TCP的连接状态每次只能在两个端点间保持,因而广播和多播IP地址不能用于建立TCP的连接,[CPNI,2008]的第4.3节提供了对不应用于面向连接协议(如TCP)的特定IP地址段。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值