前端安全第三期

DDOS

前言

DDoS是目前成本较低的一种攻击方式之一。攻击发动者意图通常为敲诈勒索,竞争利益冲突,表达政治立场,采用DDoS攻击吸引企业安全团队注意力,而实际进行进一步入侵窃取,给受害用户造成包括业务不可用/不稳定等造成的用户流失,公信力受损,品牌损害等;经济损失每天从几万到几千万不等,甚至直接导致业务倒闭(游戏/互联网/创业公司等)

DDOS 不是一种攻击,而是一大类攻击的总称,它有几十种类型,新的攻击方法还在不断发明出来,网站运行的各个环节,都可以是攻击目标,只要把一个环节攻破,使得整个流程跑不起来,就达到了瘫痪服务的目的

 

什么是DDOS

如上图式例,老李开了一家餐厅,正常情况下,最多可以容纳30个人同时进餐,正常情况下客户直接走进餐厅,找一张桌子坐下点餐,马上就可以吃到东西

很不幸,现在来了300多个流氓同时涌进餐厅,这些人看上去跟正常的顾客一样,每个都说”赶快上餐”。但是,餐厅的容量只有30个人,根本不可能同时满足这么多的点餐需求,加上他们把门口都堵死了,里三层外三层,正常用餐的客人根本进不来,实际上就把餐厅整瘫痪了

这就是 DDOS 攻击,它在短时间内发起大量请求、被大量的请求、被接收大量数据等等,耗尽服务器的资源,无法响应正常的访问,造成系统实质下线,DDOS 里面的 DOS 是 denial of service(停止服务)的缩写,表示这种攻击的目的,就是使得服务中断。最前面的那个 D 是 distributed (分布式),表示攻击不是来自一个地方,而是来自四面八方,因此更难防。你关了前门,他从后门进来;你关了后门,他从窗口跳起来

 

DDoS攻击的发展之三个阶段

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

名词解析
  • 肉鸡

    “肉鸡”是指中了木马,或者被一些人留了后门的计算机,成为“肉鸡”的计算机可以被黑客远程操控,“肉鸡”的存在多由于用户系统存在各种脆弱性导致,系统一旦被入侵,黑客可获得控制权,黑客在这些“肉鸡”所有者不知情的情况下,发起对既定攻击目标的攻击

  • 僵尸网络

    采用一种或多种传播手段,将大量主机感染bot程序(僵尸程序),从而在控制者和被感染主机之间所形成的一个可一对多控制的网络

    被感染的主机称之为僵尸主机(Zombies,又叫肉鸡)

  • IP 封堵策略

    IP 封堵指在访问您域名的流量通过腾讯云清洗集群时,会将您的所有流量指向 NULL (即通常所说的黑洞路由,也可以理解为丢弃流量),若被封堵,业务将不可访问

 

第一阶段

由个人计算机组建僵尸网络,发动DDoS攻击,最为传统的DDoS攻击也是多利用僵尸主机(Zombies,又叫肉鸡)组成僵尸网络来发起的

在一些实际攻击事件中,从攻击流量中分析来看,来源非常分散,全国甚至全世界各地都有,此类攻击很可能就是由大量受操控“肉鸡“组成的僵尸网络发起。可见,“肉鸡”对于互联网、特别是网站系统的威胁是很大的。即便单个“肉鸡”的攻击能力有限,但如果肉鸡数量很多,汇总后的攻击流量也将是惊人的

形象示例图

第二阶段

利用互联网开放服务器(如DNS、NTP)发起反射攻击,虽然肉鸡的效果显著,但是无论组建还是僵尸网络的维护都需要较高的成本,伴随黑客不断对更低成本获得更大效果的追求,利用互联网开放服务器发起反射拒绝服务攻击逐渐流行

反射拒绝服务攻击又称DRDoS攻击(Distributed Reflection Denial of Service),或分布式反射拒绝服务攻击。其原理是黑客伪造成被攻击者的IP地址,向互联网上大量开放特定服务的服务器发起请求,接收到请求的那些主机根据源IP地址将响应数据包返回给受害者。整个过程中,返回响应的服务器并不知道请求源的恶意动机。  黑客往往会选择那些响应包远大于请求包的服务来利用,这样才可以以较小的流量换取更大的流量,获得几倍甚至几十倍的放大效果。一般来说,可以被利用来做放大反射攻击的服务包括DNS服务、NTP服务、SNMP服务、Chargen服务等

形象示例图

第三阶段

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

虽然利用NTP协议的反射放大效果最好,超过500倍。也就是说攻击者只需要发起100Mbps的请求流量,经过NTP服务器的反射放大,可以换来5Gbps的攻击流量。2014年2月,在国外某云计算服务提供商遭受的400Gbps DDoS攻击中,黑客就采用了NTP 反射放大攻击

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

 

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

新趋势

去年的DDoS攻击又出现了一个新的攻击趋势:使用恶意的JavaScript欺骗用户参与DDoS攻击,NTP或者DNS映射攻击造成的后果受到傀儡服务器数量的限制,同时攻击流量也受傀儡服务器容量的限制。随着时间的推移,服务器会不断的更新补丁,能被攻击者利用的服务器数量也在不断的减少,而基于JavaScript的DDOS攻击有一个非比寻常的特点:任何有浏览器的设备都可能参与攻击,其潜在攻击规模接近无限

NTP或者DNS映射攻击造成的后果受到傀儡服务器数量的限制,同时攻击流量也受傀儡服务器容量的限制。随着时间的推移,服务器会不断的更新补丁,能被攻击者利用的服务器数量也在不断的减少,而基于JavaScript的DDOS攻击有一个非比寻常的特点:任何有浏览器的设备都可能参与攻击,其潜在攻击规模接近无限

而基于JavaScript的DDOS攻击有一个非比寻常的特点:任何有浏览器的设备都可能参与攻击,其潜在攻击规模接近无限

  • 基于JavaScript的DDOS攻击原理

    现代网站的交互作用大多数都是采用JavaScript,JavaScript脚本可直接注入HTML中,或者通过 <script src=""> HTML从远程服务器载入

    Web2.0的出现使得网站可以从JavaScript中加载不同步的内容(content asynchronously)。Web2.0更注重交互性,用户在发布内容的过程中不仅实现了与网络服务器之间的交互,也实现了同一网站不同用户之间的交互,以及不同网站之间信息的交互。然而从JavaScript中制造出HTTP(S)请求会使浏览器使用起来更加的有趣,甚至还可以将浏览器变成一种攻击武器

    // 例如,下面的脚本(略有修改)就会向受害网站发送大量的请求
    function imgflood() {
     var TARGET = 'victim-website.com'
     var URI = '/index.php?'
     var pic = new Image()
     var rand = Math.floor(Math.random() * 1000)
     pic.src = 'http://'+TARGET+URI+rand+'=val'
    }
    setInterval(imgflood, 10)

    该脚本会在目标网页上生成一个图片按钮,图片按钮会指向“victim-website.com” 网站。只要用户访问了含有该脚本的网页,那么他就会成为 “victim-website.com”DDoS攻击中的一员。浏览器发出的每一个请求都是有效请求,于是该攻击又变成了Layer 7 攻击

  • 应用方式(入侵共享JavaScript的第三方服务器)

    许多网站使用的都是普通的JavaScript库,为了节约带宽、提升性能,通常还会将JavaScript脚本共享在第三方服务器上。也就是说如果网站上包含有指向第三方服务器的脚本标签,就意味着所有访问该网站的用户都将自动下载JavaScript脚本,并执行。不幸的是,如果攻击者入侵了该第三方服务器并在JavaScript脚本中注入了DDoS攻击代码,那结果可想而知了,所有的访客也将变成DDoS攻击中的一员

    jQuery就发生过这种形式的入侵

 

 

根据网络层区分

  • 网络层攻击:比较典型的攻击类型是UDP反射攻击,例如:NTP Flood攻击,这类攻击主要利用大流量拥塞被攻击者的网络带宽,导致被攻击者的业务无法正常响应客户访问

  • 传输层攻击:比较典型的攻击类型包括SYN Flood攻击、连接数攻击等,这类攻击通过占用服务器的连接池资源从而达到拒绝服务的目的

  • 会话层攻击:比较典型的攻击类型是SSL连接攻击,这类攻击占用服务器的SSL会话资源从而达到拒绝服务的目的

  • 应用层攻击:比较典型的攻击类型包括DNS flood攻击、HTTP flood攻击、游戏假人攻击等,这类攻击占用服务器的应用处理资源极大的消耗服务器处理性能从而达到拒绝服务的目的

 

如何应对?

随着物联网和智能设备的快速发展和普及,利用智能设备展开DDoS攻击会越来越普遍,对于DDoS攻击,普遍采用的防护手段包括

  • 源验证/反向探测,对源进行探测和人机识别,段包括cookie、识别码等

  • 限源,即对源IP或协议进行限制,blacklist是一个常见手段

  • 特征丢弃,依据数据包的特征或访问行为进行丢弃,如基于Payload特征、发包行为特征、QPS特征等

  • 限速,对流量/访问的速率进行限流。 特别对于大流量DDoS攻击的防护,与电信运营商配合也是必不可少的。其中包括与运营商配合实施就源清洗,以及在运营商侧路由器上对特定协议或特定来源的IP进行限制都是降低防护开销的办法  

  • 对于网站来说,通过CDN进行DDoS防护也是一个不错的手段,CDN多节点彼此互备,以及对协议的限制,具有与生俱来的抗DDoS能力和高可用性。同时,CDN往往与云WAF系统配合工作,两者协同成为防护HTTP Flood的利器

  • 随着大数据的兴起,依托用户访问数据、包括QPS,IP-cookie,IP-Request分布、页面点击等行为数据结合信誉机制建立起完整的可视化防御系统

  • 结合威胁情报,建立起运营商/ISP/DC/区域信息库、IP地址黑名单、代理库、黑暗网络库等丰富的情报库,线上、线下进行关联分析,一方面将防御时间点提前,甚至在攻击发起之前就可以预知;另一方面溯源追踪到攻击者,有效打击攻击者的嚣张气焰

  • 腾讯云大禹BGP高防服务

    腾讯云通过腾讯云大禹BGP高防服务提供抗DDoS攻击防护。大禹系统提供5Tbps的DDoS防御能力,用户可根据防御需求购买相应的防御包

 

posted @ 2020-07-03 14:33  渣渣逆天  阅读(204)  评论(0编辑  收藏  举报