DDoS攻击原理
随着计算机的处理能力显著增加,内存不断增大、网速的不断提高,普通的Dos攻击已经不能对服务器造成攻击。DDos攻击主要是利用公网组织数量庞大的计算机设备对服务器进行大量的请求,占用大量的资源,使合理的请求无法处理,造成服务瘫痪。可以利用协议和系统的缺陷对服务造成攻击,如SYN Flood、DNS Query Flood和CC攻击等。
SYN Flood
该类攻击主要是利用了tcp三次握手中服务器无法获取客户端的ACK,使服务器持续发送SYN+ACK直到资源耗尽。TCP三次握手如下图所示:
攻击者伪造大量的ip,在向服务器发送SYN请求后,服务端需要返回客户端SYN+ACK,在同时客户端需要对服务端返回的连接进行确认,由于客户端使用的ip是伪造的,无法对服务端返回的信息进行确认,服务端在没有收到客户端的确认时,会不断的发送请求。如果客户端伪造大量的ip,会占用大量的服务端资源导致服务瘫痪。
DNS Query Flood
客户端伪造大量的域名,并向被攻击服务器发送请求,服务器在对域名进行解析时需要将域名上传到DNS服务器,由于域名是伪造的,几乎不可能找到域名,需要继续向上一级DNS服务器进行查询,大量不能解析的域名会对服务器带来恨大的负载,当解析请求超过一定量时,就会造成DNS解析域名超时达到攻击的目的。
CC 攻击
攻击者寻找大量匿名的HTTP代理,模拟用户给网站发起请求,该请求会有意避开缓存和负载,对数据库进行多次查询返回大量的数据,消耗系统资源,从而拖垮业务处理系统。