title: CDN中的ddos防护
author: sheazhang
2. 资源消耗型攻击:攻击者利用协议的缺陷或者模拟应用层协议,构造恶意的攻击报文,这种报文没有作用但是目标服务器又不得不处理,消耗大量系统资源,导致目标服务器异常,影响正常应用。比如SYN Flood,ACK Flood,CC攻击。
TCP(Transmission Control Protocol)是有状态协议,会通过协议中的字段来维护各种状态,比如flag(指定包的类型:syn, ack, fin等),序列号(seq number,解决包乱序问题),窗口(滑动窗口,用于流控制)。
下图是TCP在整个周期中涉及的过程,包括初始化,数据传输和断开连接。SYN Flood就是根据TCP的三次握手原理,发动的攻击。 下面是详细的交互过程:
主机在接收到一个带有ACK标志位的数据包的时候,需要检查该数据包所表示的连接四元组是否存在,如果存在则检查该数据包所表示的 状态是否合法,然后再向应用层传递该数据包。如果不存在,且没有开syncookies则,直接返回rst。这种情况,ACK Flood并不会消耗太 多的CPU资源,攻击效果并不明显,但如果主机开了syncookies,并且遭受了SYN Flood攻击,对于攻击发送的ACK,都将需要计算 cookies,这也同样需要大量CPU资源,现在DDOS专用内核使用新hash算法,对此类攻击同样有较好的防护效果。
CC攻击可以归为DDoS攻击的一种。他们之间的原理都是一样的,即发送大量的请求数据来导致服务器拒绝服务,是一种连接攻击。CC攻击又可分为代理CC攻击,和肉鸡CC攻击。请求的内容一般为动态资源,比如js/cgi/asp, 由于这类攻击能模仿正常用户请求,很难识别,较难防御。而且用户放在CDN的内容,针对这类文件一般都不会缓存,直接透传到源站。 针对这类攻击,只能在业务层面防护,比如针对某些动作,做限制频率,比如某个IP,5分钟内只能请求3次,超过就返回403。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。