填充攻击原理与攻击分析

原理介绍

填充攻击:填充攻击指的是以故意在数据包内容部分填充一些无用的数据来消耗网络带宽和系统资源的一种网络攻击。
值得指出的是数据填充在网络传输中经常会见到。例如我们知道arp 协议字段长度为 14+28=42byte,而42字节是不能出现在以太网络中的(以太网准许发送字节为64-1518byte),为了能将arp数据包正确的发送到以太网中,于是便填充了18字节,然后加上4字节的FCS 正好是64字节。这个正好符合以太网最小数据包的字节数。
填充攻击介绍和攻击
数据填充现象在一些 TCP SYN 数据包,和ACK 中也经常出现,此类填充主要是为了让数据包能够达到以太网发送标准而做的填充。
填充攻击则以消耗带宽和系统资源为主。下面我们来看两个填充攻击的案例。所以带来的直接现象就是网络比较慢,服务器CPU利用率很高,很难提供正常的服务。

案例分析

UDP flood 攻击是DOS 攻击中的一种,既能消耗网络带宽也能消耗系统资源。此类攻击主要明显的特征有以下:
UDP 会话数较多,在很短的时间内就达到成百上千,远大于TCP会话
填充攻击介绍和攻击
网络中大包较多,大小包数据包失衡
填充攻击介绍和攻击
此外,数据包部分能看到大量填充现象明显的数据包。
填充攻击介绍和攻击
另外 有时候为了制造大量流量,数据包还会有很多分片产生
填充攻击介绍和攻击
填充攻击介绍和攻击
如上图我们看到ID 为0x2D44的数据包被分成两个分片来进行传输。而且分片包是没有传输层信息的。
UDP flood 中也有数据填充较少的一种攻击,此种攻击主要就是为了消耗系统的资源。通过请求被攻击主机的随机的UDP端口,根据UDP设计规则,系统会回送icmp 端口不可达信息。如图我们可以看到每一个UDP请求对应一个ICMP的端口不可达报错
填充攻击介绍和攻击
我们看到 此处的UDP 请求只做了最小的填充,只填充了18个字节,正好符合以太网的最小发包规则。而发送小包相对需要的时间少,利于数据包的大量发送,我们可以看到在1S钟内 就有超过4000个UDP数据包发送。
而每一次UDP请求,系统都会做出一次端口不可达的报错,因此此种报错很多如图:
填充攻击介绍和攻击
填充攻击,不仅可以出现在UDP协议中,还会有ICMP,TCP 协议利用。无论是利用什么协议做攻击,最主要的还是数据包中有大量无用字节,而且数据包比较齐整。
填充攻击的防御主要是要在防火墙去过滤一些分片,和大量重复数据的发送。