DDoS Attack and Defense Analysis
概述
DoS (Denial of Service, DoS) 是经常被使用的一种行之有效但难以防范的攻击手段。它主要依靠消耗网络带宽或系统资源(如CPU、Disk、Memory)导致网络或者系统过载以至于瘫痪而停止提供正常的网络服务和使服务质量显著降低,或通过更改系统配置使系统无法正常工作(如更改路由表)来达到攻击的目的。
剧毒包型 DoS
该类攻击主要利用协议本身或者软件实现中的漏洞(Software vulnerabilities),向 Target 发送一些异常的(畸形的)的数据包(malformed packet)使得目标系统在处理时出现异常,甚至崩溃。
碎片攻击
碎片攻击(Teardrop)是利用 TCP/IP 协议栈实现上的漏洞,向目标主机发送分片偏移地址异常的 UDP 数据包分片,使得目标主机在重组分区时出现异常而崩溃或重启。
Ping of Death 攻击
该类攻击利用协议实现漏洞,向目标主机发送超长的 Ping 数据包(ICMP 包),导致目标主机系统异常,如死机、重启或崩溃。
Land 攻击
Land 攻击主要是针对目标主机上某个打开并处于监听的 TCP 端口,向其发送一个特别构造的 TCP SYN 包,该包的源地址和目标地址都被设置成目标主机的地址。目标主机收到上述报文后会向自己回复 TCP SYN+ACK消息,然后目标主机又发回自己一个 TCP ACK 报文,最后创建一个空连接。
循环攻击
循环攻击又称为振荡攻击(Oscillate Attack)或者乒乓攻击,其原理是:当两个都会产生输出的端口(可以是用一个主机上的端口,也可能是不同主机上的端口)之间建立连接后,第一个端口的输出成为第一个端口的输入,反之亦然,最后导致两个端口间产生大量数据包,导致拒绝服务。
风暴型 DoS
攻击者首先通过控制攻击 Handler 和大量代理主机(agent)来向目标主机发送大量网络分组报文。使用的网络分组报文类型通常有以下几种:
- TCP Flood:向目标主机发送大量设置了不同标志的 TCP 分组。如 TCP SYN 攻击导致主机不断地为 TCP 连接分配资源,从而使得资源耗尽或者使其他程序分配资源失败。Trinoo 工具。
- ICMP Echo Request/Response 报文:向目标主机发送大量的 ICMP 分组。
- 应用层协议报文:HTTP/HTTPS、NTP、SSDP、DNS 和 SNMP 等。
同时,为了提高攻击效果,一些 DDoS 攻击工具还常常改变分组流中分组的某些字段来达到各种目的,如下面几种情况:
- 源 IP 地址:IP spoofing ,隐藏分组的真正源地址,甚至可以将源地址改为目标主机地址。
- 源/目的端口号
- 其他的 IP 头字段