导读 | Ddos的攻击方式有很多种,最基本的Dos攻击就是利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应。 |
在信息安全的三要素——“保密性”、“完整性”和“可用性”中,DoS(Denial of Service),即拒绝服务攻击,针对的目标正是“可用性”。该攻击方式利用目标系统网络服务功能缺陷或者直接消耗其系统资源,使得该目标系统无法提供正常的服务。
Ddos的攻击方式有很多种,最基本的Dos攻击就是利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应。单一的DoS攻击一般是采用一对一方式的,当攻击目标CPU速度低、内存小或者网络带宽小等等各项指标不高的性能,它的效果是明显的。随着计算机与网络技术的发展,计算机的处理能力迅速增长,内存大大增加,同时也出现了千兆级别的网络,这使得DoS攻击的困难程度加大了-目标对恶意攻击包的”消化能力”加强了不少。这时候分布式的拒绝服务攻击手段(DDoS)就应运而生了。DDoS就是利用更多的傀儡机来发起进攻,以比从前更大的规模来进攻受害者。
该攻击以多个随机的源主机地址向目的主机发送SYN包,而在收到目的主机的SYN ACK后并不回应,这样,目的主机就为这些源主机建立了大量的连接队列,而且由于没有收到ACK一直维护着这些队列,造成了资源的大量消耗,最终导致拒绝服务。
该攻击向一个子网的广播地址发一个带有特定请求(如ICMP回应请求)的包,并且将源地址伪装成想要攻击的主机地址。子网上所有主机都回应广播包请求而向被攻击主机发包,使该主机受到攻击。
攻击者将一个包的源地址和目的地址都设置为目标主机的地址,然后将该包通过IP欺骗的方式发送给被攻击主机,这种包可以造成被攻击主机因试图与自己建立连接而陷入死循环,从而很大程度地降低了系统性能。
根据TCP/IP的规范,一个包的长度最大为65536字节。尽管一个包的长度不能超过65536字节,但是一个包分成的多个片段的叠加却能做到。当一个主机收到了长度大于65536字节的包时,就是受到了Ping of Death攻击,该攻击会造成主机的宕机。
IP数据包在网络传递时,数据包可以分成更小的片段。攻击者可以通过发送两段(或者更多)数据包来实现TearDrop攻击。第一个包的偏移量为0,长度为N,第二个包的偏移量小于N。为了合并这些数据段,TCP/IP堆栈会分配超乎寻常的巨大资源,从而造成系统资源的缺乏甚至机器的重新启动。
使用ICMP Echo轮询多个主机。
该攻击在短时间内向目的主机发送大量ping包,造成网络堵塞或主机资源耗尽。
(1) 较小流量:
小于1000Mbps,且在服务器硬件与应用接受范围之内,并不影响业务的: 利用iptables或者DDoS防护应用实现软件层防护。
(2) 大型流量:
大于1000Mbps,但在DDoS清洗设备性能范围之内,且小于机房出口,可能影响相同机房的其他业务的:利用iptables或者DDoS防护应用实现软件层防护,或者在机房出口设备直接配置黑洞等防护策略,或者同时切换域名,将对外服务IP修改为高负载Proxy集群外网IP,或者CDN高仿IP,或者公有云DDoS网关IP,由其代理到RealServer;或者直接接入DDoS清洗设备。
(3) 超大规模流量:
在DDoS清洗设备性能范围之外,但在机房出口性能之内,可能影响相同机房的其他业务,或者大于机房出口,已经影响相同机房的所有业务或大部分业务的:联系运营商检查分组限流配置部署情况并观察业务恢复情况。
(1) syn/fin/ack等tcp协议包:
设置预警阀值和响应阀值,前者开始报警,后者开始处理,根据流量大小和影响程度调整防护策略和防护手段,逐步升级。
(2) UDP/DNS query等UDP协议包:
对于大部分游戏业务来说,都是TCP协议的,所以可以根据业务协议制定一份TCP协议白名单,如果遇到大量UDP请求,可以不经产品确认或者延迟跟产品确认,直接在系统层面/HPPS或者清洗设备上丢弃UDP包。
(3) http flood/CC等需要跟数据库交互的攻击:
这种一般会导致数据库或者webserver负载很高或者连接数过高,在限流或者清洗流量后可能需要重启服务才能释放连接数,因此更倾向在系统资源能够支撑的情况下调大支持的连接数。相对来说,这种攻击防护难度较大,对防护设备性能消耗很大。
(4) 其他:
icmp包可以直接丢弃,先在机房出口以下各个层面做丢弃或者限流策略。现在这种攻击已经很少见,对业务破坏力有限。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/118914.html