DDoS的主要攻击方法

研究DDoS攻击,阅读《破坏之王-DDOS攻击与防范》一书,对各种DDos攻击的方法简单整理总结了一下。

1.攻击网络带宽资源

1.1直接攻击

**原理:**使用大量受控主机向被攻击目标发送大量数据包,以占满被攻击目标的带宽,消耗服务器和网络设备的数据处理能力,来达到拒绝服务的目的。

ICMP/IGMP flood攻击

网络控制消息协议(ICMP)是TCP/IP协议族的核心协议之一,它用于在TCP/IP网络中发送控制消息,提供可能发生在通信环境的各种问题反馈,通过这些消息,管理者可以对所发生的问题做出诊断,然后采取适当的解决措施。

因特网组管理协议(IGMP)是用于管理因特网协议多播组成员的一种通信协议,IP主机和相邻的路由器利用IGMP来建立多播组的组成员。

攻击者使用受控主机向被攻击目标发送大量的ICMP/IGMP报文,进行洪水攻击以消耗目标的宽带资源,这种类型的攻击出现的很早,使用hping等工具就能简单的发起攻击。但现在使用这种方法发动的攻击已见不多,被攻击目标可以在其网络边界直接过滤并丢弃ICMP/IGMP数据包使攻击无效化。

UDP flood攻击

用户数据包协议(UDP)是一种面向无连接的传输层协议,主要用户不要求分组顺序到达的传输,提供面向实事务的简单的不可靠信息传送服务。

利用UDP数据报文,攻击者也可以发送洪水攻击,UDP洪水攻击和ICMP/IGMP洪水攻击的原理基本相同,通常,攻击者会使用小包和大包两种方式进行攻击

小包是指64字节大小的数据包,这是以太网上传输数据帧的最小值,在相同流量下,单包体积越小,数据包的数量就越多。由于交换机、路由器等网络设备需要对没一个数据包进行检查和校验,因此使用UDP小包攻击能够最有效的增大网络设备处理数据包的压力,造成处理速度的缓慢和传输延迟等拒绝服务攻击的效果

大包是指1500字节以上的数据包,其大小超过了以太网的最大传输单元,使用UDP大包攻击,能够有效的占用网络接口的传输宽带,并迫使被攻击目标在接受到UDP数据时进行分片重组,造成网络拥堵,服务器响应速度变慢

UDP洪水攻击也是很早就出现的一种拒绝服务攻击方式,这种攻击发动简单,有相当多的工具都能够发动UDP洪水攻击,如hping,LOIC等,但UDP洪水攻击完全依靠受控主机本身的网络性能,因此通常对目标宽带资源的消耗并不太大。

**特点:**简单粗暴;杀敌一千自损八百的方式,攻击别人的同时也会消耗自己的带宽和资源;攻击方要有足够快的发包速率和足够大的带宽。若被攻击方的带宽足够大,这类攻击效果十分有限;如果是真实IP发起的攻击还容易被朔源,有经验的攻击者都是通过控制大量肉机来发起攻击。

1.2反射和放大攻击

ICMP洪水、UDP洪水等直接对被攻击目标展开消耗网络带宽资源的分布式拒绝服务攻击,不仅效率低,而且容易被追查到攻击源。虽然攻击者可以使用伪造IP的方式进行隐匿,但更好的方式是使用反射攻击技术。

**原理:**反射攻击即DRDoS(Distributed Reflection Denial of Service分布式反射拒绝服务)攻击,是指利用路由器、服务器等设施对请求产生应答,从而反射攻击流量并隐藏攻击来源。在进行反射攻击时,攻击者使用受控主机发送大量的数据包,这些数据包的特别之处在于,其目的IP地址指向作为反射器的服务器、路由器等设施而源IP地址则被伪造成被攻击目标的IP地址,反射器在收到数据包时,会认为该数据包是否被攻击目标所发来的请求,因此会将相应数据发送给被攻击目标,当大量的响应数据包涌向攻击目标时,就会耗尽目标的网络宽带资源,造成拒绝服务攻击。

**特点:**需要在互联网找到大量的反射器;反射攻击通常会使用无需认证或握手的协议,因为反射攻击时需要将请求数据的源IP伪造程被攻击目标的IP,如果使用的协议需要进行认证或握手,则认证或握手过程无法完成,也就不能进行下一步的攻击,因此大多数反射攻击都是基于UDP协议的网络服务进行的;相比于直接伪造源地址,反射攻击增加了一个反射步骤,因此更加难以追溯攻击来源;利用反射原理以及网络中协议的不对称存(请求和相应数据量不对称)的情况进行放大攻击威胁更大。

ACK反射攻击

TCP建立连接时,首先要进行三次握手。在这个过程中,当服务器接收到客户端发来的SYN连接请求时,会对该请求进行ACK应答。利用TCP握手的ACK应答,即可进行ACK发射攻击。

如果攻击者将SYN的源IP伪造程被攻击者的IP,服务器的应答也就会直接发送给被攻击者。攻击者通过受控主机向大量的不同服务器发送伪造源IP的SYN请求,从而使服务器响应的大量ACK应答数据涌向被攻击者,占领目标的网络带宽资源并造成拒绝服务。

DNS放大攻击

DNS使用的TCP和UDP端口号都是53,主要使用UDP协议。通常DNS响应数据包会比查询数据包大,因此攻击者利用普通的DNS查询请求就可以发动放大攻击,并将流量放大2~10倍。

在没有EDNS0以前,对DNS查询的相应数据包被限制在512字节内。当需要应答数据包超过512字节时,根据DNS服务实现的不同,可能会丢弃超出的部分,也可能会使用TCP协议建立连接并重新发送,这都不利于进行DNS放大攻击。
现在EDNS0中,扩展了DNS数据包的结构,增加了OPT RR字段,该字段包含了客户端能够处理的最大UDP报文大小的信息。服务器在响应DNS请求时,解析并记录下客户端能够以处理的最大UDP报文的大小,并根据该大小 生成响应的报文。

攻击者向广泛存在的开放DNS解析器发送dig查询命令,将OPT RR字段的UDP报文大小设置位很大的值(如4096),并将请求的源IP伪造成被攻击者的IP,DNS解析器收到查询请求后,会将解析的结果发送给被攻击的目标,当大量的解析结果涌向目标时,就会造成网络拥堵和缓慢,造成拒绝服务攻击。

NTP放大攻击

网络时间协议时用来使计算机时间同步化的一种协议,它可以使计算机与时钟源进行同步化并提高精准度的时间校正,NTP使用UDP 123端口通信。

NTP放大可达700倍以上。

SNMP放大攻击

简单网络管理协议,提供了一个管理框架来监控和维护互联网设备。使用UDP 161端口。

利用snmp协议的默认通信字符串和GetBulk请求,攻击者能够有效de SNMP放大攻击。

**特点:**放大攻击前要进行网络 扫描已找到相应地放大器;可以隐藏源IP。

1.3攻击链路

攻击链路和前面的攻击方法有所 不同,其攻击的目标并不是作为互联网的服务器带宽资源,而是骨干网上的链路的带宽资源。

Coremelt攻击

首先,攻击者通过tarceroute等手段来判断各个僵尸主机和将要攻击夫人链路之间的位置关系,并根据结果将僵尸主机分为两个人部分。然后,攻击者控制僵尸主机,使其与链路另一侧的每一台僵尸主机进行通信并发动大量数据,这样大量的网络数据包就会经过骨干网上的被攻击链路,造成网络拥堵和延时。

僵尸主机间互相收发的数据包确实是真实存在的通信数据,所以那一区分和防范。

2攻击系统资源

终端设备与服务器进行通信时,经常需要创建会话连接,在这过程中通常会使用TCP何让SSL等协议。会话创建时,服务器需要为新建的连接分配资源;会话过程中,服务器需要维护并更新连接状态;会话结束才会为释放这些连接资源。一旦会话资源被占满,新的会话请求就必须等待前面的会话结束。据此,通过对系统的简介资源进行消耗和占用,阻止正常连接建立,从而达到拒绝服务的目的。

2.1攻击TCP连接

TCP连接洪水攻击

三次握手,服务器会创建并保存TCP连接的信息,这个东西叫连接表,大小有限,所以攻击者创建大量的恶意TCP连接占满被攻击者的连接表,就…

SYN洪水攻击

攻击者发送大量的SYN报文,可以在收到服务器端返回的SYN+ACK报文后,跳过最后的ACK报文发送,使连接处于半开状态,在连接超时之前,半开连接会一直保存在服务器的连接表中,所以量一大就可以占满服务器的连接表,就…

PSH+ACK洪水攻击

在TCP数据传输的过程中,可以通过设置PSH标志位来表示当前数据传输结束,需要服务端进行处理。

在正常的TCP传输过程当中,如果待发送的数据会清空发送缓冲区,那么操作系统的TCP/IP协议栈就会自动为该数据包设置PSH标志,同样,当服务端接收到一个设置了PSH+ACK标志的报文时,意味着当前数据传输已经结束,因此需要立即将这些数据投递交给服务进程并清空接收缓冲区,而无须等待判断是否还会有额外的数据到达。

由于带有PSH标志位的TCP数据包会强制要求接收端将接收缓冲区清空并将数据提交给应用服务进行处理,因此当攻击者利用受控主机向攻击目标发送大量的PSH+ACK数据包时,被攻击目标就会消耗大量的系统资源不断地进行接收缓冲区的清空处理,导致无法正常处理数据,从而造成拒绝服务。

RST洪水攻击

攻击者发送大量的RST报文,只要量大总有一个能命中,从而使正常的TCP连接终止。
这种攻击通常被用来攻击在线游戏或比赛的用户,从而影响比赛的结果并获得一定的经济利益。

Sockstress攻击

这是一种慢速攻击,不属于洪水攻击,所以说DDos攻击不一定全是洪水攻击。
TCP传输数据时,并不是将数据直接递交给应用程序的,而是先临时存储在接收缓存区里,该缓存区大小是由TCP窗口标识的,如果TCP窗口为0,则表示接收缓冲区已被填满,发送端应该停止发送数据,直到接收端的窗口发生更新,Sockstress攻击就是利用该原理长时间维持TCP连接,以达到拒绝服务攻击的目的。
sockstress攻击首先会完成TCP三次握手以建立连接,但是在三次握手的最后一次ACK应答中,攻击者将其TCP窗口设置为0,随后进行一次数据请求,被攻击的目标在传输数据时发现接收端窗口为0,就会停止传输数据,并不断发出TCP窗口探测包,询问攻击者其TCP窗口是否有更新,根据这个原理,被攻击者一直会维持大量的TCP连接并进行大量的窗口probe,其TCP连接表将会被逐渐耗尽,从而决绝服务。

2.1攻击SSL连接

安全套接层是为网络通信提供安全及数据完整性的一种安全协议,SSL能够在传输层对网络连接进行加密,以防止传输的数据明文被监听和截获。然而,SSL协议加密、解密和秘钥协商的过程中会消耗大量的系统资源,严重降低机器的性能,因此,通常只有在传输密码等机密信息时才使用SSL协议进行传输。攻击者可以利用SSL协议消耗资源的特性进行拒绝服务攻击。

THC SSL DOS攻击

在进行SSL数据传输之前,通信双发首先要进行SSL握手,以协商加密算法交换加密密钥,进行身份验证,通常,这样的SSL握手过程一次即可,但是SSL协议有一个Renegotiate选项,通过它可以进行密钥的重新协商以建立新的密钥。
据此,攻击者反复不断的进行密钥重新协商过程,而密钥重新协商过程服务器投入比客户端多15倍的CPU计算资源,因此攻击者只需要一台普通的台式机就可与i拖垮一台高性能服务器,若有大量的攻击者,那么就。。。

SSL 洪水攻击

在SSL握手的过程中,服务器会消耗较多的CPU计算资源进行加解密,并进行数据的有效性检验,对于客户端发过来的数据,服务器需要先花费大量的计算资源进行解密,之后才能对数据的有效性进行检验,重要的是,不论数据是否是有效的,服务器都必须先进行解密才能够做检查,攻击者可以利用这个特性进行SSL洪水攻击。

在进行洪水攻击时,一个要点是需要攻击者能够在客户端大量的发出攻击请求,这就需要客户端所进行的计算尽可能的少,对于SSL洪水攻击,比较好的方式是在数据传输之前,进行SSL握手的过程中发动攻击,攻击者并不需要完成SSL握手和秘钥交换,而只需要在这个过程中让服务器去解密和验证,就能够大量的消耗服务器的计算资源,因此,攻击者可以非常容易的构造秘钥交换过程中的请求数据,达到减少客户端计算量的目的。

3攻击应用资源

3.1攻击DNS服务

DNS QUERY洪水攻击

在DNS解析的过程中,客户端发起一次查询请求,DNS服务器可能需要进行额外的多次查询才能完成解析的过程并给出应答,在这个过程中会消耗一定的计算和网络资源,如果攻击者利用大量受控主机不断发送不同域名的解析请求,那么DNS服务器的缓存会被不断刷新,而大量解析请求不能命中缓存又导致DNS服务器必须消耗额外的资源进行迭代查询,这会极大的增加DNS服务器的资源消耗,导致DNS响应缓慢甚至完全拒绝服务。

DNS NXDOMAIN洪水攻击

DNS NXDOMAIN洪水攻击是DNS QUERY洪水攻击的一个变种攻击方式,区别在于后者是向DNS服务器查询一个真实存在的域名,而前者是向DNS服务器查询一个不存在的域名。

在进行DNS NXDOMAIN洪水攻击时,DNS服务器会进行多次域名查询,同时,其缓存会被大量NXDOMAIN记录所填满,导致响应正常用户的DNS解析请求的速度变慢,这与DNS QUERY洪水攻击所达到的效果类似,除此之外,一部分DNS服务器在获取不到域名的解析结果时,还会再次进行递归查询,向其上一级的DNS服务器发送解析请求并等待应答,这进一步增加了DNS服务器的资源消耗,因此,DNS NXDOMAIN洪水攻击通常比DNS QUERY洪水攻击的效果更好。

3.1攻击WEB服务

HTTP洪水攻击

攻击者利用大量的受控主机不断的向web服务器发送恶意大量HTTP请求,要求web服务器处理,就会完全占用服务器的资源,造成其他正常用户的web访问请求处理缓慢设置得不到处理,导致拒绝服务,这就是HTTP洪水攻击。

Slowloris攻击

Slowloris攻击是一种针对web服务器的慢速http攻击。
在HTTP协议中规定,HTTP头部以连续的“\r\n\r\n”作为结束标志,许多web服务器在处理http请求的头部信息时,会等待头部传输结束后再进行处理,因此,如果web服务器没有接受到连续的“\r\n\r\n”,就会一直接受数据并保持与客户端的连接,利用这个特性,攻击者能够长时间与web服务器保持联系,并逐渐耗尽web服务器的连接资源。

慢速POST请求攻击

慢速POST请求攻击也是一种针对web服务器的慢速http攻击,利用发送HTTP BODY的方式达到占用并耗尽web服务器连接资源的目的。
http头部信息中,可以使用Content-Length字段来指定http消息实体的传输长度,当web服务器接收到的请求头部包含该字段时,服务器会将该字段的值作为http body的长度,持续收到数据并在达到Content-Length值时对HTTP BODY的数据内容进行处理,利用这个特性,攻击者可以长时间与web服务器保持连接,并逐渐耗尽web服务器的连接资源。
攻击者在发送HTTP POST请求时,在请求头部中将Content-Length字段设置为一个很大的值,并将HTTP BODY以非常缓慢的速度一个一个字节的向web服务器发送,这样,web服务器就需要一直维持与客户端的连接并等待数据传输结束,若达两年受控主机都发送这种缓慢的HTTP POST请求并持续占用这些连接,就会耗尽web服务器的连接资源,导致其他正常用户的HTTP请求无法被处理,造成拒绝服务。

数据处理过程攻击

web服务器在收到HTTP请求之后,需要检查并处理其中的数据,通过恶意构造请求数据的内容,攻击者可以显著的增加数据处理过程中的资源消耗,造成拒绝服务攻击。
例如正则表达式拒绝服务攻击和哈希冲突拒绝服务攻击。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值