扫一扫
关注微信公众号

剖析“拒绝服务“攻击-SYN拒绝服务
2007-10-11   网络

一、洪水——大自然对人类的报复



  每一年,自然界都要用各种方式去报复人们对它做的一切,例如洪水。



  每一年,人们都要为洪水后满地的狼籍和可能造成的人员伤亡和财产损失而发愁。



  为了抵抗洪水,人们砍伐树木挖采岩石建造更高的堤坝;为了破坏这些堤坝,大自然发起更猛烈的洪水冲垮这些防护措施。



  在大自然与人类抗衡的同时,网络上也有人与人之间的抗衡。



  每一年,有些人总要不断试验各种令某些网站长时间无法访问的攻击方法。



  每一年,投资者都要因为这些网站被恶意停止所造成的经济损失头痛。



  为了抵抗这些人的攻击,技术人员研究各种方法让这些攻击造成的损失降低;为了各种目的,攻击者们研究更多的攻击方法让网站再次瘫痪。



  这种攻击被称为“Denial of Service(DoS)”,臭名昭著的“拒绝服务”攻击。



  它通常使用不只一台机器进行攻击,攻击者能同时控制这些机器,这种结构就是“Distributed”,分布式。所以,我们要讨论的拒绝服务,默认都是指“Distributed Denial of Service(DDoS)”,分布式拒绝服务。



  二、面对洪水……



  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服务之类。

热词搜索:

上一篇:如何限制和关闭无用的端口
下一篇:如何阻止用户浏览使用外部代理

分享到: 收藏