常见网络攻击归纳总结

1、Land (Land Attack)攻击

LAND攻击利用了TCP连接建立的三次握手过程,通过向一个目标计算机发送一个TCP SYN报文(连接建立请求报文)而完成对目标计算机的攻击。与正常的TCP SYN报文不同的是,LAND攻击报文的源IP地址和目的IP地址是相同的,都是目标计算机的IP地址。这样目标计算机接收到这个SYN报文后,就会向该报文的源地址发送一个ACK报文,并建立一个TCP连接控制结构(TCB),而该报文的源地址就是自己,因此,这个ACK报文就发给了自己。这样如果攻击者发送了足够多的SYN报文,则目标计算机的TCB可能会耗尽,最终不能正常服务。这也是一种DOS攻击。

防御方式:

检查TCP报文的源地址和目的地址是否相同,或者TCP报文的源地址是否为环回地址,如果是则丢弃。

2、Ping of Death

Ping of Death 俗称“死亡之ping”,其攻击原理是攻击者A向受害者B发送一些尺寸超大(大于64K)的ICMP(Ping命令使用的是ICMP报文)报文对其进行攻击(对于有些路由器或系统,在接收到一个这样的报文后,会出现内存分配错误,会造成系统崩溃、死机或重启)。
IP报文的最大长度是2^16-1=65535个字节,那么去除IP首部的20个字节和ICMP首部的8个字节,实际数据部分长度最大为:65535-20-8=65507个字节。所谓的尺寸超大的ICMP报文就是指数据部分长度超过65507个字节的ICMP报文。

防御方式:

设备会检测报文的大小是否大于65535字节,对大于65535字节的报文直接丢弃,并记录攻击日志。更为简单的方法是是禁止ICMP报文通过网络安全设备。

3、ICMP Redrt

ICMP重定向信息是路由器向主机提供实时的路由信息,当一个主机收到ICMP重定向信息时,它就会根据这个信息来更新自己的路由表。由于缺乏必要的合法性检查,如果一个黑客想要被攻击的主机修改它的路由表,黑客就会发送ICMP重定向信息给被攻击的主机,让该主机按照黑客的要求来修改路由表。

防御方式:
  • 网关端:
     1.关闭ICMP重定向(no ip redirects)。
     2.变长子网掩码划分网段。
     3.使用网络控制列表(ACL)和代理。
  • 主机端:
      1.可以使用防火墙等过滤掉ICMP报文,或使用反间谍软件监控。
      2.结合防ARP、IP欺骗等进行防御。

4、Smurf 攻击

Smurf是一种简单但有效的 DDoS 攻击技术,Smurf还是利用ping程序进行源IP假冒的直接广播进行攻击。(被攻击的机器为源IP,往局域网发送ping,大量reply之后瘫痪)在Internet上广播信息可以通过一定的手段(通过广播地址或其他机制)发送到整个网络中的机器。

防御方式:

1.配置路由器禁止IP广播包进网 ;
  2.配置网络上所有计算机的操作系统,禁止对目标地址为广播地址的ICMP包响应。
  3.被攻击目标与ISP协商,有ISP暂时阻止这些流量。
  4.对于从本网络向外部网络发送的数据包,本网络应该将其源地址为其他网络的这部分数据包过滤掉。

使用限制:

由于路由器等三层设备本身就不会转发目的地址是广播地址的报文,因此Smurf攻击在网络上很难形成攻击。在防火墙上体检Smurf攻击必须要求被攻击网络是之间连接到防火墙上。

5、winnuke攻击

winnuke是利用NetBIOS协议中一个OOB(Out of Band)的漏洞,也就是所谓的带外数据漏洞而进行的,它的原理是通过TCP/IP协议传递一个Urgent紧急数据包到计算机的139端口(139:NetBIOS会话服务的TCP端口),当win95/NT收到这个数据包之后就会瞬间死机或蓝屏,不重新启动计算机就无法继续使用TCP/IP协议来访问网络。
还有一种是IGMP(Internet Group Management Protocol)分片报文。一般情况下IGMP报文是不会分片的,很多系统对IGMP分片报文的处理也都存在问题。

带外数据OOB是指TCP连接中发送的一种特殊数据,它的优先级高于一般的数据,带外数据在报头中设置了URG标志,可以不按照通常的次序进入TCP缓冲区,而是进入另外一个缓冲区,立即可以被进程读取或根据进程设置使用SIGURG信号通知进程有带外数据到来。

后来的Winnuke系列工具已经从最初对单个IP的攻击发展到可以攻击一个IP区间范围的计算机,可以检测和选择端口,并且可以进行连续攻击,还能验证攻击的效果,所以使用它可以造成某个IP地址区间的计算机全部蓝屏死机。

防御方式:

此类攻击是由于利用软件开发过程中对某种特定类型的报文或请求没有处理,导致软件遇到这类型报文时运行出现异常,软件崩溃甚至系统崩溃。防范此类攻击的方法就是升级系统或给系统打补丁,也可以删除NetBIOS协议或关闭137、138、139端口。

6、Fraggle攻击

当运行Chargen服务的UDP端口(通常为19)收到一个数据包后,会产生一个字符串作为回应。当运行Echo服务的UDP端口(通常为7)收到一个数据包后,会简单地返回该包的数据内容作为回应。这两种服务可以被攻击者利用进行循环攻击。这样造成受害者系统繁忙,链路拥塞。

攻击者可以向攻击目标所在的网络发送UDP报文,报文的源地址为被攻击主机的地址,目的地址为被攻击主机所在子网的广播地址或子网网络地址,目的端口号为7或19。子网中启用了此功能的每个系统都会向被攻击主机发送回应报文,从而产生大量的流量,占满带宽,导致受害网络的阻塞或受害主机的崩溃。

即使子网上没有启动这些功能的系统也将产生一个ICMP不可达消息,因而仍然消耗带宽。若攻击者将UDP报文的源端口改为19,目的端口为7,这样会不停地产生大量回应报文,其危害性更大。

防御方式:

设备对进入的UDP报文进行检测,若目的端口号为7或19,则直接拒绝,并将攻击记录到日志。

7、IP Fragment 攻击(IP分片报文检测)

IP报文头中的不分段(DF)位和更多分段(MF)位用于分片控制,攻击者通过发送分片控制非法的报文,从而导致主机接收报文时产生故障,报文处理异常,甚至导致主机崩溃。

防御方式:

设备检测到报文控制位是下列情况之一时,则直接丢弃并记录攻击日志:

  • DF位为1(表示不能对数据包分段),而MF位也为1(表示还有更多的分段)。
  • DF位为1,而分段偏移(Offset)> 0。
  • DF位为0,而分片Offset + Length > 65535。

8、TCP Flag攻击(TCP报文标志位攻击):

TCP报文标志位包括URG、ACK、PSH、RST、SYN、FIN。攻击者通过发送非法TCP flag组合的报文,受害主机收到后进行判断识别,消耗其性能,甚至会造成有些操作系统报文处理异常,主机崩溃。不同的系统对这些标志位组和的应答是不同的,可用于操作系统探测。

防御方式:

检查TCP报文的各个标志位,若出现以下情况,则视为攻击,予以丢弃并记录攻击日志:

  • 6个标志位全为1。
  • 6个标志位全为0。
  • SYN和FIN位同时为1。
  • SYN和RST位同时为1。
  • FIN位为1,而ACK位为0。

9、Teardrop攻击(泪滴攻击):

对于一些大的IP数据包,为了迎合链路层的MTU(Maximum Transmission Unit)的要求,需要传送过程中对其进行拆分,分成几个IP包。在每个IP报头中有一个偏移字段和一个拆分标志(MF),其中偏移字段指出了这个片段在整个IP包中的位置。如果攻击者截取IP数据包后,把偏移字段设置成不正确的值,接收端在收到这些分拆的数据包后,就不能按数据包中的偏移字段值正确组合出被拆分的数据包,这样,接收端会不停的尝试,以至操作系统因资源耗尽而崩溃。

防御方式:

对接收到的分片数据包进行分析,计算数据包的偏移量是否有误,如果有误则丢弃,并记录攻击日志。

10、泛洪攻击

SYN Flood

SYN Flood 伪造 SYN 报文向服务器发起连接,服务器在收到报文后用 SYN_ACK 应答,此应答发出去后,不会收到 ACK 报文,造成一个半连接。若攻击者发送大量这样的报文,会在被攻击主机上出现大量的半连接,耗尽其资源,使正常的用户无法访问,直到半连接超时。在一些创建连接不受限制的实现里,SYN Flood 具有类似的影响,它会消耗掉系统的内存等资源。

防御方式:

启用 SYN Flood 攻击检测功能时,要求设置一个连接速率阈值和半开连接数量阈值,一旦发现保护主机响应的 TCP 新建连接速率超过连接速度阈值或者半开连接数量超过半开连接数量阈值,防火墙会输出发生 SYN Flood 攻击的告警日志,并且可以根据用户的配置采取以下三种措施:
  1. 阻止发往该保护主机的后续连接请求
  2. 切断保护主机上的最老半连接会话
  3. 向 TCP Proxy 添加受保护 IP 地址

ACK Flood

攻击者利用僵尸网络发送大量的ACK报文,通常会造成以下三种情况的危害。如果是带有超大载荷的ACK Flood攻击,会导致链路拥塞。如果是极高速率的变源变端口ACK Flood攻击,很容易导致依靠会话转发的设备转发性能降低,甚至会话耗尽造成网络瘫痪。如果攻击报文到达服务器,则导致服务器处理性能耗尽,从而拒绝正常服务。

防御方式:
  1. 利用对称性判断来分析出是否有攻击存在。所谓对称型判断,就是收包异常大于发包,因为攻击者通常会采用大量ACK包,并且为了提高攻击速度,一般采用内容基本一致的小包发送。这可以作为判断是否发生ACK Flood的依据,但是目前已知情况来看,很少有单纯使用ACK Flood攻击,都会和其他攻击方法混合使用,因此,很容易产生误判。
  2. 建立一个hash表,用来存放TCP连接“状态”,相对于主机的TCP stack实现来说,状态检查的过程相对简化。例如,不作sequence number的检查,不作包乱序的处理,只是统计一定时间内是否有ACK包在该“连接”(即四元组)上通过,从而“大致”确定该“连接”是否是“活动的”。

UDP Flood

攻击者通过僵尸网络向目标服务器发起大量的UDP报文,这种UDP报文通常为大包,且速率非常快,通常会造成以下危害。从而造成服务器资源耗尽,无法响应正常的请求,严重时会导致链路拥塞。

  • 一般攻击效果是消耗网络带宽资源,严重时造成链路拥塞。
  • 大量变源变端口的UDP Flood会导致依靠会话转发的网络设备,性能降低甚至会话耗尽,从而导致网络瘫痪。
  • 如果攻击报文达到服务器开放的UDP业务端口,服务器检查报文的正确性需要消耗计算资源,影响正常业务。
UDP Flood关联TCP类服务防范:

UDP是无连接的协议,因此无法通过源认证的方法防御UDP Flood攻击。如果UDP业务流量需要通过TCP业务流量认证或控制,则当UDP业务受到攻击时,对关联的TCP业务强制启动防御,用此TCP防御产生的白名单决定同一源的UDP报文是丢弃还是转发。

比如,有些服务例如游戏类服务,是先通过TCP协议对用户进行认证,认证通过后使用UDP协议传输业务数据,此时可以通过验证UDP关联的TCP类服务来达到防御UDP Flood攻击的目的。当UDP业务受到攻击时,对关联的TCP业务强制启动防御,通过关联防御产生TCP白名单,以确定同一源的UDP流量的走向,即命中白名单的源的UDP流量允许通过,否则丢弃。

防御方式:

启用 UDP Flood 攻击检测功能时,要求设置一个连接速率阈值,一旦发现保护主机响应的 UDP 连接速率超过该值,防火墙会输出发生 UDP Flood 攻击的告警日志,并且根据用户的配置可以阻止发往该主机的后续连接请求。

11、扫描窥探攻击

扫描型攻击是一种潜在的攻击行为,并不具有直接的破坏行为,通常是攻击者发动真正攻击前的网络探测行为。

IP地址扫描攻击:

IP地址扫描攻击,即攻击者运用ICMP报文(如Ping和Tracert命令)探测目标地址,或者使用TCP/UDP报文对一定地址发起连接(如TCP ping),通过判断是否有应答报文,以确定哪些目标系统确实存活着并且连接在目标网络上。

防御方式:

对进入的TCP、UDP、ICMP报文进行检测,当某源IP地址发送报文的目的IP地址与此源IP地址发送的前一个报文的目的IP地址不同时,则记为一次异常,当异常次数超过预定义的阈值时,则认为该源IP地址的报文为IP地址扫描攻击,并将该源IP地址加入黑名单。

PortScan端口扫描攻击

攻击者运用扫描工具探测目标地址和端口,用来确定哪些目标系统连接在目标网络上以及主机开启哪些端口服务。

  • 根据TCP协议规范,当一台计算机收到一个TCP连接建立请求报文(TCP SYN)的时候,做这样的处理:
      1、 如果请求的TCP端口是开放的,则回应一个TCP ACK报文,并建立TCP连接控制结构(TCB);
      2、 如果请求的TCP端口没有开放,则回应一个TCP RST(TCP头部中的RST标志设为1)报文,告诉发起计算机,该端口没有开放。
  • 相应地,如果IP协议栈收到一个UDP报文,做如下处理:
       1、 如果该报文的目标端口开放,则把该UDP报文送上层协议(UDP)处理,不回应任何报文(上层协议根据处理结果而回应的报文例外);
       2、 如果该报文的目标端口没有开放,则向发起者回应一个ICMP不可达报文,告诉发起者计算机该UDP报文的端口不可达。
       
    利用这个原理,攻击者计算机便可以通过发送合适的报文,判断目标计算机哪些TCP或UDP端口是开放的,过程如下:
      1、 发出端口号从0开始依次递增的TCP SYN或UDP报文(端口号是一个16比特的数字,这样最大为65535,数量很有限);
      2、 如果收到了针对这个TCP报文的RST报文,或针对这个UDP报文的ICMP不可达报文,则说明这个端口没有开放;
      3、 相反,如果收到了针对这个TCP SYN报文的ACK报文,或者没有接收到任何针对该UDP报文的ICMP报文,则说明该TCP端口是开放的,UDP端口可能开放(因为有的实现中可能不回应ICMP不可达报文,即使该UDP端口没有开放)。这样继续下去,便可以很容易的判断出目标计算机开放了哪些TCP或UDP端口,然后针对端口的具体数字,进行下一步攻击,这就是所谓的端口扫描攻击。
防御方式:

启用扫描攻击保护功能时,要求设置一个扫描速率阈值,一旦存在 IP 主动发起的连接速率超过该值,则判定该 IP 正在进行扫描探测,防火墙会输出发生扫描攻击的告警日志,阻止扫描者发起的后续连接,并且可以根据用户配置将扫描者加入到黑名单。

12、ICMP报文不可达攻击

不同的主机对ICMP不可达报文的处理方式不同,有的主机在收到网络或主机不可达的ICMP报文后,对于后续发往此目的地址的报文直接认为不可达,从而切断了目的地与主机的连接。攻击者利用这一点,伪造不可达ICMP报文,切断受害者与目的地的连接,造成攻击。

防御方式:

启用ICMP重定向报文攻击防范后,设备将直接丢弃ICMP重定向报文,并记录攻击日志。

13、Tracert报文攻击

Tracert报文攻击是攻击者利用TTL为0时返回的ICMP超时报文,和到达目的地址时返回的ICMP端口不可达报文来发现报文到达目的地所经过的路径,它可以窥探网络的结构。

防御方式:

启用Tracert报文攻击防范后,设备将检测到的超时的ICMP报文或UDP报文,或者目的端口不可达报文,直接丢弃,并记录攻击日志。

猜你喜欢

转载自blog.csdn.net/qq_40741808/article/details/108059999