深入分析利用反弹技术进行DDoS攻击
深入分析利用反弹技术进行DDoS攻击
攻击者可以通过反弹技术使我们对DDOS攻击更难以防御——利用反弹服务器反弹DDOS的洪水包,也就是说,通过发送大量的欺骗请求数据包(来源地址为victim,受害服务器,或目标服务器)给Internet上大量的服务器群,而这些服务器群收到请求后将发送大量的应答包给victim。结果是原来用于攻击的洪水数据流被大量的服务器所稀释,并最终在受害者处汇集为洪水,使受害者更难以隔离攻击洪水流,并且更难以用Traceback 跟踪技术去找到洪水流的来源。
在分布式DOS攻击(DDOS)中,攻击者事先入侵了大量服务器,并在这些服务器上植入了DDOS攻击程序,然后结合这些被入侵的服务器的网络传输力量发动攻击。利用大量的服务器发动攻击不仅增加了攻击的力度,而且更难于防范。
以往DDOS攻击的结构:一个主机,主服务器(Master),作用是发送控制消息给事先入侵并已植入DDOS程序的从服务器群(Slave),控制从服务器群发起对目标服务器的攻击。从服务器群将产生高容量的源地址为伪造的或随机的网络数据流,并把这些数据流发送给目标服务器。因为数据流的源地址是伪造的,增加了追查的难度。
利用成百上千的从服务器不仅可以另追查的难度加大(因为难以识别大量不同的来源,需要查询大量的路由器),而且极大的阻碍了当成功追查后所需采取的行动(因为这要与大量的网络管理员联系,安装大量的网络过滤器)。
而今考虑周密的攻击者可以通过利用反弹服务器(Reflector),更好的组织他们的攻击。反弹服务器是指,当收到一个请求数据报后就会产生一个回应数据报的主机。例如,所有的WEB服务器,DNS服务器,及路由器都是反弹服务器,因为他们会对SYN报文或其他TCP报文回应SYN
ACKs或RST报文,以及对一些IP报文回应ICMP数据报超时或目的地不可达消息的数据报。而攻击者可以利用这些回应的数据报对目标服务器发动DDOS攻击。
攻击者首先锁定大量的可以做为反弹服务器的服务器群,比如说100万台(这并不是件很难的工作,因为在Internet上光是WEB服务器就不止这么多的,更何况还有更多其他的机器可以作为反弹服务器)。然后攻击者们集中事先搞定的从服务器群,向已锁定的反弹服务器群发送大量的欺骗请求数据包(来源地址为victim,受害服务器或目标服务器)。反弹服务器将向受害服务器发送回应数据报。结果是:到达受害服务器的洪水数据报不是几百个,几千个的来源,而是上百万个来源,来源如此分散的洪水流量将堵塞任何其他的企图对受害服务器的连接。
受害服务器不需要追查攻击的来源,因为所有攻击数据报的源IP都是真实的,都是反弹服务器群的IP。而另一方面,反弹服务器的管理人员则难以追查到从服务器的位置,因为他所收到的数据报都是伪造的(源IP为受害服务器的IP)。
原则上,我们可以在反弹服务器上利用追踪技术来发现从服务器的的位置。但是,反弹服务器上发送数据报的流量远小于从服务器发送的流量。每一个从服务器可以把它发送的网络流量分散到所有或者一大部分反弹服务器。例如:如果这里有Nr个反弹服务器,Ns个从服务器,每个从服务器发送的网络流量为F,那么每一个反弹服务器将产生的网络流量为,而Nr远大于Ns。所以,服务器根据网络流量来自动检测是否是DDOS攻击源的这种机制将不起作用。
值得注意的是,不象以往DDOS攻击,利用反弹技术,攻击者不需要把服务器做为网络流量的放大器(发送比攻击者发送的更大容量的网络数据)。他们甚至可以使洪水流量变弱,最终才在目标服务器回合为大容量的洪水。这样的机制让攻击者可以利用不同网络结构机制的服务器作为反弹服务器,使其更容易找到足够数量的反弹服务器,用以发起攻击。
我们的分析显示,有三种特别具威胁性的反弹服务器是:DNS服务器、Gnutella服务器、和基于TCP-IP的服务器(特别是WEB 服务器),基于TCP的实现将遭受可预测初始序列号的威胁。
用防火墙防止DDOS分布式拒绝服务攻击
DoS(Denial of Service拒绝服务)和DDoS(Distributed Denial of Service分布式拒绝服务)攻击是大型网站和网络服务器的安全威胁之一。2000年2月,Yahoo、亚马逊、CNN被攻击等事例,曾被刻在重大安全事件的历史中。SYN Flood由于其攻击效果好,已经成为目前最流行的DoS和DDoS攻击手段。
SYN Flood利用TCP协议缺陷,发送了大量伪造的TCP连接请求,使得被攻击方资源耗尽,无法及时回应或处理正常的服务请求。一个正常的TCP连接需要三次握手,首先客户端发送一个包含SYN标志的数据包,其后服务器返回一个SYN/ACK的应答包,表示客户端的请求被接受,最后客户端再返回一个确认包ACK,这样才完成TCP连接。在服务器端发送应答包后,如果客户端不发出确认,服务器会等待到超时,期间这些半连接状态都保存在一个空间有限的缓存队列中;如果大量的SYN包发到服务器端后没有应答,就会使服务器端的TCP资源迅速耗尽,导致正常的连接不能进入,甚至会导致服务器的系统崩溃。
防火墙通常用于保护内部网络不受外部网络的非授权访问,它位于客户端和服务器之间,因此利用防火墙来阻止DoS攻击能有效地保护内部的服务器。针对SYN Flood,防火墙通常有三种防护方式:SYN网关、被动式SYN网关和SYN中继。
SYN网关 防火墙收到客户端的SYN包时,直接转发给服务器;防火墙收到服务器的SYN/ACK包后,一方面将SYN/ACK包转发给客户端,另一方面以客户端的名义给服务器回送一个ACK包,完成TCP的三次握手,让服务器端由半连接状态进入连接状态。当客户端真正的ACK包到达时,有数据则转发给服务器,否则丢弃该包。由于服务器能承受连接状态要比半连接状态高得多,所以这种方法能有效地减轻对服务器的攻击。
被动式SYN网关 设置防火墙的SYN请求超时参数,让它远小于服务器的超时期限。防火墙负责转发客户端发往服务器的SYN包,服务器发往客户端的SYN/ACK包、以及客户端发往服务器的ACK包。这样,如果客户端在防火墙计时器到期时还没发送ACK包,防火墙则往服务器发送RST包,以使服务器从队列中删去该半连接。由于防火墙的超时参数远小于服务器的超时期限,因此这样能有效防止SYN Flood攻击。
SYN中继 SYN中继防火墙在收到客户端的SYN包后,并不向服务器转发而是记录该状态信息然后主动给客户端回送SYN/ACK包,如果收到客户端的ACK包,表明是正常访问,由防火墙向服务器发送SYN包并完成三次握手。这样由防火墙做为代理来实现客户端和服务器端的连接,可以完全过滤不可用连接发往服务器。











没有评论:
发表评论