近两年,游戏出海已经成为了出海热潮中的一员。在“后宅经济时代”的影响下,也得益于海外市场的互联网人口,游戏出海涨势非常迅猛。部分游戏在短时间内走红后,就会遭到了一些“有心人”发起的恶意网络攻击,其中最为常见的一种就是 DDoS 攻击。
在聊 DDoS 攻击之前,我们先来看看什么是 DoS。
DoS和DDoS
当个别 IT 基础设施组件负载过高时,通常会发生拒绝服务的情况,我们称之为 DoS(拒绝服务)。如果是这是因为攻击者用大量请求淹没目标链接,以致于服务器无法再处理所有请求时,即为 DoS 攻击。DoS 攻击会造成设备、操作系统和单个服务器服务只能以延迟的方式响应请求(如果还没完全宕机的话)。
DoS 的一种常见形式称为 “分布式拒绝服务” (DDoS,Distributed Denial of Service)。
以游戏 App 为例,DDoS 攻击的发起者不是只使用一台计算机,他们通过用大量不同机器的请求去 “轰炸” 这个游戏的服务器,最终导致服务器负载过重,运行的系统就会变慢甚至完全崩溃。这样,真正的游戏用户就无法再快乐地玩耍这个游戏。
举个具体的例子,让大家更清楚地了解什么是 DDoS 攻击。二狗子开了一家有 50 个座位的火锅店,用料上成食材新鲜,生意特别红火,而隔壁老王家的火锅店却无人问津。隔壁老王为了对付二狗子,叫了 50 个人去二狗子的店里坐着,找二狗子问这问那,然而他们就是不点菜,还占着座位赖着不走。二狗子和他的火锅店都崩溃了,因为真正的顾客进店连坐的地方都没有,也得不到热情的服务。
DDoS 攻击的基础基本是庞大的计算机群体。这些计算机攻击源组合在一起形成了巨大的僵尸网络,这样巨大的网络会产生比单个系统执行的简单 DoS 攻击更多的流量。DDoS 攻击会对网站管理造成相当严重的影响,因为定位攻击源的希望通常很渺茫。攻击者往往会向保护措施不足的计算机植入代码程序,即计算机病毒,这些计算机会在管理员不知情的情况下被攻击者控制。如今,路由器、监控摄像头或数字视频录像机等 IoT(物联网)设备使用也越来越频繁,这些设备也可能被利用变为 “僵尸主机”。
DDoS攻击类型
与其他种类的网络入侵不同,DDoS 攻击不会去试图渗透系统。相反,它可能会成为其他入侵中的一部分。例如,当一个系统瘫痪时,攻击可以用来分散服务器管理员的注意力,这样就容易忽略系统的其他地方正在被入侵。DDoS 攻击背后的策略可分为三类:
带宽过载
超载带宽的目的是令计算机无法访问。DoS 和 DDoS 攻击直接针对系统网络及其各自的连接设备。路由器一次只能处理一定数量的数据,如果超出此容量,其他用户将无法再使用服务。超载带宽中典型的 DDoS 攻击是 Smurf 攻击。Smurf 攻击:这种 DDoS 攻击利用了 Internet 控制报文协议(ICMP),ICMP 的主要作用在于在计算机网络中交换信息和错误报告。攻击者将经过篡改的 ICMP 应答请求数据包(Ping)发送到网络的广播地址,使用目标的 IP 地址作为发件人地址;然后广播请求从路由器转发到所有连接的设备,导致该网络的所有设备都对此 ICMP 应答请求做出答复,进而淹没受害主机,导致网络阻塞。更加复杂的 Smurf 将源地址改为第三方的受害者,最终导致第三方崩溃。
系统资源过载
针对 Web 服务器的 DDoS 攻击 是最为常见的。攻击者利用了 Web 服务器只能建立有限的数量连接。如果这些链接被无效请求占用,那么就能有效地阻止正常用户请求。这就是 Flood 泛洪。针对系统资源的经典 DDoS 攻击模式有 Ping Flood、SYN Flood 和 UDP Flood。HTTP Flood:这是最简单的 DDoS 资源过载攻击的变体。攻击者通过大量 HTTP 请求淹没目标的 Web 服务器。他们只需访问网页中任何一个元素,就能让服务器因请求量过载而崩溃。
Ping Flood:此类攻击下,攻击者会使用 ICMP 应答请求数据包令服务器过载。这些请求通常由僵尸网络大规模发送。由于这些请求必须用来自目标系统的数据包来回答,数量过多就会消耗主机资源,主机资源耗尽后就会瘫痪或者无法提供其他服务。
SYN Flood:这种攻击属于滥用了 TCP 三次握手连接。TCP(传输控制协议)是一种网络协议,它与 IP 一起确保互联网上的数据流量通畅。TCP 连接在三步验证中建立,该过程从客户端向服务器发送同步数据包(SYN)开始;然后服务器接收到它,服务器用自己的同步数据包(SYN)和确认(ACK)确认请求;最后连接过程以客户端确认(ACK)结束。SYN flood 会在服务器上创建大量的半开连接,比如一直停留在最后一步,服务器会将这些没有最终确认的连接存储在内存中,直到服务器资源被完全耗尽。
UDP Flood:这种类型的攻击主要依赖于无连接的用户数据报协议(UDP)。与 TCP 协议传输不同,数据可以通过 UDP 传输而无需事先建立连接。对于 DDoS 攻击,UDP 数据包被发送到目标系统上的随机端口。系统会尝试确定哪些应用程序正在等待传输数据,确认未成功的情况下,会将 ICMP 数据包连同消息 “ Destination Unreachable(目的地无法到达)” 一起发送回发送方。当请求量过大时,系统资源过载,就会影响普通用户的请求。
利用软件错误和安全漏洞
如果黑客在操作系统或程序中发现某些安全漏洞,他们也可以策划 DoS 或 DDoS 攻击来引发系统崩溃。此类攻击的类型包括死亡之 Ping 和 LAND(局域网拒绝服务)攻击等。
Ping of death:这种攻击的目的是造成系统崩溃。这是一种基于 IP 的攻击,这种攻击主要是由于单个包的长度超过了 IP 协议规范所规定的包长度。IP 数据包通常作为片段发送,如果组装后的 IP 数据包大于了 64 KB 的最大允许值,就会导致缓冲区溢出。包当中的额外数据就会被写入其他正常区域。这很容易导致系统进入非稳定状态,是一种典型的缓存溢出(Buffer Overflow)攻击。在一级防火墙中对于这种攻击进行检测是相当难的,因为每个分片包看起来都很正常。
LAND 攻击:这种类型的攻击通过发送精心构造的、具有相同源地址和目标地址的欺骗数据包,致使缺乏相应防护机制的目标设备瘫痪。攻击者发送符合 TCP 三次握手的 SYN 数据包,SYN 数据包与要攻击的服务器具有相同的目标和源地址,使目标机器开启一个源地址与目标地址均为自身 IP 地址的空连接,持续地自我应答,消耗系统资源直至崩溃。
如何预防和减少DDoS攻击的影响
了解了各种类型的 DDoS 攻击,然而我们并没有什么非常完美的办法阻止黑客发起攻击,只能提前加以防范。具体如何采取措施进行预防呢?一种方法是识别疑似攻击 IP 地址进行处理,同时关闭和修复任何已知的系统安全漏洞。此外,有条件的情况下可以使用专业的硬件和软件资源来阻挡攻击。
IP 黑名单:添加 IP 黑名单可以识别关键 IP 地址并拒绝发出的数据包。这种措施可以手动添加,也可以通过防火墙策略自动添加黑名单。不过请求还是会落到主机上,如果请求量庞大还是会对系统造成影响。
过滤:过滤不必要的服务和端口,过滤掉不规则的数据包,也可以定义指定时间段内的访问数量限制,或对请求进行限速。
SYN cookie:是对 TCP 服务器端的三次握手协议作一些修改,专门用来防范 SYN Flood 攻击的一种手段。有关 SYN 数据包的信息将不再保存在服务器上,而是作为加密 cookie 发送给客户端。SYN Flood 攻击会占用一些计算机容量,但不至于使系统的内存过载。
专业的高防服务:高防服务器主要是指独立单个硬防防御应对 DDOS 攻击和 CC 攻击 100G 以上的服务器,可以为用户提供安全维护,根据各个 IDC 机房的环境不同,有的提供硬防,有的使用软防。简单来说,就是能够帮助网站抵御拒绝服务攻击,并且定时扫描现有的网络主节点,查找可能存在的安全漏洞。目前除了高防服务器,还有高防 IP、高防 CDN 等更专业的产品。
如果您的网站在使用又拍云 CDN ,又拍云还提供了各种访问控制功能,包括各种防盗链、IP 访问限制、CC 防护、WAF 防护、限速等多种功能,大家可以根据自己的需求自行开启~