Treason uncloaked!

一台Centos的主机,最近dmesg了一下,出现如下报错。

TCP: Treason uncloaked! Peer 196.29.40.33:11810/80 shrinks window 2455808217:2455808218. Repaired.

用11810端口连接Http收缩窗口,原先为2455808218 bit 现在为2455808217 bit 。(?)
类似的报错我是第一次看到。奇怪的是196.29.40.33这个IP竟然是来自于南非的,怀疑是某种利用TCP漏洞的攻击方式。呵呵但让我想到的却是曼德拉,想到了Ubuntu。。。。

既然是dmesg的报错,报错代码应该可以在kernel的代码里找到,find了一下,找到这样的一段

net/ipv4/tcp_timer.c
….
if (net_ratelimit()) {
struct inet_sock *inet = inet_sk(sk);
printk(KERN_DEBUG “TCP: Treason uncloaked! Peer %u.%u.%u.%u:%u/%u shrinks window %u:%u. Repaired.
“,
NIPQUAD(inet->daddr), htons(inet->dport),
inet->num, tp->snd_una, tp->snd_nxt);
}
….

报错来自 net_ratelimit()函数的”true”返回,从字面上看,应该是“网络速度限制”之类的毛病,感觉有点挨不上。有国外的网友分析为一类”tar-pit” ——使用歧变的数据封包引发内存溢出。

个人综合了一下,感觉上原理就是:使用了存在故障的网络设备,或者根本就是故意设置了一个非常小的初始数据窗口大小并禁止其移动,如果对方机器有更多的请求时才会发送一个确认信息(ACK)。从表面上看是速度受到了限制,实际上正是这个ACK有一定概率会被对方识别为歧变的数据包而导致内核的TCP模块溢出。

仅代表个人理解,希望各位发表高见!

anyShare分享到:
          

  1. #1 by kyle on 2009年11月21日 - 20:59

    我这里也碰到了,但是不知道该怎么解决,难道要重启一下服务器^_^

  2. #2 by Litrin on 2009年11月22日 - 14:48

    一般情况下不与理会就可以。
    只要保证你的Kenerl打了补丁,不会出问题就OK。如果实在看不下去可以考虑使用硬防,几乎所有的硬防产品可以阻止这一类的畸变包。
    我的处理方式,仅供参考。

  3. #3 by greattiny on 2011年04月1日 - 18:42

    我也遇到这个问题。不过目前发现的问题是:服务器反应变慢,ping的话延迟特别大好几千ms.我只要 service network restart 就恢复正常了。这种情况是因为攻击引起的?

  4. #4 by Litrin on 2011年04月1日 - 18:57

    出现这种状况有两种可能,我认为您的情况属于带宽耗光。由于响应数过多,系统变慢。重起网络的同时也切断了连接,负载自然下降。
    如果要确认是受到了攻击,请排除这种可能。

(will not be published)
*