窗口内致盲攻击

11、窗口内致盲攻击

最近几年已经提高了对一系列的“致盲”攻击的关注。致盲攻击可以通过伪造位于接收窗内的TCP报文来对TCP进行攻击。

术语“致盲”基于这样一个事实:黑客不需要访问属于被攻击连接的包。

这种攻击的影响范围从连接复位到数据注入。由于这些攻击仍处于社区研究中,它们通常被认为不能被实施。然而,在社区中对增加有效的带宽和使用更大的TCP窗口有更多的关注。随后的子章节将讨论一系列的对TCP的伪造攻击,同时也提出一些能减轻这种影响的对策。

11.1、基于TCP的致盲连接复位攻击

连接复位致盲攻击的目标是:使在两个保持连接的TCP连接两端的TCP被终止。这种攻击产生的破坏等级通常依赖于运行在上层的TCP应用和大量依赖于TCP长连接易受这种攻击的应用。

这种应用的一个有趣的例子是BGP[Rekhteret al, 2006],当一个连接复位时,通常会引起相应的整个路由表被刷新。

有各种不同对TCP连接进行基于连接复位的攻击。[Watson,2004][NISCC,2004]中提高了对通过利用TCP报文的RST标志位进行连接复位攻击的关注。[Ramaiahet al,2008]中指出仔细的制作SYN报文也能进行连接复位攻击。本文档也描述了两个先前没有文档化的进行连接复位攻击的方法:封装在TCP报文前的IP包字段和非法的TCP选项。

11.1.1RST标志

RST标志是向一个TCP端发送的信号:该连接应当关闭。与FIN握手包想法(它是标准的终止TCP连接)。一个RST报文引起连接非正常关闭。

正如RFC793[Postel,1981c]3.4节中描述的那样,所有的通过序列号验证的复位报文都被认为是有效的。如果序列号落在接收窗口中,那么它将被认为是有效的。然而,在SYN-SENT状态中,如果一个确认编号确认了这个SYN报文,表明是由它触发了复位,那么这个RST是有效的。

[Ramaiah et al,2008]中提出了对一种对TCP到攻击地址的的传输路线图进行修改。这种对策是对复位报文的序列号强制绑定一个更严格的有效性验证和一个“挑战性”机制的加入。为了实现这种机制,TCP应遵守如下几条:

如果RST报文的序列号在接收窗口之外,这个报文直接被丢弃,即:没有通过下面公式验证的RST报文直接忽略:

RCV.NXT <=序列号 <RCV.NXT + RCV.WND

如果RST报文的序列号落在接收窗口的左边,接受复位。即:如果如下公式为真,那么这个连接被复位:

序列号== RCV.NXT

如果RST报文通过了第一个校验(即RST报文的序列号在接收窗口中)但没有通过第二个校验(即RST报文的序列号没有在接收窗口的左边)将设置如下的认证报文(“挑战ACK”)进行回应:

<SEQ=SND.NXT><ACK=RCV.NXT><CTL=ACK>

这个确认报文被认为是一个“挑战ACK”,对于一个已经合法触发了RST报文的事件(但由于强加了上述验证而被丢弃了),这个”挑战ACK“将触发一个新的复位报文,该报文将落入接收窗口的左边,因而可以通过上述两个验证,从而复位该连接。

我们建议实现这种对策。但是,我们也注意到这种对策的专利,建议供应商应研究使用它可能引起的专利问题。

[US-CERT,2003a]是一个对防火墙系统的忠告,它指出已经发现了由于没有验证RST报文的TCP序列号的有效性引发的特定复位攻击。显而易见的,所有的TCP(包括这些中间件)应验证在本节中讨论的RST报文的有效性。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值