令无数站长闻风丧胆的 DDoS 攻击到底是什么
开门见山,举个形象点的数站例子
我开了一家有五十个座位的重庆火锅店,用料上等,长闻童叟无欺。风丧平时门庭若市 ,胆的到底生意特别红火 ,攻击而对面二狗家的令无火锅店却无人问津。二狗为了对付我,数站想了一个办法,长闻叫了五十个人来我的风丧火锅店坐着却不点菜 ,让别的云计算胆的到底客人无法吃饭 。
上面这个例子讲的攻击就是典型的 DDoS 攻击,全称是令无 Distributed Denial of Service ,翻译成中文就是数站分布式拒绝服务。一般来说是长闻指攻击者利用 “肉鸡”(所谓肉鸡就是网络上被攻陷的计算机) 对目标网站在较短的时间内发起大量请求 ,以大量无用的高防服务器数据消耗有限的网络资源和服务器系统资源,让目标网站无法正常服务(轻则网络阻塞 ,重则服务器系统崩溃 ,导致死机)。在线游戏、互联网金融等领域是 DDoS 攻击的高发行业。
在 DDoS 黑色产业链中,各个角色是如何分工的?DDoS 攻击犯罪已经进入产业化时代 ,从需要专业不法黑客实施全部攻击过程的行为 ,发展成由发单人 、模板下载攻击实施人、肉鸡商、出量人 、不法黑客攻击软件作者、担保人等多个犯罪个体共同参与实施的产业化犯罪行为。
发单人:DDoS 攻击黑色产业链中顶端的角色,也就是出资并发出对具体网站或服务器的攻击需求的人攻击实施人:接到 “发单人” 指令并执行攻击的人肉鸡商:侵入计算机信息系统的实施人,或者买卖被侵入计算机系统权限的中间商。亿华云出量人 :拥有服务器控制权限和网络流量的人。他们有一定技术能力 ,能够租用专属服务器并自行配置攻击软件从而获取流量担保人 :业内“信誉”较高的不法黑客 。因为交易的双方往往并不认识,于是他们会找到 “担保人”,负责买卖双方的资金中转 ,担保人可从中抽取一定的好处费 。
ICMP Flood
ICMP 用于在 IP 主机、路由器之间传递控制消息,控制消息是服务器租用指网络通不通、主机是否可达 、路由是否可用等网络本身的消息,虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。通过对目标系统发送海量数据包,就可以令目标主机瘫痪 ,如果大量发送就成了洪水攻击。
UDP Flood
UDP 协议是一种无连接的香港云服务器服务 ,伪造源地址很方便。在 UDP Flood 中 ,攻击者通常发送大量伪造源 IP 地址的小 UDP 包冲击 DNS 服务器或 Radius 认证服务器 、流媒体视频服务器 。100k bps 的 UDP Flood 经常将线路上的骨干设备例如防火墙打瘫,造成整个网段的瘫痪。
上述两种传统的流量型攻击方式技术含量较低,伤人一千自损八百 ,攻击效果通常依赖受控主机本身的网络性能 ,而且容易被查到攻击源头,单独使用的情况已不常见 。于是,具有四两拔千斤效果的放射型放大攻击就出现了 。
NTP Flood
NTP 是标准的基于 UDP 协议传输的网络时间同步协议,由于 UDP 协议的无连接性 ,方便伪造源地址。攻击者使用特殊的数据包,也就是 IP 地址指向作为反射器的服务器,源 IP 地址被伪造成攻击目标的 IP ,反射器接收到数据包时就被骗了,会将响应数据发送给被攻击目标,耗尽目标网络的带宽资源 。一般的 NTP 服务器都有很大的带宽,攻击者可能只需要 1Mbps 的上传带宽欺骗 NTP 服务器 ,就可给目标服务器带来几百上千 Mbps 的攻击流量。
因此 ,“问-答”方式的协议都可以被反射型攻击利用 ,将质询数据包的地址伪造为攻击目标地址,应答的数据包就会都被发送至目标,一旦协议具有递归效果,流量就被显著放大了 ,堪称一种“借刀杀人”的流量型攻击。
SYN Flood
这是一种利用 TCP 协议缺陷 ,发送大量伪造的 TCP 连接请求 ,从而使得被攻击方资源耗尽(CPU 满负荷或内存不足)的攻击方式 。建立 TCP 连接,需要三次握手:客户端发送 SYN 报文,服务端收到请求并返回报文表示接受 ,客户端也返回确认 ,完成连接 。
SYN Flood 就是攻击者客户端在短时间内伪造大量不存在的 IP 地址,并向目标服务器不断地发送 SYN 包,Server 则回复确认包,并等待客户端确认 ,由于源地址不存在,因此目标服务器需要不断重发直至超时,这些伪造的 SYN 包将长时间占用半连接队列 ,导致正常的 SYN 请求因为队列满而被丢弃 ,从而引起网络拥塞甚至系统瘫痪。
CC 攻击
CC 攻击是目前应用层攻击的主要手段之一 ,借助【代理服务器】生成指向目标系统的合法请求,实现伪装和 DDoS。
我们都有这样的体验 ,访问一个静态页面,即使人多也不需要太长时间 ,但如果在高峰期访问论坛、贴吧等,那就很慢了 ,因为服务器系统需要到数据库中判断访问者否有读帖、发言等权限。访问的人越多,论坛的页面越多,数据库压力就越大 ,被访问的频率也越高 ,占用的系统资源也就相当可观。
CC 攻击就充分利用了这个特点 ,模拟多个正常用户不停地访问如论坛这些需要大量数据操作的页面(HTTP Flood) ,造成服务器资源的浪费,CPU 长时间处于 100% ,永远都有处理不完的请求 ,网络拥塞 ,正常访问被中止。这种攻击技术性含量高 ,见不到真实源 IP,见不到特别大的异常流量,但服务器就是无法进行正常连接。
之所以选择代理服务器是因为代理可以有效地隐藏自己的身份,也可以绕开防火墙 ,因为基本上所有的防火墙都会检测并发的 TCP/IP 连接数目,超过一定数目一定频率就会被认为是 Connection-Flood。当然也可以使用肉鸡来发动 CC 攻击,攻击者使用 CC 攻击软件控制大量肉鸡发动攻击,肉鸡可以模拟正常用户访问网站的请求伪造成合法数据包,相比前者来说更难防御。
CC 攻击是针对 Web 服务在应用层发起的攻击,在越上层协议上发动 DDoS 攻击越难以防御,上层协议与业务关联愈加紧密 ,防御系统面临的情况也会更复杂 。
由于 CC 攻击成本低、威力大,80% 的 DDoS 攻击都是 CC 攻击。
DNS Query Flood
DNS 作为互联网的核心服务之一 ,自然也 是DDoS 攻击的一大主要目标 。
DNS Query Flood 采用的方法是操纵大量傀儡机器,向目标服务器发送大量的域名解析请求 。服务器在接收到域名解析请求时 ,首先会在服务器上查找是否有对应的缓存 ,若查找不到且该域名无法直接解析时 ,便向其上层 DNS 服务器递归查询域名信息。
通常,攻击者请求解析的域名是随机生成或者是网络上根本不存在的域名 ,由于在本地无法查到对应的结果 ,服务器必须使用递归查询向上层域名服务器提交解析请求,引起连锁反应 。解析过程给服务器带来很大的负载,每秒钟域名解析请求超过一定的数量就会造成 DNS 服务器解析域名超时。
根据微软的统计数据,一台 DNS 服务器所能承受的动态域名查询的上限是每秒钟 9000 个请求。而一台 P3 的 PC 机上可以轻易地构造出每秒钟几万个域名解析请求,足以使一台硬件配置极高的 DNS 服务器瘫痪 ,由此可见 DNS 服务器的脆弱性。
混合攻击
在实际情况中,攻击者只求达到打垮对方的目的 ,发展到现在 ,高级攻击者已经不倾向使用单一的攻击手段作战了,而是根据目标系统的具体环境灵动组合 ,发动多种攻击手段,既具备了海量的流量 ,又利用了协议、系统的缺陷 ,尽其所能地展开攻势 。
对于被攻击目标来说,需要面对不同协议 、不同资源的分布式的攻击,分析 、响应和处理的成本就会大大增加 。
如何应对 DDoS 攻击?高防服务器
还是拿最开始重庆火锅店举例 ,高防服务器就是给重庆火锅店增加了两名保安 ,这两名保安可以让保护店铺不受流氓骚扰,并且还会定期在店铺周围巡逻防止流氓骚扰 。
高防服务器主要是指能独立硬防御 50Gbps 以上的服务器,能够帮助网站拒绝服务攻击 ,定期扫描网络主节点等,这东西是不错,就是贵
黑名单
面对火锅店里面的流氓,我一怒之下将他们拍照入档,并禁止他们踏入店铺 ,但是有的时候遇到长得像的人也会禁止他进入店铺。这个就是设置黑名单,此方法秉承的就是 “错杀一千,也不放一百” 的原则 ,会封锁正常流量,影响到正常业务。
DDoS 清洗
DDos 清洗,就是我发现客人进店几分钟以后,但是一直不点餐,我就把他踢出店里。
DDoS 清洗会对用户请求数据进行实时监控 ,及时发现 DOS 攻击等异常流量 ,在不影响正常业务开展的情况下清洗掉这些异常流量 。
CDN 加速
CDN 加速,我们可以这么理解 :为了减少流氓骚扰 ,我干脆将火锅店开到了线上,承接外卖服务,这样流氓找不到店在哪里,也耍不来流氓了。
在现实中 ,CDN 服务将网站访问流量分配到了各个节点中,这样一方面隐藏网站的真实 IP ,另一方面即使遭遇 DDoS 攻击,也可以将流量分散到各个节点中,防止源站崩溃。