近两年,游戏出海已经成为了出海热潮中的一员。在“后宅经济时代”的影响下,也得益于海外市场的互联网人口,游戏出海涨势非常迅猛。部分游戏在短时间内走红后,就会遭到了一些“有心人”发起的恶意网络攻击,其中最为常见的一种就是 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 攻击背后的策略可分为三类:

  • 带宽过载
  • 系统资源过载
  • 利用软件错误和安全漏洞

1. 带宽过载

超载带宽的目的是令计算机无法访问。DoS 和 DDoS 攻击直接针对系统网络及其各自的连接设备。路由器一次只能处理一定数量的数据,如果超出此容量,其他用户将无法再使用服务。超载带宽中典型的 DDoS 攻击是 Smurf 攻击。

Smurf 攻击:这种 DDoS 攻击利用了 Internet 控制报文协议(ICMP),ICMP 的主要作用在于在计算机网络中交换信息和错误报告。攻击者将经过篡改的 ICMP 应答请求数据包(Ping)发送到网络的广播地址,使用目标的 IP 地址作为发件人地址;然后广播请求从路由器转发到所有连接的设备,导致该网络的所有设备都对此 ICMP 应答请求做出答复,进而淹没受害主机,导致网络阻塞。更加复杂的 Smurf 将源地址改为第三方的受害者,最终导致第三方崩溃。

2. 系统资源过载

针对 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(目的地无法到达)” 一起发送回发送方。当请求量过大时,系统资源过载,就会影响普通用户的请求。

3. 利用软件错误和安全漏洞

如果黑客在操作系统或程序中发现某些安全漏洞,他们也可以策划 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 防护、限速等多种功能,大家可以根据自己的需求自行开启~

震惊!二狗子的火锅店被隔壁老王 DDoS 攻击了的更多相关文章

  1. 受到 1 万点暴击,二狗子被 DDoS 攻击的惨痛经历

    二狗子的遭遇 “好消息,好消息,免费 DDoS 攻击软件上线了,性感黑客在线攻击,帮您攻克所有商业难题.”二狗子不知道在看着什么网站,新买的 Mac 中发出热闹的声音. 二狗子想知道“DDoS 是什么 ...

  2. 第一次亲密接触——二狗子初识 CDN

    二狗子是国内知名XXX大学的在校学生,作为一名编程爱好者,他利用业余时间搭建了一个网站,把平时的学习心得和技术分享全都 PO 在自己的网站上.渐渐地,二狗子的网站因为文章质量高,技术分享全面,受到了很 ...

  3. 夜空中最靓的二狗子是如何让 HTTPS 快上加快的?

    二狗子是某不知名网站的站长,他热衷于通过博客分享日常的一些工作.生活.技术等,立志要成为夜空中最靓的仔. 但是前段时间有几个用户反馈,网站总是莫名会跳转到一个 xx 网站,除此之外访问速度也有点慢.作 ...

  4. 二狗子 、初恋及HTTPS

    最近二狗子宅在老家,最悠闲的就是泡壶茶看着院子的风景发呆一下午.今天,二狗子看到了对面自己暗恋的小翠花,看着美好的小翠花二狗子不禁想起了自己美好的初恋. 二狗子的初恋在初中,那个时候学校禁止带手机.上 ...

  5. 【MySQL】记一次线上重大事故:二狗子竟然把线上数据库删了!!

    写在前面 估计二狗子这几天是大姨夫来了,心情很郁闷,情绪也很低落,工作的时候也有点心不在焉.让他发个版本,结果,一行命令下去把线上的数据库删了!你没听错:是删掉了线上的数据库!运营那边顿时炸了锅:怎么 ...

  6. 【Spring注解驱动开发】二狗子让我给他讲讲@EnableAspectJAutoProxy注解

    写在前面 最近,二狗子入职了新公司,新入职的那几天确实有点飘.不过慢慢的,他发现他身边的人各个身怀绝技啊,有Spring源码的贡献者,有Dubbo源码的贡献者,有MyBatis源码的贡献者,还有研究A ...

  7. iOS10 导航条,这个二狗子变了...踩坑

    1.iOS10导航透明要转换一个透明image UIImage *image = IsDeviceVersionIOS10 ? [WeUtils imageWithColor:[UIColor cle ...

  8. 超详细的编码实战,让你的springboot应用识别图片中的行人、汽车、狗子、喵星人(JavaCV+YOLO4)

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  9. 老王教您怎么做cass7.1 8.0 9.1所有系列的复制狗 加密狗 破解狗

    cass7.1 8.0 9.1所有系列的复制狗 加密狗 破解狗本来是出于好奇看到网上有这样的东西,学了下感觉挺简单的,如果你是cass的初学者想仅仅是想学习这个软件,不想花大价格购买正版的,这个是可以 ...

  10. Subresource Integrity(子资源一致性)和JS DDos 攻击

    以下文章转载自 http://www.cnblogs.com/zoucaitou/p/4505483.html 和 http://www.puronglong.com/blog//2015/04/12 ...

随机推荐

  1. Spring Boot Bean的多种加载方式

    在 Spring Boot 中,您可以以多种方式加载 Bean,这取决于项目的需求和设计.以下是一些常见的加载 Bean 的方式以及相应的示例源代码. 1.组件扫描(Component Scannin ...

  2. 最全的VLOOKUP应用教程

    VLOOKUP是Excel中最常用的函数之一,它可以让我们在一个表格中查找指定值,并返回与该值匹配的另一个单元格中的内容. 在这篇文章中,我们将深入探讨VLOOKUP的使用方法,从而为您提供一份史上最 ...

  3. 路径规划算法 - 求解最短路径 - A*(A-Star)算法

    Dijkstra(迪杰斯特拉)算法 A*(A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法,也是解决许多搜索问题的有效算法.算法中的距离估算值与实际值越接近,最终搜索速度越快. A* ...

  4. VScode 中利用virtualenv建立 Python 虚拟环境

    ! https://zhuanlan.zhihu.com/p/638114885 VScode 建立 Python 虚拟环境 主要目的:创建一个与默认 python 版本不同的 python 虚拟环境 ...

  5. [NOI online2022普及A] 王国比赛

    题目描述 智慧之王 Kri 统治着一座王国. 这天 Kri 决定举行一场比赛,来检验自己大臣的智慧. 比赛由 \(n\) 道判断题组成,有 \(m\) 位大臣参加.现在你已经知道了所有大臣的答题情况, ...

  6. Mock框架moco学习笔记

    目录 一.Moco框架基本介绍 1. 什么是Moco 2. Moco原理简介 3. Moco的配置和运行 4. Moco启动以及第一个demo 二.mock 的启动及第一个demo 1. 创建star ...

  7. 聊聊流式数据湖Paimon(一)

    翻译自 Apache Paimon官方文档 概览 概述 Apache Paimon (incubating) 是一项流式数据湖存储技术,可以为用户提供高吞吐.低延迟的数据摄入.流式订阅以及实时查询能力 ...

  8. Android辅助功能

    1:AccessibilityService 新建service public class AccessibilityService extends android.accessibilityserv ...

  9. Pikachu漏洞靶场 RCE(远程命令执行/代码执行)

    RCE 文章目录 RCE 概述 exec "ping" exec "eval" 概述 RCE(remote command/code execute),远程命令 ...

  10. gentoo安装gcc出现error: C compiler cannot create executables

    安装程序  systemd 过程中,出现了error: C compiler cannot create executables 这类错误,经过检查,由于没有配置本地编译器的结果. 输入命令如下: g ...