Please enable Javascript to view the contents

DDoS 攻击入门

 ·  ☕ 7 分钟

1. 什么是 DDoS

举个栗子,春节买票期间,高铁票一出,全国人民都向12306的服务器发送连接请求。然后,12306的服务器就会不响应或者较慢响应网页请求。这就构成了一次DDoS攻击。通过大量并发的请求,迫使目标服务受到影响,甚至终止。

DDoS攻击是通过利用服务器上的漏洞,或者消耗服务器上的系统资源(内存、硬盘等)、应用资源(连接表等)来达到目的。能发动DDoS攻击的不只有僵尸网络,专业的DDoS工具也可以进行DDoS攻击。 DDoS相对于DoS攻击,主要体现在分布式上。DDoS常常不是由一个主机发起,而是由大批量的主机同时发起,比如一个僵尸网络。这种方式,模拟正常的访问请求,给防御DDoS攻击增加了不少难度。而近年来,随着DDoS攻击的工具化,僵尸网络越来越大而多,不少著名企业遭受了DDoS攻击。

2. DDoS常用工具

2.1 Hping、PenTBox和Zarp

  • Hping常用功能包括网络压力测试、防火墙测试、端口扫描。
  • PenTBox主要是帮组安全人员对网络、系统的安全性和稳定性进行测试,提供密码算法工具、网络工具(压力测试、溢出攻击),web安全测试工具。
  • Zarp是采用Python编写的开源网络攻击测试集成工具,集多种嗅探、DoS攻击压力测试于一身。

2.2 卢瓦(LOIC)

LOIC,低轨道离子炮是一个最受欢迎的DOS攻击工具。 这个工具被去年流行的黑客集团匿名者用于对许多大公司的网络攻击。 下载卢瓦LOIC: http://sourceforge.net/projects/loic/

2.3 XOIC

XOIC是另一个不错的DOS攻击工具。它根据用户选择的端口与协议执行DOS攻击任何服务器。XOIC开发者还声称XOIC比上面的LOIC在很多方面更强大呢。
一般来说,该工具有三种攻击模式,第一个被称为测试模式,是非常基本的; 第二个是正常的DOS攻击模式; 最后一个是带有HTTP / TCP / UDP / ICMP消息的DOS攻击模式。 下载XOIC: http://sourceforge.net/projects/xoic/

2.4 HULK

HULK是另一个不错的DOS攻击工具,这个工具使用某些其他技术来避免通过攻击来检测。它有一个已知的用户代理列表,且使用的是随机请求。在这里下载HULK: http://packetstormsecurity.com/files/112856/HULK-Http-Unbearable-Load-King.html

3 DDos攻击的分类

3.1 FLOOD攻击

  • ICMP FLOOD。ICMP是TCP/IP协议族的核心协议之一。它用于在TCP/IP网络中发送控制消息,提供可能发生在通信环境中的各种问题反馈。攻击者使用受控主机向被攻击目标发送大量的ICMP/IGMP报文,进行洪水攻击以消耗目标的带宽资源。现在这种方法已不多见,被攻击目标可以在其网络边界直接过滤并丢弃ICMP/IGMP数据包使攻击无效化。
  • UDP FLOOD。UDP是一种面向无连接的传输层协议,主要提供面向事务的简单不可靠信息传送服务。攻击者通过向目标发送数据包,以消耗宽带资源达到目标。有两种数据包,小包UDP64字节大小,能够增大网络设备处理数据包的压力,造成处理速度的缓慢和传输延等拒绝服务的效果。大包是指1500字节以上的数据包,超过以太网最大传输单元。大包,能有效占用网络接口的传输宽带,迫使攻击目标接收到UPD数据时,进行分片重组,拥塞网络,延迟服务器响应。
  • TCP FLOOD。TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。攻击者,发送大量TCP连接占满攻击目标的连接表,从而迫使目标拒绝服务,以此达到目的。
  • SYN FLOOD。不断向服务器发送连接请求(TCP SYN请求),速度高达每秒150次。服务器忙于应对这些请求,从而无法回应正常的用户。此外,攻击者还可以采用随机伪造源地址的方式。一方面,这使得攻击来源难以追踪;另一方面,随机的源地址也使得过滤和阻断攻击变得非常困难。SYN攻击,占据DDoS攻击的三分之一以上。
  • RST FLOOD。这种方式,借助于TCP连接是通过带有FIN标识报文的四次握手来切断客户端与服务器的TCP连接的。但是,一旦出现意外,无法完成四次握手,就会使用RST报文来强制中断。RST攻击,就是通过伪造带有RST标识位的TCP报文,强制中断客户端与服务器的TCP服务的。
  • SSL FLOOD。SSL攻击的方式主要是消耗攻击目标的CPU资源,以此迫使目标停止响应。攻击者在进行SSL连接并握手之后,不断地进行秘钥重新协商过程。
  • HTTP FLOOD。攻击者利用大量的受控主机不断地向Web服务器恶意发送大量HTTP请求,要求Web服务器处理,占用服务器资源。造成其他用户无法得到响应。

3.2 反射攻击

采用通常的FlooD攻击,攻击源可以被定位。反射攻击的方式是通过修改数据包(通常是UPD,ACK等,无需握手认证的包)源IP实现的。首先向受控主机发送大量数据包,目的IP为反射器(服务器、路由器等网络设备),源IP地址为攻击目标的IP。反射器收到数据包,以为攻击目标请求数据,于是返回大量数据响应,消耗攻击目标的宽带资源。

3.3 放大攻击

放大攻击的思路是,发送较小的数据请求包m,返回较大的响应数据包M,从而成倍的消耗攻击目标的宽带资源,放大倍率size(M)/size(m)。常见的有DNS放大攻击,攻击者发送DNS的查询请求包只有60字节左右,而返回的响应包却高达3000字节,可以获得放大50倍的效果。相同的,还有NTP放大攻击,发送时间同步请求。

3.4 Sockstress 攻击

Sockstress在客户端与服务器建立连接后,设置TCP窗口大小为0,或者一个很小的值。攻击目标会不断探测客户端TCP窗口变化,以此保存连接,消耗连接表。从而达到拒绝服务的目的。

3.5 慢速攻击

慢速攻击采取的策略是,长期占用连接资源,以此消耗目标的应用资源。POST

4. 预防的手段

由于DDoS分布式的特点,很难通过单一特征识别出,发起攻击的主机。防御DDoS攻击可以采取多种方法并行的方式,会有较好的效果。DDoS的防御主要分为三个部分,一个DNS,一个是网络,一个是应用。由于现在DNS主要依靠第三方,针对DNS服务器的攻击影响甚广,第三方DNS服务商常常都非常重视DDoS攻击,做了充足准备。针对网络的攻击,主要是消耗网络带宽。还有一种是针对应用服务器,这种攻击主要是消耗服务器的CPU、内存、数据库连接数等软硬件资源,来达到目的。

  • CDN
    可以保证静态页面不受影响。在页面中,绑定单独域名,通过CDN网络分发静态文件,可能是个不错的选择。能显著提高并发请求量。如果可以的话,将主页设置为静态页面,可以显著提高抗DDoS攻击的能力。
  • 拼带宽
    由于大部分的DDoS具有时间短、流量大的特点,在爆发DDoS的时间段,可以动态的购买大量的带宽,以增加宽带对抗攻击。花费一定数量的钱,避免企业形象受损、提供持续服务,是件性价比不错的事。
  • 流量清洗
    检查访问请求的一些信息,通过设置过滤条件,有选择性的服务。比如,屏蔽掉某些IP的访问。
  • 负载均衡
    将不同的访问来源,分发到不同的服务器上,以此增强服务的可用性。
  • AnyCast
    Anycast技术是一种网络寻址和路由方法。通过使用Anycast, 一组提供特定服务的主机可以使用相同的 IP地址, 同时,服务访问方的请求报文将会被IP网络路由到这一组目标中拓扑结构最近的一台主机上。几乎全部的互联网根域名服务器都部署了Anycast。使用 Anycast技术能够稀释分布式拒绝服务攻击流量, 在Anycast寻址过程中. 流量会被导向网络扑结构上最近的节点, 在这个过程中, 攻击者并不能对攻击流量进行操控,因此攻击流量将会被分散并稀释到最近的节点上,每一个节点上的资源消耗都会减少,因为高防服务器主要是作用在节点上,通过这样的设计能够有效降低高防服务器的压力。

5. 参考


微信公众号
作者
微信公众号