绿盟科技 何坤
在网络世界里,DDoS是强盗的代名词,它是攻击效果最为“明显”的攻击形式,不同于其它攻击,DDoS攻击的影响范围广、影响程度大。
DDoS攻击已不再是黑客技术的炫耀,它更多出于经济利益、政治因素。
为了方便介绍,暂且将DDoS大致分为三个阶段,每个阶段都有其相应的特点,在这里先简要介绍一下各个阶段的特点,然后进行分析。
早期的拒绝服务攻击以使用DoS工具的居多。现在只要花点时间在网上搜一下,仍然能搜罗出大量的DoS工具,比如阿拉丁攻击器随处可见。工具的泛滥导致了拒绝服务攻击的门槛降低,只要你想,你就可以随便down两个DoS工具随意发起攻击。
这些工具有一个特点:源IP虚假。也就是说,DoS工具只管向服务器狂发包,其余什么都不管。由于源IP虚假,受害者也就无法溯源,反过来让攻击者肆无忌惮。
还有一些DoS单机工具,可以构造一些特殊的畸形报文,让服务器一触即挂,但现在各个地方服务器补丁的管理已经非常到位,网上的这种工具已经没有效果。
上面提到,早期的DoS工具的特点是源IP虚假。而早期的抗拒绝服务设备(也叫清洗设备)就利用了这一点,只要清洗设备能够验证这个源IP是否真实存在,也就可以很轻松的防护住假IP发起的攻击。
也是在这时候,一些新名词出现了:肉鸡、傀儡、僵尸。利用木马技术,黑客可以控制住活跃在网络中的大量主机,也就是肉鸡,然后可以利用他们做很多事情,发起DDoS攻击就是其中之一。
使用肉鸡发起的攻击主要特点是什么呢?源IP是真实的。
现在已经形成单机工具攻击、肉鸡攻击、复杂攻击并存的局面。
先谈复杂攻击,攻击之所以变得复杂,不是攻击者自己想要复杂,他也是受整个大环境的影响。因为受害者也都是被动的,市面上已经有很多抗拒绝服务设备,经常受到DDoS侵扰的受害者已开始使用这类设备,与攻击者对抗。当攻击者发现过去的攻击方式没有效果,必然会寻求另外一种有效的攻击手段。
笔者在近一年来监测到很多起非常有意思、非常有效、非常致命的DDoS攻击,在这里,我们把它叫做“复杂攻击”。
比如,我们去年发现的一种DDoS攻击就很“特别”:源IP都是真实的,这些源向服务器发起的访问也是真实的,只是这些真实流量“去错”了地方。打个比方,这些源IP本来是要去访问www.a.com的,但都“莫名其妙”的来到了www.b.com,造成的后果就是www.b.com的服务器负载增大,甚至无法访问。经过这次事件的处理,笔者与同事分析了这种“攻击”的特点。
(1)这是攻击吗?
站在受害者www.b.com的角度,这属于攻击。因为b只有一台服务器,1秒钟约100个本应到达a的流量就让它不堪重负,已经产生了拒绝服务的效果,所以在b看来,这是攻击;
那么a是攻击者吗?从技术角度来说,不能断定a就是攻击者,完全可能有个第三者c通过篡改DNS,让a的流量去向b,又或者DNS或其他的网络环节出了故障。从我们几次与这种攻击交锋的经验来看,这种“故障”的概率未免高了一点。
(2)不用抓肉鸡,人人皆“肉鸡”
过去发起CC攻击需要拥有大量肉鸡,而再看这种攻击,攻击者不需要自己抓肉鸡了,已经有另一种途径发起类似肉鸡发起的CC攻击,也许哪一天,你在访问某知名服务的时候,就意外的成为了“肉鸡”。
(3)防范难度增大
这种看似攻击又不太像攻击,却能达到很强的攻击效果的行为,让很多网络维护人员防不胜防,即使防住了,想要抓到真正的幕后仍然很难。
这里只介绍笔者遇到的其中一种“复杂攻击”。
DDoS安全防护发展了这么多年,大多现在的清洗设备都已能够直接防御早期的DDoS攻击,也就是虚假源IP攻击,而且都能清洗得很干净。
现在攻击者再用此类攻击的话,可能会先用小流量,如果受害者的攻击者服务器性能弱、带宽小,又没有任何防措施,那很快就能得手,也不用费太多精力。
当攻击者发现小流量没有效果,他会意识到受害者可能有防护设备(或者是防火墙、或者是专业抗DDoS设备),将提升攻击流量(前提是他有带宽资源)。很多人知道,防火墙从防护机制上决定了它是不具备抗DDoS打击能力的,小流量还可,流量一大,受害者的服务器瘫痪之前,防火墙可能已经垮了。这时候,受害者只能要么提高服务器能力、带宽、改IP;要么使用更大性能的专业抗DDoS设备,因为有人已经盯上你了,你别无他法。
前面提到一些攻击者开始以提升攻击流量来达到拒绝服务的效果,这是需要物质基础的,并不是很多人都有这个条件。然而全球范围内的大量肉鸡群,正好可以满足。一台肉鸡带宽有限,但上千、上万台肉鸡的力量就不可忽视,再加上肉鸡IP是真实的特点,防护算法差的设备就难以防范此类DDoS攻击。当肉鸡的攻击的流量到达清洗设备,清洗设备对肉鸡进行探测,将发现这些源IP是真实的,不是虚假的,此时清洗设备的第一道关卡被突破。
优秀的清洗设备,在面对真实IP的攻击时,其不光能够辨别源IP的真假性,还能从应用层行为上判断这些源IP是否真的是要访问服务器资源,也就是所谓的CC防护。CC防护算法主要有URL防护、HTTP Cookie防护、图片验证等等,防护算法越多,在对抗时能够采取的手段也就越多,攻击者就越难以突破。
为了提升攻击效果,攻击者不断地创造新的攻击手段,攻击流量大小向两级分化,要么攻击流量很小(几兆流量,以小博大),要么攻击流量巨大(上G流量,以大欺小),发出的攻击报文经过精心构造,以期让受害者毫无还手之力。
上面也提了一种特殊的、精细化的攻击,下面再向大家介绍一些目前经常遇到的精细化攻击及防护。
(1)精心挑选的动态页面
动态页面是最耗服务器资源的,当攻击者发现目标的网站中存在需要数据库查询的连接,比如“站内搜索”、“投票”…它就可以使用肉鸡资源,对这些页面进行快速查询,这些动作产生的流量不用太大,最终的结果,服务器在这类小流量的冲击下崩溃。
这种攻击的防护不是简单判断一下真假就可行的,因为肉鸡IP是真的。此时清洗设备可使用CC防护算法(肉鸡可以自动识别高复杂度的图片吗?),还可以结合连接耗尽策略(限制服务器的连接数)。
如果你没有清洗设备,那可以去掉这个动态页面,也可保障服务器的正常运行,当然也损失了部分正常用户。
(2)精心构造的攻击报文
针对不同的攻击目标,攻击者将攻击报文进行不同的伪装,从报文任何一方面看上去都没有破绽。
比如攻击网吧,就用与网吧正常流量非常类似的流量进行攻击;攻击网站,就用与网站正常流量非常类似的流量进行攻击,让你防护设备无法正确识别。
对这种攻击的防护对清洗设备的防护算法要求极高,清洗设备主要利用应用协议的一些细节部分进行防护,抱歉在这里还不能与大家分享,相信大家理解。
(3)不按套路出牌
攻击包有时随机、有时固定、有时分片;攻击报文长度有时超长、有时超短。
对于这种攻击的出现,笔者认为攻击者知道被攻击目标部署了清洗设备,而防护算法可能是存在缺陷的,他是在使用各种流量来进行试探攻击,也许你的清洗设备对这类报文就不防护了呢?
这就是考验清洗设备的算法完备性了,虽然流量清洗设备基本上没有类似病毒库的东西,但算法上必须要做到完备,什么情况都必须考虑到,否则将无法适应当前的DDoS形势。
除了以上攻击,现在也开始出现由于软件BUG引起的DDoS问题,比如某著名软件引起的DNS断网事件。相信在网络日益紧密的大环境下,这类由软件BUG引起的DDoS情况将增多。
道高一尺、魔高一丈?还是魔高一尺、道高一丈?
从目前的DDoS形势看来,一眼就能看出是攻击的情况将会越来越少,未来的DDoS攻击将更加隐蔽,DDoS攻击已经不再是搞几个工具,然后狂发SYN包、狂发ACK包的时代;更多的往应用层攻击(CC攻击)发展,新的CC攻击将层出不穷,让你很难发现和识别;攻击流量大小两级分化,要么以小博大,要么以大欺小;清洗设备防护算法的更新很重要,DDoS应急响应的能力也同样重要;取证会越来越困难,想要抓住真正的攻击发起者也更难,可以推测,DDoS将进入全面技术对抗的时代。