单包攻击防御

article/2025/9/19 12:37:47

单包攻击防御

 

目录

单包攻击防御

畸形报文攻击防御

1.smurf攻击

处理方式

2.Land攻击 

处理方式 

3.Fraggle攻击 

 处理方式

IP分片报文攻击 (IP Fragment攻击)

定义:

处理方式

Ping of Death攻击

 定义

处理方式

TCP报文标志位攻击

定义

 tcp报头

处理方式

Teardrop攻击

定义

处理方式

WinNuke攻击

定义

 处理方式

扫描型攻击防御

1.ip地址扫描攻击

2.端口扫描攻击

 特殊报文攻击防御

1.超大ICMP报文攻击

2.ICMP重定向报文攻击

3.ICMP不可达报文

4.Tracert报文攻击 


简介:在DDOS攻击中最常见的攻击便是单包攻击,单包攻击防御是防火墙具备的最基本的防御功能,华为全系列防火墙都具有防御单包攻击的能力。

畸形报文攻击防御

畸形报文攻击通常指攻击者发送大量有缺陷的报文,从而造成主机或服务器在处理这类报文时系统崩溃。

1.smurf攻击

定义:攻击者向网络中的广播地址发送源IP伪造为受害者的ICMP请求报文,使得网络中的所有主机向受害者回应ICMP应答报文,这样造成受害者系统繁忙,链路拥塞。

 

处理方式

Anti-DDoS设备检查ICMP请求报文的目的地址是否为网络的A、B、C类广播地址,如果是则丢弃。

2.Land攻击 

定义:Land攻击是指攻击者向受害者发送TCP报文,此TCP报文的源地址和目的地址同为受害者的IP地址。这将导致受害者向它自己的地址发送回应报文,从而造成资源的消耗。

处理方式 

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

3.Fraggle攻击 

定义:Fraggle攻击类似于smurf攻击使用UDP应答消息而非ICMP

当主机启用了端口7(ECHO)和19(Chargen)时,主机在收到目的端口为7(ECHO)或19(Chargen)的UDP报文后,就会产生回应。主机在收到目的端口为7的UDP报文后,会像ICMP Echo Reply一样回应收到的内容;而当主机收到目的端口为19的UDP报文后,会产生一串字符流。就像Smurf一样,这两个UDP端口都会产生大量的应答报文,占据网络带宽。

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

 处理方式

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

IP分片报文攻击 (IP Fragment攻击)

定义:

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

 

.标志:该字段是与ip分片有关的。其中有三位,但只有两位是有效的,分别为MF,DF,MF。MF标识后面是否还有分片,为1时,表示后面还有分片。DF标识是否能分片,为0表示可以分片。

处理方式

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

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

Ping of Death攻击

 定义

路由器对包的大小是有限制的,IP报文的长度字段为16位,即IP报文的最大长度为65535。如果遇到大小超过65535的报文,会出现内存分配错误,从而使接收方的计算机系统崩溃。攻击者只需不断的通过Ping命令向攻击目标发送超过65535的报文,就可以使目标计算机的TCP/IP堆栈崩溃,致使接收方系统崩溃。(早期的win98系统存在这样的问题)

处理方式

Anti-DDoS设备检测数据包的大小是否大于65535字节,对于大于65535字节的数据包,则丢弃。

 

TCP报文标志位攻击

定义

TCP报文标志位包括URG、ACK、PSH、RST、SYN、FIN六位,攻击者通过发送非法TCP flag组合的报文,对主机造成危害。

 tcp报头

SYN

  TCP三次握手中,如果A是发起端,则A就对服务器发一个SYN报文。表示建立连接。

ACK

  收到数据或请求后发送响应时发送ACK报文。

RST

  表示连接重置

FIN

  TCP四次挥手时,表示关闭连接
  

PSH

   发送端需要发送一段数据,这个数据需要接收端一收到就进行向上交付。而接收端在收到PSH标志位有效的数据时,迅速将数据交付给应用层。所以PSH又叫急迫比特。
   但是现在已经不需要将数据交付给应用层了,因为这些效果在TCP栈已经可以自行处理这些问题了。

URG

  URG成为紧急指针,意为URG位有效的数据包,是一个紧急需要处理的数据包,需要接收端在接收到之后迅速处理。此处解释转自

处理方式

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

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

Teardrop攻击

定义

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

处理方式

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

WinNuke攻击

定义

WinNuke攻击又称“带外传输攻击”,它的特征是攻击目标端口,被攻击的目标端口通常是139,而且URG位设为1,即紧急模式。WinNuke攻击是利用Windows操作系统的漏洞,向端口发送一些携带TCP带外(OOB)数据报文,但这些攻击报文与正常携带OOB数据报文不同,其指针字段与数据的实际位置不符,即存在重合,这样Windows操作系统在处理这些数据时,就会崩溃。

还有一种是IGMP(Internet Group Management Protocol)分片报文。一般情况下IGMP报文是不会分片的,很多系统对IGMP分片报文的处理也都存在问题。

OOB攻击

 处理方式

Anti-DDoS设备首先判断数据包目标端口是否为139,并判断URG位是否为1,以及URG指针不为空,同时满足以上三个条件的报文将被丢弃,并记录攻击日志。

如果收到IGMP分片报文,则可能是受到了WinNuke攻击。Anti-DDoS设备可以对这种IGMP分片报文进行防御。

1. SMURF 
利用ICMP的echo-request和echo-reply  
利用伪造ICMP echo-request报文,让受害主机响应请求报文,形成攻击

解决方案: 配置 
 firewall defend smurf enable  

2. land 
利用系统bug, 自己建立大量TCP三次握手的空连接

解决方案:配置
firewall defend land enable

3. fraggle 
利用UDP7和19端口产生的大量的无用应答报文 

解决方案:配置
firewall defend fraggle enable


4.IP分片攻击
利用字段(DF位、MF位、片偏置量、总长度)是否一致 

解决方案:配置
 firewall defend fraggle enable

5.IP欺骗攻击 
利用只检测目的的IP地址是否存在,不检查源地址,造成伪装源地址

解决方案: 配置
 firewall defend ip-spoofing enable 

6.ping-of-death 
利用windows 98系统的BUG,收到65535报文不知怎么处理

解决方案:配置 
 firewall defend ping-of-death enable  

7.TCP Flag攻击
利用6个标志位:URG、ACK、PSH、RST、SYN、FIN不一致性,或者矛盾

解决方案:配置
 firewall defend tcp-flag enable

8.teardrop
利用分片重叠
解决方案:配置
firewall defend teardrop enable


10.winnuke  
利用net-bios 139端口和IGMP分片报文

解决方案:配置
firewall defend winnuke enable

 

扫描型攻击防御

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

1.ip地址扫描攻击

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

 处理方式:

Anti-DDoS设备对进入的TCP、UDP、ICMP报文进行检测,当某源IP地址发送报文的目的IP地址与此源IP地址发送的前一个报文的目的IP地址不同时,则记为一次异常,当异常次数超过预定义的阈值时,则认为该源IP地址的报文为IP地址扫描攻击,并将该源IP地址加入黑名单。//就是检测是否有程序在快速扫描网络中的主机

2.端口扫描攻击

定义: 端口扫描攻击,攻击者通常使用Port Scan攻击软件,向网络中存活主机的一系列TCP/UDP端口发起连接,根据应答报文判断主机是否使用这些端口提供服务。

处理方式:

Anti-DDoS设备对进入的TCP、UDP、ICMP报文进行检测,当某个源IP地址异常频率超过预定义的阈值时,则认为该源IP地址的报文为端口扫描攻击,并将该源IP地址加入黑名单。 

FW配置命令 

 特殊报文攻击防御

特殊控制报文攻击也是一种潜在的攻击行为,不具备直接的破坏行为,攻击者通过发送特殊控制报文探测网络结构,

1.超大ICMP报文攻击

超大ICMP报文攻击是指利用长度超大的ICMP报文对目标系统进行攻击。对于有些系统,在接收到超大ICMP报文后,由于处理不当,会造成系统崩溃或重启。 

处理方式:用户可以根据实际网络需要配置允许通过的ICMP报文的最大长度,当实际ICMP报文的长度超过该值时,Anti-DDoS设备认为发生了超大ICMP报文攻击,将丢弃该报文。FW6000默认该值为4000 

2.ICMP重定向报文攻击

一般情况下,网络设备会向同一个子网的主机发送ICMP重定向报文,请求主机改变路由,且设备仅向主机而不向其他设备发送ICMP重定向报文。但一些恶意的攻击可能跨越网段向另外一个网络的主机发送虚假的重定向报文,以改变主机的路由表,干扰主机正常的IP报文转发。

//这里首先假设有两台电脑,正常情况下,两台机器互相进行网络交流的时候需要经过路由,但是路由器有一个策略,就是当发现网络中有一台机器使用的是非优化路由的时候,路由就会向那台机器发送一个ICMP重定向的特殊报文,告诉机器改变路由,让机器的路由改为最优的,这个优化和非优化可以理解两点直接直线最短,怎么快就怎么弄,这本身是一个对网络有益的机制。
但是这个更改路由的ICMP重定向特殊报文是可以伪造的,并且不需要经过一些校验,合法性检查。也就是说攻击者完全可以向他向受害主机发送ICMP重定向报文,迫使受害主机更改路由表

 处理方式:Anti-DDoS设备将对ICMP重定向报文进行丢弃,并记录攻击日志

3.ICMP不可达报文

不同的主机对ICMP不可达报文的处理方式不同,有的主机在收到网络或主机不可达的ICMP报文后,对于后续发往此目的地址的报文直接认为不可达,从而切断了目的地与主机的连接。

攻击者利用这一点,伪造不可达ICMP报文,切断受害者与目的地的连接,造成攻击。

处理方式:Anti-DDoS设备对ICMP不可达报文进行丢弃并记录攻击日志。 

4.Tracert报文攻击 

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

处理方式:Anti-DDoS设备将检测到的超时的ICMP报文,或者目的端口不可达报文丢弃。 

//Tracert工作原理 :Tracert 先发送 TTL 为 1 的回应数据包,并在随后的每次发送过程将 TTL 递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。 

1. 超大ICMP
 firewall defend large-icmp max-length 1000 --------------默认长度4000

2.ICMP不可可达   -------- 建议不要开启
   ICMP重定向  ------------建议不要开启

检查;
[FW1]display firewall defend  flag   
2020-10-18 10:42:49.380 +08:00

  port-scan            : disable
  ip-sweep             : disable
  teardrop             : enable
  time-stamp           : disable
  route-record         : disable
  source-route         : disable
  ip-fragment          : enable
  tcp-flag             : enable
  winnuke              : enable
  fraggle              : enable
  tracert              : disable
  icmp-unreachable     : disable
  icmp-unreachable(DF) : disable
  icmp-redirect        : disable
  large-icmp           : disable
  ping-of-death        : enable
  smurf                : enable
  land                 : enable
  ip-spoofing          : enable
  arp-spoofing         : disable

 

 


http://chatgpt.dhexx.cn/article/NAYTBbEw.shtml

相关文章

【计算机网络原理·实验·第八章】SYN攻击Land攻击

SYN攻击和land攻击,使用 虚拟机环境测试。 SYN攻击:发送端发送数据时截获该数据包,然后篡改发送端的源IP地址并发给服务器,服务器会返回给错误的IP地址确认数据包,而收到确认数据包计算机会忽略该请求,然而…

着陆攻击LAND Attack

2019独角兽企业重金招聘Python工程师标准>>> 着陆攻击LAND Attack 着陆攻击LAND Attack也是一种拒绝服务攻击DOS。LAND是Local Area Network Denial的缩写,意思是局域网拒绝服务攻击,翻译为着陆攻击只是一种错误的理解。攻击原理为&#xff0…

浅析GC-垃圾回收

前置知识 CLR:公共语言运行时 CLR(Common Language Runtime):CLR的核心功能包括内存管理,程序集加载,类型安全,异常处理和线程同步,而且还负责对代码实施严格的类型安全检查&#…

【JVM】垃圾回收机制详解(GC)

目录 一.GC的作用区域二.关于对象是否可回收1.可达性分析算法和引用计数算法2.四种引用类型 三.垃圾收集算法1.标记-清除算法2.复制算法3.标记-整理算法4.分代收集算法 四.轻GC(Minor GC)和重GC(Full GC) 一.GC的作用区域 可以看jvm详解之后,再来理解这篇文章更好 …

垃圾回收机制的各种疑问

目录 jvm的内存模型中,运行时数据区分为哪几个部分?JVM如何判断一个对象所占内存是可以被回收的?什么是年轻代?方法区和永久带的联系是什么?为什么要分年轻代和老年代?为什么新生代和老年代要采用不同的回收…

垃圾回收(GC) 很干,很全

说一下垃圾回收机制 垃圾回收主要针对的是JVM的堆内存,我讲一下我了解的hotspot实现的jvm, 分为新生代和老年代,按照以前的说法,还有一个永久代,永久代在方法区里(物理上跟老年代相连),保存了class信息,静态变量,常量池等, jdk1.8之后,方法区实现发生了变化,取消了永久代的概念…

浅谈垃圾回收机制

目录 前言: 1.标记清除(主要) 2.引用计数(次要) 3.一些注意的点 前言: JavaScript的垃圾回收机制是为了防止内存泄漏的,所谓的内存泄漏是指当已经不需要某块内存时这块内存还存在着&#xff…

通过图文给你讲明白java GC的垃圾回收机制

本文原链接 http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/gc01/index.html 1. JAVA GC 概述 JAVA GC采用了分代思想,将java堆分成新生代,年老代,永久代。GC算法主要有标记-清除,标记-压缩,复制算法。 新生代…

jvm垃圾回收是什么时候触发的? 垃圾回收算法? 都有哪些垃圾回收器

1.1。那究竟GC为我们做了什么操作呢? 1 ,哪些内存需要回收? 2 ,什么时候回收? 3 ,如何回收? 这时候有人就会疑惑了,既然GC 已经为我们解决了这个矛盾,我们还需…

Java回收垃圾的基本过程与常用算法

目录 一、基本概述 二、垃圾分类 基本背景 举例说明各种引用类型的作用 强引用(Strong Reference) 软引用(Soft Reference) 弱引用(Weak Reference) 虚引用(Phantom Reference&#xff…

java面试-GC垃圾回收机制

原理: GC是垃圾收集的意思(Garbage Collection),Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的。 简而言之,GC是将java的无用的堆对象进行清理,释放内存,以免发生内存泄露。…

JVM垃圾回收算法、GC和分代回收、三色标记并发漏标、垃圾回收器

一.标记清除 标记速度与存活对象线性关系 清除速度与内存大小线性关系 标记清除法分为标记阶段和清除阶段,标记阶段首先找到一些GC Root对象(根对象),根对象是那些一定不能被回收的对象。清除阶段比较简单,加标记的对…

垃圾回收的主要区域是堆,那方法区会回收吗?

有些人认为方法区(如HotSpot虚拟机中的元空间或者永久代)是没有垃圾收集行为的,《Java虚拟机规范》中提到过可以不要求虚拟机在方法区中实现垃圾收集,事实上也确实有未实现或未能完整实现方法区类型卸载的收集器存在(如…

GC(垃圾回收)详解

JVM 1.年轻代:年轻代主要存放新创建的对象,垃圾回收会比较频繁。(稍微讲细一点就是即可,年轻代分成Eden Space和Suvivor Space。当对象在堆创建时,将进入年轻代的Eden Space。垃圾回收器进行垃圾回收时,扫描Eden Spac…

java---垃圾回收算法(GC)

目录 一、如何判断一个对象是否存活 1.引用计数法 2.可达性分析法 二、垃圾回收算法 1.标记清除法 2.复制算法 3.标记整理法 4.分代算法 具体流程 注意事项 空间分配担保原则 总结 一、如何判断一个对象是否存活 Java 堆中存放着几乎所有的对象实例,垃圾…

Java - GC 垃圾回收

JVM中一个垃圾回收线程,它的优先级较低,正常情况下不会执行。JVM空闲或者当前内存不足时,才会触发垃圾回收线程执行,扫描内没有被引用的对象,将这些对象添加到要回收的集合中进行回收。 GC介绍 Garbage Collection 垃圾收集,监测对象是否可…

GC是如何判断一个对象为垃圾的?被GC判断为垃圾的对象一定会被回收吗?

一.GC如何判断一个对象为”垃圾”的 java堆内存中存放着几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还“存活”着,哪些已经“死去”。那么GC具体通过什么手段来判断一个对象已经”死去”的? 1.引用计数算法(…

基于28181协议的视频与平台的对接

问题描述 将IPC摄像头接入平台进行观看,或使用28181/rtsp/rtmp/flv等协议将视频流分发到其他平台。 解决方案 WVP-PRO(基于GB/T 28181-2016标准实现的流媒体平台),依托优秀的开源流媒体服务ZLMediaKit,提供完善丰富…

GB28181协议实现系列之----SDK Demo发布(7)

GB28181在终端的应用越来越广,但是一般很多做终端的厂家要加入到互联互通的GB28181网络协议栈中都必须招聘一些专业做GB28181的开发人员,并且需要对接各厂家的兼容性开发及对接调试工作,或是修改一些定制功能。安防市场一年有千亿以上的产值&…

GB28181协议之设备录像查询

目录 一、概述 二、GB28181录像文件查询 2.1 录像文件基本要求 2.2 命令流程 2.3 抓包文件抓图示例 三、国标平台介绍 一、概述 近年来,国内视频监控应用发展迅猛,系统接入规模不断扩大,涌现了大量平台提供商,平台提供商的接…