ICMP Flood 攻击、UDP Flood 攻击、SYN Flood 攻击

ICMP Flood 攻击检测、UDP Flood 攻击检测、SYN Flood 攻击检测、连接数限制和扫描攻击检测。
  1. ICMP Flood攻击检测
    短时间内向特定目标不断请求 ICMP 回应,致使目标系统负担过重而不能处理合法的传输任务,就发生了 ICMP Flood。启用 ICMP Flood 攻击检测功能时,要求设置一个连接速率阈值,一旦发现保护主机 ICMP 连接速率超过该值,防火墙会输出发生 ICMP Flood 攻击的告警日志,并且根据用户的配置可以阻止发往该主机的后续连接请求。

  2. UDP Flood攻击检测
    短时间内向特定目标不断发送 UDP 报文,致使目标系统负担过重而不能处理合法的传输任务,就发生了 UDP Flood。启用 UDP Flood 攻击检测功能时,要求设置一个连接速率阈值,一旦发现保护主机响应的 UDP 连接速率超过该值,防火墙会输出发生 UDP Flood 攻击的告警日志,并且根据用户的配置可以阻止发往该主机的后续连接请求。

  3. SYN Flood攻击检测
    由于资源的限制,TCP/IP 栈只能允许有限个 TCP 连接。SYN Flood 伪造 SYN 报文向服务器发起连接,服务器在收到报文后用 SYN_ACK 应答,此应答发出去后,不会收到 ACK 报文,造成一个半连接。若攻击者发送大量这样的报文,会在被攻击主机上出现大量的半连接,耗尽其资源,使正常的用户无法访问,直到半连接超时。在一些创建连接不受限制的实现里,SYN Flood 具有类似的影响,它会消耗掉系统的内存等资源。
    启用 SYN Flood 攻击检测功能时,要求设置一个连接速率阈值和半开连接数量阈值,一旦发现保护主机响应的 TCP 新建连接速率超过连接速度阈值或者半开连接数量超过半开连接数量阈值,防火墙会输出发生 SYN Flood 攻击的告警日志,并且可以根据用户的配置采取以下三种措施:

    • 阻止发往该保护主机的后续连接请求;
    • 切断保护主机上的最老半连接会话;
    • 向 TCP Proxy 添加受保护 IP 地址。
  4. 连接数限制
    连接数限制包括源 IP 连接数限制和目的 IP 连接数限制。启用连接数限制功能时,要求设置一个连接数阈值,一旦 IP 的连接数超过该值,防火墙会输出告警日志,并用可以根据用户配置阻止该 IP新建连接。

  5. 扫描攻击检测
    攻击者运用扫描工具探测目标地址和端口,用来确定哪些目标系统连接在目标网络上以及主机开启哪些端口服务。启用扫描攻击保护功能时,要求设置一个扫描速率阈值,一旦存在 IP 主动发起的连接速率超过该值,则判定该 IP 正在进行扫描探测,防火墙会输出发生扫描攻击的告警日志,阻止扫描者发起的后续连接,并且可以根据用户配置将扫描者加入到黑名单。

TCP代理

1. SYN Flood攻击详细介绍

一般情况下,TCP 连接的建立需要经过三次握手,即:
(1) TCP 连接请求的发起者向目标服务器发送 SYN 报文;
(2) 目标服务器收到 SYN 报文后,建立处于 SYN_RECEIVED 状态的 TCP 半连接,并向发起者回复 SYN ACK 报文,等待发起者的回应;
(3) 发起者收到 SYN ACK 报文后,回应 ACK 报文,这样 TCP 连接就建立起来了。利用 TCP 连接的建立过程,一些恶意的攻击者可以进行 SYN Flood 攻击。攻击者向服务器发送大量请求建立 TCP 连接的 SYN 报文,而不回应服务器的 SYN ACK 报文,导致服务器上建立了大量的 TCP 半连接。从而达到耗费服务器资源,使服务器无法处理正常业务的目的。

2. TCP Proxy功能简介

TCP Proxy 功能用来防止服务器受到 SYN Flood 攻击。客户端通过 TCP 代理请求与受保护的服务器建立连接时,TCP 代理首先验证客户端的请求是否为 SYN Flood 攻击,验证通过后客户端和服务器之间才能建立 TCP 连接,从而避免服务器受到攻击。
TCP Proxy 支持两种代理方式:单向代理和双向代理。单向代理方式是指仅对 TCP 连接的正向报文进行处理;双向代理是指对 TCP 连接的正向和反向报文都进行处理。用户可以根据实际的组网情况进行选择。
单向代理组网双向代理组网
例如:在如 图 1-1 所示的组网中,从客户端发出的报文经过TCP代理,而从服务器端发出的报文不经过TCP代理,此时只能使用单向代理方式;在如 图 1-2 所示的组网中,从客户端发出的报文经和从服务器端发出的报文都经过TCP代理,此时可以使用单向代理方式,也可以使用双向代理方式。

3. TCP Proxy处理流程

3.1. 单向代理

单向代理方式下,TCP Proxy的处理流程如 图 1-3 所示。
单向代理方式的TCP Proxy处理流程
TCP 代理收到某客户端发来的与受保护服务器(匹配某个受保护 IP 表项)建立 TCP 连接的请求(SYN 报文)后,先代替服务器向客户端回应序号错误的 SYN ACK 报文。如果收到客户端回应的RST 报文,则认为该 TCP 连接请求通过 TCP 代理的验证。一定时间内,TCP 代理收到客户端重发的 SYN 报文后,直接向服务器转发,在客户端和服务器之间建立 TCP 连接。TCP 连接建立后,TCP代理直接转发后续的报文,不对报文进行处理。

3.2. 双向代理

双向代理方式下,TCP Proxy的处理流程如 图 1-4 所示。
双向代理方式的TCP Proxy处理流程
TCP 代理收到某客户端发来的与受保护服务器建立 TCP 连接的请求(SYN 报文)后,先代替服务器向客户端回应正常的 SYN ACK 报文(窗口值为 0)。如果收到客户端回应的 ACK 报文,则认为该 TCP 连接请求通过 TCP 代理的验证。TCP 代理再向服务器发送同样的 SYN 报文,并通过三次握手与服务器建立 TCP 连接。双向代理方式中,在客户端和 TCP 代理、TCP 代理和服务器之间建立两个 TCP 连接。由于两个 TCP 连接使用的序号不同,TCP 报文交互过程中,TCP 代理接收到客户端或服务器发送的报文后,需要修改报文序号,再转发给对端,这样才能保证通信正常。

  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在C语言中,Syn FloodSYN洪水)是一种网络攻击方法,旨在通过发送大量伪造的TCP连接请求(SYN包)来超载目标主机的网络资源。这种攻击方法利用了TCP三次握手的过程中的漏洞,即攻击者发送大量的SYN包,但不回应目标主机的确认包(ACK),导致目标主机资源被耗尽,无法处理正常的连接请求。 为了实现Syn Flood攻击,需要使用socket编程,利用C语言中的socket相关库定义IP首部结构和TCP首部结构,并进行伪造IP地址、伪造TCP源端口以及计算校验和等操作。首先,需要包含一系列头文件,如sys/socket.h、sys/types.h、netinet/in.h等。然后,可以定义IP数据报(buffer),设置相关参数,并进行伪造IP地址和TCP源端口等操作。最后,通过循环发送伪造的SYN包,以达到Syn Flood攻击的目的。 需要注意的是,在发送SYN包之前,需要先计算TCP校验和。在C语言中,可以使用check_sum函数来计算校验和。该函数会将变量放入寄存器,并进行16位求和操作。最后,将结果取反即可得到校验和。这样,就可以完成Syn Flood攻击的发送环节。 需要谨慎使用Syn Flood攻击方法,因为它是一种违法行为,并且可能造成严重的网络服务中断。在实际应用中,需要遵守法律法规,并仅限于合法的安全测试和研究领域使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值