首页 网络安全 安全学院 查看内容

我家游戏被 DDoS 的血泪史

2017-5-11 21:23 |来自: 互联网 4218 0

摘要: 由于职业关系,经历的上线游戏较多,其中不乏被“仇家”看上,DDoS的惨痛经历。从“第一次”的小白到“第N次”淡定从容,自己的辛酸史一一道来。一、DDoS科普1、DDoS(分布式拒绝服务供给)当黑客使用网络上两个或以 ...

由于职业关系,经历的上线游戏较多,其中不乏被“仇家”看上,DDoS的惨痛经历。从“第一次”的小白到“第N次”淡定从容,自己的辛酸史一一道来。

一、DDoS科普

1、DDoS(分布式拒绝服务供给)

当黑客使用网络上两个或以上被攻陷的电脑作为“僵尸”向特定的目标发动“拒绝服务”式攻击时,其称为分布式拒绝服务攻击(Distributed Denial of Service attack,缩写:DDoS)该类攻击常见于部分游戏,被心怀不满的玩家或是竞争对手广泛使用,如Minecraft服务器 ,英雄联盟,棋牌类游戏,捕鱼类游戏。

2、攻击现象

1. 网络异常缓慢;

2. 特定网站无法访问;

3. 无法访问任何网站;

4. 远程SSH无法连接服务器;

5. 无线或有线网络连接异常断开;

6. 长时间尝试访问网站或任何互联网服务时被拒绝;

7. 服务器容易断线、及其缓慢;

8.游戏服务器无法提供任何服务,甚至瘫痪;

拒绝服务的攻击也可能会导致目标计算机同一网络中的其他计算机被攻击,互联网局域网之间的带宽会被攻击导致大量消耗,不但影响目标计算机,同时也影响局域网中的其他电脑。如果攻击的规模较大,整个地区的网络连接都可能会受到影响。


3、攻击方式(攻击原理)

DDoS攻击可以具体分成两种形式:带宽消耗型以及资源消耗型。它们都是透过大量合法或伪造的请求占用大量网络以及器材资源,以达到瘫痪网络以及系统的目的。

3.1  带宽消耗型攻击

DDoS带宽消耗攻击可以分为两个不同的层次;洪泛攻击或放大攻击。洪泛攻击的特点是利用僵尸程序发送大量流量至受损的受害者系统,目的在于堵塞其带宽。放大攻击与其类似,是通过恶意放大流量限制受害者系统的带宽;其特点是利用僵尸程序通过伪造的源IP(即攻击目标)向某些存在漏洞的服务器发送请求,服务器在处理请求后向伪造的源IP发送应答,由于这些服务的特殊性导致应答包比请求包更长,因此使用少量的带宽就能使服务器发送大量的应答到目标主机上。

3.1.1  User Datagram Protocol(UDP)floods

UDP是一种无连接协议,当数据包通过UDP发送时,所有的数据包在发送和接收时不需要进行握手验证。当大量UDP数据包发送给受害系统时,可能会导致带宽饱和从而使得合法服务无法请求访问受害系统。遭受DDoS UDP洪泛攻击时,UDP数据包的目的端口可能是随机或指定的端口,受害系统将尝试处理接收到的数据包以确定本地运行的服务。如果没有应用程序在目标端口运行,受害系统将对源IP发出ICMP数据包,表明“目标端口不可达”。某些情况下,攻击者会伪造源IP地址以隐藏自己,这样从受害系统返回的数据包不会直接回到僵尸主机,而是被发送到被伪造地址的主机。有时UDP洪泛攻击也可能影响受害系统周围的网络连接,这可能导致受害系统附近的正常系统遇到问题。然而,这取决于网络体系结构和线速。

3.1.2  ICMP floods

ICMP floods是通过向未良好设置的路由器发送广播信息占用系统资源的做法。

3.1.3  ping of death(死亡之Ping)

ping of death是产生超过IP协议能容忍的数据包数,若系统没有检查机制,就会死机。

3.1.4  泪滴攻击

每个数据要发送前,该数据包都会经过切割,每个小切割都会记录位移的信息,以便重组,但此攻击模式就是捏造位移信息,造成重组时发生问题,造成错误。

3.2  资源消耗型攻击

3.2.1  协议分析攻击(SYN flood,SYN洪水)

传送控制协议(TCP)同步(SYN)攻击。TCP进程通常包括发送者和接受者之间在数据包发送之前创建的完全信号交换。启动系统发送一个SYN请求,接收系统返回一个带有自己SYN请求的ACK(确认)作为交换。发送系统接着传回自己的ACK来授权两个系统间的通讯。若接收系统发送了SYN数据包,但没接收到ACK,接受者经过一段时间后会再次发送新的SYN数据包。接受系统中的处理器和内存资源将存储该TCP SYN的请求直至超时。DDoS TCP SYN攻击也被称为“资源耗尽攻击” ,它利用TCP功能将僵尸程序伪装的TCP SYN请求发送给受害服务器,从而饱和服务处理器资源并阻止其有效地处理合法请求。它专门利用发送系统和接收系统间的三向信号交换来发送大量欺骗性的原IP地址TCP SYN数据包给受害系统。最终,大量TCP SYN攻击请求反复发送,导致受害系统内存和处理器资源耗尽,致使其无法处理任何合法用户的请求。

3.2.2  LAND attack

这种攻击方式与SYN floods类似,不过在LAND attack攻击包中的原地址和目标地址都是攻击对象的IP。这种攻击会导致被攻击的机器死循环,最终耗尽资源而死机。

3.2.3  CC攻击

CC攻击是DDoS攻击的一种类型,使用代理服务器向受害服务器发送大量貌似合法的请求(通常使用HTTP GET)。CC(攻击黑洞)根据其工具命名,攻击者创造性地使用代理机制,利用众多广泛可用的免费代理服务器发动DDoS攻击。许多免费代理服务器支持匿名模式,这使追踪变得非常困难。

3.2.4  僵尸网络攻击

僵尸网络是指大量被命令控制型(C&C)服务器所控制的互联网主机群。攻击者传播恶意软件并组成自己的僵尸网络。僵尸网络难于检测的原因是,僵尸主机只有在执行特定指令时才会与服务器进行通讯,使得它们隐蔽且不易察觉。僵尸网络根据网络通讯协议的不同分为IRC、HTTP或P2P类等。

3.2.5  Application level floods(应用程序级洪水攻击)

与前面叙说的攻击方式不同,Application level floods主要是针对应用软件层的,也就是高于OSI的。它同样是以大量消耗系统资源为目的,通过向IIS这样的网络服务程序提出无节制的资源申请来迫害正常的网络服务。

4、防御方式

拒绝服务攻击的防御方式通常为入侵检测,流量过滤和多重验证,旨在堵塞网络带宽的流量将被过滤,而正常的流量可正常通过。

4.1  防火墙

防火墙可以设置规则,例如允许或拒绝特定通讯协议,端口或IP地址。当攻击从少数不正常的IP地址发出时,可以简单的使用拒绝规则阻止一切从攻击源IP发出的通信。

复杂攻击难以用简单规则来阻止,例如80端口(网页服务)遭受攻击时不可能拒绝端口所有的通信,因为其同时会阻止合法流量。此外,防火墙可能处于网络架构中过后的位置,路由器可能在恶意流量达到防火墙前即被攻击影响。然而,防火墙能有效地防止用户从启动防火墙后的计算机发起攻击。

4.2  交换机

大多数交换机有一定的速度限制和访问控制能力。有些交换机提供自动速度限制、流量整形、后期连接、深度包检测和假IP过滤功能,可以检测检测并过滤拒绝服务攻击。例如SYN洪水攻击可以通过后期连接加以预防。基于内容的攻击可以利用深度包检测阻止。

4.3  路由器

和交换机类似,路由器也有一定的速度限制和访问控制能力,而大多数路由器很容易受到攻击影响。

4.4  黑洞引导

黑洞引导指将所有受攻击计算机的通信全部发送至一个“黑洞”(空接口或不存在的计算机地址),以避免网络受到较大影响。

例如将域中的所有页面导向 GOOGLE 使 Google 接收“Dos”,而“Dos”对Google来讲如同抓痒般。

4.5  切换真实IP

游戏服务器支持动态切换IP地址,可以通过切换IP地址,以达到躲避被攻击悲剧,若攻击者穷追不舍,可以采用方案4.6,隐藏真实IP,使用商业高防。

4.6  购买商业高防服务(就是4.4黑洞引导+流量清洗)

目前大部分云商已经提供网络高防服务,例如阿里云,UCLOUD,AWS,金山云都提供商业版本高防服务。

通过隐藏真实受害者IP,高防提供流量清洗,把正常流量导向游戏服务器。

5、知识点梳理


二、DDoS案例

案例一:《捕鱼》之争

1、游戏简介:

《XX捕鱼》是真实街机捕鱼题材玩法。

2、技术特性:

①基于TCP/IP网络传输协议;

②对网络可靠性,低延迟要求高;

③TCP数据小包较多;

④对网络稳定性敏感度较高;

3、DDoS类型:DDoS攻击-僵尸网络攻击

4、攻击流量峰值:300G/S

5、过程(游戏上线一周后):

中午12:45:玩家反馈掉线,后发现服务区瞬时流量达到30G,且是每隔2分钟一次峰值,持续1个多小时。

现象:无效请求来源于5W左右,请求地址在不断变化,频繁请求。

方案:第一次被攻击,观察后续情况,现场抓包和分析。

②次日凌晨1:00左右:攻击流量峰值到达300G,游戏服务完全瘫痪。

现象:无效请求来源于5-10W左右,请求地址在不断变化,频繁请求。

方案:联系云ucloud服务商,请求帮助,迁移高防服务。

③次日中午13左右:攻击再次开始,流量峰值70G。

现象:无效请求来源于5W左右,请求地址在不断变化,频繁请求。

方案:接入高防服务ing,暂时忍者。

④次日22点:高防服务迁移完毕

⑤第三日凌晨1点:攻击流量300G。

现象:高防服务在抗攻击,游戏服务器延迟较高,影响较小,不影响正常游戏。

方案:屏蔽已经暴露的IP,使用新IP服务游戏,隐藏在高防IP之后。

⑥一周后,攻击者不再攻击。

6、复盘

6.1  防火墙没有有效优化

①关闭不必要的服务和端口;

②限制同一时间内打开的syn连接数目;

③缩短syn半连接超时时间;

④系统设置防火墙iptables,ipsec策略;

⑤不要在服务器上安装破解类程序,所有软件必须来源于官网;

⑥及时安装官方系统更新的安全补丁。

6.2  系统DDoS支持

①系统支持即时切换服务器IP方案;

②DDoS流量过大,实时演练;

6.3  DDoS流量过大即时报警机制

①能立即发现系统被打,并且认为干预,进行切换到高防服务或切换IP

案例二:《棋牌》之伤

1、游戏简介:

《XX棋牌》是一款联机扑克游戏。

2、技术特性:

①基于TCP/IP网络传输协议;

②对网络可靠性,低延迟要求高;

③TCP数据小包较多;

④对网络稳定性敏感度较高;

3、DDoS类型:DDoS攻击-僵尸网络攻击

4、攻击流量峰值:75.78G/S


5、过程:

①中午12:50:攻击流程达到30G左右,持续一个小时;

②下午16:00:攻击流量20-30G,持续两个小时;

攻击流量图:

5.1 处理方案:

①确认游戏是否支持,动态切换服务器IP    √

②攻击通过CDN动态切换IP(此方案确保有富余外网IP可用),临时逃避攻击 √

③准备接入商业高防服务(由于是很久上线游戏,缺少高防演练),耗时较长   √

④接入BGP高防服务+防火墙策略 √

⑤基本可以做到50G以下攻击无感知,超过50G以后,游戏还是比较卡顿,商业清洗效率有待提高

⑥一周后,黑客不再攻击

6、复盘

6.1  效率低下缺陷

由于是已经上线游戏,缺少DDoS演练和方案沟通,导致效率较低。

6.2  商业高防服务问题

商业高防服务,清洗能力有限,导致被打到50G以上,清洗“不干净”,甚至丢掉正常数据包,导致游戏无法正常服务。

三、总结

1、处理DDoS标准姿势

1.1  事前预防

①系统级别优化,防火墙策略、软件来源,系统稳定性;

②游戏支持动态切换IP,以用于黑洞引导流量;

③引导黑洞演练,提高被攻击时引导速度;

1.2  事中快速响应

①低于5G以内DDoS,云商自带清洗功能;

①高于5G攻击,动态切换临时IP(若足够富余外网IP),躲避一时之急(演练过黑洞引导,可直接黑洞引导);

②“黑洞”引导,购买商业高防服务;

1.3  事后复盘

①事后做到,随打,随时引导“黑洞”;

2、多次教训&经验

①保护好自己,我们不能阻止黑客攻击,只能增加黑客攻击的成本和难度;

②必要时刻,可抓取证据,提交给公安处理;

③按照经验,一般黑客打打停停,最长持续一周时间,时间越长,攻击者成本越大。

3、DDoS常见攻击手法

①NTP反射攻击 http://drops.wooyun.org/papers/926(乌云介绍)

②基于snmp的反射攻击的理论及其实现 http://drops.wooyun.org/tips/2106(乌云介绍)

③DNS反射攻击  http://lcx.cc/?i=4006

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部