1.洪水以外的东西——被滥用的SYN拒绝服务(Synchronize Denial of Service)
当一个地区即将发生洪水(或者已经发生)的时候,当地居民的表现很少有镇定的:东奔西跑的、收拾财物的、不知所措的……整个城镇乱成一锅粥,造成的后果就是街道交通混乱,谁也跑不了。
这个问题到了网络上,就变成了一堆数据包只能在服务器外面乱撞而不入。
为什么会这样?因为攻击者使用了SYN攻击。
要明白SYN攻击的原理,要从连接建立的过程开始说起。从我们输入一个网址到我们能看到这个网页,机器在非常短的时间内为我们做了三件重要的事情:
1.机器发送一个带有“ SYN”(同步)标志的数据包给服务器,请求连接;
2.服务器返回一个带有SYN标志和ACK(确认)标志数据包给机器;
3.机器也返回一个ACK确认标志数据包给服务器,数据传输建立。
这三步就叫做“三次握手”。
那么所谓的SYN攻击是什么呢?让我们再看第二步,服务器返回数据后,并不会跑开,而是等待对方再次返回确认,问题就出在这里。如果一台计算机发送 SYN数据包后由于意外断开了网络,服务器返回的ACK就得不到回应,而规范标准规定它必须“不见不散”,所以服务器就痴痴的等到夕阳下山,这期间内它拒绝其他机器的连接请求。于是在其它机器看来,它们开不了某个服务器的页面了。幸好在服务器的时间里,“夕阳下山”不过一瞬间,所以偶尔意外的一两台机器不回答它也很少影响大局。可是对于恶意攻击者来说,这不是问题——他们使用一些特殊工具大量产生这种导致服务器等待的虚假IP地址的SYN数据包,由于这个 IP地址根本没有机器存在,自然不会有任何回应,所以服务器只有傻乎乎的为这些数据包做了个列表,然后一个一个等下去!这些等待花去的时间累加起来就变成了影响正常数据传输的原因,因为攻击者不停发送SYN数据包,服务器就无限的等下去,其他数据包就进不去服务器了,于是,一切都完了。这是最常见最滥用的拒绝服务模式,现成的攻击工具也很多,例如流行的Lion SYN Flood、xdos、独裁者等,这些工具几乎不需要什么高深知识就能用,因此SYN成为服务器和网络管理员最恨最怕的攻击。
其实SYN攻击的出现与系统自身设计的疏忽有关,首先,SYN是利用了TCP协议规范的疏忽;其次,是系统做的后台!*nix和Win2000/XP的网络架构允许用户通过编程手动设置IP头部,包括源IP、目标IP等,这是产生虚假SYN包的关键。Win9x/Me的网络架构不允许用户这样做,因此别指望 Win9x/Me下使用这些工具能对服务器构成威胁了。
目前依然没有任何有效的软措施能抵挡SYN攻击,唯一的办法只有使用硬件防火墙,它从物理线路上直接过滤掉虚假的SYN数据包,但是价格昂贵,很多人只能痛心的看着他们的服务器被SYN数据包折磨得CPU持久不下100%……
有人说了,“难怪我的机器经常慢,原来有人SYN我!”等等等等,先听我说完。SYN攻击因为数据包很小,不能造成阻塞网络的危害,对没有开任何TCP服务的用户是不起作用的,即使有人正在SYN攻击你,你也察觉不到异常情况,除非你开了WEB服务之类。
记得有句话怎么说来着?慌乱的人群比灾难本身更可怕。
当一个地区即将发生洪水(或者已经发生)的时候,当地居民的表现很少有镇定的:东奔西跑的、收拾财物的、不知所措的……整个城镇乱成一锅粥,造成的后果就是街道交通混乱,谁也跑不了。
这个问题到了网络上,就变成了一堆数据包只能在服务器外面乱撞而不入。
为什么会这样?因为攻击者使用了SYN攻击。
要明白SYN攻击的原理,要从连接建立的过程开始说起。从我们输入一个网址到我们能看到这个网页,机器在非常短的时间内为我们做了三件重要的事情:
1.机器发送一个带有“ SYN”(同步)标志的数据包给服务器,请求连接;
2.服务器返回一个带有SYN标志和ACK(确认)标志数据包给机器;
3.机器也返回一个ACK确认标志数据包给服务器,数据传输建立。
这三步就叫做“三次握手”。
那么所谓的SYN攻击是什么呢?让我们再看第二步,服务器返回数据后,并不会跑开,而是等待对方再次返回确认,问题就出在这里。如果一台计算机发送 SYN数据包后由于意外断开了网络,服务器返回的ACK就得不到回应,而规范标准规定它必须“不见不散”,所以服务器就痴痴的等到夕阳下山,这期间内它拒绝其他机器的连接请求。于是在其它机器看来,它们开不了某个服务器的页面了。幸好在服务器的时间里,“夕阳下山”不过一瞬间,所以偶尔意外的一两台机器不回答它也很少影响大局。可是对于恶意攻击者来说,这不是问题——他们使用一些特殊工具大量产生这种导致服务器等待的虚假IP地址的SYN数据包,由于这个 IP地址根本没有机器存在,自然不会有任何回应,所以服务器只有傻乎乎的为这些数据包做了个列表,然后一个一个等下去!这些等待花去的时间累加起来就变成了影响正常数据传输的原因,因为攻击者不停发送SYN数据包,服务器就无限的等下去,其他数据包就进不去服务器了,于是,一切都完了。这是最常见最滥用的拒绝服务模式,现成的攻击工具也很多,例如流行的Lion SYN Flood、xdos、独裁者等,这些工具几乎不需要什么高深知识就能用,因此SYN成为服务器和网络管理员最恨最怕的攻击。
其实SYN攻击的出现与系统自身设计的疏忽有关,首先,SYN是利用了TCP协议规范的疏忽;其次,是系统做的后台!*nix和Win2000/XP的网络架构允许用户通过编程手动设置IP头部,包括源IP、目标IP等,这是产生虚假SYN包的关键。Win9x/Me的网络架构不允许用户这样做,因此别指望 Win9x/Me下使用这些工具能对服务器构成威胁了。
目前依然没有任何有效的软措施能抵挡SYN攻击,唯一的办法只有使用硬件防火墙,它从物理线路上直接过滤掉虚假的SYN数据包,但是价格昂贵,很多人只能痛心的看着他们的服务器被SYN数据包折磨得CPU持久不下100%……
有人说了,“难怪我的机器经常慢,原来有人SYN我!”等等等等,先听我说完。SYN攻击因为数据包很小,不能造成阻塞网络的危害,对没有开任何TCP服务的用户是不起作用的,即使有人正在SYN攻击你,你也察觉不到异常情况,除非你开了WEB服务之类。
记得有句话怎么说来着?慌乱的人群比灾难本身更可怕。