华为防火墙之攻击防范

news2024/11/26 4:26:15

1.DoS攻击简介

攻击和防御技术发展史

DoS是Denial of Service的简称,即拒绝服务。造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法正常提供服务

2.单包攻击及防御

最常见的DoS攻击就是单包攻击,一般都是以个人为单位的攻击者发动的,攻击报文也比较单一。这类攻击虽然破坏力强大,但是只要掌握了攻击的特征,防御起来还是比较容易的。

单包攻击分为以下三大类:

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

扫描类攻击:是一种潜在的攻击行为,并不造成直接的破坏结果,通常是攻击者发动真正攻击前的网络探测行为。

特殊控制类报文攻击:也是一种潜在的攻击行为,并不造成直接的破坏结果,攻击者通过发送特殊控制报文探测网络结构,为后续发动真正的攻击做准备。

防御单包攻击是防火墙具备的最基本的防范功能,华为全系列防火墙都支持对单包攻击的防御。

几种典型的单包攻击

① Ping of Death 攻击及防御

Ping of Death攻击指的是攻击者不断的通过Ping命令向受害者发送超过65535字节的报文,导致受害者的系统崩溃。

防火墙是通过判定报文的大小是否大于65535字节来防御Ping of Death 攻击的,如果报文大于65535字节,则判定为攻击报文,防火墙直接丢弃该报文。

② Land 攻击及防御

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

防火墙在防御Land攻击时,检查TCP报文的源地址和目的地址是否相同,或者TCP报文的源地址是否为环回地址,如果TCP报文的源地址和目的地址相同或者源地址为环回地址,则直接丢弃该报文。

③ IP地址扫描攻击

IP地址扫描攻击是指攻击者使用ICMP报文(如执行Ping和Tracert命令)探测目标地址,或者使用TCP/UDP报文对特定地址发起连接,通过判断是否有应答报文,确定目标地址是否连接在网络上。

IP地址扫描攻击并没有直接造成恶劣后果,它只是一种探测行为,通常是为了后续发动破坏性攻击做准备。

防火墙防御IP地址扫描攻击时,对收到的TCP、UDP、ICMP报文进行检测,某个源IP地址连续发送报文时,如果该IP发送的报文的目的IP地址与其发送的前一个报文的目的IP地址不同,则记为一次异常。当异常次数超过预定义的阈值,则认为该源IP正在进行IP地址扫描攻击,防火墙会将该源IP地址加入黑名单,后续收到来自该源IP地址的报文时,直接丢弃。

防御单包攻击的配置建议

3.流量型攻击之SYN Flood攻击及防御

DDoS攻击是指攻击者通过控制大量的僵尸主机(俗称“肉鸡”),向被攻击目标发送大量精心构造的攻击报文,造成被攻击者所在网络的链路拥塞、系统资源耗尽,从而使被攻击者产生拒绝向正常用户的请求提供服务的效果。

SYN Flood 攻击就属于DDoS攻击的一种,属于技术含量很高的“高大上”,称霸DDoS攻击领域很久,它很难通过单个报文的特征或者简单的统计限流防御住它,因为它“太真实”“太常用”。

SYN Flood具有强大的变异能力,在攻击发展潮流中一直没有被湮没,有如下特点:

  • 单个报文看起来很“真实”,没有畸形。
  • 攻击成本低,很小的开销就可以发动庞大的攻击。

SYN Flood攻击原理

从字面上看,SYNFlood攻击与TCP协议中的SYN报文有关,我们先来回顾一下TCP三次握手的过程。

(1)第一次握手:客户端向服务器端发送一个SYN(Synchronize)报文。

(2)第二次握手:服务器收到客户端的SYN报文后,将返回一个SYN+ACK的报文,表示客户端的请求被接受,ACK即表示确认(Acknowledgment)。

(3)第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送ACK报文进行确认,ACK报文发送完毕,三次
握手建立成功。

SYN Flood攻击正是利用了TCP三次握手的这种机制。攻击者向目标服务器发送大量的SYN报文请求,这些SYN报文的源地址一般都是不存在或不可达的。当服务器回复SYN+ACK报文后,不会收到ACK回应报文,导致服务器上建立大量的半连接。这样,服务器的资源会被这些半连接耗尽,导致无法回应正常的请求。

SYN Flood攻击防御方法

防火墙防御SYN Flood攻击时,一般会采用TCP代理TCP源探测两种方式。

①防御方法之TCP代理

TCP代理是指防火墙部署在客户端和服务器中间,当客户端向服务器发送的SYN报文经过防火墙时,防火墙代替服务器与客户端建立TCP三次握手,一般用于报文来回路径一致的场景。

(1)防火墙收到SYN报文,对SYN报文进行拦截,代替服务器回应SYN+ACK报文。

(2)如果客户端不能正常回应ACK报文,则判定此SYN报文为非正常报文,防火墙代替服务器保持半连接一定时间后,放弃此连接。

(3)如果客户端正常回应ACK报文,防火墙与客户端建立正常的三次握手,则判定此SYN报文为正常业务报文,非攻击报文。防火墙立即与服务器再建立三次握手,此连接的后续报文直接送到服务器。

整个TCP代理的过程对于客户端和服务器都是透明的。

TCP代理过程中,防火墙会对收到的每一个SYN报文进行代理和回应,并保持半连接,所以当SYN报文流量很大时,对防火墙的性能要求非常的高。

TCP代理的本质就是利用防火墙的高性能,代替服务器承受半连接带来的资源消耗,由于防火墙的性能一般比服务器高很多,所以可以有效防御这种消耗资源的攻击。

但是TCP代理只能应用在报文来回路径一致的场景中,如果来回路径不一致,代理就会失败,那么就需要通过TCP源探测来防御SYN Flood攻击。

②防御方法之TCP源探测

TCP源探测是防火墙防御SYNFlood攻击的另一种方式,在报文来回路径不一致的场景中也能使用,应用更加普遍。

(1)当防火墙收到客户端发送的SYN报文时,对SYN报文进行拦截,并伪造一个带有错误序列号的的SYN+ACK报文回应给客户端。

(2)如果客户端是虚假源,则不会对错误的SYN+ACK报文进行回应。

(3)如果客户端是真实源发送的正常请求SYN报文,当收到错误的SYN+ACK报文时,会再发出一个RST报文,让防火墙重新发一个正确的SYN+ACK报文;防火墙收到这个RST报文后,判定客户端为真实源,则将这个源加入白名单,在白名单老化前,这个源发出的报文都认为是合法的报文,防火墙直接放行,不在做验证。

回头对比一下TCP代理和TCP源探测两种方式,会发现TCP源探测对客户端的真实性只进行一次验证,通过后就加入白名单,后续就不会每次都对这个客户端发出的
SYN报文进行验证,这样就大大提高了防御效率和性能,有效缓解防火墙的性能压力。

TCP代理和TCP源探测配置命令

4流量型攻击之UDP Flood攻击及防御

TCP协议是一种面向连接的传输协议,而UDP协议是一个无连接的传输协议。使用UDP传输数据之前,客户端和服务器之间不建立连接,如果在从客户端到服务器端的传递过程中出现数据包的丢失,UDP协议本身并不能做出任何检测或提示。因此,把UDP称为不可靠的传输协议。

TCP协议中植入了各种安全保障功能,但是在实际执行的过程中会占用大量的系统开销,使传输速度受到严重的影响。而UDP,由于排除了信息可靠传递机制,极大降低了执行时间,使传输速度得到了保证。

UDP Flood攻击属于带宽类攻击,攻击者通过僵尸主机向目标服务器发送大量UDP报文,这种UDP报文的字节数很大且速率非常快,通常会造成以下危害:

  • 消耗网络带宽资源,严重时造成链路拥塞。
  • 大量变源变端口的UDP Flood攻击会导致依靠会话进行转发的网络设备性能降低甚至会话耗尽,从而导致网络瘫痪。

防火墙对UDP Flood攻击的防御并不能像SYN Flood一样进行源探测,因为它不建立连接。

UDP Flood攻击防御方法

①防御方法之限流
防火墙防御UDP Flood攻击最简单的方式就是限流,通过限流将链路中的UDP报文控制在合理的带宽范围之内。防火墙上针对UDP Flood攻击的限流有4种方式。

  • 基于流量入接口的限流:以某个入接口流量作为统计对象,对通过这个接口的流量进行统计并限流,超出的流量将被丢弃。
  • 基于目的IP地址的限流:以某个IP地址作为统计对象,对到达这个IP地址的UDP流量进行统计并限流,超出的流量将被丢弃。
  • 基于目的安全区域的限流:以某个安全区域作为统计对象,对到达这个安全区域的UDP流量进行统计并限流,超出的流量将被丢弃。
  • 基于会话的限流:对每条UDP会话上的报文速率进行统计,如果会话上的UDP报文速率达到了告警阈值,这条会话就会被锁定,后续命中这条会话的UDP报文都被丢弃。当这条会话连续3s或者3s以上没有流量时,防火墙会解锁此会话,后续命中此会话的报文可以继续通过。

②防御方法之指纹学习

限流虽然可以有效缓解链路带宽的压力,但是这种方式简单粗暴,容易对正常业务造成误判。为了解决这个问题,防火墙又进一步推出了针对UDP Flood 攻击的指纹学习功能。

如下图所示,指纹学习是通过分析客户端向服务器发送的UDP报文载荷是否有大量的一致内容,来判定这个UDP报文是否异常。防火墙对去往目标服务器的UDP报文进行统计,当UDP报文达到告警阈值时,开始对UDP报文的指纹进行学习。如果相同的特征频繁出现,就会被学习成指纹。后续匹配指纹的UDP报文将被防火墙判定为攻击报文而丢弃,没有匹配指纹的UDP报文将被防火墙转发。

UDP Flood 攻击报文通常都拥有相同的特征字段,比如都包含某一个字符串,或整个UDP报文的内容一致。这是因为攻击者在发起UDPFlood攻击时,为了加大攻击频率,通常都会使用攻击工具构造相同内容的UDP报文,然后高频发送到攻击目标,所以攻击报文具有很高的相似性。而正常业务的UDP报文一般每个报文中的内容都是不一样的,所以通过指纹学习,防火墙就可以区分攻击报文和正常报文,减少误判。

从下面两张抓包截图中可以看出,到达相同目的IP地址的两个UDP报文的载荷是完全一样的,如果防火墙收到大量的类似这样的UDP报文,那么就可以判定发生了UDP Flood攻击。

防火墙防御UDP Flood攻击主要有两种方式:限流和指纹学习。两种方式各有利弊。限流方式属于暴力型,可以很快将UDP流量限制在一个合理的范围内,但是不分青红皂白,超过就丢,可能会丢弃正常报文;而指纹学习属于理智型,不会随意丢弃报文,但是发生攻击后需要有一个指纹学习的过程。目前,指纹学习功能是针对UDP Flood 攻击的主要手段。

5.应用层攻击之DNS Flood攻击及防御

在讲DNS Flood攻击之前,我们先了解一下DNS协议的工作原理,我们在上网访问网页的时候,输入的网址都是域名,由DNS服务器解析为对应的IP地址。如下图所示,我们访问news.huawei.com,首先会将DNS域名解析请求发送到本地DNS服务器。如果本地DNS服务器上有此域名和IP地址的对应关系,本地DNS服务器就会将查询到的IP地址返回给客户端。

如果本地DNS服务器查找不到该域名与IP地址对应关系时,它会向上一级DNS服务器发出域名查询请求,上一级DNS服务器将查询到的IP地址返回给本地DNS服务器,然后由本地DNS 服务器返回给客户端。为了减少Internet 上DNS报文的数量,本地DNS服务器会将该域名和IP地址对应关系存储在自己的缓存中,后续再有主机请求该域名
时,本地DNS服务器会直接用缓存区中记录的信息回应。

DNS Flood攻击指的是攻击者向DNS服务器发送大量的不存在的域名解析请求,导致DNS服务器瘫痪,无法处理正常的域名解析请求。

DNS Flood攻击防御方法

DNS服务器支持TCP协议和UDP协议两种解析方式,一般情况下,我们使用的都是UDP协议,因为UDP协议提供
无连接服务,传输速度快,可以降低DNS服务器的负载。也有特殊情况下需要通过TCP协议进行解析,例如,DNS服务器上就可以设置让客户端使用TCP协议来发起解析请求。当客户端向DNS服务器发起解析请求时,DNS服务器回应的报文中有一个TC标志位,如果TC标志位置1,就表示DNS服务器要求客户端使用TCP协议发起解析请求。
防火墙就是利用这一机制对DNS Flood攻击进行防御,探测发送DNS 请求报文的主机是否为真实存在的客户端。

如下图所示,防火墙先对DNS请求报文进行统计,如果发现连续一段时间内去往同一目的地址的DNS请求报文超过预先设置的阈值,则启动DNS源探测。

启动DNS源探测后,防火墙收到DNS请求,会代替DNS服务器回应DNS请求,并将DNS回应报文中的TC标志位置1,要求客户端使用TCP协议发送DNS请求。接下来如果防火墙没有收到客户端使用TCP协议发送的DNS请求,则判定此客户端为虚假源;如果防火墙收到了客户端使用TCP协议发送的DNS请求,则判定此客户端为真实源。防火墙将该客户端的IP地址加入白名单,在白名单老化前,这个客户端发出的DNS 请求报文都被认为是合法的报文。

我们来看一组真实客户端正常响应防火墙源探测的抓包信息:

①客户端使用UDP协议向DNS服务器发起解析请求;

②防火墙收到报文后,代替DNS服务器回应,将回应报文中的TC标志位置1,让客户端使用TCP协议发送解析请求;

③客户端收到回应报文后,按照要求,使用TCP协议发送解析请求;

DNS源探测方式可以很好地防御DNS Flood攻击,但是在实际环境中,并不是所有场景都适用。因为在源探测过程中,防火墙会要求客户端通过TCP协议发送DNS请求,但并不是所有的客户端都支持用TCP协议发送DNS请求,所以这种方式在使用过程中也有限制。如果真实的客户端不支持用TCP协议发送DNS请求,使用此功能时,就会影响正常业务。

6.应用层攻击之HTTP Flood攻击及防御

HTTP Flood攻击指的是攻击者控制僵尸主机向目标服务器发送大量的HTTP请求文,这些请求报文中一般都包含涉及数据库操作的URI(Uniform Resource Identifier,统一资源标识符)或其他消耗系统资源的URI,目的是为了造成目标服务器资源耗尽,无法响应正常请求。

说明URI用来定义Web上的资源,而URL(Uniform Resource Locator,统一资源定位器)用来找到Web上的资源,例如,www.huawei.com/abc/12345.html是一个URL,/abc/12345.html是一个URI。

HTTP Flood攻击防御方法

防御HTTP Flood攻击时用到了HTTP协议中的一个技术点:HTTP重定向。HTTP重定向指的是客户端向Web服务器请求www.huawei.com/1.html页面,Web 服务器返回一个命令,让客户端改为访问www.huawei.com/2.html页面,这样就把客户端的访问重定向到一个新的URI。

HTTP重定向相当于Web服务器的“自我修复”的过程,一般常用于Web 服务器上的URI已经过期,而客户端仍然访问这个URI的情况,此时Web服务器将客户端的访问请求重定向到新的URI,使客户端能够得到访问结果,如下图所示。

防火墙就是利用这一机制对HTTP Flood攻击进行防御,探测发送HTTP请求报文的主机是否为真实存在的客户端。

如下图所示,防火墙先对HTTP请求报文进行统计,如果发现连续一段时间内去往同一目的地址的HTTP请求报文超过预先设置的阈值,则启动HTTP源探测。

启动HTTP源探测后,防火墙收到HTTP请求,会代替HTTP服务器回应HTTP请求,将客户端的访问重定向到一个新的虚构的URI。接下来如果防火墙没有收到客户端访问该URI的请求,则判定此客户端为虚假源;如果防火墙收到客户端访问该URI的请求,则判定此客户端为真实源,防火墙将该客户端的IP地址加入白名单。然后防火墙会继续向客户端发送HTTP重定向命令,将客户端的访问重定向到原始的URI,即一开始客户端访问的那个URI。在白名单老化前,后续这个客户端发出的HTTP请求报文都被认为是合法的报文。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/651602.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

回归预测 | MATLAB实现SSA-CNN-BiGRU麻雀算法优化卷积双向门控循环单元多输入单输出回归预测

回归预测 | MATLAB实现SSA-CNN-BiGRU麻雀算法优化卷积双向门控循环单元多输入单输出回归预测 预测效果 基本介绍 MATLAB实现SSA-CNN-BiGRU麻雀算法优化卷积双向门控循环单元多输入单输出回归预测,运行环境Matlab2020b及以上。优化正则化率、学习率、隐藏层单元数。…

大数据Doris(四十二):Routine Load导入Kafka数据到Doris

文章目录 Routine Load导入Kafka数据到Doris 一、创建 Doris 表 二、创建 Kafka topic 三、创建 Routine Load

PTA OJ 合集 C语言

目录 7-1 查找整数 7-2 大笨钟的心情 7-3 将数组中的数逆序存放 7-6 矩阵运算 7-7 求矩阵的局部极大值 7-8 矩阵A乘以B 7-9 找鞍点 6-1 查找数组元素最大值 6-2 在数组中查找指定元素 7-5 求数列之和[A] 6-3 使用函数的选择法排序 6-5 计算天数[2] 6-4 求矩阵不靠…

ABAP 新语法--Open SQL

1. 常量 1.1 常量赋值 常量字段可以用来为内表中的部分字段赋初始值,字段类型和长度依据输入常量的值决定 SELECTmara~matnr, " 物料号mara~matkl, " 物料组mara~mtart, " 物料类型 AS lkenz, " 删除标识,常量空字符串123 AS fla…

STM32 Proteus仿真自动红外避障小车前进后退左右转 -0040

STM32 Proteus仿真自动红外避障小车前进后退左右转 -0040 Proteus仿真小实验: STM32 Proteus仿真自动红外避障小车前进后退左右转 -0040 功能: 硬件组成:STM32F103C LCD1602 L298N电机控制电路2个电机一个左轮一个右轮 2个按键(模拟两个避…

Web安全:bWAPP 靶场搭建.(集成了各种常见漏洞和最新漏洞的开源Web应用程序)

Web安全:bWAPP 靶场搭建. bWAPP是一个集成了了常见漏洞的 web 应用程序,目的是作为漏洞测试的演练场,帮助安全爱好者,开发人员和学生发现和防止Web漏洞。它有超过100个网络漏洞数据,包括所有主要的已知网络漏洞. 目录…

谷粒商城第三天-微服务中基本组件的使用

目录 一、前言 二、学习的内容 一、Nacos的服务注册/发现 1. 导依赖,nacos-discovery java.lang.AbstractMethodError: org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient.cho 2. 在application.yml中声明nacos服务器的ip地址和端口号&…

MySQL常见问题

优化慢查询 慢查询可能出现的情况: 聚合查询多表查询表数据量过大深度分页查询 表象:页面加载过慢,接口压测响应时间过长(超过1s) 如何定位慢查询? 方案一:开源工具 可以使用相应的调试工具&a…

数据库SQL查询(一)

本文介绍SQL查询,如何在海量数据中筛选想要数据; 数据库管理系统选择:关系型数据库mysql 数据库管理工具选择:navicat 本文中查询语句和查询案例参考自:https://edu.csdn.net/course/detail/27673?ops_request_mis…

管理类联考——英语——趣味篇——背诵单词

考友方法推荐 词根词缀巧记考研英语大纲词汇 ⼀、词根词缀构词法的威⼒ 《考研英语⼤纲》要求考⽣掌握 5500 个词汇及相关词组,我们将这 5500 个单词,分成了三类,通过第⼀类“3450 基础⾼频词汇”的学习,考⽣夯实了基础&#xf…

Fmoc-保护氨基酸合成中的新型底物:Fmoc-Thr(Ac4Manα1-2Ac3Manα)-OH,CAS:482576-73-8

文章关键词:糖化学试剂,多肽合成,Fmoc-保护氨基酸,糖基化修饰一、产品描述: 西安凯新生物科技有限公司供应的​Fmoc-Thr(Ac4Manα1-2Ac3Manα)-OH,多肽固相合成法,基于Fmoc化学合成&#xff0c…

[学习笔记] [机器学习] 12. [下] HMM 隐马尔可夫算法(马尔科夫链、HMM 三类问题、前后后向算法、维特比算法、鲍姆-韦尔奇算法、API 及实例)

5. 维特比算法解码隐藏状态序列 Q Q Q 学习目标: 知道维特比算法解码隐藏状态序列 Q Q Q 在本篇我们会讨论维特比算法解码隐藏状态序列 Q Q Q,即给定模型 λ \lambda λ 和观测序列 O O O,求给定观测序列 O O O 条件下,最…

使用华为云开发者插件一键部署应用到ECS

前言 笔者是一名码龄5年左右的程序员,大学是能源行业,处于对技术(碎银几两)的热爱,选择投身搬砖之路。从用C语言在控制台打印第一句“Hello World!”开始,笔者陆续接触过C/C、Java、Golang、Py…

STM32 Proteus仿真4x4矩阵15位抢答器数码管TM1637显示-0039

STM32 Proteus仿真4x4矩阵15位抢答器数码管TM1637显示-0039 Proteus仿真小实验: STM32 Proteus仿真4x4矩阵15位抢答器数码管TM1637显示-0039 功能: 硬件组成:STM32F103R6单片机 TM1637驱动4位数码管4x4矩阵键盘蜂鸣器 1.有一个开启键&am…

【Unity Shader】从入门到着魔(1)基本概念:什么是网格?材质?Shader?

文章目录 一、什么是网格(Mesh)?二、什么是MeshFilter(网格过滤器)?三、什么是MeshRenderer(网格渲染器)?四、什么是材质(Material)?五、什么是Shader(着色器)?一、什么是网格(Mesh)? 如上图,模型的三角形面就叫做网格(Mesh),它的本质是一堆顶点数据的规则…

前端基础知识学习——获取dom对象、获取html属性、获取内容、更改样式、创建dom元素、删除元素、代替元素(十)

<!DOCTYPE html> <html lang"en"><head ><meta charset"utf-8" /><title>这是一首离别信</title><script src"https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script></head&g…

Git 基础知识

看版本 git --version 初始化 git init &#xff08;需要在准备建的仓库的目标文件夹根目录下运行&#xff09; 初始化一个仓库供所有其他人一起使用&#xff0c;平时一般都是建好的&#xff0c;个人克隆拉取这个仓库到本地进行编辑。 初始化会产生一个分支叫 master 初…

vue3创建新项目报错:Cannot find module ‘xxx‘

创建vue3项目&#xff0c;命令&#xff1a; 1. 使用vite创建&#xff1a; npm create vitelatest my-vue-app -- --template vue-ts 2.使用vue官方命令&#xff1a; npm init vuelatest 创建vue3模板学习vue3.3的新语法&#xff0c;创建完成后发现文件很多爆红&#xff1a…

华为虚拟化openEuler release 22.03 (LTS-SP1)安装VMTools

华为虚拟化openEuler release 22.03 (LTS-SP1)安装VMTools 环境 虚拟化平台&#xff1a;华为Fusioncompute 6.5.1.SPH6 X86 虚拟机操作系统&#xff1a;openEuler release 22.03 (LTS-SP1) VMTools版本&#xff1a;vmtools-2.5.0.155.tar.bz2 默认vmtools不支持openEuler rele…

【C/C++练习】合并k个已排序的链表

目录 &#x1f43b;题目描述&#xff1a; &#x1f43b;‍❄️思路一&#xff1a;暴力求解法 &#x1f43c;第一步&#xff1a;确定合并后链表的头节点rhead&#x1f43c;第二步&#xff1a;选择次小的进行尾插&#x1f43c;代码实现&#xff1a; &#x1f43b;‍❄️思路二&a…