产品人气榜

DDoS新领域 隐藏在游戏里的反射源

2018-12-05 16:43:01130人阅读

1、概述

传统的DDoS 反射攻击通常会利用有缺陷的公网服务器实施反射放大攻击,反射源数量的多少决定了反射流量的大小。然而随着公共服务的维护方式越来越标准,安全性也越来越高,可被利用的公共服务器也越来越少。2018年初爆发Memcache反射攻击后,由百度安全智云盾平台监测到的数据表明,上半年发生的Memcache反射攻击事件中,反射源数量超过1000的攻击次数高达139次;而到了下半年,反射源数量多的攻击次数明显减少,截止到11月底,类似的攻击次数只有24次。很明显可被利用的Memcache服务器越来越少了。

但是,从事黑产的DDoS攻击者从来没有停止对流量放大攻击新方式的寻找和尝试。

百度安全智云盾团队在2018年11月底捕获到一次利用游戏客户端运行时开放的UDP服务做反射实施的攻击。智云盾系统在2秒内识别到攻击,实时对攻击流量做了隔离和清洗,保障用户免遭DDoS的伤害。

2、攻击研究

智云盾系统检测到攻击时,自动对攻击流量进行采样,安全分析专家对采样包及时进行了深层次的分析。

本次事件智云盾平台采集到6个采样包文件,涉及到反射源IP 872个。

2.1 攻击包分析

通过对智云盾的攻击包分析发现,反射的来源端口是UDP 2303,我们尝试扫描反射源IP的2303端口,但是无一响应,由此推测该端口不是互联网的公共服务,下图是反射端口图:

1.png

图1 采样包内攻击来源端口

数据包中的payload多次重复Arma3的字符串,通过百度搜索,这是一款中文名叫“武装突袭”的游戏。

2.png

图2 采样包内攻击载荷

为了进一步分析,我们下载了Aram3并且对游戏的通信进行抓包,进入游戏之后我们在游戏内部搜寻互联网上可加入的游戏房间,与此同时观察抓包信息我们发现了有类似图1和图2攻击数据包的请求,如下图:

3.png

图3 游戏内采样包来源端口

图3显示为2303端口返回的UDP数据包,从数据包携带的payload相比较,与图2特征一致,下图为数据包截图:

4.png

图4 游戏内攻击载荷

从图2与图4的对比中可以确认,这是一次利用了Arma3游戏客户端作为反射源的DDoS攻击。

2.2 放大倍数

按照我们前期对反射放大攻击倍数的研究,采用科学的统计放大倍数时,请求响应的包头甚至是网络帧间隙都要考虑在内。详细的方案可以参阅《Memcached DRDoS攻击趋势》一文,详见链接:https://bsi.baidu.com/article/detail/110

由于2303端口服务为游戏自定义服务,通过对此游戏的攻击复现发现,请求包数据长25字节,响应包数据长184字节,下图是复现截图:

5.png

图5

所以计算得到放大倍数为(184+66)/(25+66) = 2.7倍。

2.3 反射源采集

由于该端口是在游戏客户端运行时才打开,且只响应特定的请求字符串,因此传统的DDoS反射源的扫描手段在此处并不适用。攻击者可以登录游戏查看玩家房间列表并抓包时可获取大量的反射源IP。

2.4 攻击原理

 反射类型的DDoS攻击并不会直接攻击受害者IP,而是以受害者的IP构造UDP数据包,伪造UDP数据包,对反射源发送伪造的数据包,反射源向受害者IP响应的流量远超过攻击者伪造UDP流量的数据,DDoS黑客组织依靠此方式对受害者实施DDoS攻击,反射类型DDoS攻击如下图6所示:

6.png

图6 反射攻击示意图

图6中黑客给放大器发送伪造的UDP数据包,经过智云盾团队对DDoS事件攻击的复现发现黑客伪造UDP数据包的载荷长度为25个字节的固定字符串,对应的游戏服务器会返回与攻击事件采样包相似的攻击载荷。

       UDP发送的固定25字节字符串如下:

\xff\xff\xff\xff\x54\x53\x6f\x75\x72\x63\x65\x20\x45\x6e\x67\x69\x6e\x65\x20\x51\x75\x65\x72\x79\x00

       发送该固定字符串UDP请求之后,服务端返回数据包长度180-260不等。

通过检索UDP发送的固定25个字节的载荷我们发现该查询请求是steam平台提供的A2S_INFO服务查询规范。

3、A2S_INFO协议

A2S_INFO是steam给游戏厂商提供了一系列服务查询规范之一,主要是对联机游戏中玩家公网服务器的信息定义。

steam平台目前是全球最大的综合性数字发行平台之一,玩家可以在里面购买,分享,讨论,下载游戏和软件。

参考steam百度百科链接:

https://baike.baidu.com/item/steam/10092959?fr=aladdin

3.1 A2S_INFO规范缺陷

steam平台为了使各个玩家之间联机对战,采用了p2p通信技术实现客户端之间的通信,玩家在新建了房间之后,游戏将玩家的主机地址转换成公网地址,端口号不变。Steam提供A2S_INFO规范,允许其他地区的玩家采用UDP/IP协议按照A2S_INFO规范查询房间信息。具体的A2S_INFO标准如下图7所示:

7.png

图7

Steam wiki链接:https://developer.valvesoftware.com/wiki/Server_queries

图7中,玩家通过符合规范的请求,从服务器获取到玩家服务器名称,游戏文件夹名称等信息。可见A2S_INFO标准包发送请求数据是25个字节,但是返回的数据字段较多,根据不同的服务器返回内容不同,总之是远超请求数据的长度。

黑客正是利用了A2S_INFO的这一特点利用做DRDoS的攻击载荷。

 

反射源随着玩家参与游戏数量的变化而变化,反射放大比例一般维持在2.7左右,也不排除steam平台上有其他游戏更大的反射比例存在。

此种反射攻击成因可以分为两部分。

1.       玩家之间采用p2p通信方式,联机类游戏服务很看重网络传输效率,所以会使用大量udp的服务,将玩家客户端地址映射在公网,导致被攻击者利用。

2.       A2S_INFO查询协议本身规范存在漏洞,发送数据字段过少,返回字段较多,导致可以被利用为反射协议。

 

3.2 A2S_INFO应用范围

A2S_INFO作为联机游戏的服务查询规范,应用范围十分之广,目前平台上比较流行的Dota2、反恐精英系列、求生之路系列、Aram系列等联机游戏的玩家都可能会被黑客用作反射源进行攻击。

4、其他游戏平台延伸对比

由于本次攻击利用了游戏平台对联机游戏为了保持网络传输效率选择UDP实现内网通信,采用P2P通信,我们对多家类似平台做了调研,发现在玩家联机时会出现部分UDP请求存在放大现象。

图8是针对某游戏平台抓包,截取到可被利用放大的UDP服务图:

8.png

图8 存在放大现象的UDP请求

与传统的DDOS反射服务寻找反射源在公网扫描有缺陷的公共服务,本次攻击选用了steam平台上UDP的服务端口,反射源根据游戏在线玩家的数量而变化。

DDoS攻击团队在寻找反射方式上,已经从传统的公共服务往订制化的服务上探索,而游戏平台玩家联机的特点将会成为被利用打DDoS的重灾区。

5、DDoS反射攻击趋势

此次攻击是steam平台的A2S_INFO规范存在被利用的漏洞,并且可以将steam平台上所有联机游戏的玩家客户端作为反射源,攻击倍数虽然不高但是反射来源数量众多。与传统的DDoS反射相比,此类型攻击涉及反射源数量众多,并且不依赖某一种公共服务,不依赖某一特定端口,攻击灵活性很高。

A2S_INFO DDoS反射攻击以一种全新的攻击思路来寻找反射源,以往的黑客组织追求反射协议的反射比例越大越好,本次攻击的特点反射源分布极广。A2S_INFO的服务查询依靠了p2p通信技术的实现,p2p的技术特点决定了一旦客户端有可被利用的UDP服务,每一台使用该UDP服务的主机都将成为反射源。

百度安全智云盾团队预测,在接下来一段时间内,还将会出现更多利用A2S_INFO规范或者其他类似的UDP服务发起攻击。

6、防范建议

1)      对互联网服务

a)      禁用UDP,不能禁用时,确保请求与响应不要有倍数关系

b)      启用授权验证

2)      对企业用户

a)      如果没有UDP相关业务,可以在上层或者本机防火墙过滤掉UDP包。

b)      可以寻求运营商提供UDP黑洞的IP网段做对外网站服务

c)       可以选择接入DDoS云防安全服务

 


本文为百度安全智云盾团队原创内容,如需转载需注明出处及本文链接