前言
公司的几款游戏上线后,经常半夜遭受外部攻击,攻击类型基本是DDos,为此研发跟运维实施各种方案对付,比如集群、负载、专门IP检查策略服务、三方高仿等。即便如此也不能完全保证不受影响,调查攻击类型基本是UDP盲包疯刷蜂拥而来,而这类攻击除了使用三方应急策略,其他于研发而言真是束手无策。但作为架构设计者,我们应该尽量避免自身瓶颈给攻击者造就便捷攻击方式。所以有必要去理解DDos攻击相关问题,知己知彼百战百胜。
常见的DDoS攻击方法
Synflood该攻击以多个随机的源主机地址向目的主机发送SYN包,而在收到目的主机的SYN ACk后并不回应,这样,目的主机就为这些源主机建立了大量的连接队列,而且由于没有收到ACK一直维护着这些队列,造成了资源的大量消耗而不能向正常请求提供服务。
Smurf该攻击向一个子网的广播地址发一个带有特定请求(如ICMP回应请求)的包,并且将源地址伪装成想要攻击的主机地址。子网上说有主机都回应广播包而向被攻击主机发包,使该主机受到攻击。
Land-based攻击者将一个包的源地址和目的地址都设置为目标主机的地址,然后将该包通过IP欺骗的方式发送给被攻击主机,这种包可以造成被攻击主机因为试图与自己建立连接而陷入死循环,从而很大程度地降低了系统性能。
Ping of Death根据TCP/IP的规范,一个包的长度最大为65536字节。尽管一个包的长度不能超过65536字节,但是一个包分成的多个片段的叠加却能做到。当一个主机收到了长度大于65536字节的包时,就是受到了Ping of Death攻击,该攻击会造成主机的宕机。
TeardropIP数据包在网络传递时,数据包可以分成更小的片段。攻击者可以通过发送两段(或者更多)数据包来实现TearDrop攻击。第一个包的偏移量为0,长度为N,第二个包的偏移量小于N。为了合并这些数据段,TCP/IP堆栈会分配超乎寻常的巨大资源,从而造成系统资源的缺乏甚至机器的重新启动。
PingSweep使用ICMP Echo轮询多个主机。
Pingflood该攻击在短时间内向目的主机发送大量ping包,造成网络堵塞或主机资源耗尽。
经典博文推荐
总结
鉴于涉及的东西非研发架构能说清的东西,这里我推荐几篇相关性文章,相信对架构研发实施者有很大的帮助,知己知彼,我们才能做出正确的策略,不要盲目构建或者存在严重的弊端。