DDoS

攻击带宽

攻击系统资源

SYN Flood攻击

SYN Flood攻击是当前网络上最为常见的DDos攻击,也是最为经典的拒绝服务攻击,它利用了TCP协议实现上的一个缺陷,通过向网络服务所在端口发送大量的伪造源地址的半连接请求,造成目标服务器中的半连接队列被占满,耗费CPU和内存资源,使服务器超负荷,从而阻止其他合法用户进行访问

TCP混乱数据包攻击

TCP混乱数据包攻击与Syn Flood攻击类似,发送伪造源IP的TCP数据包,只不过TCP头的TCP Flags 部分是混乱的,可能是syn,ack,syn+ack,syn+rst等等,会造成一些防护设备处理错误锁死,消耗服务器CPU内存的同时还会堵塞带宽

防范措施

  • 缩短SYN Timeout时间,及时将超时请求丢弃,释放被占用CPU和内存资源。
  • 限制同时打开的SYN半连接数目,关闭不必要的服务。
  • 设置SYN Cookie,给每一个请求连接的IP地址分配一个Cookie。如果短时间内连续受到某个IP的重复SYN报文,就认定是受到了攻击,以后从这个IP地址来的包会被一概丢弃。
  • syn proxy, 这种技术对所有的syn包均主动回应,探测发起syn包的源IP地址是否真实存在,如果该IP地址真实存在,则该IP会回应防护设备的探测包,从而建立TCP连接。大多数的国内外抗DDOS产品均采用此类技术
  • Safereset技术:此技术对所有的syn包均主动回应,探测包特意构造错误的字段,真实存在的IP地址会发送rst包给防护设备,然后发起第2次连接,从而建立TCP连接
  • syn重传技术:该技术利用了TCP/IP协议的重传特性,来自某个源IP的第一个syn包到达时被直接丢弃并记录状态,在该源IP的第2个syn包到达时进行验证,然后放行

攻击应用资源

TCP全连接攻击

这种攻击是为了绕过常规防火墙的检查而设计的,针对用户态运行的tcp服务器。一般情况下,常规防火墙大多具备syn cookies或者syn proxy能力,能够有效应对伪造的IP攻击,但对于正常的TCP连接是放过的。但殊不知很多网络服务程序能接受的TCP连接数是有限的,一旦有大量的 TCP连接,即便是正常的,也会导致网站访问非常缓慢甚至无法访问,正所谓“多情总被无情伤”。TCP全连接攻击就是通过许多僵尸主机不断地与受害服务器建立大量的TCP连接,直到服务器的内存等资源被耗尽而被拖跨,从而造成拒绝服务,这种攻击的特点是可绕过一般防火墙的防护而达到攻击目的。

UDP Flood攻击

常见的情况是利用大量UDP小包冲击DNS服务器或Radius认证服务器、流媒体视频服务器。 100k PPS的UDP Flood经常将线路上的骨干设备例如防火墙打瘫,造成整个网段的瘫痪。由于UDP协议是一种无连接的服务,在UDP FLOOD攻击中,攻击者可发送大量伪造源IP地址的小UDP包。但是,由于UDP协议是无连接性的,所以只要开了一个UDP的端口提供相关服务的话,那么就可针对相关的服务进行攻击。

DNS Flood攻击

UDP DNS Query Flood攻击实质上是UDP Flood的一种,但是由于DNS服务器的不可替代的关键作用,一旦服务器瘫痪,影响一般都很大。UDP DNS Query Flood攻击采用的方法是向被攻击的服务器发送大量的域名解析请求,通常请求解析的域名是随机生成或者是网络世界上根本不存在的域名,被攻击的DNS 服务器在接收到域名解析请求的时候首先会在服务器上查找是否有对应的缓存,如果查找不到并且该域名无法直接由服务器解析的时候,DNS 服务器会向其上层DNS服务器递归查询域名信息。

防范

对突然发起大量频度较低的域名解析请求的源 IP 地址进行带宽限制,在攻击发生时降低很少发起域名解析请求的源IP地址的优先级,限制每个源 IP 地址每秒的域名解析请求次数

攻击web服务器

CC攻击

CC攻击(Challenge Collapsar)是DDOS攻击的一种,是利用不断对网站发送连接请求致使形成拒绝服务的攻击。相比其它的DDOS攻击,CC攻击是应用层的,主要针对网站。CC主要是用来攻击页面的,CC就是模拟多个用户(少线程就是多少用户)不停地进行访问那些需要大量数据操作(就是需要大量CPU时间)的页面,造成服务器资源的浪费,CPU长时间处于100%,永远都有处理不完的连接直至就网络拥塞,正常的访问被中止。

这种攻击主要是针对存在ASP、JSP、php、CGI等脚本程序,并调用mssql Server、mysqlServer、Oracle等数据库的网站系统而设计的,特征是和服务器建立正常的TCP连接,并不断的向脚本程序提交查询、列表等大量耗费数据库资源的调用,典型的以小博大的攻击方法。这种攻击的特点是可以完全绕过普通的防火墙防护,轻松找一些Proxy代理就可实施攻击,缺点是对付只有静态页面的网站效果会大打折扣。

防范

对是否HTTP Get的判断,要统计到达每个服务器的每秒钟的GET请求数,如果远远超过正常值,就要对HTTP协议解码,找出HTTP Get及其参数(例如URL等)。然后判断某个GET 请求是来自代理服务器还是恶意请求,并回应一个带Key的响应要求,请求发起端作出相应的回馈。如果发起端不响应则说明是利用工具发起的请求,这样HTTP Get请求就无法到达服务器,达到防护的效果。