DDOS
DDOS
DDOS又称分布式拒绝服务攻击,全称是Distributed Denial of service
SYN flood
-
SYN flood在攻击时,首先伪造大量的源IP地址,分别向服务器发送大量的SYN包,此时服务器端会返回SYN/ACK包,因为源地址是伪造的,所以伪造的IP并不会应答,服务器端没有收到伪造IP的回应,会重试3~5次并且等待一个SYN Time(一般为30秒至2分钟),如果超时就丢弃这个连接。攻击者大量发送这种伪造源地址的SYN请求,服务器端将会消耗非常多的资源(CPU和内存)来处理这种半连接,同时还要不断对这些IP进行SYN/ACK重试。最后的结果是服务器无暇理睬正常的连接请求,导致拒绝服务。
-
对抗SYN flood攻击的主要措施有SYN Cookie/SYN proxy、safereset等算法,SYN Cookie的主要思想是为每一个IP地址分配一个‘Cookie“,并统计每一个IP地址的访问频率,如果在短时间内收到大量来自同一个IP地址的数据包,则认为受到攻击,之后来自这个IP的数据包将被丢弃。
应用层DDOS
应用层DDOS,不同于网络层DDOS,由于发生在应用层,因此TCP三次握手已经完成,连接已经建立,所以发起攻击的IP地址也都是真实的。
CC攻击
- CC攻击:CC攻击前身是一个叫fatboy的攻击程序,当时黑客为了挑战绿盟的一款反DDOS设备开发了它,绿盟是中国著名的安全公司之一,他有一款叫“黑洞(Collapasar)”的反DDOS设备,能够有效的清洗SYN Flood等有害流量,而黑客挑衅式的将fatboy所实现的方式命名为:Challenge Collapasar(简称CC)。
- CC攻击原理:对一些资源消耗比较大的应用页面不断发起正常的请求,已达到消耗服务端资源的目的,比如查询数据库,读写硬盘文件等操作。
- 最常见的针对应用层DDOS攻击的防御措施,是在应用层中针对每个客户端做一个请求频率的限制
可以从以下几个方面着手,解决应用层DDOS攻击:
-
应用代码做好优化。合理使用memcached就是一个很好的优化方案,将数据库的压力尽可能转移到内存中。
-
网络架构上做好优化。善于利用负载均衡分流,避免用户流量集中在单台服务器上,同时可以利用CDN和镜像站点的分流作用,缓解主站压力
-
实现一些对抗手段,比如限制每个IP地址的请求频率
Slowloris攻击
- Slowloris是在2009年由著名的Web安全专家RSnake提出的一种攻击方法,其原理是以极低的速度往服务器发送HTTP请求。由于Web Server对于并发的连接数都有一定的上限,因此若是恶意占用住这些连接不释放,那么Web Server的所有连接都将被恶意连接占用,从而无法接受新的请求,导致拒绝服务。
HTTP POST DOS
- HTTP POST Dos的原理是在发送HTTP POST包时,指定一个非常大的Content-Length值,然后以极低的速度发包,比如10~100s发送一个字节,保持住这个连接不断开。这样客户端连接数多了以后,占用住了Web Server的所有可用连接,从而导致DOS。