DDoS一直以来都是难题。防御难度大,防御系统建设成本投入大。(内容较长,与君有益)
被DDoS攻击经常会出现以下几种情况:
l 被攻击的主机上有大量等待的TCP连接。
l 网络中充斥着大量的无用的数据包,源地址为假。
l 制造高流量无用数据,造成网络拥塞,使被攻击的主机无法正常通信。
l 利用受害主机提供的服务或传输协议上的缺陷,反复高速地发出特定的服务请求,使受害主机无法及时处理所有正常请求。
l 严重时会造成系统死机。
在知晓DDoS的防御手段之前,我们需要搞清楚几个问题:
1、什么是DDoS?
2、DDoS的攻击原理是什么?
3、常见的DDoS攻击类型有哪些?
只有先搞清楚这3个问题,谈防御才是有效的。
DDoS攻击又称分布式拒绝服务,是利用大量合理的请求造成资源过载,从而导致服务不可用。就比如一个餐馆总共有100个座位,突然有一天某个商家恶意竞争,雇佣了200个人来到这个餐馆坐着不吃不喝,门口还排着长长的队,导致餐馆无法正常营业,这就是DDos。DDoS的攻击目标多元化,从web到DNS,从三层网络到七层应用,从协议栈到应用App,层出不穷的新产品也给了黑客更多的机会和突破点。
DDoS的攻击来源
1、高性能服务器配合发包软件
2、可联网的设备(如打印机、摄像头、电视等等)
3、移动设备(数量多,增长速度快,其高性能利于组建僵尸网络)
4、个人PC(存在漏洞的PC或一些黑客迷自愿成为DDOS一员)
5、黑客控制的僵尸网络(僵尸网络又分为IRC型、HTTP型、P2P型)
DDoS的攻击原理
DDoS攻击它的原理说白了就是群殴,用好多的机器对目标机器一起发动DoS攻击,但这不是很多黑客一起参与的,这种攻击只是由一名黑客来操作的。这名黑客不是拥有很多机器,他是通过他的机器在网络上占领很多的"肉鸡",并且控制这些"肉鸡"来发动DDoS攻击,。
举个例子,你的机器每秒能发送10个攻击数据包,而被攻击的机器每秒能够接受100的数据包,这样你的攻击肯定不会起作用,而你再用10台或更多的机器来对被攻击目标的机器进行攻击的话,那结果就可想而知了。
网络层攻击:比较典型的攻击类型是UDP反射攻击,例如:NTP Flood攻击,这类攻击主要利用大流量拥塞被攻击者的网络带宽,导致被攻击者的业务无法正常响应客户访问。
传输层攻击:比较典型的攻击类型包括SYN Flood攻击、连接数攻击等,这类攻击通过占用服务器的连接池资源从而达到拒绝服务的目的。
会话层攻击:比较典型的攻击类型是SSL连接攻击,这类攻击占用服务器的SSL会话资源从而达到拒绝服务的目的。
应用层攻击:比较典型的攻击类型包括DNS flood攻击、HTTP flood攻击、游戏假人攻击等,这类攻击占用服务器的应用处理资源极大的消耗服务器处理性能从而达到拒绝服务的目的。
DDoS常见攻击类型
①ACK Flood攻击
ACK Flood攻击是在TCP连接建立之后,所有的数据传输TCP报文都是带有ACK标志位的,主机在接收到一个带有ACK标志位的数据包的时候,需要检查该数据包所表示的连接四元组是否存在,如果存在则检查该数据包所表示的状态是否合法,然后再向应用层传递该数据包。如果在检查中发现该数据包不合法,例如该数据包所指向的目的端口在本机并未开放,则主机操作系统协议栈会回应RST包告诉对方此端口不存在。
②UDP Flood攻击
UDP Flood是日渐猖獗的流量型DoS攻击,原理也很简单。常见的情况是利用大量UDP小包冲击DNS服务器或Radius认证服务器、流媒体视频服务器。 100k pps的UDP Flood经常将线路上的骨干设备例如防火墙打瘫,造成整个网段的瘫痪。由于UDP协议是一种无连接的服务,在UDP FLOOD攻击中,攻击者可发送大量伪造源IP地址的小UDP包。但是,由于UDP协议是无连接性的,所以只要开了一个UDP的端口提供相关服务的话,那么就可针对相关的服务进行攻击。
③ICMP Flood攻击
ICMP Flood 的攻击原理和ACK Flood原理类似,属于流量型的攻击方式,也是利用大的流量给服务器带来较大的负载,影响服务器的正常服务。由于目前很多防火墙直接过滤ICMP保温,因此ICMP Flood出现的频度较低。
④Connection Flood攻击
Connection Flood是典型的并且非常有效的利用小流量冲击大带宽网络服务的攻击方式,,这种攻击方式目前已经越来越猖獗。这种攻击的原理是利用真实的IP地址向服务器发起大量的连接,并且建立连接之后很长时间不释放,占用服务器的资源,造成服务器服务器上残余连接(WAIT状态)过多,效率降低,甚至资源耗尽,无法响应其他客户所发起的连接。
其中一种攻击方法是每秒钟向服务器发起大量的连接请求,这类似于固定源IP的SYN Flood攻击,不同的是采用了真实的源IP地址。通常这可以在防火墙上限制每个源IP地址每秒钟的连接数来达到防护目的。但现在已有工具采用慢速连接的方式,也即几秒钟才和服务器建立一个连接,连接建立成功之后并不释放并定时发送垃圾数据包给服务器使连接得以长时间保持。这样一个IP地址就可以和服务器建立成百上千的连接,而服务器可以承受的连接数是有限的,这就达到了拒绝服务的效果。
⑤HTTP Get攻击
用MSSQLServer、MySQLServer、Oracle等数据库的网站系统而设计的,特征是和服务器建立正常的TCP连接,并不断地向脚本程序提交查询、列表等大量耗费数据库资源的调用,典型的以小博大的攻击方法。一般来说,提交一个GET或POST指令对客户端的耗费和带宽的占用是几乎可以忽略的,而服务器为处理此请求却可能要从上万条记录中去查出某个记录,这种处理过程对资源的耗费是很大的,常见的数据库服务器很少能支持数百个查询指令同时执行,而这对于客户端来说却是轻而易举的,因此攻击者只需通过Proxy代理向主机服务器大量递交查询指令,只需数分钟就会把服务器资源消耗掉而导致拒绝服务,常见的现象就是网站慢如蜗牛、ASP程序失效、PHP连接数据库失败、数据库主程序占用CPU偏高。这种攻击的特点是可以完全绕过普通的防火墙防护,轻松找一些Proxy代理就可实施攻击,缺点是对付只有静态页面的网站效果会大打折扣,并且有些Proxy会暴露攻击者的IP地址。
⑥UDP DNS Query Flood攻击
UDP DNS Query Flood攻击采用的方法是向被攻击的服务器发送大量的域名解析请求,通常请求解析的域名是随机生成或者是网络世界上根本不存在的域名,被攻击的DNS 服务器在接收到域名解析请求的时候首先会在服务器上查找是否有对应的缓存,如果查找不到并且该域名无法直接由服务器解析的时候,DNS 服务器会向其上层DNS服务器递归查询域名信息。域名解析的过程给服务器带来了很大的负载,每秒钟域名解析请求超过一定的数量就会造成DNS服务器解析域名超时。
DDoS的防御方法
1、过滤不必要的服务和端口
可以使用Inexpress、Express、Forwarding等工具来过滤不必要的服务和端口,即在路由器上过滤假IP。比如Cisco公司的CEF(Cisco Express Forwarding)可以针对封包Source IP和Routing Table做比较,并加以过滤。只开放服务端口成为目前很多服务器的流行做法,例如WWW服务器那么只开放80而将其他所有端口关闭或在防火墙上做阻止策略。
2、分布式集群防御
这是目前网络安全界防御大规模DDOS攻击的最有效办法。分布式集群防御的特点是在每个节点服务器配置多个IP地址(负载均衡),并且每个节点能承受不低于10G的DDOS攻击,如一个节点受攻击无法提供服务,系统将会根据优先级设置自动切换另一个节点,并将攻击者的数据包全部返回发送点,使攻击源成为瘫痪状态,从更为深度的安全防护角度去影响企业的安全执行决策。
3、高防智能DNS解析
高智能DNS解析系统与DDOS防御系统的完美结合,为企业提供对抗新兴安全威胁的超级检测功能。它颠覆了传统一个域名对应一个镜像的做法,智能根据用户的上网路线将DNS解析请求解析到用户所属网络的服务器。同时智能DNS解析系统还有宕机检测功能,随时可将瘫痪的服务器IP智能更换成正常服务器IP,为企业的网络保持一个永不宕机的服务状态。
4、异常流量的清洗过滤
通过DDOS硬件防火墙对异常流量的清洗过滤,通过数据包的规则过滤、数据流指纹检测过滤、及数据包内容定制过滤等顶尖技术能准确判断外来访问流量是否正常,进一步将异常流量禁止过滤。当发生DDOS攻击时,网络监控系统会侦测到网络流量的异常变化并发出报警。在系统自动检测或人工判断之后,可以识别出被攻击的虚拟机公网IP地址。这时,可调用系统的防DDOS攻击功能接口,启动对相关被攻击IP的流量清洗。流量清洗设备会立即接管对该IP地址的所有数据包,并将攻击数据包清洗掉,仅将正常的数据包转发给随后的网络设备。这样,就能保证整个网络正常的流量通行,而将DDOS流量拒之门外。
目前流量清洗的工具主要有高防IP、高防CDN。高防CDN通过架设多个高防CDN节点以解决访问并发量高的问题,减轻网站服务器的压力,同时还可以隐藏网站源IP。高防IP使用专门的高防机房提供DDoS防护服务,不需要重新部署环境,转移数据的,无视DDoS和CC攻击,隐藏源服务器IP,只需要快速做下转发设置,将攻击流量过滤清洗拦截,只让正常流量访问到源服务器,保证网站快速访问或服务器稳定可用。业务流量都会先经过高防IP, 然后回源到源站IP,当出现恶意流量攻击时,恶意流量在高防IP清洗过滤后将正常业务流量返回给源站IP,以保证服务的正常可用。