文章目录

  • 一、DoS攻击
    • 1、DoS攻击简介
    • 2、DoS攻击分类
      • 2.1、按攻击的对象分类
      • 2.2、按攻击目标分类
      • 2.3、按攻击方式分类
      • 2.4、按受害者类型分类
      • 2.5、按攻击是否针对受害者分类
      • 2.6、按攻击地点分类
    • 3、常见DoS攻击
      • 3.1、Land程序攻击
      • 3.2、SYN Flood攻击
      • 3.2、IP欺骗DoS攻击
      • 3.4、Smurf攻击
      • 3.5、Ping of Death
      • 3.6、Teardrop攻击
      • 3.7、WinNuke攻击
  • 二、DDoS攻击
    • 1、DDoS攻击简介
    • 2、DDoS攻击常见工具
      • 2.1、Trinoo
      • 2.2、TFN
      • 2.3、TFN2K
      • 2.4、Stacheldraht
    • 3、DDoS攻击方法
      • 3.1、消耗网络带宽资源
        • 3.1.1、ICMP Flood (ICMP洪水攻击)
        • 3.1.2、UDP Flood (UDP洪水攻击)
      • 3.2、消耗系统资源
        • 3.2.1、TCP Flood
        • 3.2.2、 SYN Flood
      • 3.3、消耗应用资源
        • 3.3.1、HTTP Flood (CC攻击)
        • 3.3.2、慢速攻击
      • 3.4、消耗网络带宽资源的其他DDoS
        • 3.4.1、NTP Reflection Flood
        • 3.4.2、DNS Reflection Flood
        • 3.4.3、SSDP Reflection Flood
        • 3.4.4、SNMP Reflection Flood
    • 4、DDoS漏洞的检测
  • 三、拒绝服务攻击的防御
    • 1、攻击前的防御阶段
    • 2、攻击时的缓解阶段
    • 3、攻击后的追溯总结阶段

一、DoS攻击

1、DoS攻击简介

DoS (Denial of Service, 拒绝服务)是指阻止或拒绝合法使用者存取网络服务器。造成DoS 的攻击行为被称为DoS攻击,将大量的非法申请封包传送给指定的目标主机,其目的是完全消耗目标主机资源,使计算机或网络无法提供正常的服务。

DoS攻击的原理是借助网络系统或协议的缺陷,以及配置漏洞进行网络攻击,使网络拥塞、系统资源耗尽或系统应用死锁,妨碍目标主机和网络系统对正常用户服务请求的及时响应,造成服务的性能受损,甚至导致服务中断。

最常见的DoS攻击包括计算机网络带宽攻击和连通性攻击。带宽攻击是指以极大的通信量冲击网络,使得所有可用的网络资源都被消耗殆尽,最后导致合法的用户请求无法通过。连通性攻击是指用大量的连接请求冲击计算机,使得所有可用的操作系统资源都被消耗殆尽,最终计算机无法再处理合法用户的请求。

DoS攻击的基本过程是首先攻击者向服务器发送众多的带有虚假地址的请求,服务器发送回复信息后等待回传信息。由于地址是伪造的,所以服务器一直等不到回传的消息,分配给这次请求的资源就始终没有被释放。当服务器等待一定的时间后,连接会因超时而被切断,攻击者会再度传送一批新的请求,在这种反复发送伪地址请求的情况下,服务器资源最终会被耗尽,而导致服务中断,如下图所示:


2、DoS攻击分类

2.1、按攻击的对象分类

拒绝服务攻击可以是"物理的"(又称"硬件的"),也可以是"逻辑的"(又称“软件的")。
1、物理形式的攻击,如偷窃、破坏物理设备,破坏电源等。
2、逻辑的攻志,如通过软件破坏网络、系统资源与服务,如邮件服务、DNS服务、CPU资源等。

2.2、按攻击目标分类

按攻击的目标,拒绝服务攻击又可分为节点型和网络连接型。
1、节点型:
旨在消耗节点(主机Host) 资源。节点型又可以进一步细分为主机型和应用型。
●主机型攻击:其目标主要是主机中的公共资源,如CPU、磁盘等,使得主机对所有的服务都不能响应。
●应用型攻击:其目标是网络中特定的应用,如邮件服务、DNS服务、Web服务等。受攻击时,受害者使用的其他服务可能不受影响或者受影响的程度较小(与受攻击的服务相比而言)。
2、网络连接型:旨在消耗网络连接和带宽。

2.3、按攻击方式分类

按照攻击方式,拒绝服务攻击可以分为资源消耗、服务中止和物理破坏。
1、资源消耗:指攻击者试图消耗目标的合法资源,如网络带宽、内存和磁盘空间、CPU使用率等。根据资源类型的不同,资源消耗可分带宽耗尽和系统资源耗尽两类。带宽耗尽攻击其本质是攻击者通过放大等技巧,消耗掉目标网络的所有可用带宽。
系统资源耗尽攻击:指对系统内存、CPU或程序中的其他资源进行消耗,使其无法满足正常提供服务的需求。SYN Flood攻击即是通过向目标服务发送大量的数据包,造成服务的连接队列耗尽,无法再为其他正常的连接请求提供服务。
2、服务中止:指攻击者利用服务中的某些缺陷导致服务崩溃或中止。
3、物理破坏:指雷击、电流、水、火等以物理接触的方式导致的拒绝服务攻击。

2.4、按受害者类型分类

按受害者类型,拒绝服务攻击可以分为服务器端拒绝服务攻击和客户端拒绝服务攻击。
1、服务器端拒绝服务攻击:指攻击的目标是特定的服务器,使之不能提供服务(或者不能向某些客户端提供某种服务),如攻击一个Web服务器使之不能访问。
2、客户端拒绝服务攻击:针对特定的客户端,使之不能使用某种服务,如游戏、聊天室中的“踢人”,也就是使某个特定的用户不能登录游戏系统或聊天室中,使之不能使用系统的服务。

2.5、按攻击是否针对受害者分类

大多数的拒绝服务攻击(无论从种类还是发生的频率角度)是针对服务器的,针对客户端的攻击一般发生得少些,同时因为涉及面小,其危害也会小很多。按攻击是否直接针对受害者,拒绝服务攻击又可以分为直接拒绝服务攻击和间接拒绝服务攻击,如要对某个E-mail账号实施拒绝服务攻击,直接对该账号用邮件炸弹攻击就属于直接攻击为了使某个邮件账号不可用,攻击邮件服务器而使整个邮件服务器不可用就是间接攻击。

2.6、按攻击地点分类

拒绝服务攻击按攻击地点可以分为本地攻击和远程(网络)攻击。本地攻击是指不通过网络,直接对本地主机的攻击,远程攻击则必须通过网络连接。由于本地攻击要求攻击者与受害者处于同一地,这对攻击者的要求太高,通常只有内部人员能够做到。本地攻击通常可以通过物理安全措施及对内部人员的严格控制予以解决。


3、常见DoS攻击

拒绝服务攻击的攻击者想尽办法让目标机器停止提供服务或资源访问,这些资源包括磁盘空间、内存、进程,甚至网络带宽,从而阻止正常用户的访问。只要能够对目标造成麻烦,使某些服务被暂停甚至主机死机,都属于拒绝服务攻击。
攻击者进行拒绝服务攻击,实际上是让服务器实现两种效果一是迫使服务器的缓冲区满,不接收新的请求;二是使用IP欺骗,迫使服务器把合法用户的连接复位,影响合法用户的连接。

3.1、Land程序攻击

Land程序攻击是利用向目标主机发送大量的源地址与目标地址相同的数据包,造成目标主机解析Land包时占用大量的系统资源,从而使网络功能完全瘫痪的攻击手段。其方法是将一个特别设计的SYN包中的源地址和目标地址都设置成某个被攻击服务器的地址,这样服务器接收到该数据包后会向自己发送一个SYN- ACK回应包,SYN- ACK又引起一个发送给自己的ACK包,并创建个空连接。 每个这样的空连接都将暂存在服务器中,当队列足够 长时,正常的连接请求将被丢弃,造成服务器拒绝服务的现象。

3.2、SYN Flood攻击

SYN Flood是当前最流行的DoS (拒绝服务攻击)与DDoS (Distributed Denial of Service,分布式拒绝服务攻击)的方式之一,这是一种利用TCP缺陷,发送大量伪造的TCP连接请求,使被攻击方资源耗尽(CPU满 负荷或内存不足)的攻击方式。其实现过程如下。
1、攻击者向被攻击服务器发送个包含SYN标志的TCP报文, SYN会指明客户端使用的端口及TCP连接的初始序号,这时同被攻击服务器建立了第1次握手。
2、受害服务器在收到攻击者的SYN后,将返回一个SYN+ACK的报文,表示攻击者的请求被接受,同时TCP序号被加1,ACK即确认,这样就同被攻击服务器建立了第2次握手。
3、攻击者也返回一个确认报文ACK给受害服务器,同样TCP序列号被加1,到此一个TCP连接完成,第3次握手完成。

在TCP连接的3次握手中,假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第3次握手无法完成),这种情况下服务器端一般会重试(再次发送SYN+ACK给客户端),并等待一段时间后丢弃这个未完成的连接。这段时间的长度称为SYN Timeout,,一般来说,这个时间是分钟的数量级(大约为30秒至2分钟)。一个用户出现异常导致服务器的一个线程等待1分钟并不是什么很大的问题,但如果有一个恶意的攻击者大量模拟这种情况(伪造IP地址),服务 器端将为了维护一个非常大的半连接列表而消耗非常多的资源。即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断地对这个列表中的IP进行SYN+ACK的重试。实际上如果服务器的TCP /IP栈不够强大,最后的结果往往是堆栈溢出崩溃即使服务器端的系统足够强大,服务器端也将忙于处理攻击者伪造的TCP连接请求,而无暇理睬客户的正常请求(毕竟客户端的正常请求比率非常小),此时从正常客户的角度来看,服务器失去响应,这种情况就称作服务器端受到了SYN Flood攻击(SYN洪水攻击)。防攻击方法是当接收到大量的SYN数据包时,通知防火墙阻断连接请求或丢弃这些数据包,并进行系统审计。

3.2、IP欺骗DoS攻击

这种攻击利用RST位来实现。假设现在有一个合法用户(61.61.61.61) 已经同服务器建立了正常的连接,攻击者构造攻击的TCP数据,伪装自己的IP为61.61.61.61,并向服务器发送一个带有RST位的TCP数据段。服务器接收到这样的数据后,认为从61.61.61.61发 送的连接有错误,就会清空缓冲区中已经建立好的连接。这时,如果合法用户61.61.61.61再发送合法数据,服务器就已经没有这样的连接了,该用户就必须重新开始建立连接。攻击时,攻击者会伪造大量的IP地址,向目标发送RST数据,使服务器不为合法用户服务,从而实现了对受害服务器的拒绝服务攻击。

3.4、Smurf攻击

Smurf攻击结合IP欺骗和ICMP回复,是一种放大效果的ICMP攻击方式,其方法是攻击者伪装成被攻击者向某个网络上的广播设备发送请求,该广播设备会将这个请求转发到该网络的其他广播设备,导致这些设备都向被攻击者发出回应,从而达到以较小代价引发大量攻击的目的。
例如,攻击者冒充被攻击者的IP,使用ping来对一个C类网络的广播地址发送ICMP包,该网络上的254台主机就会对被攻击者的IP发送ICMP回应包,这样攻击者的攻击行为就被放大了254倍。

3.5、Ping of Death

这种攻击通过发送大于65536字 节的ICMP包造成操作系统内存溢出、系统崩溃、重启、内核失败等后果,从而达到攻击的目的。通常不可能发送大于65536个字节的ICMP包, 但可以把报文分割成片段,然后在目标主机上重组,最终会导致被攻击目标缓冲区溢出。
防止系统受到Ping of Death攻击的方法与防范Smurf和Fraggle攻击是相同的,可以在防火墙上过滤掉ICMP报文,或者在服务器上禁止ping,并且只在必要时才打开ping服务。

3.6、Teardrop攻击

泪滴(Teardrop) 攻击是基于UDP的病态分片数据包的攻击方法,利用在TCP/IP堆栈中实现信任IP碎片的包的标题头所包含的信息来实现自己的攻击。IP分段含有指明该分段所包含的是原包的哪一段的信息,某些操作系统TCP/IP (包括Service pack 4以前的Windows NT)在收到含有重叠偏移的伪造分段时将会出现系统崩溃、重启等现象。
检测方法是对接收到的分片数据包进行分析,计算数据包的片偏移量(Offset) 是否有误。可以通过添加系统补丁程序,丢弃收到的病态分片数据包,并对这种攻击进行审计等方法预防该攻击。

3.7、WinNuke攻击

WinNuke攻击又称带外传输攻击,它的特征是攻击目标端口,被攻击的目标端口通常是139、138、137、113、53, 且URG位设为“1”,即紧急模式。可以通过判断数据包目标端口是否为139、138、137等,并判断URG位是否为“1”来检测该攻击。
适当配置防火墙设备或过滤路由器就可以防止这种攻击手段(丢弃该数据包),并对这种攻击进行审计(记录事件发生的时间,源主机和目标主机的MAC地址和IP地址)。


二、DDoS攻击

1、DDoS攻击简介

分布式拒绝服务是种基于DoS的特殊形式的拒绝服务攻击,是一种分布、 协作的大规模攻击方式,主要瞄准比较大的站点,像商业公司、搜索引擎或政府部门门的站点。DoS攻击只要一台单机和一个Modem就可实现;而DDoS攻击是利用一批受控制的机器向一台机器发起攻击,这样来势迅猛的攻击令人难以防备,因此具有较大的破坏性。

DDoS攻击分为3层:攻击者、主控端和代理端,三者在攻击中扮演着不同的角色。
1、攻击者:
攻击者所用的计算机是攻击主控台,可以是网络上的任何一台主机,甚至可以是一个活动的便携机。攻击者操纵整个攻击过程,它向主控端发送攻击命令。
2、主控端:
主控端是攻击者非法侵入并控制的一些主机,这些主机还分别控制大量的代理主机。在主控端主机上安装了特定的程序,因此它们可以接收攻击者发来的特殊指令,并且可以把这些命令发送到代理主机上。
3、代理端:
代理端同样也是攻击者侵入并控制的一批主机,其上运行攻击器程序,接收和运行主控端发来的命令。代理端主机是攻击的执行者,真正向受害者主机发送攻击。

攻击者发起DDoS攻击的第一步, 就是寻找在Internet上有漏洞的主机,进入系统后在其上安装后门程序,攻击者入侵的主机越多,其攻击队伍就越壮大;第二步在入侵主机上安装攻击程序,其中一部分主机充当攻击的主控端,另一部分主机充当攻击的代理端,最后各部分主机各司其职,在攻击者的调遣下对攻击对象发起攻击。由于攻击者在幕后操纵,所以在攻击时不会受到监控系统的跟踪,身份不易被发现。


2、DDoS攻击常见工具

2.1、Trinoo

Trinoo的攻击方法是向被攻击目标主机的随机端口发出全零的4字节UDP包,在处理这些超出其处理能力的垃圾数据包的过程中,被攻击主机的网络性能不断下降,直到不能提供正常服务,乃至崩溃。

Trinoo对IP地址不进行修改,采用的通信端口如下:
1、攻击者主机到主控端主机:27665/TCP ;
2、主控端主机到代理端主机: 27444/UDP ;
3、代理端主机到主服务器主机: 31335/UDP;

2.2、TFN

TFN由主控端程序和代理端程序两部分组成,它主要采取的攻击方法为SYN风暴、ping风暴、UDP炸弹和SMURF,具有伪造数据包的能力。

2.3、TFN2K

TFN2K是由TFN发展而来的,在TFN所具有的特性上,TFN2K又新增些特性。它的主控端和代理端的网络通信是经过加密的,中间还可能混杂了许多虚假数据包,而TFN对ICMP的通信没有加密。攻击方法增加了Mix和Targa3,并且TFN2K可配置代理端进程端。

2.4、Stacheldraht

Stacheldraht也是从TFN派生出来的,因此它具有TFN的特性。此外,它增加了主控端代理端的加密通信能力,它对命令源作假,可以防范一些路由器的RFC 2267过滤。 Stacheldraht中有一个内嵌的代理升级模块,可以自动下载并安装最新的代理程序。


3、DDoS攻击方法

DDoS攻击通过利用分布式的客户端,向攻击目标发送大量请求,耗尽目标资源,从而造成目标服务不可用。常见的DDoS攻击方法主要包括:消耗网络带宽资源、消耗系统资源、消耗应用资源

3.1、消耗网络带宽资源

攻击者主要利用受控主机发送大量的网络数据包,占满攻击目标的带宽,使得正常请求无法达到及时有效的响应。

3.1.1、ICMP Flood (ICMP洪水攻击)

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

ICMP Flood攻击原理图:

3.1.2、UDP Flood (UDP洪水攻击)

UDP Flood:攻击者通过受控主机向目标发送大量的UDP请求,以达到拒绝服务器的目的,

UDP Flood攻击原理图:

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


3.2、消耗系统资源

消耗系统资源攻击主要通过对系统资源进行消耗导致无法正常连接。此类攻击主要是因为TCP安全性设计缺陷而引起的。
TCP:Transmission Control Protocol (传输控制协议),是一种面向连接的、可靠的、基于字节流的传输层通信协议,TCP是在不可靠的互联网络上提供可靠的端到端字节流的传输协议。由于协议在最初的设计过程中没有对安全性进行周密考虑,因此在协议中存在安全缺陷。TCP工作包括三个阶段:建立连接、数据传输、终止连接。

3.2.1、TCP Flood

在建立连接时,TCP使用三次握手协议建立连接。

TCP三次握手的过程图:

1、客户端发送SYN(seq=x)报文,给服务器端,进入SYN_SEND状态。(该数据包中,初始序列号(ISN) 是客户端随机产生的一个值,即x,确认号ACK=0;);
2、 服务器端收到SYN报文,回应一个SYN (seq=y)ACK(ACK=x+1)报文,进入SYN_RECV状态。(该数据包中,初始序列号(ISN) 是服务器随机产生的一个值,即y,确认号ACK是客户端的初始序列号加上1,即(x+1);
3、客户端收到服务器端的SYN报文,回应一个ACK(ACK=y+1)报文,进入Established状态。(该数据包中,序列号是上一个同步请求数据包中的确认号值加上1,即x+1,确认号是服务器的初始序列号加上1,即y+1。)

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

TCP Flood攻击原理图:

3.2.2、 SYN Flood

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

SYN Flood攻击原理图:


3.3、消耗应用资源

消耗应用资源攻击通过向应用提交大量消耗资源的请求,以达到拒绝服务的目的。

3.3.1、HTTP Flood (CC攻击)

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

HTTP Flood攻击原理图:

HTTP Flood攻击不仅会直接导致被攻击的Web前端响应缓慢,还会间接攻击到后端业务层逻辑,及更后端的数据库服务,增大它们的压力,甚至对日志存储服务器也会造成影响。

3.3.2、慢速攻击

HTTP慢速攻击是利用HTTP现有合法机制,在建立了与HTTP服务器的连接后,尽量长时间保持该连接,不释放,达到对HTTP服务器的攻击。与传统的攻击不同,慢速攻击依赖于慢速流量,主要针对应用程序或服务器资源。慢速攻击所需的带宽非常少,且难以缓解,因为其生成的流量很难与正常流量区分开。由于攻击者不需要很多资源即可启动,因此可以使用单台计算机成功发起慢速攻击。
慢速攻击以Web服务器为目标,通过慢速请求捆绑每个线程,从而防止真正的用户访问该服务。这个过程通过非常缓慢地传输数据来完成,但同时又可防止服务器超时。

常见的攻击有两种:
Slow POST: 攻击者发送Post报文向服务器请求提交数据,将总报文长度设置为一个很大的数值,但是在随后的数据发送中,每次只发送很小的报文,这样导致服务器端一直等待攻击者发送数据。

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


3.4、消耗网络带宽资源的其他DDoS

消耗网络带宽资源的其他DDoS:反射攻击和放大攻击
反射攻击的原理
攻击者并不直接攻击目标,而是利用互联网的某些特殊服务开放的服务器、路由器等设备(称为反射器),发送伪造请求,通过反射器对请求产生应答,反射攻击流量,同时达到隐藏攻击源的目的。由于攻击中涉及众多反射器的攻击形式,因此也称为分布式反射拒绝服务攻击(Distributed Reflection Denial of Service,DRDoS) 。
在进行反射攻击时,攻击者通过控制受控主机,发送大量目标IP指向作为反射器的服务器、路由器的数据包,同时将源IP地址伪造成攻击目标的IP地址。反射器在收到伪造的数据包时,会认为是攻击目标发送的请求,并发送响应的数据包给攻击目标。此时会有大量的响应数据包反馈给攻击目标,造成攻击目标带宽资源耗尽,从而产生拒绝服务。
发动反射攻击需要将请求数据包的源IP伪造成攻击目标的IP地址,这就需要使用无认证或者握手过程的协议。由于UDP协议是面向无连接性的协议,与TCP相比,其需要更少的错误检查和验证,因此,大部分的反射攻击都是基于UDP协议的网络服务进行的。

放大攻击的原理
利用请求和响应的不平衡性,以及响应包比请求包大的特点(放大流量),伪造请求包的源IP地址,将响应包引向攻击目标。结合反射攻击原理,如果反射器能够对网络流量进行放大,那么也可称这种反射器为放大器。放大攻击的规模和严重程度取决于放大器的网络服务部署的广泛性。如果某些网络服务不需要验证并且效果比较好,那么在互联网上部署的数量就会比较多,利用该服务进行攻击就能达到明显消耗带宽的效果。

常见的DRDoS攻击如下:

3.4.1、NTP Reflection Flood

NTP是Network Time Protocol (网络时间协议),指使用一组分布式客户端和服务器来同步一组网络时钟的协议。使用UDP协议,服务端口为123。

标准NTP服务提供了一个monlist功能,也被称为mon_ getlist,该功能主要用于监控NTP服务器的服务状况。某些版本NTP的服务器默认开启monlist命令功能,这条命令的作用是向请求者返回最近通过NTP协议与本服务器进行通信的IP地址列表,最多支持返回600条记录。也就是说,如果一台NTP服务器有超过600个IP地址使用过它提供的NTP服务,那么通过一次monlist请求,将收到600条记录的数据包。由于NTP服务使用UDP协议,因此攻击者可以伪造源发地址发起monlist请求,这将导致NTP服务器向被伪造的目标发送大量的UDP数据包,理论上这种恶意导向的攻击流量可以放大到伪造查询流量的100倍,并且该服务器的NTP服务在关闭或重启之前会一致保持这样的放大倍数。
NTP Reflection Flood攻击原理图:

3.4.2、DNS Reflection Flood

DNS主要用于域名与IP地址的相互转换,使用户可以更方便地访问互联网,而不用去记住机器读取的IP数据串。DNS请求通常通过UDP端口53发送到名称服务器。如果未使用扩展DNS,则DNS-UDP数据包允许的最大长度为512字节。

通常,DNS的响应数据包比查询数据包大,因此攻击者通过普通的DNS查询就能发动放大攻击,将流量放大。

攻击者会将僵尸网络中的被控主机伪装成被攻击主机,设置特定的时间点连续向多个允许递归查询的DNS服务器发送大量DNS服务请求,然后让其提供应答服务,应答数据经DNS服务器放大后发送到被攻击主机,形成大量的流量攻击。攻击者发送的DNS查询数据包的大小一-般为60字节左右,而查询返回的数据包的大小通常在3000字节以上,因此放大倍数能够达到50倍以上,放大效果是惊人的。
DNS Reflection Flood攻击原理图:

3.4.3、SSDP Reflection Flood

SSDP是Simple Service Discovery Protocol (简单服务发现协议),一种应用层协议,是构成通用即插即用(UPnP) 技术的核心协议之一。互联网中的家用路由器、网络摄像头、打印机、智能家电等设备,普遍采用UPnP作为网络通信协议。SSDP通常使用UDP端口1900。

利用SSDP进行反射攻击的原理与利用DNS、NTP的类似,都是通过伪造攻击者的IP地址向互联网中的大量智能设备发起SSDP请求,接收到请求的智能设备根据源IP地址返回响应数据包。SSDP Reflection Flood攻击原理图:

3.4.4、SNMP Reflection Flood

SNMP是Simple Network Management Protocol (简单网络管理协议),主要用于网络设备的管理。在各种网络设备中都能看到默认启用的SNMP服务,很多安装SNMP的设备都采用默认通信字符串。攻击者向广泛存在并开启SNMP服务的网络设备发送GetBulk请求,并使用默认通信字符串作为认证凭据,将源IP地址伪造成被攻击者的IP地址,设备在收到请求后会将响应结果发送给被攻击者。大量响应数据涌向目标,造成目标网络的拥堵。
SNMP Reflection Flood攻击原理图:


4、DDoS漏洞的检测

根据异常情况分析:

1、查看防火墙、流量监控设备、网络设备等是否出现安全告警或大量异常数据包。
2、查看是否存在特定的服务、页面请求,使服务器/主机无法及时处理所有正常请求。
3、查看是否有大量等待的TCP连接。
4、排查服务器/主机与恶意IP地址是否建立异常连接,或是否存在大量异常连接。

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


三、拒绝服务攻击的防御

1、攻击前的防御阶段

拒绝服务攻击的防护一般包含两个方面:
1、针对不断发展的攻击形式,尤其是采用多种欺骗技术的技术,能够有效地进行检测;
2、降低对业务系统或者是网络的影响,从而保证业务系统的连续性和可用性。

首先能够从网络流量中精确地区分攻击流量并阻断;然后检测发现攻击,降低攻击对服务的影响;同时能够在网络多个边界进行部署,阻断内外不同类型的攻击;最后保障网络系统具备很强的扩展性和良好的可靠性。

通常以采取以下手段来保障网络能够抵御拒绝服务攻击:
1、增加网络核心设备的冗余性,提高对网络流量的处理能力和负载均衡能力。
2、通过路由器配置访问列表,过滤掉非法流量。
3、部署防火墙,提高网络抵御网络攻击的能力。
4、部署入侵检测设备,提高对不断更新的DoS攻击的识别和控制能力。

2、攻击时的缓解阶段

当遭受攻击时,采取各种措施减小DDoS攻击造成的影响,尽量保证业务的可用性。

1、根据相关设备或通过对流量的分析,确认攻击类型,在相关设备上进行防护策略调整。
2、可以根据设备、服务器连接记录,限制异常访问。
3、若攻击流量超过本地最大防御限度,则可以接入运营商或CDN服务商,对流量进行清洗。

3、攻击后的追溯总结阶段

进入追溯总结阶段,应对遭受的攻击进行分析总结,完善防御机制。

1、保存、分析攻击期间的日志,整理攻击IP地址,方便后续追溯。
2、若攻击对业务造成严重影响,则需及时上报公安机关,并尽力追溯攻击者,打消其嚣张气焰。
3、总结应急响应过程中的问题,对系统网络进行加固,并完善应急流程。

web渗透测试----34、DoS和DDoS攻击相关推荐

  1. Kali Linux Web 渗透测试秘籍 第九章 客户端攻击和社会工程

    第九章 客户端攻击和社会工程 作者:Gilberto Najera-Gutierrez 译者:飞龙 协议:CC BY-NC-SA 4.0 简介 我们目前所见的大部分技巧都尝试利用服务端的漏洞或设计缺陷 ...

  2. Kali Linux Web 渗透测试秘籍 第八章 中间人攻击

    第八章 中间人攻击 作者:Gilberto Najera-Gutierrez 译者:飞龙 协议:CC BY-NC-SA 4.0 简介 中间人(MITM)攻击是一种攻击类型,其中攻击者将它自己放到两方之 ...

  3. Kali Linux Web 渗透测试— 第十二课-websploit

    Kali Linux Web 渗透测试- 第十二课-websploit 文/玄魂 目录 Kali Linux Web 渗透测试- 第十二课-websploit..................... ...

  4. Kali Linux Web 渗透测试秘籍 第六章 利用 -- 低悬的果实

    第六章 利用 – 低悬的果实 作者:Gilberto Najera-Gutierrez 译者:飞龙 协议:CC BY-NC-SA 4.0 简介 这章开始我们会开始涉及渗透测试的的利用层面.和漏洞评估的 ...

  5. 渗透测试入门3之隐匿攻击

    渗透测试入门3之隐匿攻击 1. Command and Control ICMP :https://pentestlab.blog/2017/07/28/command-and-control-icm ...

  6. 软件测试:web渗透测试怎样入门!讲透了...

    一.简介 1.web渗透测试概述 渗透测试:模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法. web渗透测试:只针对web应用的渗透测试 2.常见web安全漏洞 1.输入输出验证不充分 ...

  7. 什么是Web渗透测试

    什么是Web渗透测试 渗透测试( Penetration Test)是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节.渗透测试能够直观的让管理人员知道 ...

  8. web渗透测试实战-SQLMAP

    一.实验项目名称 web渗透测试实战-SQLMAP 二.实验目的及要求 熟悉SQL注入漏洞原理 熟悉SQLMAP工具使用. 1.获取数据库信息:数据库漏洞.数据库名.数据库版本等 python sql ...

  9. 学完可入狱:《Web渗透测试-基于Kali Linux》经典黑客入门教程

    特别说明 此教程为纯技术分享!严禁利用本书所提到的漏洞和技术进行非法攻击,本书的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任! 前言 网络江湖,风起云涌,攻防 ...

最新文章

  1. 用C++的类重载高精度加法,乘法和等于符号
  2. 编写函数,模拟内置函数 sorted()。
  3. 以mips为单位衡量微型计算机的性能,2016计算机二级《MS Office》选择题专项训练...
  4. 运维经验 清空大量日志
  5. 对应的ctrl_取消单元格合并,对空白单元格填充数据,学会Ctrl+Enter五秒搞定
  6. 基于visual Studio2013解决C语言竞赛题之0203格式化输出
  7. python如何把二进制转文本_在python3中如何把文本转换为二进制
  8. 斯坦福NLP笔记6 —— Defining Minimum Edit Distance
  9. 【C++】内建函数对象
  10. 3DMAX烘焙AO步骤
  11. unity3d_打飞碟
  12. igbt原理动画演示视频_IGBT的结构与工作原理 测量方法详细讲解
  13. R语言:方差分析之单因素方差分析和双因素方差分析
  14. Flutter 不是真正的跨平台框架
  15. Classic Shell:找回 Windows 8 / Windows Server 2012 的经典的开始按钮和开始菜单
  16. Win10 显示无法连接到Internet,但是能上网浏览
  17. 清华NLP组论文清单:全方位覆盖自然语言处理12大领域
  18. 欢迎大家关注我创办的北京圣思园科技有限公司IT高端就业培训
  19. 农业灌区量测水流量在线监测系统解决方案
  20. 集原美 萝莉少女 电脑4k壁纸3840x2160

热门文章

  1. bootstrap-table样式修改
  2. mac 全角/半角标点符号切换
  3. IDL 中将数组中大于或者小于某一值的数值变成一个定值,其他值不变
  4. Python操作Excel的Xlwings教程(五)
  5. cadence SPB17.4 - 焊盘的规范命名规则
  6. electron内核版本引起的 笔记本And台式电脑的视图兼容性问题(不是浏览器兼容),全网首例!无厘头的问题
  7. IE 插件 数字签名
  8. 写给小鹤双拼用户的一封信
  9. EndNote 国标-如何使用_免费
  10. 抖音神器---Java实现图片(Image)转字符(ASCII)图片