信息安全的三要素——“机密性”、“完整性”和“可用性”中,DoS(DenialofService),即拒绝服务攻击,针对的是“可用性”。该攻击方式利用目标系统网络服务功能的缺陷或直接消耗其系统资源,使目标系统无法提供正常服务。Ddos攻击有很多种。最基本的Dos攻击就是利用合理的服务请求占用过多的服务资源,使合法用户得不到服务响应。单次DoS攻击一般采用一对一的方式,当攻击目标的CPU速度低、内存小或网络带宽小等低性能时效果明显。随着计算机和网络技术的发展,计算机的处理能力迅速提高,内存大幅增加,千兆网络也同时出现,这使得DoS攻击变得更加困难——目标“消化”的能力“恶意攻击包”加强了很多。此时,分布式拒绝服务攻击(DDoS)应运而生。DDoS是利用更多的傀儡机发动攻击,比以前更大规模地攻击受害者。一、攻击方式一.synflood这种攻击向具有多个随机源主机地址的目的主机发送SYN包,但是在收到目的主机的SYNACK后不响应连接队列,而这些队列因为没有收到ACK而一直保持着,导致大量消耗资源,最终导致拒绝服务2.Smurf这种攻击将带有特定请求(例如ICMP响应请求)的数据包发送到广泛的投一个子网的地址,并将源地址伪装成你要攻击的主机的地址。子网内的所有主机响应广播包请求,向被攻击主机发送数据包,使主机被攻击。3.Land-based攻击者将报文的源地址和目的地址设置为目标主机的地址,然后通过IP欺骗将报文发送给被攻击主机。它自己建立连接,陷入死循环,大大降低了系统性能。4、PingofDeath根据TCP/IP规范,一个报文的最大长度为65536字节。虽然一个报文的长度不能超过65536字节,但是一个报文的多个分片的叠加是可以的。当主机收到长度大于65536字节的数据包时,就会受到PingofDeath攻击,导致主机宕机。5、TeardropIP数据包在网络传输时,可以将数据包分成更小的分片。攻击者可以通过发送两个(或更多)数据包来实施TearDrop攻击。第一个数据包的偏移量为0,长度为N,第二个数据包的偏移量小于N。为了合并这些数据段,TCP/IP堆栈分配了异常大的资源,导致系统资源饥饿,甚至机器重新启动。6.PingSweep使用ICMPEcho轮询多个主机。7.Pingflood这种攻击在短时间内向目的主机发送大量的ping包,造成网络拥塞或主机资源耗尽。二、防御方法1、按攻击流量规模分类(1)小流量:小于1000Mbps,且在服务器硬件和应用可接受范围内,不影响业务:使用iptables或DDoS防护应用,实现软件层防护.(2)大流量:大于1000Mbps,但在DDoS清洗设备性能范围内,且小于机房出口,可能影响同一机房其他服务:使用iptables或DDoS防护应用来实现软件层保护,或使用机房出口设备直接配置黑洞等保护策略,或同时切换域名,将对外服务IP更改为高负载Proxy集群外网IP,或CDN高仿IP,或公有云DDoS网关IP,代理到RealServer;或者直连DDoS清洗设备。(3)超大规模流量:超出DDoS清洗设备性能范围,但在机房出口性能范围内,可能影响同一机房其他业务,或大于机房出口,并影响了同一机房的全部或大部分业务:联系运营商检查组限流配置部署情况,观察业务恢复情况。2.按攻击流量协议分类(1)syn/fin/ack等tcp协议报文:设置预警阈值和响应阈值,前者开始报警,后者开始处理,根据需要调整防护策略和防护方式到流量大小和影响程度,逐步升级。(2)UDP/DNS查询等UDP协议包:对于大部分游戏业务来说,都是基于TCP协议的,所以可以根据业务协议制定TCP协议的白名单。与产品确认或延迟确认,在系统级/HPPS或清洗设备直接丢弃UDP包。(3)HTTPflood/CC等需要与数据库交互的攻击:此类攻击一般会导致数据库或web服务器负载过高或连接数过高。限制或清理流量后,可能需要重启服务以释放连接数。当系统资源可以支持时,它往往会增加支持的连接数。相对而言,这种攻击防护难度更大,对防护设备的性能消耗较大。(4)其他:icmp包可以直接丢弃,在机房出口以下的各级要实施丢弃或限流策略。现在这种攻击已经很少见,对业务的损害也有限。
