计算机网络安全:针对TCP/IP堆栈的攻击方式的防御方法

一、同步包风暴(SYN Flooding)攻击

1. 攻击原理

正常 TCP 三次握手流程:

【1】客户端向服务器发送 SYN 包,携带初始序列号 x

【2】服务器返回 SYN+ACK 包,包含自己的初始序列号 y 和对客户端的确认号 x+1

【3】客户端发送 ACK 包,确认号为 y+1,完成连接建立

YN Flooding 攻击流程:

攻击者伪造大量虚假 IP 地址,向目标服务器发送 SYN 包。服务器收到后分配资源(如内存、文件句柄)并回复 SYN+ACK 包,但伪造的 IP 地址不会返回 ACK 包,导致连接始终处于半开状态(SYN_RECV)。当半开连接数耗尽服务器资源时,正常请求将被拒绝。

2. 攻击特点

消耗资源:攻击无需完成三次握手,仅需发送 SYN 包即可占用服务器资源。

隐蔽性强:可伪造源 IP,难以追溯真实攻击者。

大规模性:常配合僵尸网络(Botnet)发起分布式 SYN Flood(DDoS 攻击的一种)。

3. 预防措施

【1】优化 TCP/IP 栈:

  调整半开连接超时时间(tcp_synack_retries),缩短无效连接的保留时间。

  限制半开连接数(tcp_max_syn_backlog),避免资源耗尽。

【2】SYN Cookie 技术:

  服务器在回复 SYN+ACK 包时不立即分配资源,而是根据客户端 IP、端口等信息生成一个 Cookie 值。客户端返回 ACK 包时,服务器验证 Cookie 有效性,有效则分配资源,避免伪造 IP 的攻击。

【3】部署防火墙 / IPS:

启用 SYN Flood 防护模块,识别并过滤异常 SYN 包(如短时间内大量来自同一 IP 的 SYN 请求)。采用反向代理或负载均衡器分担连接压力。

【4】源 IP 验证:

 通过发送 ICMP 回显请求(Ping)验证源 IP 真实性,丢弃无法响应的 IP 请求。

二、ICMP 攻击

1. 攻击原理

ICMP(Internet 控制消息协议)用于网络设备间的状态通知(如 Ping 检测可达性、Traceroute 追踪路由)。攻击者利用 ICMP 协议的特性发起攻击,常见类型包括:

(1)Ping of Death

原理:发送超过 65535 字节(IP 数据包最大理论长度)的 ICMP Echo Request 包。早期系统处理超大包时会导致缓冲区溢出,引发系统崩溃或拒绝服务。

现状:现代系统已修复该漏洞,但仍可能用于探测系统脆弱性。

(2)ICMP Flood

原理:短时间内向目标发送大量 ICMP Echo Request 包(如 Ping 命令),耗尽目标带宽或资源,导致正常业务中断。

(3)Smurf 攻击

攻击者向目标网络的广播地址发送伪造源 IP 为目标主机的 ICMP 请求。网络内所有主机收到广播请求后,向目标主机回复 ICMP 响应,形成流量风暴。

2. 攻击特点

协议合法性:ICMP 属于正常网络协议,攻击流量易被误认为合法通信。

放大效应:Smurf 攻击利用广播地址使攻击流量成倍数放大。

低技术门槛:无需复杂工具,普通 Ping 命令即可发起攻击。

3. 预防措施

【1】禁用 ICMP 响应:

 在防火墙或主机上禁止响应 ICMP Echo Request(关闭 Ping 功能),仅允许必要的监控设备使用。

【2】过滤广播包:

 网络设备禁用 IP 广播功能,阻止 Smurf 攻击利用广播地址。

【3】流量限速:

 对 ICMP 流量设置速率限制(如每秒不超过 100 个 Ping 包),防止 ICMP Flood。

【4】源 IP 验证:

 部署 ingress 过滤,丢弃源 IP 为内网地址的外网 ICMP 包,防止 Smurf 攻击伪造源 IP。

三、SNMP 攻击

1. 攻击原理

SNMP(简单网络管理协议)用于管理网络设备(如路由器、交换机),默认使用社区字符串(Community String)作为认证凭证(类似密码)。常见攻击方式包括:

(1)社区字符串爆破

攻击者通过字典攻击猜解 SNMP 社区字符串(默认如public、private),获取设备读写权限。

(2)MIB 信息窃取

通过合法社区字符串访问设备 MIB(管理信息库),获取敏感信息(如设备配置、接口流量、路由表)。

(3)恶意配置修改

利用读写权限(如社区字符串为private)修改设备配置,植入后门或破坏网络拓扑。

(4)SNMP Flood

发送大量无效 SNMP 请求,耗尽设备资源或带宽,导致拒绝服务。

2. 攻击特点

权限依赖:攻击成功与否取决于社区字符串是否泄露。

隐蔽性:SNMP 流量通常为合法管理流量,不易被实时检测。

高风险:一旦获取读写权限,可直接控制网络设备。

3. 预防措施

【1】强认证机制:

 弃用明文社区字符串,改用 SNMPv3 版本,支持加密(AES/DES)和认证(MD5/SHA)。

# 示例:配置SNMPv3用户(Cisco设备)

snmp-server user admin auth sha <密码> priv aes 256 <密钥>

【2】限制访问源:

  在设备 ACL 中仅允许信任的 IP 地址访问 SNMP 服务,拒绝其他 IP 的请求。

# 示例:允许192.168.1.100访问SNMP

access-list 10 permit 192.168.1.100

snmp-server community public ro access 10

【3】最小权限原则:

 分配只读社区字符串(ro)给非管理设备,避免使用读写权限(rw)。

【4】定期更换社区字符串:

    避免使用默认值(如public),定期修改并记录。

【5】监控 SNMP 流量:

    通过 IDS/IPS 检测异常 SNMP 请求(如非管理 IP 的高频访问)。

案例-1:同步包风暴(SYN Flooding)攻击

【1】案例描述

 2014 年,某在线游戏平台遭遇史上最大规模 SYN Flooding 攻击,峰值流量达400Gbps。攻击者利用大量伪造 IP 向服务器发送 SYN 请求,耗尽服务器的 TCP 连接队列资源,导致正常用户无法登录游戏。

【2】攻击过程

 (1)  伪造源 IP:攻击者使用僵尸网络(Botnet)生成海量伪造的客户端 IP 地址。

 (2)  发送 SYN 请求:每个伪造 IP 向服务器发送 SYN 包,请求建立 TCP 连接。

 (3)  耗尽资源:服务器为每个未完成的连接分配内存空间(半开连接队列),当队列被填满时,服务器拒绝新的连接请求,导致服务瘫痪。

【3】防御措施

(1)  SYN Cookie 技术:

服务器在收到 SYN 包时不立即分配资源,而是返回一个加密的 “Cookie”(包含序列号等信息),客户端回复 ACK 包时需携带该 Cookie。服务器验证 Cookie 合法后再建立连接,避免资源提前占用。

(2) 限制连接速率:

通过防火墙设置每秒最大 SYN 请求数(如限制为 1 万次 / 秒),超过阈值则丢弃数据包。

(3) 使用负载均衡与 CDN:

分散流量到多个节点,避免单点过载;CDN 节点可过滤部分攻击流量。

案例-2:ICMP 攻击(Smurf 攻击变种)

【1】案例描述

2000 年,“爱虫” 病毒爆发期间,某大学网络中心遭遇 Smurf 攻击变种。攻击者伪造源 IP 为该校服务器地址,向多个教育网广播地址发送 ICMP 请求,导致该校服务器被海量 ICMP 响应包淹没,网络瘫痪数小时。

【2】攻击过程

  (1)  伪造源 IP:攻击者将 ICMP 请求包的源 IP 设为目标服务器(如192.168.1.100),目标 IP 设为某教育网的广播地址(如172.16.0.255)。

  (2)  广播放大:该教育网内的所有主机(约 1000 台)收到广播请求后,向目标服务器返回 ICMP 响应包,形成1000 倍流量放大。

  (3)  资源耗尽:目标服务器带宽被占满,无法处理正常业务。

【3】防御措施

 (1) 禁用 IP 广播:

  在路由器 / 交换机配置no ip directed-broadcast,禁止定向广播包进入内网。

 (2) 过滤 ICMP 协议:

  仅允许特定 IP(如监控设备)发起 ICMP 请求,其余 ICMP 流量(如 Ping)全部拦截。

 (3) 源 IP 验证:

  在边界防火墙配置 “反向路径转发检查”(uRPF),丢弃源 IP 与入口接口不匹配的数据包(防止伪造内网 IP 的攻击)。

案例-3:SNMP 攻击(利用默认社区字符串)

【1】案例描述

2022 年,某企业路由器因未修改 SNMP 默认社区字符串(“public”),被攻击者利用 SNMP 协议读取设备配置,并篡改路由表,导致企业网络大面积断网。攻击者进一步通过 SNMP 写入漏洞植入后门程序,长期窃取数据。

【2】攻击过程

  (1)  探测开放端口:攻击者扫描目标网络,发现某路由器开放 SNMP 服务(UDP 161 端口)。

  (2)  尝试默认社区字符串:使用默认社区字符串 “public”(只读)和 “private”(读写)发送 SNMP 请求,成功获取设备信息(如接口状态、路由表)。

  (3)  篡改配置或植入后门:利用读写权限(如社区字符串为 “private”)修改路由器配置,或通过 SNMP 协议发送恶意 OID(对象标识符)植入代码。

【3】防御措施

 (1)   修改默认社区字符串:

       禁用 “public”“private” 等默认字符串,使用复杂密码(如包含大小写、数字、符号的 16 位字符串),并定期更换。

 (2)  限制 SNMP 访问源:

       在路由器配置中仅允许信任的 IP 地址(如监控服务器)访问 SNMP 服务,拒绝其他 IP 的请求。

 (3) 启用 SNMPv3 协议:

      升级至 SNMPv3 版本,启用加密传输(AES/DES)和用户认证(MD5/SHA),防止未授权访问和数据窃听。

 (4) 关闭非必要服务:

      若无需 SNMP 监控,直接在设备上禁用 SNMP 服务,或限制仅通过 SSH/Telnet 管理设备。

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
暴走的风的头像 - 宋马
评论 抢沙发

请登录后发表评论

    暂无评论内容