DDos攻击的原理

  DDos又称分布式拒绝服务,全称是Distributed Denial of Service。DDos是利用合理的请求造成资源过载,从而导致服务不可用;就好比我们的系统是停车场,系统中的资源是车位,资源是有效的,而服务必须一直提供下去,如果资源已经被占用了,那么服务将过载,导致系统停止新的响应。

分布式拒绝服务攻击,将正常请求放大了若干倍,通过若干个网络节点同时发起攻击,从而达成很大规模,这些网络节点就是黑客们控制的“肉鸡”,数量达到一定规模后,就形成了一个“僵尸网络”,大型的“僵尸网络”,可以到达数万,数十万台的规模,这么大规模的僵尸网络发起DDOS攻击,是不可能阻挡的。

  常见的DDOS攻击有SYN flood,UDP flood,ICMP flood等,其中SYN flood是最典型的一中攻击;SYN flood攻击是利用了TCP协议的设计缺陷,而TCP/IP协议是整个互联网的基础,修复这样的缺陷也是不太可能的;

正常情况下TCP连接需要3次握手,过程如下:

                

1、客户端向服务器发送一个SYN数据包,包含客户端上使用的端口号和初始序列号x;

2、服务器端收到客户端发送来的SYN后,向客户端发送一个SYN和ACK,包含了确认号x+1和服务端的初始序列号y;

3、客户端收到服务器端返回的SYN 和ACK后,想服务器端返回一个确认号y+1,序列号x+1的ACK报文,这时一个标准的TCP连接就建立了;

  当SYN flood进行攻击的时候,首先会伪造大量的源IP地址,分别向服务器发送大量的SYN包,此时服务器端会返回SYN/ACK包,因为源地址是伪造的,所以伪造的IP地址不会应答,服务器端没有收到伪造的IP的回应,会重新发送3~5次SYN/ACK包,并且等待一个SYN time(一般是30秒至2分钟),如果超时就会丢弃这个连接;当攻击者大量发送这种伪造的源地址的SYN请求,服务器端将会消耗非常多的资源(CPU和内存)来处理这种半连接,同时还要不断的对这些IP 进行SYN/ACK重试,最后就会导致服务器无法进行正常的请求处理,导致拒绝服务;

  对抗SYN flood  的DDOS攻击主要措施有SYN Cookie/SYN Proxy,safereset等算法。SYN Cookie的主要思想是为每一个ip地址分配一个cookie,并统计每个ip的访问频率,如果短时间内收到大量的来自同一个ip地址的数据包,则认为是收到了攻击,之后来自这个ip的数据将会直接丢弃;

注:以上内容来自(《白帽子讲安全》)的学习;

猜你喜欢

转载自www.cnblogs.com/AnXinliang/p/9842127.html