前面讲的很多攻击方式跟 HTTP/HTTPS 业务有关系,但是私有协议也是存在应用层 DDoS 攻击的,这个在很多游戏业务中比较常见 。一些粗暴的攻击方式是建立 TCP 连接后,发送随机的垃圾数据,一般情况下服务端遇到非法数据会直接断开这个连接 。
但是也有一些耐心的攻击者,对正常的业务流量进行抓包,然后用重放的方式对目标发起攻击,一方面是这种正常的流量会让服务端执行更多的业务逻辑计算,比如登录操作需求查询数据库,从而产生更大的攻击效果,另一个方面是很难把重放流量跟正常用户流量区分开来,对检测和防御有更大挑战 。

文章插图
从这些攻击方式中可以看到,应用层 DDoS 攻击不再是简单粗暴的大流量冲击,而是攻击者精心构造的数据包,伪装成正常流量绕过防御设备,攻击后端的应用和服务 。
三、传统的应用层 DDoS 防御方案
传统的防御策略是频率限制,在源 IP、URL 精度进行限速,拦截高频的访问者 。目前大多数 CC 防御产品都向用户提供限速功能 。但是频率限速有很多缺陷,因为不同的业务 QPS 差异很大,默认的限速策略并不能适用于所有场景,比如如下所示,第一个流量图,峰值流量达到 20 万 QPS,而第二个图峰值才 2 万 QPS,我们直觉上判断第二个是攻击行为,但是显然这两个业务不能用相同的限速策略的 。

文章插图
另一个问题是,当一个网站访问量很大时,一些脆弱的接口能承受的 QPS 又很低,全局的限速策略就不适用了 。粗暴的拦截 IP 还可能引起误伤,如果一个源 IP 访问量过大就把 IP 加黑名单,有可能将 NAT 出口 IP 拉黑,在大的公司、学校里有一个人发起攻击就把整个出口 IP 拦截了会影响到正常用户的访问 。

文章插图
所以应用层 DDoS 防御有个关键点是要做更精细化的策略,很多 CC 防御产品支持用户自定义策略,将指定的数据包丢掉 。对于非 HTTP 协议,部分产品提供让用户配置报文过滤特征,对 HTTP 协议,多数安全产品都提供用户配置 HTTP 各个维度的组合拦截条件 。但是 DDoS 防御都是争分夺秒的,这种人工分析和配置策略存在严重的滞后性 。另外这种策略非常依赖安全专家经验,以及对业务的了解 。
一些自动化的方案也在广泛使用,大家可能遇到过访问一个网站时出现一个白屏页面,上边提示在做安全检测,几秒钟后跳转到目标页面,这个叫 JavaScript 挑战 。服务端向客户端返回一个校验页面,里边包含了校验浏览器的 JavaScript 代码,如果用真实浏览器访问并且有正常用户行为,就可以校验通过 。它也有一些缺点,就是只适用于网页,如果是 API 接口,这种挑战会让正常业务中断,另外也不适用于非 HTTP 协议 。

文章插图
人机校验方式也被用于应用层 DDoS 防御,包括图形验证码或者需要用户点击、滑动的校验方式,这种做法虽然很多场景在使用,但非常影响用户体验,而且它同样存在缺陷,只能适用于网页,不能用于 API 接口和非 HTTP 协议 。

文章插图
四、智能化的防御方案
1. 纵深防御的架构
这些方案都存在一定的缺陷,没有一个方案是可以解决所有场景下的 DDoS 攻击,所以我们在最近几年做了一个纵深防御方案,考虑到了各种不同的攻击方式,我们从多个维度进行了流量分析和防御,包括数据包内容特征、访问行为、客户端挑战和智能化的限速,其中大量应用了自动化分析建模,精细到每个业务、每个 URL 进行访问基线分析,自动发现其中的异常,并且基于阿里云的优势大规模应用了威胁情报技术 。以下图中大部分新的防御手段都是为防御应用层 DDoS 攻击而设计的 。

文章插图
2. 智能的自适应方案
- 为什么需要自适应?
- 自适应的难点与挑战
推荐阅读
- 华佗教你睡觉四个“戒律”,让你越来越年轻
- 夏日试试“天然止痒方”,再也不怕蚊虫叮咬了
- 睡眠中十个可怕小动作,再不“扔掉”你的身体迟早要遭殃
- 哪些景物被称为天下奇观?
- 胃病越来越严重,三种水果是“帮凶”
- 午睡给你的健康“充充电”,几类人却睡不得
- 点按穴位缓解“空调病”不适症状,人人都该学起来
- 男女养生有六个差别,别再傻傻分不清
- 十个遗传特征被称为“最糟的”,你有吗?
- 清燥解热是夏季养生关键,记住8个“最佳”就好
