尽可能地对被攻击目标造成最大程度的资源破坏是DDoS攻击的根本初衷。站在这个角度上来看DDoS攻击的发展,可以梳理出清晰的脉络。
三个发展阶段 曾经有安全专家把DDoS攻击比作互联网“核武器”:一旦调动足够数量遍布互联网的“肉鸡”和存在各种协议漏洞的开放服务器,就可以瘫痪掉任何互联网业务。尽可能地对被攻击目标造成最大程度的资源破坏是DDoS攻击的根本初衷。站在这个角度上来看DDoS攻击的发展,可以梳理出清晰的脉络。 DDoS攻击的发展趋势呈明显的三个阶段性: 第一阶段:由个人计算机组建僵尸网络,发动DDoS攻击; 第二阶段:利用互联网开放服务器(如DNS、NTP)发起反射攻击; 第三阶段:利用智能/IoT设备协议(如SSDP)的脆弱性发起反射攻击。 如下图所示:
图1: DDoS攻击的发展 来自僵尸网络的DDoS 最为传统的DDoS攻击多利用僵尸主机(Zombies,又叫肉鸡)组成僵尸网络来发起。
图2: 典型的僵尸网络架构 “肉鸡”是指中了木马,或者被一些人留了后门的计算机,成为“肉鸡”的计算机可以被黑客远程操控。“肉鸡”的存在多由于用户系统存在各种脆弱性导致,系统一旦被入侵,黑客可获得控制权。黑客在这些“肉鸡”所有者不知情的情况下,发起对既定攻击目标的攻击。其中一种比较典型的攻击就是DDoS攻击。 在我们遇到的一些实际攻击事件中,从攻击流量中分析来看,来源非常分散,全国各地都有,此类攻击很可能就是由大量受操控“肉鸡“组成的僵尸网络发起。可见,“肉鸡”对于互联网、特别是网站系统的威胁是很大的。即便单个“肉鸡”的攻击能力有限,但如果肉鸡数量很多,汇总后的攻击流量也将是惊人的。 利用开放服务器的反射放大 虽然肉鸡的效果显著,但是无论组建还是僵尸网络的维护都需要较高的成本,伴随黑客不断对更低成本获得更大效果的追求,利用互联网开放服务器发起反射拒绝服务攻击逐渐流行。
图3: 利用NTP服务器发起反射攻击 反射拒绝服务攻击又称DRDoS攻击(Distributed Reflection Denial of Service),或分布式反射拒绝服务攻击。其原理是黑客伪造成被攻击者的IP地址,向互联网上大量开放特定服务的服务器发起请求,接收到请求的那些主机根据源IP地址将响应数据包返回给受害者。整个过程中,返回响应的服务器并不知道请求源的恶意动机。 黑客往往会选择那些响应包远大于请求包的服务来利用,这样才可以以较小的流量换取更大的流量,获得几倍甚至几十倍的放大效果。一般来说,可以被利用来做放大反射攻击的服务包括DNS服务、NTP服务、SNMP服务、Chargen服务等。 根据US-CERT在2014年1月发布的预警(Alert TA14-017A),DNS、NTP、SNMP等协议的反射放大效果以及脆弱性如下图所示:
图4: 反射放大攻击效果和脆弱性一览 从上图可见,利用NTP协议的反射放大效果最好,超过500倍。也就是说攻击者只需要发起100Mbps的请求流量,经过NTP服务器的反射放大,可以换来5Gbps的攻击流量。2014年2月,在国外某云计算服务提供商遭受的400Gbps DDoS攻击中,黑客就采用了NTP 反射放大攻击。 SSDP攻击的崛起 一方面,随着互联网上存在DNS、NTP、SNMP等协议脆弱性的开放服务漏洞不断被修复,可以用来发起反射攻击的服务器数量数量越来越少。另一方面,互联网上家用路由器、网络摄像头、打印机、智能家电等设备数量的激增,让黑客看到了另一个可以不断挖掘的金山。这些智能设备普遍采用UPnP(即插即用)协议作为网络通讯协议, 而UPnP设备的发现是通过源端口为1900的SSDP(简单服务发现协议)进行相互感知。 利用SSDP协议进行反射攻击的原理与利用DNS服务、NTP服务类似,都是伪造成被攻击者的IP地址向互联网上大量的智能设备发起SSDP请求,接收到请求的智能设备根据源IP地址将响应数据包返回给受害者。
图5: SSDP反射放大攻击 SSDP反射放大攻击是一个迅速崛起的DDoS攻击方式。从Akamai 2015 Q1 State of the Internet / Security Report报告中可以看出,SSDP反射攻击已经成为TOP1的DDoS攻击方式(20.78%)。在2014年Q4,SSDP DDoS的比例只有14%,在2014年Q1,则几乎没有SSDP反射攻击,如下图所示:
图6: SSDP攻击所占比例最多 根据Arbor Networks在2015年初发布的《Worldwide Infrastructure Security Report》,SSDP反射攻击到2014年7月才被关注,在2014年Q3-Q4期间曾经打出过若干次超过100Gbps的攻击流量。
图7: SSDP攻击自2014年Q3后异军突起 另根据USCERT的数据,SSDP的放大倍数是30倍,虽然较NTP和Chargen等协议的放大倍数小很多,但是由于互联网上智能设备的数量非常庞大,随着IoT的发展,这个数字更将呈现几何级数的增加。这无疑为黑客提供了丰富的攻击来源。 SSDP严峻的形势在阿里云上同样得到了体现。根据阿里云云盾安全运营团队在2015年6月的统计,在对阿里云用户的UDP DDoS攻击中,80%的攻击方式为SSDP反射放大攻击。 下图是在黑客对阿里云某用户攻击中捕获的数据包,源端口为1900是SSDP 反射放大攻击的重要特征之一:
图8: SSDP攻击数据包 随着物联网和智能设备的快速发展和普及,利用智能设备展开DDoS攻击会越来越普遍。 如何应对? 对于DDoS攻击,普遍采用的防护手段包括: (1)源验证/反向探测,对源进行探测和人机识别,段包括cookie、识别码等; (2)限源,即对源IP或协议进行限制,blacklist是一个常见手段; (3)特征丢弃,依据数据包的特征或访问行为进行丢弃,如基于Payload特征、发包行为特征、QPS特征等; (4)限速,对流量/访问的速率进行限流。 特别对于大流量DDoS攻击的防护,与电信运营商配合也是必不可少的。其中包括与运营商配合实施就源清洗,以及在运营商侧路由器上对特定协议或特定来源的IP进行限制都是降低防护开销的办法。 当然,针对于网络层DDoS攻击(Layer-4 DDoS)和应用层DDoS(Layer-7 DDoS)攻击不同的攻击策略,在具体防护时,采取的手段也不尽相同。这里不再赘述。 此外,对于网站来说,通过CDN进行DDoS防护也是一个不错的手段,CDN多节点彼此互备,以及对协议的限制,具有与生俱来的抗DDoS能力和高可用性。同时,CDN往往与云WAF系统配合工作,两者协同成为防护HTTP Flood的利器。 上面的方法是否就是防御DDoS攻击的全部了呢? NO! 随着大数据的兴起,依托用户访问数据、包括QPS,IP-cookie,IP-Request分布、页面点击等行为数据结合信誉机制建立起完整的可视化防御系统。结合威胁情报,建立起运营商/ISP/DC/区域信息库、IP地址黑名单、代理库、黑暗网络库等丰富的情报库,线上、线下进行关联分析,一方面将防御时间点提前,甚至在攻击发起之前就可以预知;另一方面溯源追踪到攻击者,有效打击攻击者的嚣张气焰。