浅谈DDoS攻击

2015-12-03 17:56刘永鹏

刘永鹏

摘 要:拒绝服务是用分布式的客户端,向服务者发起大量看似合法的请求,消耗或长期占用大量资源,从而达到拒绝向受众提供服务的目的。针对基于JavaScript的DDOS攻击,防御这一攻击的唯一方式是全面启用HTTPS。

关键词:拒绝服务;DDOS攻击;防御

1 概述

DDOS是英文Distributed Denial of Service的缩写,即“分布式拒绝服务”,那么什么又是拒绝服务(Denial of Service)呢?可以这么理解,用分布式的客户端,向服务者发起大量看似合法的请求,消耗或长期占用大量资源,从而达到拒绝向受众提供服务的目的。也就是说拒绝服务攻击的目的非常明确,就是要阻止合法用户对正常网络资源的访问,从而达成攻击者不可告人的目的。DOS的攻击策略侧重于通过很多“僵尸主机”(被攻击者入侵过或可间接利用的主机)向受害主机发送大量看似合法的网络包,从而造成网络阻塞或服务器资源耗尽而导致拒绝服务,分布式拒绝服务攻击一旦被实施,攻击网络包就会犹如洪水般涌向受害主机,从而把合法用户的网络包淹没,导致合法用户无法正常访问服务器的网络资源,因此,拒绝服务攻击又被称为“洪水式攻击”,常见的DDOS攻击手段有SYN Flood、ACK Flood、UDP Flood、ICMP Flood、TCP Flood、Connections Flood、Script Flood、Proxy Flood等。

2 发展

曾经有安全专家把DDoS攻击比作互联网“核武器”:一旦调动足够数量遍布互联网的“肉鸡”和存在各种协议漏洞的开放服务器,就可以瘫痪掉任何互联网业务。尽可能地对被攻击目标造成最大程度的资源破坏是DDoS攻击的初衷。站在这个角度上来看DDoS攻击的发展,可以梳理出清晰的脉络,DDoS攻击的发展趋势呈明显的三个阶段性。

第一阶段,由个人计算机组建僵尸网络,发动DDoS攻击;

第二阶段,利用互联网开放服务器(如DNS、NTP)发起反射攻击;

第三阶段,利用智能/IoT设备协议(如SSDP)的脆弱性发起反射攻击。

拒绝服务攻击存在的根源是Internet架构自身缺陷,由于最初Internet架构未考虑拒绝服务攻击,从而导致几乎所有Internet服务均易遭受拒绝服务攻击。纵观近五年DDoS攻防双方的对抗交锋,攻击方技术不断演进,将“以大欺小”(流量型攻击)与“以小搏大”(资源耗尽型)两种攻击方式组合起来,利用逐渐提高的网络带宽增强攻击力等;而防守方则通过流量清洗设备等多种手段予以应对。

最为传统的DDoS攻击多利用僵尸主机(Zombies,又叫“肉鸡”)组成僵尸网络来发起。“肉鸡”是指中了木马,或者被一些人留了后门的计算机,成为“肉鸡”的计算机可以被黑客远程操控。“肉鸡”的存在多由于用户系统存在各种脆弱性导致,系统一旦被入侵,黑客可获得控制权。黑客在这些“肉鸡”所有者不知情的情况下,发起对既定攻击目标的攻击。“肉鸡”对于互联网,特别是网站系统的威胁是很大的。即便单个“肉鸡”的攻击能力有限,但如果“肉鸡”数量很多,汇总后的攻击流量也将是惊人的。

虽然肉鸡的效果显著,但是无论组建还是僵尸网络的维护都需要较高的成本,伴随黑客不断对更低成本获得更大效果的追求,利用互联网开放服务器发起反射拒绝服务攻击逐渐流行。反射拒绝服务攻击又称DRDoS攻击,或分布式反射拒绝服务攻击。其原理是黑客伪造成被攻击者的IP地址,向互联网上大量开放特定服务的服务器发起请求,接收到请求的那些主机根据源IP地址将响应数据包返回给受害者。整个过程中,返回响应的服务器并不知道请求源的恶意动机。黑客往往会选择那些响应包远大于请求包的服务来利用,这样才可以以较小的流量换取更大的流量,获得几倍甚至几十倍的放大效果。一般来说,可以被利用来做放大反射攻击的服务包括DNS服务、NTP服务、SNMP服务、Chargen服务等。利用NTP协议的反射放大效果最好,超过500倍。也就是说攻击者只需要发起100Mbps的请求流量,经过NTP服务器的反射放大,可

以换来5Gbps的攻击流量。2014年2月,在国外某云计算服务提供商遭受的400Gbps DDoS攻击中,黑客就采用了NTP 反射放大攻击。

随着互联网上存在DNS、NTP、SNMP等协议脆弱性的开放服务漏洞不断被修复,可以用来发起反射攻击的服务器数量越来越少。互联网上家用路由器、网络摄像头、打印机、智能家电等设备数量的激增,让黑客看到了另一个可以不断挖掘的金山。这些智能设备普遍采用UPnP(即插即用)协议作为网络通讯协议,而UPnP设备的发现是通过源端口为1900的SSDP(简单服务发现协议)进行相互感知。利用SSDP协议进行反射攻击的原理与利用DNS服务、NTP服务类似,都是伪造成被攻击者的IP地址向互联网上大量的智能设备发起SSDP请求,接收到请求的智能设备根据源IP地址将响应数据包返回给受害者(见下图)。

根据USCERT的数据,SSDP的放大倍数是30倍,虽然较NTP和Chargen等协议的放大倍数小很多,但是由于互联网上智能设备的数量非常庞大,随着IoT的发展,这个数字更将呈现几何级数的增加。这无疑为黑客提供了丰富的攻击来源。SSDP严峻的形势在阿里云上同样得到了体现。根据阿里云云盾安全运营团队在2015年6月的统计,在对阿里云用户的UDP DDoS攻击中,80%的攻击方式为SSDP反射放大攻击。

3 新型DDos攻击

3.1 “胡乱域名”攻击

一种针对域名服务器的新型分布式拒绝服务攻击(DDoS),可称之为“胡乱域名”攻击。它能给递归域名服务器和权威域名服务器造成严重破坏。

这种“无意义域名”DDoS攻击通常是这样进行的:攻击者选定一个域作为目标,如abc.example。在目标域内,攻击者操纵僵尸网络产生大量随机域名。然后向递归域名服务器发起大量针对这些无意义域名的查询请求。递归域名服务器转而将请求发送到abc.example的权威服务器以查询这些域名。权威域名服务器返回“请求的域名不存在”的响应(NXDOMAIN)。递归服务器中继转发这一响应给原始请求者,并缓存下域名不存在的记录。请求,响应,缓存,再来一遍。如果攻击者发起这种胡乱域名解析请求的速度足够快,聚合查询的速度将令abc.example权威域名服务器应接不暇濒临崩溃。真正的伤害就发生了:僵尸主机继续向递归域名服务器发送无意义域名的查询请求。权威域名服务器终于崩溃,不再响应请求,递归域名服务器也就需要花费长得多的时间来处理单个域名解析请求。

这将占用递归域名服务器上的递归查询时间片,最终导致资源耗尽,拒绝接受其他递归查询,尽管其中包含了合法的查询请求。至此,域名服务器拒绝任何新入递归请求,停止向客户提供服务。

3.2 基于JavaScript的DDOS攻击

最近几年DDoS攻击技术不断推陈出新:攻击者用一种新型且很有趣的方式欺骗用户参与到攻击活动中。去年CloudFlare就见证了一次使用NTP映射的攻击,可能是DDoS攻击史上最大的一次攻击(大于400Gbps)。今年的DDoS攻击又出现了一个新的攻击趋势:使用恶意的JavaScript欺骗用户参与DDoS攻击。NTP或者DNS映射攻击造成的后果受到傀儡服务器数量的限制,同时攻击流量也受傀儡服务器容量的限制。随着时间的推移,服务器会不断的更新补丁,能被攻击者利用的服务器数量也在不断的减少。而基于JavaScript的DDOS攻击有一个非比寻常的特点:任何有浏览器的设备都可能参与攻击,其潜在攻击规模接近无限。现代网站的交互作用大多数都是采用JavaScript。

JavaScript脚本可直接注入HTML中,或者通过

...……
icp