DDOS 科普与防御

没有ddos演示,自己一把梭 ddos tools进行防御功能的有效性验证。

关于恐龙名词的定义,AI 一把梭即可: 拒绝服务攻击(DoS);分布式拒绝服务攻击(DDoS)

  • ICMP 泛洪

DOS:单一IP指向目标同一个端口
DDOS:多个源IP
主动扫描:指向目标多个端口

ICMP Flood(DoS),ICMP泛洪:即ping ,发送大量的ICMP echo 请求数据包(可从RFC协议文档或AI中一把梭得到 echo 请求的协议字段与值)
Smurf Attack(DDoS):即蓝精灵的DDOS ping 攻击,攻击者机器-> c2服务器 ->僵尸网络->受害者机器。即已蓝精灵攻击行动来命名该DDOS攻击,贵攻击组织对此次蓝精灵行动负全责。
综上:即,DoS本质上是调试某个协议比如ICMP的不同协议字段的值进行尝试。比如大量的 ICMP type 8即,发送大量的 ICMP echo 请求。这是举一反三的基本理解力。即,DoS的流量形式五花八门,你可以自己总结归纳并已“原创”性的命名方式(比如都命名为银狐),对此次防御活动进行负责。

针对ICMP Flood(DoS)与 Smurf Attack(DDoS) 的防御:防御思路,不响应不转发相关ICMP echo请求流量即可;现代防火墙大多数已默认进行该攻击的防御了

  • IP分片泛洪

IP Fragmentation Attack (DoS):数据包分割成更小的碎片,最大传输单元(MTU)小于原始数据包大小,接收主机会重组这些碎片。即,发送一个快递把快递分成三部分发最后再还原。

该DoS本质上即在寻找RFC IP协议包中的字段寻找分片或不分片的字段与值最后进行发送与验证从而进行开发出来的攻击思路。

即你RFC或者AI一把梭找到即可:即在协议字段flag处,设置如图所示的钵钵鸡值
image
image

wireshark DoS流量取证过滤器语法:ip.flags == 0x01
image

防御思路:它要分片就不让它分呗。设置DF flag,如果你能控制IP请求包的话;最常见的方法是检测传入数据包是否违反分片规则(比如使用路由器或安全代理不让它分呗,设置是否违反分片规则)

TCP Teardrop Attack,ICMP 和 UDP 的分片攻击也是同上的原理。

  • TCP 三次握手 SYN 洪

攻击思路:即只大量SYN预握手呗,不管你是不是应答就是硬握呗。那么检测手段就是看你是不是硬握却没有应答呗。

wireshark DoS流量取证过滤器语法:tcp.flags.syn == 1 and tcp.flags.ack == 0

防御思路:增加预握手的缓冲队列;回收最旧的半开TCP连接;SYN cookies功能;在防火墙或代理上设置速率控制

进行cookie验证(Reset expect与cookie验证同理,无非就是通过RST包进行类似cookie验证,通过后再发给服务器;Reset Send同理 ):cookie验证, Reset expect,Reset Send都是增加了验证再转发的机制。之所以存在这三种方式是由于存在不同优缺点,我们不需要也不想知道。
image

  • TCP ACK 洪(包括所有flags字段全部同理)

攻击思路:即直接发送大量 ACK 包(三次握手正常流程是 SYN -- SYN,ACK -- ACK),不走正常流程,一开始就直接发ACK呗。思路在于理论与实际产品落地的反差,看看请求包违反RFC规定之后防火墙又是否按照RFC理论处理还是按照贵司厂家自己处理?

wireshark DoS流量取证过滤器语法:tcp.flags.ack == 1 或者 tcp.analysis.duplicate_ack

防御思路:它不走三次握手直接发ACK即不搭理它呗。即观察服务器是否搭理发送的大量ACK包即可,服务器是否响应出站的ACK 和 SYN-ACK包。

TCP 协议其他flags字段与上同理,而且还会发生组合。可以随便组合,甚至所有flags全部为0。比如 XMAS 攻击就是把TCP协议里的所有字段(FIN,SYN,RST,ACK,URG)都设置成1:观察入站流量组织非法flags字段即可。

  • TCP 连接洪
posted @ 2025-11-18 22:24  sec875  阅读(5)  评论(0)    收藏  举报