写点什么

我们常听说 UDP 反射攻击,那你听说过 TCP 反射攻击吗?

  • 2019-11-06
  • 本文字数:3231 字

    阅读完需:约 11 分钟

我们常听说UDP反射攻击,那你听说过TCP反射攻击吗?

我们常听说 UDP 反射攻击,那你听说过 TCP 反射攻击吗?


我们对 TCP 三次握手谙熟于心,但你确定服务器收到 SYN 包之后一定返回 SYN/ACK 吗?


现网的 DDoS 对抗中,基于 TCP 协议的反射攻击手法已经悄然兴起,而且出现了多次手法变种,对 DDoS 防护方带来严峻的挑战。新场景下的技术对抗如约而至…

01 引言

笔者之前曾撰写过一篇关于利用 TCP 协议发起的反射攻击的文章《值得收藏好文,基于 TCP 反射 DDoS 攻击分析》。分享的是一种新型的攻击手法 —— TCP 反射攻击:黑客伪造目的服务器 IP 向公网的 TCP 服务器发起连接请求(SYN),以使得被攻击服务器收到大量 SYN/ACK 报文,最终造成拒绝服务的手法。而由于这种反射攻击存在协议栈行为,传统的 TCP 防护算法难以奏效,这也使得这种攻击手法有愈演愈烈之势。



图 1 TCP 反射攻击示意图


经过我们团队研究人员长期的跟踪分析,发现这种攻击手法出现了两个新的特征:


Ø黑客逐渐趋向利用 CDN 厂商的服务器资源发起 TCP 反射攻击,因为通过扫描 CDN 厂商网段,可以快速、高效地获得丰富的 TCP 服务器资源;


ØTCP 反射攻击流量从 SYN/ACK 转变成 ACK,防护难度进一步增大。


0x01 TCP 反射的新特征研究


特征一:黑客逐渐趋向于利用 CDN 厂商的服务器资源发起 TCP 反射攻击


我们在整理分析现网的 TCP 反射攻击时,发现会经常出现攻击源几乎全部来源海外 CDN 厂商的情况。如图 2、图 3 所示,某次 TCP 反射攻击事件中有 99.88%的 IP 来源美国,而且 88.39%属于某个著名 CDN 厂商。



图 2 来源 IP 归属地分布



图 3 来源 IP 归属地分布


显而易见这是黑客开始倾向于扫描 CDN 厂商的 IP 网段,以获取大批量反射源的思路。由于 CDN 厂商的 IP 资源主要用于为用户提供加速服务,不可避免地会开放 TCP 端口,黑客便可以通过这种方式快速地获取到有效的 TCP 反射源。



图 4 某 CDN 厂商的 C 段 IP 扫描


这种方法为黑客提供大量可用的 TCP 反射源,能够让攻击者的资源实现最大化,而且 TCP 反射攻击由于具备协议栈行为,传统策略难以防护,所以不难推测后面这种攻击手法将越来越盛行,为 DDoS 防护方带来不小的挑战。


特征二:反射流量从 SYN/ACK 报文转变为 ACK 报文,防护难度进一步增大


这里给人的第一反应可能就是颠覆了我们 TCP 三次握手的印象,一个服务器(反射源)收到一个 SYN 请求,不应该是返回 SYN/ACK 吗?怎么会返回 ACK 包?为了解答这个问题,容笔者从黑客伪造 SYN 请求的过程说起…


首先如上文描述 TCP 反射的原理,黑客会控制肉鸡伪造成被攻击服务器的 IP 对公网的 TCP 服务器发起 SYN 请求,而公网 TCP 服务器的端口都是固定的,所以为了实现反射,SYN 请求中的目的端口也同样固定。与此同时,为了达到更好的攻击效果,黑客需要使反射出来的报文的目的端口为被攻击服务器的业务端口(绕过安全设备将非业务端口的流量直接拦截的策略),也就是说 SYN 请求报文中的源端口也是固定的。就是基于这些原因,攻击者伪造 SYN 请求报文的五元组通常都会出现集聚,这个结论其实很重要,因为它就是引发服务器反弹 ACK 的前提条件。


举例如图 5 所示:黑客需要攻击的服务器 IP 为 183...45,其业务端口为 80,而黑客掌握的 TCP 反射服务器的 IP 是 104...35,开放的端口是 8080,那么攻击时构造 SYN 包的五元组就会集聚在 Protocol: TCP、DST_IP: 104...35、SRC_IP: 183...45、DST_PORT: 8080、SRC_PORT: 80。



图 5 SYN 请求包构造思路


而我们都知道五元组决定了一个会话,所以当黑客短时时间构造大量相同五元组的 SYN 包发送到同一台 TCP 服务器时,就会造成大量的“会话冲突”。也就是说从 TCP 服务器的角度来看,接收到第一个 SYN 包后,服务器返回 SYN/ACK 等待 ACK 以建立 TCP 连接,而此时又再接收到同一个会话的 SYN。那 TCP 服务器会怎么处理呢?再次返回 SYN/ACK?RST?还是其他?


其实在这个情况下,TCP 服务器具体怎么处理决定因素在于 SYN 包的 seq 号和服务器的 window size!假设第一个 SYN 包的 seq 号为 SEQ1,TCP 服务器的 windows size 为 WND,而第二个 SYN 的 seq 号为 SEQ2,那么:


一、如果 SEQ2==SEQ1,此时 TCP 服务器会认为这个是 SYN 包重传,则再次返回 SYN/ACK(其实是在重传 SYN/ACK),如图 6 所示。这个攻击场景从被攻击服务器的视角来看,就是在短时间内接收到大量的 SYN/ACK 报文,造成拒绝服务,这也是现网最为常见的场景之一。



图 6 TCP 反射,反弹 SYN/ACK 场景


二、如果 SEQ2>SEQ1+WND 或者 SEQ2< SEQ1,那么这种情况属于 out-of-windows:对于不在接收窗口内的报文,需要回复一个 ACK,让对方发送正确 SEQ 号的包过来,协议描述可以参考 RFC: 793 page69(见图 7)。



图 7 RFC: 793 page69


所以当黑客伪造 SYN 报文的 SEQ 随机变化时,就很容易命中上述情况,TCP 服务器就会返回 ACK 报文,如图 8、图 9 所示。



图 8 TCP 反射,反弹 ACK 场景(SEQ2>SEQ1+WND)



图 9 TCP 反射,反弹 ACK 场景(SEQ2< SEQ1)


这个场景中,被攻击服务器会接收到少量 SYN/ACK 以及大量的 ACK 报文,这是现网最越来越常见的场景。如图 10 为现网中一次真实 TCP 反射攻击的抓包采样,表面上看跟普通的 ACKFLOOD 攻击没有太大区别,而实际上这些流量是具有协议栈行为,所以传统策略难以有效防护。



图 10 现网 TCP 反射攻击采样


三、如果 SEQ1< SEQ2 < = SEQ1+WND,这种场景下 TCP 服务器会认为会话出现异常,并返回 RST 断开会话,如图 11 所示。此时被攻击服务器会收到大量 SYN/ACK+RST 的混合流量(当前现网中这种情况很少,而 RST 的防护难度较小,这里不做详细阐述)。



图 11 TCP 反射,反弹 RST 场景


综上所述,黑客为了实现 TCP 反射攻击,而且尽可能绕过防护策略,所以伪造的 SYN 报文的五元组会出现集聚,造成严重的会话冲突。而不同的 SEQ 号会触发 TCP 服务器不同的应答场景(情况汇总见图 12),所以现网中的 TCP 反射除了会出现大量的 SYN/ACK 流量以外,还有可能出现少量 SYN/ACK+大量 ACK 的混合流量,而且后者的流量成份更为复杂,防护难度更大。



图 12 TCP 反射场景汇总

02 新型的 TCP 反射防护算法

笔者整理总结了 TCP 反射防护的主要难点:


1、TCP 反射流量具有协议栈行为,传统的防护算法难以识别和防护;


2、专业的抗 D 设备通常旁路部署,所以无法获得服务器出流量,这也意味着无法通过双向会话检查的方式进行防护;


3、TCP 反射通常为 SYN/ACK 和 ACK 的混合流量,而且在成份占比和行为上跟正常业务流量几乎没有太大区别,所以传统的成份分析、限速等方式也难以凑效。


那既然 TCP 反射攻击防护难度这么大,当前有成熟有效的方案了吗?答案是有的,防护算法的核心思路是:对被攻击 IP 的入方向流量做会话跟踪,并分析每个会话的行为动作,以准确地区分出 TCP 反射攻击的会话和正常流量会话,最终对反射攻击源做拦截,实现有效防护。


防护算法具有以下特点:


1、秒级检测和精准防护:对 TCP 反射流量包括 SYN/ACK、RST、ACK 均能有效识别和清洗,保证业务稳定;


2、对正常业务流量无影响:防护算法对用户透明,用户完全不会有感知,确保用户的最佳体验;


3、可以自动适配:防护算法可以默认适配绝大部分业务场景,用户不需要额外配置定制策略,大大减轻防护门槛以及运维人力投入。


当前新算法已经完成研发和验证,并通过大禹 DDoS 防护系统为部分重点客户提前试用体验,后续将向腾讯云客户全面开放,持续护航业务稳定运营。

03 团队介绍

腾讯安全大禹 DDoS 防护产品是腾讯基于自主研发的宙斯盾系统技术构建的一套集对 DDoS 攻击的检测和防御于一身的网络层 DDoS 攻击防御解决方案。该方案结合了腾讯十多年在游戏、网站、支付、社交、广告等海量业务的 DDoS 防护经验,具有全面、高效、专业的 DDoS 防护能力,能为企业组织提供 BGP 高防包、BGP 高防 IP、棋牌盾等多种 DDoS 解决方案,应对 DDoS 攻击问题。通过充足、优质的 BGP 防护资源,结合持续进化的“自研+AI 智能识别”清洗算法,保障用户业务的稳定、安全运行。


本文转载自公众号云加社区(ID:QcloudCommunity)。


原文链接:


https://mp.weixin.qq.com/s/rm5C3Kx2bx46LkEyyc3gFw


2019-11-06 18:422028

评论

发布
暂无评论
发现更多内容

华为云微服务引擎0停机迁移Nacos?它是这样做的

科技之光

助力网络碳中和 | 华为发布站点能源十大趋势

Geek_2d6073

华为云大数据BI解决方案助企业突破数据壁垒,加快企业数字化建设

与时俱进的时代

什么样的魔法棒,能让AI魔法师一夜成名?

白洞计划

华为云CDN加速服务助你开启网络加速时代

爱科技的水月

华为云OBS对象存储服务:这个管家很贴心

爱尚科技

超融合一体流式引擎,打造分布式数据库新纪元

亚信AntDB数据库

AntDB 国产数据库 AntDB数据库

不止于快,华为云CDN加速服务对OBS桶文件加速的超实用技巧

爱科技的水月

存储数据不要愁,华为云来帮你!

与时俱进的时代

支持随时畅玩3A游戏,华为云大数据助力游戏厂商快速稳健发展!

与时俱进的时代

华为云对象存储OBS超高性能数据存储能力,推进企业快速上云

爱尚科技

企业数据存储,还得看华为云对象存储服务OBS

爱尚科技

亚信科技通信、交通行业数据库项目入选“星河”标杆、优秀案例

亚信AntDB数据库

AntDB 国产数据库 AntDB数据库

2022卡塔尔世界杯专题分析

易观分析

世界杯 体育

云渲染一张图大概多久?云渲染快吗?

Renderbus瑞云渲染农场

云渲染

C#-使用Consul

kdyonly

C#

华为云OBS:让大数据的容器再无容量限制

爱尚科技

华为云CDN引领网站性能全面优化

爱科技的水月

华为云CDN加速,如何助力企业更好发展?

爱科技的水月

助力游戏厂商稳健发展,华为云大数据解决方案高效赋能!

与时俱进的时代

HTTPS基础知识

穿过生命散发芬芳

https 12月月更

【电商行业必备神器】轻松备战“双十一”,华为云OBS值得拥有

与时俱进的时代

存储空间不够大?试试华为云OBS对象存储服务

与时俱进的时代

华为云CDN加速服务,让企业用户上网“走高速”

爱科技的水月

干货|无源元件之——电感基础知识(详解)

元器件秋姐

科普 电感器 电感 电感元件 电子知识

APISIX Ingress 对 Gateway API 的支持和应用

API7.ai 技术团队

云原生 APISIX API Gateway Ingress Controller

何惧内卷?华为云对象存储服务OBS工具随便拿出一个都很能打

与时俱进的时代

什么样的魔法棒,能让AI魔法师一夜成名?

脑极体

小米封杨:工业设备预测性维护及时序数据库选型

YMatrix 超融合数据库

工业4.0 超融合数据库 预测性维护 设备预测性维护 YMatrix

MatrixDB v4.6.0 发布,查询性能和图形化操作界面全面升级!

YMatrix 超融合数据库

Prometheus 存储引擎 超融合数据库 YMatrix MatrixGate

2022-12-29:nsq是go语言写的消息队列。请问k3s部署nsq,yaml如何写?

福大大架构师每日一题

云原生 k8s k3s nsq 福大大

我们常听说UDP反射攻击,那你听说过TCP反射攻击吗?_安全_暴雪_InfoQ精选文章