游戏行业DDos攻击解决方案
1. 行业综述
根据全球游戏和全球移动互联网行业第三方分析机构 Newzoo 的数据显示:2017年上半年,中国以 275 亿美元的游戏市场收入超过美国和日本,成为全球榜首。
游戏行业的快速发展、高额的攻击利润、日趋激烈的行业竞争,让中国游戏行业的进军者们,每天都面临业务和安全的双重挑战。
游戏行业一直是竞争、攻击最为复杂的一个“江湖”。 曾经多少充满激情的创业团队、玩法极具特色的游戏产品,被互联网攻击的问题扼杀在摇篮里;又有多少运营出色的游戏产品,因为遭受 DDoS 攻击,而一蹶不振。
1.1. DDoS 攻击的危害
阿里云安全发布的 2017 年上半年的游戏行业 DDoS 攻击态势报告中指出:2017年 1 月至 2017 年 6 月,游戏行业大于 300G 以上的攻击超过 1800 次,攻击最大峰值为 608G;游戏公司每月平均被攻击次数高达 800 余次。
目前,游戏行业因 DDoS 攻击引发的危害主要集中在以下几点:
•90%的游戏业务在被攻击后的 2-3 天内会彻底下线。
•攻击超过 2-3 天以上,玩家数量一般会从几万人下降至几百人。
•遭受 DDoS 攻击后,游戏公司日损失可达数百万元。
1.2. 为什么游戏行业是 DDoS 攻击的重灾区?
据统计表明,超过 50%的 DDoS 和 CC 攻击,都在针对游戏行业。游戏行业成
为攻击的重灾区,主要有以下几点原因:
•游戏行业的攻击成本低,几乎是防护成本的 1/N,攻防两端极度不平衡。
随着攻击方的手法日趋复杂、攻击点的日趋增多,静态防护策略已无法达到较好的效果,从而加剧了这种不平衡。
•游戏行业生命周期短。
一款游戏从出生到消亡,大多只有半年的时间,如果抗不过一次大的攻击,很可能就死在半路上。黑客也是瞄中了这一点,认定只要发起攻击,游戏公司一定会给“保护费”。
•游戏行业对连续性的要求很高,需要 7×24 小时在线。
因此如果受到 DDoS 攻击,很容易会造成大量的玩家流失。在被攻击的 2-3 天后,玩家数量从几万人掉到几百人的事例屡见不鲜。
•游戏公司之间的恶性竞争,也加剧了针对行业的 DDoS 攻击。
1.3. 游戏行业的 DDoS 攻击类型
•空连接
攻击者与服务器频繁建立 TCP 连接,占用服务端的连接资源,有的会断开、有的则一直保持。空连接攻击就好比您开了一家饭馆,“黑帮势力”总是去排队,
但是并不消费,而此时正常的客人也会无法进去消费。
•流量型攻击
攻击者采用 UDP 报文攻击服务器的游戏端口,影响正常玩家的速度。用饭馆的例子,即流量型攻击相当于“黑帮势力”直接把饭馆的门给堵了。
•CC 攻击
攻击者攻击服务器的认证页面、登录页面、游戏论坛等。用饭馆的例子,CC 攻击相当于,坏人霸占收银台结账、霸占服务员点菜,导致正常的客人无法享受到服务。
•假人攻击
模拟游戏登录和创建角色过程,造成服务器人满为患,影响正常玩家。
•对玩家的 DDoS 攻击
针对对战类游戏,攻击对方玩家的网络使其游戏掉线或者速度慢。
•对网关 DDoS 攻击
攻击游戏服务器的网关,导致游戏运行缓慢。
•连接攻击
频繁的攻击服务器,发送垃圾报文,造成服务器忙于解码垃圾数据。
2. 游戏安全痛点
•业务投入大,生命周期短
一旦出现若干天的业务中断,将直接导致前期的投入化为乌有。
•缺少为安全而准备的资源
游戏行业玩家多、数据库和带宽消耗大、基础设施资源准备时间长,而安全需求往往没有被游戏公司优先考虑。
•可被攻击的薄弱点多
网关、带宽、数据库、计费系统都可能成为游戏行业攻击的突破口,相关的存储系统、域名 DNS 系统、CDN 系统等也会遭受攻击。
•涉及的协议种类多
难以使用同一套防御模型去识别攻击并加以防护,许多游戏服务器多用加密私有协议,难以用通用的挑战机制进行验证。
•实时性要求高,需要 7×24 小时在线
业务不能中断,成为 DDoS 攻击容易奏效的理由。
•行业恶性竞争现象猖獗
DDoS 攻击成为打倒竞争对手的工具。
3. 如何判断已遭受 DDoS 攻击?
假定已排除线路和硬件故障的情况下,突然发现连接服务器困难、正在游戏的用户掉线等现象,则说明您很有可能是遭受了 DDoS 攻击。
目前,游戏行业的 IT 基础设施一般有 2 种部署模式:一种是采用云计算或者托管 IDC 模式,另外一种是自行部署网络专线。无论是前者还是后者接入,正常情况下,游戏用户都可以自由流畅地进入服务器并进行游戏娱乐。因此,如果突然出现以下几种现象,可以基本判断是“被攻击”状态:
•主机的 IN/OUT 流量较平时有显著的增长。
•主机的 CPU 或者内存利用率出现无预期的暴涨。
•通过查看当前主机的连接状态,发现有很多半开连接;或者是很多外部 IP 地址,都与本机的服务端口建立几十个以上的 ESTABLISHED 状态的连接,则说明遭到了 TCP 多连接攻击。
•游戏客户端连接游戏服务器失败或者登录过程非常缓慢。
•正在进行游戏的用户突然无法操作、或者非常缓慢、或者总是断线。
4. 为什么选择阿里云?
资源统一管理
面对快速发展的游戏业务,需要高效进行游戏运维和资源管理。
•阿里云超大规模数据中心遍布全球。
•统一账号进行游戏运维和资源管理。
•全球统一的售前售后服务体系加本地化服务。
稳定的国际网络连通
稳定、低延时的网络是让分布于全球不同国家/地区的玩家能顺畅地体验游戏、并进行公平 PK 的关键。
•高速通道打通阿里云全球数据中心,形成全球一张网。
•网络质量 SLA 保障、超低延时。
完善的产品支撑
游戏行业的安全防护需要设计合理的逻辑架构和物理部署方案以满足业务的安
全需求,需要有成熟的安全产品体系支撑。
•全套的游戏行业安全参考架构和部署方案。
•完整的安全产品体系帮助解决游戏行业各种类型的 DDoS 攻击问题。
5. DDoS 攻击缓解最佳实践
目前,有效缓解 DDoS 攻击的方法可分为 3 大类:
•架构优化
•服务器加固
•商用的 DDoS 防护服务
您可根据自己的预算和遭受攻击的严重程度,来决定采用哪些安全措施。
5.1. 架构优化
在预算有限的情况下,建议您优先从自身架构的优化和服务器加固上下功夫,减缓 DDoS 攻击造成的影响。
5.1.1. 部署 DNS 智能解析
通过智能解析的方式优化 DNS 解析,有效避免 DNS 流量攻击产生的风险。同时,建议您托管多家 DNS 服务商。
•屏蔽未经请求发送的 DNS 响应信息
典型的 DNS 交换信息是由请求信息组成的。DNS 解析器会将用户的请求信息发送至 DNS 服务器中,在 DNS 服务器对查询请求进行处理之后,服务器会将响应信息返回给 DNS 解析器。
但值得注意的是,响应信息是不会主动发送的。服务器在没有接收到查询请求之前,就已经生成了对应的响应信息,这些回应就应被丢弃。
•丢弃快速重传数据包
即便是在数据包丢失的情况下,任何合法的 DNS 客户端都不会在较短的时间间隔内向同一 DNS 服务器发送相同的 DNS 查询请求。如果从相同 IP 地址发送至同一目标地址的相同查询请求发送频率过高,这些请求数据包可被丢弃。
•启用 TTL
如果 DNS 服务器已经将响应信息成功发送了,应该禁止服务器在较短的时间间隔内对相同的查询请求信息进行响应。
对于一个合法的 DNS 客户端,如果已经接收到了响应信息,就不会再次发送相同的查询请求。每一个响应信息都应进行缓存处理直到 TTL 过期。当 DNS 服务器遭遇大量查询请求时,可以屏蔽掉不需要的数据包。
•丢弃未知来源的 DNS 查询请求和响应数据
通常情况下,攻击者会利用脚本对目标进行分布式拒绝服务攻击(DDoS 攻击),而且这些脚本通常是有漏洞的。因此,在服务器中部署简单的匿名检测机制,在某种程度上可以限制传入服务器的数据包数量。
•丢弃未经请求或突发的 DNS 请求
这类请求信息很可能是由伪造的代理服务器所发送的,或是由于客户端配置错误或者是攻击流量。无论是哪一种情况,都应该直接丢弃这类数据包。
非泛洪攻击 (non-flood) 时段,可以创建一个白名单,添加允许服务器处理的合法请求信息。白名单可以屏蔽掉非法的查询请求信息以及此前从未见过的数据包。
这种方法能够有效地保护服务器不受泛洪攻击的威胁,也能保证合法的域名服务器只对合法的 DNS 查询请求进行处理和响应。
•启动 DNS 客户端验证
伪造是 DNS 攻击中常用的一种技术。如果设备可以启动客户端验证信任状,便可以用于从伪造泛洪数据中筛选出非泛洪数据包。
•对响应信息进行缓存处理
如果某一查询请求对应的响应信息已经存在于服务器的 DNS 缓存之中,缓存可以直接对请求进行处理。这样可以有效地防止服务器因过载而发生宕机。
•使用 ACL 的权限
很多请求中包含了服务器不具有或不支持的信息,可以进行简单的阻断设置。例如,外部 IP 地址请求区域转换或碎片化数据包,直接将这类请求数据包丢弃。
•利用 ACL,BCP38 及 IP 信誉功能
托管 DNS 服务器的任何企业都有用户轨迹的限制,当攻击数据包被伪造,伪造请求来自世界各地的源地址。设置一个简单的过滤器可阻断不需要的地理位置的IP 地址请求或只允许在地理位置白名单内的 IP 请求。
同时,也存在某些伪造的数据包可能来自与内部网络地址的情况,可以利用BCP38 通过硬件过滤清除异常来源地址的请求。
5.1.2. 部署负载均衡
通过部署负载均衡(SLB)服务器有效减缓 CC 攻击的影响。通过在 SLB 后端负载多台服务器的方式,对 DDoS 攻击中的 CC 攻击进行防护。
部署负载均衡方案后,不仅具有 CC 攻击防护的作用,也能将访问用户均衡分配到各个服务器上,减少单台服务器的负担,加快访问速度。
5.1.3. 使用专有网络
通过网络内部逻辑隔离,防止来自内网肉鸡的攻击。
5.1.4. 提供余量带宽
通过服务器性能测试,评估正常业务环境下能承受的带宽和请求数,确保流量通道不止是日常的量,有一定的带宽余量可以有利于处理大规模攻击。
5.2. 服务器安全加固
.......