【DDOS】TCP反射及可行对抗

TCP反射及可行对抗

1 背景
隐。

2 原理
主要利用了TCP协议比较唠叨的特性。
正常情况下,TCP三次握手如下:
【DDOS】TCP反射及可行对抗【DDOS】TCP反射及可行对抗
被利用的情况下,攻击者对TCP协议利用的具体情况如下:
【DDOS】TCP反射及可行对抗【DDOS】TCP反射及可行对抗
互联网内包含大量开放端口提供服务的机器,除了常用的80,443,22,23等长期处于等待监听状态的常用程序,还包括其他更多的开放端口等待提供服务的程序,如果被利用,则几乎没有方法能够防御效果良好且保持比较低的误杀率,此时就需要一个比较好的权衡,是要防范还是要正常的客户请求。

3 资源
所需要的资源为常见的DDoS攻击资源:

  1. 能够伪造源IP的主机
  2. 开放端口的服务器列表
    使用威胁情报,查询了80/443/22常用端口开放数量,80端口查询结果如下图所示,同时,对这几个端口的数量进行了粗略统计,数量达到了1.5亿以上(结果包含重合情况,即机器可能同时开放了80/443/22/23这四个端口的两个或两个以上,但是粗略统计,因此暂时忽略)。
    【DDOS】TCP反射及可行对抗
端口号 可利用资源的数量
80 81617495
443 48,393,070
22 20,083,018
23 6,006,201
总计 156099784

4 防御难点

  1. 所有源都为真实源,数量巨大;
  2. 利用协议栈的特性,接近正常业务,透传率高,攻击行为隐蔽;
  3. 云上业务一般上行和下行不为同一条线路,基于会话难以监控记录或者说,监控记录会话代价较高。

5 对抗方法
5.1 源限速
此种方法可以针对来源IP进行限速。在反射源有限的情况做源IP维度的限速,具体可以统计到达的包,发现syn+ack比例较高(超过正常值)的异常源IP,将此IP加黑进行攻击缓解。

5.2 基于会话
同时检测到达目的IP的上行流量(即目的IP的发送数据包)和下行流量(即目的IP的接收数据包),基于TCP会话协议的特征,当未检测到下行流量却有上行流量时,即拦截此会话。
此种方法为相对有效的方法,当时由于行为包含会话记录、数据包解析、会话分析等多个行为,对设备和程序的性能要求比较高,比较难以实现。

5.3 边界防御
正常情况下,客户的请求使用的为非常用端口向常用端口的请求,基于这一特性,可以阻断源端口为常用端口的会话。

5.4 包限速(常用方法)
这种是一种比较通用的方法,也就是在一段时间内限制到达目的IP的数据包速率,但缺陷也是很明显的,会造成大量的正常业务会话被中断,有比较高的误拦截率。

5.5 基线学习(不太准确,但指代日常行为学习)
这种方法是根据用户平时的业务流量情况(比如一般情况的客户来源、一般客户请求的流量等行为)进行流量限速,但其使用的限制条件为客户通常的业务流量大小,一旦超过正常的业务流量,就会开始进行拦截限速,同样会造成正常业务会话的中断。

6 总结
一般情况下,TCP反射很难防御,但由于基本上无放大能力,需要达到的攻击量和初始发送的攻击量基本一致,攻击的代价较高,因此也较少使用。但是对于后端带宽不足够的服务器来说,会造成正常业务的中断。