DDOS攻击总结

DDOS简介

DDOS(Distributed Denial of Service),又称分布式拒绝服务攻击。骇客通过控制多个肉鸡或服务器组成的僵尸网络,对目标发送大量看似合法请求,从而占用大量网络资源,瘫痪网络,阻止用户对网络资源的正常访问。

DDOS危害

出口带宽堵死
游戏掉线导致客户流失
服务器连接数多,连接资源被耗尽
服务器卡、慢、死机、无法连接

攻击来源

高性能服务器配合发包软件
可联网的设备(如打印机、摄像头、电视等等)
移动设备(数量多,增长速度快,其高性能利于组建僵尸网络)
个人PC(存在漏洞的PC或一些黑客迷自愿成为DDOS一员)
骇客控制的僵尸网络(僵尸网络又分为IRC型、HTTP型、P2P型)

DDOS原理及分类

消耗资源分类

DDOS按消耗的资源类型可分三类:网络带宽资源、系统资源、应用资源。

  1. 网络带宽资源: 直接攻击、反射攻击、攻击链路

    • 直接攻击

      使用大量受控主机直接向攻击目标发送大量数据包,达到拒绝服务的目的。 常见的有ICMP/IGMP flood ,UDP flood

    • 反射攻击

      攻击者伪装成受害人,欺骗路由器或服务器产生大量响应,进而攻击受害者; ACK应答、DNS响应数据、NTP及SNMP等协议的响应数据可以成为攻击方式。

    • 攻击链路

      攻击的目标不是互联网端点的服务器的带宽资源,而是骨干网上的链路的带宽资源

  2. 系统资源DDOS 人为增加连接资源进行消耗和占用,阻止正常连接的建立,从而达到拒绝服务的目的。

    • 攻击TCP链接

      SYN flood短时间内产生大量的TCP半开连接,实现攻击

    • 攻击SSL链接

      安全套接层SSL协议密钥协商、加密和解密过程会消耗大量的系统资源,也成了攻击目标。 攻击者需要让服务器不停的去解密和验证,就能够消耗服务器计算资源。

  3. 应用资源DDOS 由于DNS和WEB服务的广泛性和重要性,这两种服务也就成了DDoS的主要目标。

    • 攻击DNS服务

      DNS query与DNS NXDOMAIN

    • 攻击Web服务

      大量正常HTTP请求

      不完整的HTTP请求

      慢速的HTTP长连接

      构造恶意的HTTP请求

攻击报文特征分类

根据报文特征可分为:畸形报文、传输层DDoS攻击、WEB应用DDoS攻击、DNS DDoS攻击、连接型DDoS攻击。

畸形报文

非标准的报文格式,有些机器解析这些报文时耗时很大,甚至出错,更甚至崩溃。大量的这种报文对目标机器构成很大威胁。 有以下畸形包种类:frag flood,smurf,land flood攻击,IP畸形包、TCP畸形包、UDP畸形包等。

  • frag flood:如果发送总长度超过65535字节的IP碎片,一些老的系统内核在处理的时候就会出现问题,导致崩溃或拒绝服务。如果分片之间偏移量经过精心构造,一些系统就无法处理。
  • smurf:修改目的地址,并发送ICMP echo广播报文到一个网络中,此网络中的所有机器都发送ICMP echo-reply到目的地址机器,此机器遭到攻击。
  • land flood:源、目的IP相同的IPv4报文,一个特别打造的SYN包中的源地址和目标地址都被设置成某一个服务器地址,这时将导致接受服务器向它自己的地址发送SYN-ACK消息,结果这个地址又发回ACK消息并创建一个空连接,每一个这样的连接都将保留直到超时掉。
  • IP畸形包:数据包中的总长度、版本等错误。
  • TCP畸形包:构造的TCP SYN/SYN-ACK里的option和payload有错误,导致协议栈解析错误。
  • UDP畸形包:包长度和payload有错误。

传输层DDoS攻击

通过大流量的方式对目标机器造成攻击。有以下攻击类型:SYN flood,SYN-ACK flood,ACK flood,FIN/RST flood,UDP flood,ICMP flood(这个属于网络层)等。

  • SYN flood:一个用户向服务器发送SYN报文后,如果服务器在发出SYN-ACK报文后无法收到客户端ACK报文,这种情况下服务器端一般会重发,并等待一段时间后丢弃这个未完成的连接,这段时间的长度我们称为SYN timeout,一般来说这个时间是分钟的数量级(大约为30秒到2分钟)。一个用户出现异常导致服务器的一个线程等待1分钟并不是什么很大的问题,但如果有一个恶意的攻击者大量的模拟这种情况,服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源。即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行SYN-ACK的重试。
  • SYN-ACK flood:SYN-ACK报文出现在第二次握手中,是用来确认第一次握手的。一方收到SYN-ACK报文后,首先会判断该报文是不是属于三次握手范畴之内的报文。如果都没有进行第一次握手就直接收到了第二次握手的报文,那么就会向对方发送RST报文,告知对方其发来报文有误,不能建立连接。SYN-ACK Flood攻击正是利用了这一点,攻击者利用工具或者操纵僵尸主机,向目标服务器发送大量的SYN-ACK报文,这些报文都属于凭空出现的第二次握手报文,服务器忙于回复RST报文,导致资源耗尽,无法响应正常的请求。
  • ACK flood:在收到一个ACK报文时,如果目的端口未开放,系统会直接向源IP发送RST报文。如果端系统的相关端口是对外开放的,那么其在收到ACK报文时,首先会检查这个ACK报文是否属于TCP连接表中的一个已有连接(这个过程会对端系统主机CPU资源造成一定的消耗),如果是的话,则正常处理,如果不属于任何一个已有连接,那么系统会向源IP发送RST报文。
  • FIN/RST flood:TCP交互过程中还存在FIN和RST报文,FIN报文用来关闭TCP连接,RST报文用来断开TCP连接。这两种报文也可能会被攻击者利用来发起DDoS攻击,导致目标服务器资源耗尽,无法响应正常的请求。
  • UDP flood:利用大量UDP小包冲击DNS服务器或Radius认证服务器、流媒体视频服务器。攻击者发送大量的伪造源IP地址的小UDP包,因为是无连接性的协议,所以只要开了一个UDP的端口提供相关服务的话,那么就可以针对相关的服务进行攻击。
  • ICMP flood:通过向目标发送大量的大包。

Web应用DDoS攻击

针对WEB应用的DDoS攻击类型可分为:HTTP GET flood, HTTP POST flood, CC攻击等。

  • HTTP GET flood:攻击者利用攻击工具或者操纵僵尸主机,向目标服务器发起大量的HTTP GET报文,请求服务器上涉及数据库操作的URI或其它消耗系统资源的URI,造成服务器资源耗尽,无法响应正常请求。
  • HTTP POST flood:攻击者利用攻击工具或者操纵僵尸主机,向目标服务器发起大量的HTTP POST报文,消耗服务器资源,使服务器无法响应正常请求,这就是HTTP POST Flood攻击。
  • CC攻击:CC攻击利用代理服务器向网站发送大量需要较长计算时间的URL请求,如数据库查询等,导致服务器进行大量计算而很快达到自身的处理能力而形成DOS,而攻击者一旦发送请求给代理后就主动断开连接,因为代理并不因为客户端这边连接的断开就不去连接目标服务器,因此攻击机的资源消耗相对很小,而从目标服务器看来,来自代理的请求都是合法的。

DNS DDoS攻击

域名作为广大民众访问互联网的起点和入口,是全球互联网通信的基础。域名解析系统作为承载全球亿万域名正常使用的系统,是互联网的基础设施。而域名系统又是一种公开服务,很容易被黑客作为攻击的对象。域名系统的故障会导致互联网陷入瘫痪,所以保护域名系统也变得至关重要。DNS DDoS攻击类型有:DNS Request Flood、DNS Reply Flood和缓存投毒等。

  • DNS Request Flood:黑客伪造客户端源IP发送大量的DNS请求报文,造成DNS request flood攻击。DNS request flood是当前最常见的DNS攻击,这类攻击可以针对缓存服务器,也可以针对授权服务器。
  • DNS Reply Flood:DNS服务器收到DNS reply报文时,不管自己有没有发出去过解析请求,都会对这些DNS reply报文进行处理。DNS reply flood就是黑客发送大量的DNS reply报文到DNS缓存服务器,导致缓存服务器因为处理这些DNS reply报文而资源耗尽,影响正常业务。
  • DNS反射攻击:DNS反射攻击是DNS reply flood的一种变异,顾名思义,黑客伪造源地址发起request,reply都返回到目标机器上。
  • DNS缓存投毒:缓存投毒攻击就是黑客伪造了恶意的DNS reply报文,导致缓存服务器无意中将恶意的域名和IP地址映射关系存储到自己的缓存中。当客户端再通过缓存服务器请求这个域名解析时,就会被指向恶意主机。

连接型DDoS攻击

连接型攻击类型分为:TCP连接耗尽攻击,TCP慢速连接攻击,连接耗尽攻击,loic, hoic, slowloris, Pyloris, xoic等慢速攻击。

  • TCP连接耗尽攻击:攻击者与被攻击目标完成三次握手后,立刻发送FIN或RST报文,释放本端连接,同时快速发起新的连接,以此来消耗被攻击目标的系统资源。
  • TCP慢速连接攻击:攻击者与被攻击目标完成三次握手后,发送很少的报文来维持连接状态,通过这种异常的TCP连接来消耗被攻击目标的系统资源。攻击者还会使用一些其他的攻击手段,比如构造大量的并发连接、设置很小的TCP窗口、发送重传报文等,其目的都是消耗被攻击目标的系统资源。

参考:

原文地址:https://www.cnblogs.com/lktop/p/13763071.html