DoS攻击和DDoS攻击

介绍

        Dos攻击

        DoS是Denial of Service的简称,即拒绝服务。单一的DoS攻击一般是采用一对一方式的,通过制造并发送大流量无用数据,造成通往被攻击主机的网络拥塞,耗尽其服务资源,致使被攻击主机无法正常和外界通信。

        带宽攻击:以极大的通信量冲击网络,使得所有可用网络资源都被消耗殆尽,最后导致合法的用户请求无法通过。

        连通性攻击:用大量的连接请求冲击计算机,使得所有可用的操作系统资源都被消耗殆尽,最终计算机无法再处理合法用户的请求。

        DDoS攻击

        攻击者利用更多的傀儡机来发起进攻,比从前更大的规模来进攻受害者,这就是DDoS(Distributed Denial of Service)攻击。另外,DDoS攻击不仅能攻击计算机,还能攻击路由器,因为路由器是一台特殊类型的计算机。 

        僵尸电脑(Zombie computer),简称“僵尸(zombie)”,有些人称之为“肉鸡”,接入互联网的电脑被病毒感染后,受控于黑客,可以随时按照黑客的指令展开拒绝服务(DoS)攻击或发送垃圾信息。通常,一部被侵占的电脑只是僵尸网络里面众多中的一环,而且会被用来去运行一连串的或远端控制的恶意程序。多台僵尸电脑形成僵尸网络。

常见Dos攻击方式

死亡之ping (pingofdeath)DengKelen

        ICMP(InternetControlMessageProtocol,Internet控制信息协议)在Internet上用于错误处理和传递控制信息。最普通的ping程序就是这个功能。而在TCP/IP的RFC文档中对包的最大尺寸都有严格限制规定,许多操作系统的TCP/IP协议栈都规定ICMP包大小为64KB,且在对包的标题头进行读取之后,要根据该标题头里包含的信息来为有效载荷生成缓冲区。

        "PingofDeath"就是故意产生畸形的测试Ping(PacketInternetGroper)包,声称自己的尺寸超过ICMP上限,也就是加载的尺寸超过64KB上限,使未采取保护措施的网络系统出现内存分配错误,导致TCP/IP协议栈崩溃,最终接收方宕机。

SYN洪水攻击(SYNflood)

         属于DoS攻击的一种,它利用TCP协议缺陷,通过发送大量的半连接请求,耗费CPU和内存资源。SYN攻击除了能影响主机外,还可以危害路由器、防火墙等网络系统,事实上SYN攻击并不管目标是什么系统,只要这些系统打开TCP服务就可以实施。服务器接收到连接请求(SYN=i )将此信息加入未连接队列,并发送请求包给客户端( SYN=j,ACK=i+1 ),此时进入SYN_RECV状态。当服务器未收到客户端的确认包时,重发请求包,一直到超时,才将此条目从未连接队列删除。通常,客户端在短时间内伪造大量不存在的IP地址,向服务器不断地发送SYN包,服务器回复确认包,并等待客户的确认,由于源地址是不存在的,服务器需要不断的重发直至超时,这些伪造的SYN包将长时间占用未连接队列,正常的SYN 请求被丢弃,目标系统运行缓慢,严重者引起网络堵塞甚至系统瘫痪。

UDP泛洪(UDPflood)

        UDPflood攻击:如今在Internet上UDP(用户数据报协议)的应用比较广泛,很多提供WWW和Mail等服务设备通常是使用Unix的服务器,它们默认打开一些被黑客恶意利用的UDP服务。如echo服务会显示接收到的每一个数据报,而原本作为测试功能的chargen服务会在收到每一个数据包时随机反馈一些字符。UDPflood假冒攻击就是利用这两个简单的TCP/IP服务的漏洞进行恶意攻击,通过伪造与某一主机的Chargen服务之间的一次的UDP连接,回复地址指向开着Echo服务的一台主机,通过将Chargen和Echo服务互指,来回传送毫无用处且占满带宽的垃圾数据,在两台主机之间生成足够多的无用数据流,这一拒绝服务攻击飞快地导致网络可用带宽耗尽。

Land(LandAttack)攻击

        在land攻击中,黑客利用一个特别打造的SYN包--它的原地址和目标地址都被设置成某一个服务器地址进行攻击。此举将导致接受服务器向它自己的地址发送SYN-ACK消息,结果这个地址又发回ACK消息并创建一个空连接,每一个这样的连接都将保留直到超时,在Land攻击下,许多UNIX将崩溃,NT变得极其缓慢(大约持续五分钟)。

 泪滴攻击

        利用在TCP/IP协议栈实现中信任IP碎片中的包的标题头所包含的信息来实现自己的攻击。IP分段含有指示该分段所包含的是原包的哪一段的信息,某些TCP/IP协议栈(例如NT在servicepack4以前)在收到含有重叠偏移的伪造分段时将崩溃。

IP欺骗

        这种攻击利用TCP协议栈的RST位来实现,使用IP欺骗,迫使服务器把合法用户的连接复位,影响合法用户的连接。假设有一个合法用户(100.100.100.100)已经同服务器建了正常的连接,攻击者构造攻击的TCP数据,伪装自己的IP为100.100.100.100,并向服务器发送一个带有RST位的TCP数据段。服务器接收到这样的数据后,认为从100.100.100.100发送的连接有错误,就会清空缓冲区中已建立好的连接。这时,合法用户100.100.100.100再发送合法数据,服务器就已经没有这样的连接了,该用户就被拒绝服务而只能重新开始建立新的连接。

常见DDoS攻击方式

        消耗网络带宽资源

        ICMP Flood (ICMP洪水攻击):ICMP:Internet Control Message Protocol (网络控制消息协议),是TCP/IP协议簇的一个子协议,主要用于在IP主机、路由器之间传递控制消息,进行诊断或控制,以及响应IP操作中的错误。ICMP Flood:指攻击者通过受控主机(僵尸网络)向目标发送大量的ICMP请求,以消耗目标的带宽资源。

        UDP Flood (UDP洪水攻击):攻击者通过受控主机向目标发送大量的UDP请求,以达到拒绝服务器的目的。
        小包:以太网传输数据值最小数据包,即64字节的数据包,在相同流量中,数据包越小,使用数量也就越多。同时,由于网络设备需要对数据包进行检查,因此使用小包可增加网络设备处理数据包的压力,容易产生处理缓慢、传输延迟等拒绝服务效果。
        大包:大小超过了以太网最大传输单元(1500字节以上的数据包)的数据包,使用大包攻击能够严重消耗网络带宽资源。在接收到大包后需要进行分片和重组,因此会消耗设备性能,造成网络拥堵。

        消耗系统资源

        TCP Flood:在Tcp三次握手中,服务请求会建立并保存TCP连接信息,通常保存在连接表内,但是这个表是有大小限制的,一旦服务器接收的连接数超过了连接表的最大存储量,就无法接收新的连接,从而达到拒绝服务的目的。

         SYN Flood:在三次握手过程中,如果在服务器端返回SYN+ACK报文后,客户端由于某些原因没有对其进行确认应答,那么服务器端会进行重传,并等待客户端进行确认,直到TCP连接超时。通过受控主机向目标发送大量的TCP SYN报文, 使服务器打开大量的半开连接,由于连接无法很快结束,因此连接表将被占满,无法建立新的TCP连接,从而影响正常业务连接的建立,造成拒绝服务。
        攻击者会将SYN报文的源IP地址伪造成其他IP地址或不存在的IP地址,这样被攻击者会将应答发送给伪造地址,占用连接资源,同时达到隐藏攻击来源的目的。

        消耗应用资源

        HTTP Flood (CC攻击):攻击者利用受控主机对目标发起大量的HTTP请求,要求Web服务器进行处理,超量的请求会占用服务器资源,一旦目标请求饱和,并且无法响应正常流量,就会造成了拒绝服务攻击。HTTP Flood攻击有以下两种类型:

        HTTP GET攻击:多台计算机或设备向目标服务器发送图像、文件或某些资产的多个请求,当目标服务器被传入的请求和响应所“淹没”时,来自合法流量源的其他请求将无法得到正常回复。
        HTTP POST攻击:在网站上提交表单时,服务器必须处理传入的请求并将数据推送到持久层(通常是数据库)中。与发送POST请求所需的处理能力和带宽相比,处理表单数据和运行必要的数据库命令的过程相对密集。这种攻击利用相对资源消耗的差异,通过向目标服务器发送大量请求的方式,使目标服务器的容量达到饱和并拒绝服务。

        慢速攻击:HTTP慢速攻击是利用HTTP现有合法机制,在建立了与HTTP服务器的连接后,尽量长时间保持该连接,不释放,达到对HTTP服务器的攻击。由于攻击者不需要很多资源即可启动,因此可以使用单台计算机成功发起慢速攻击。慢速攻击以Web服务器为目标,通过慢速请求捆绑每个线程,从而防止真正的用户访问该服务。这个过程通过非常缓慢地传输数据来完成,但同时又可防止服务器超时。常见的攻击有两种:
  Slow POST: 攻击者发送Post报文向服务器请求提交数据,将总报文长度设置为一个很大的数值,但是在随后的数据发送中,每次只发送很小的报文,这样导致服务器端一直等待攻击者发送数据。

        Slow headers: 攻击者通过GET或者POST向服务器建立连接,但是HTTP头字段不发送结束符,之后发送其他字段进行保活。服务器会一直等待头信息中结束符而导致连接始终被占用。

DDoS漏洞的检测

根据异常情况分析:

        1、查看防火墙、流量监控设备、网络设备等是否出现安全告警或大量异常数据包。

        2、查看是否存在特定的服务、页面请求,使服务器/主机无法及时处理所有正常请求。

        3、查看是否有大量等待的TCP连接。

        4、排查服务器/主机与恶意IP地址是否建立异常连接,或是否存在大量异常连接。

使用DDoS检测工具:
        当攻击者想使其攻击阴谋得逞时,首先要扫描系统漏洞,目前市面上的一些网络入侵检测系统,可以杜绝攻击者的扫描行为。另外,一些扫描器工具可以发现攻击者植入系统的代理程序,并可以把它从系统中删除。

DDoS防御方法

        1.过滤不必要的服务和端口
        2.异常流量的清洗过滤:通过DDoS硬件防火墙对异常流量的清洗过滤,通过数据包的规则过滤、数据流指纹检测过滤、数据包内容定制过滤等技术能准确判断外来访问流量是否正常,进一步将异常流量禁止过滤。

CC攻击防御

        1.把网站做成静态页面:把网站尽可能做成静态页面,能大大提高抗攻击能力。
        2.存在多站的服务器上,严格限制每一个站允许的IP连接数和CPU的使用时间。
        3.在编码时注意代码的安全,有时候一个BUG被别人利用后会对你整个网站带来影响。

你可能感兴趣的:(攻击技术,网络,服务器,系统安全,安全,web安全)