zhaoyu@home:~$

DOS攻击

Denial-Of-Service

通常DOS通过向网站发送大量流量,让所有服务器资源耗尽。

DOS攻击的类型

Internet Control Message Protocol Attacks

Internet Control Message Protocol (ICMP)是被服务器或者路由器用于检测一个网络地址是否在线的协议。这个协议很简单,向服务器发送一个请求, 服务器响应是否在线。Ping实际上就是使用的ICMP协议。

CIMP攻击可以发送无限的ping请求到服务器,只需几行代码就可以实现。一个复杂一点的攻击称为ping死亡攻击,通过发送损坏的ICMP数据包让服务器崩溃。

传输协议控制攻击

大部分基于ICMP的攻击可以被现代网络接口防御,所以攻击者会升级为TCP,TCP连接会经历握手环节,攻击者通过发送大量的握手未完成的连接,让服务器耗尽 连接。

应用层攻击

应用层针对HTTP协议。通过定期发送请求,占用HTTP连接,耗尽服务器连接池。或者上传巨大的文件,耗尽磁盘资源等。

反射和放大攻击

发起一个有效的DDOS攻击需要有足够的算力,黑客通过使用第三方服务,将返回流反射到向受害者地址,达到攻击目的。并且反射攻击也掩盖了攻击的来源,使其 更难确定。如果第三方服务的响应比初始请求的响应更大或更多,则更大的响应会放大攻击力。

Distributed DOS攻击

dos攻击从一个IP发起,可以用黑名单相对容易地阻止,从多个不同的源发出的攻击,称为DDos攻击。

DOS攻击的解决

防火墙和入侵防御系统

防火墙有网络层的和应用层的,大部分现代服务器都有防火墙。
入侵防御系统除了实现防火墙和签名匹配外,寻找网络流量中的统计异常,并扫描磁盘上的文件寻找异常,从更全面的层面来保护网络。但是投资也是不小的。

DDOS防御服务

许多公司提供了对DDOS服务的防御系统,但是费用也高昂。当你集成一个DDOS防御提供商后,你讲所有的流量路由到它的数据中心,数据中心扫描并阻止恶意的请求。

构建可扩展系统

在很多时候,DOS攻击和多个正常的请求是很难区分的。可以通过增大系统的处理流量防御DOS攻击。可扩展的系统构建是非常重要的。一些有效的方法如下:转移 静态资源,缓存数据库请求,长时间任务异步处理,部署多实例等。

  1. CDN通过转移静态资源的压力到第三方,极大地提高响应时间。
  2. 在数据库前加缓存,在大流量下,缓存可以防止数据库过载。
  3. 多长时间任务建立任务队列。
  4. web服务可轻松扩展,利用现在的云计算可以很好地实现。