web安全之分布式拒绝攻击-ddos与防范方法

一、从DoS到DDoS 


    拒绝服务(Denial of Service,DoS)由来已久。自从有了Internet,就有了拒绝服务式攻击方法。由于过去没有大型网站或机构受到过这种攻击,其劣性并不突出。直到2000年初,Yahoo!、eBay及Amazon等遭其暗算,它才露出庐山真面目。 
    DoS攻击的方法是,恶意用户会向服务器发送多个连接请求,使其呈满负载状态,并且将所有请求的返回地址进行伪造。这样,在服务器企图将认证结构返回给用户时,它将无法找到这些用户。此时,服务器只好等待。在服务器关闭连接后,攻击者又会发送新的一批虚假请求,重复上一次过程,直到服务器因过载而拒绝提供服务。这些攻击事件并没有入侵网站,也没有篡改或是破坏资料,只是利用程序在瞬间产生大量的网络封包,让对方的网络及主机瘫痪,使正常使用者无法获得主机及时的服务。 
    然而,年初攻击Yahoo!的元凶还不是简单的DoS,它区别于DoS的“绝妙”之处在于: 动员了大量“无辜”的计算机向目标共同发起进攻,采用了分布式拒绝服务(Distributed Denial of Service,DDoS)攻击手段。 
    DDoS把DoS又向前发展了一步,DDoS的行为更为自动化,它可以方便地协调从多台计算机上启动的进程,让一股DoS洪流冲击网络,并使网络因过载而崩溃。确切地讲,DDoS攻击是指在不同的高带宽主机上安装大量的DoS服务程序,它们等待来自中央客户端的命令,中央客户端随后通知全体受控服务程序,并批示它们对一个特定目标发送尽可能多的网络访问请求。作为攻击者,必须通过telnet连接到他想利用的每一台远程主机上,并以用户身份登录,然后手工输入命令,启动每一台主机向攻击目标发送海量信息流。 


二、DoS的攻击方法 


    对DoS而言,其攻击方式很多,主要使用的攻击有3种,分别是TCP-SYN flood、UDP flood和ICMP flood。 
    当用户进行一次标准的TCP连接时,会有一个3次握手过程。首先是请求服务方发送一个SYN消息,服务方收到SYN后,会向请求方回送一个SYN-ACK表示确认,当请求方收到SYN-ACK后,再次向服务方发送一个ACK消息,这样,一次TCP连接建立成功。但是TCP-SYN flood在实现过程中只进行前2个步骤:当服务方收到请求方的SYN-ACK确认消息后,请求方由于采用源地址欺骗等手段使得服务方收不到ACK回应,于是,服务方会在一定时间处于等待接收请求方ACK消息的状态。对于某台服务器来说,可用的TCP连接是有限的,如果恶意攻击方快速连续地发送此类连接请求,该服务器可用的TCP连接队列将很快被阻塞,系统可用资源急剧减少,网络可用带宽迅速缩小,长此下去,网络将无法向用户提供正常的服务。 
    由于UDP(用户数据包协议)在网络中的应用比较广泛,基于UDP攻击种类也较多。如今在Internet上提供WWW和Mail等服务设备通常是使用Unix的服务器,它们默认一些被恶意利用的UDP服务,如echo和chargen服务,它会显示接收到的每一个数据包,而原本作为测试功能的chargen服务会在收到每一个数据包时随机反馈一些字符,如果恶意攻击者将这2个UDP服务互指,则网络可用带宽将很快耗尽。 


三、DDoS的攻击方法 


    目前,我们知道的对网络进行DDoS攻击所使用的工具有:Trinoo、Tribe Flood Network(TFN)、TFN2k和Stacheldraht等。它们的攻击思路基本相近。 
    1.Trinoo:它是基于UDP flood的攻击软件,它向被攻击目标主机的随机端口发出全零的4字节UDP包,在处理这些超出其处理能力垃圾数据包的过程中,被攻击主机的网络性能不断下降,直到不能提供正常服务,乃至崩溃。它对IP地址不做假,此攻击方法用得不多。 
    2.TFN:它是利用ICMP给代理服务器下命令,其来源可以做假。它可以发动SYN flood、UDP flood、ICMP flood及Smurf(利用多台服务器发出海量数据包,实施DoS攻击)等攻击。TFN的升级版TFN2k的特点是:对命令数据包加密、更难查询命令内容、命令来源可以做假,还有一个后门控制代理服务器。 
    3.Stacheldraht:对命令来源做假,而且可以防范一些路由器用RFC2267过滤。若检查出有过滤现象,它将只做假IP地址最后8位,从而让用户无法了解到底是哪几个网段的哪台机器被攻击。此外,它还具有自动更新功能,可随软件的更新而自动更新。  


四、怎样对付正在进行的攻击 


    如果用户正在遭受攻击,他所能做的抵御工作非常有限。因为在原本没有准备好的情况下有大流量的灾难性攻击冲向用户,很可能用户在还没回过神之际,网络已经瘫痪。但是,用户还是可以抓住机会寻求一线希望的。 
    首先,检查攻击来源,通常黑客会通过很多假的IP地址发起攻击,此时,用户若能够分辨出哪些是真IP地址,哪些是假IP地址,然后了解这些IP来自哪些网段,再找网段管理员把机器关掉,即可消除攻击。 
    其次,找出攻击者所经过的路由,把攻击屏蔽掉。比如黑客发射SNP包,用户可把此包过滤掉。若黑客从某些端口发动攻击,用户可把这些端口屏蔽掉,以狙击入侵。 
    最后一种比较折衷的方法是在路由器上滤掉ICMP(Internet Control Message Protocol)和UDP。ICMP用于提交错误和改变控制信息,常用来判断网络的连通性。 


五、如何事先预防攻击  


1.用足够的机器承受黑客攻击。这是一种较为理想的应对策略

2.充分利用网络设备保护网络资源。所谓网络设备是指路由器、防火墙等负载均衡设备,它们可将网络有效地保护起来。 
3.使用InexpressExpress Forwarding过滤不必要的服务和端口,即在路由器上过滤假IP 
4.使用Unicast Reverse Path Forwarding检查访问者的来源。它通过反向路由表查询的方法检查访问者的IP地址是否是真,如果是假的,它将予以屏蔽。

5.过滤所有RFC1918 IP地址。RFC1918 IP地址是内部网的IP地址,像10.0.0.0192.168.0.0172.16.0.0,它们不是某个网段的固定IP地址,而是Internet内部保留的区域性IP地址,应该把它们过滤掉。 
6.限制SYN/ICMP流量。用户应在路由器上配置SYN/ICMP的最大流量来限制 SYN/ICMP 封包所能占有的最高频宽,这样,当出现大量的超过所限定的SYN/ICMP流量时,说明不是正常的网络访问,而是有黑客入侵。 


DDoS的防范

    到目前为止,进行DDoS攻击的防御还是比较困难的。首先,这种攻击的特点是它利用了TCP/IP协议的漏洞,除非你不用TCP/IP,才有可能完全抵御住DDoS攻击。一位资深的安全专家给了个形象的比喻:DDoS就好象有1,000个人同时给你家里打电话,这时候你的朋友还打得进来吗? 

企业网管理员

     网管员做为一个企业内部网的管理者,往往也是安全员、守护神。在他维护的网络中有一些服务器需要向外提供WWW服务,因而不可避免地成为DDoS的攻击目标,他该如何做呢?可以从主机与网络设备两个角度去考虑。

主机上的设置
几乎所有的主机平台都有抵御DoS的设置,总结一下,基本的有几种:

· 关闭不必要的服务

· 限制同时打开的Syn半连接数目

· 缩短Syn半连接的time out 时间

· 及时更新系统补丁

网络设备上的设置
企业网的网络设备可以从防火墙与路由器上考虑。这两个设备是到外界的接口设备,在进行防DDoS设置的同时,要注意一下这是以多大的效率牺牲为代价的,对你来说是否值得。

.防火墙

· 禁止对主机的非开放服务的访问

· 限制同时打开的SYN最大连接数

· 限制特定IP地址的访问

· 启用防火墙的防DDoS的属性

· 严格限制对外开放的服务器的向外访问

第五项主要是防止自己的服务器被当做工具去害人。

.路由器
Cisco路由器为例

· Cisco Express Forwarding(CEF)

· 使用 unicast reverse-path

· 访问控制列表(ACL)过滤

· 设置SYN数据包流量速率

· 升级版本过低的ISO

· 为路由器建立log server

ISP / ICP管理员

     ISP / ICP为很多中小型企业提供了各种规模的主机托管业务,所以在防DDoS时,除了与企业网管理员一样的手段外,还要特别注意自己管理范围内的客户托管主机不要成为傀儡机。

骨干网络运营商

      在2000年yahoo等知名网站被攻击后,美国的网络安全研究机构提出了骨干运营商联手来解决DDoS攻击的方案。就是每家运营商在自己的出口路由器上进行源IP地址的验证,如果在自己的路由表中没有到这个数据包源IP的路由,就丢掉这个包。这种方法可以阻止黑客利用伪造的源IP来进行DDoS攻击。不过同样,这样做会降低路由器的效率,这也是骨干运营商非常关注的问题,所以这种做法真正采用起来还很困难。

 

转载自:http://www.bingdun.com/ddostech/601.htm

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值