深入分析利用反弹技术进行DDoS攻击
2008-09-21 赛迪网
攻击者可以通过反弹技术使我们对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的实现将遭受可预测初始序列号的威胁。