当前位置: 首页 > news >正文

【云计算网络安全】解析DDoS攻击:工作原理、识别和防御策略 | 文末送书

在这里插入图片描述

文章目录

    • 一、前言
    • 二、什么是 DDoS 攻击?
    • 三、DDoS 攻击的工作原理
    • 四、如何识别 DDoS 攻击
    • 五、常见的 DDoS 攻击有哪几类?
      • 5.1 应用程序层攻击
        • 5.1.1 攻击目标
        • 5.1.2 应用程序层攻击示例
        • 5.1.3 HTTP 洪水
      • 5.2 协议攻击
        • 5.2.1 攻击目标
        • 5.2.2 协议攻击示例
        • 5.2.3 SYN 洪水
      • 5.3 容量耗尽攻击
        • 5.3.1 攻击目标
        • 5.3.2 攻击示例
        • 5.3.3 DNS 放大
    • 六、如何防护 DDoS 攻击?
      • 6.1 黑洞路由
      • 6.2 速率限制
      • 6.3 Web 应用程序防火墙
      • 6.4 Anycast 网络扩散
    • 七、文末送书《构建新型网络形态下的网络空间安全体系》

一、前言

在今天的云计算数字时代,网络安全问题变得愈发重要。尤其是云计算中所设计到的网络安全问题,其中一种常见的网络威胁是分布式拒绝服务(DDoS)攻击。DDoS攻击旨在通过大规模的网络流量淹没目标服务器或网络,以破坏正常的在线服务。了解DDoS攻击的工作原理以及如何识别和防范它们对于保护网络和服务器的稳定性至关重要。

在本文中,我们将深入探讨DDoS攻击的各个方面,从什么是 DDoS 攻击开始,了解其工作原理,以及如何辨识各类 DDoS 攻击。我们还将介绍一些常见的 DDoS 攻击类型,包括应用程序层攻击和协议攻击,以及它们的示例。此外,我们还将讨论如何采取措施来保护自己免受 DDoS 攻击,包括黑洞路由、速率限制、Web应用程序防火墙和 Anycast 网络扩散等防御方法。

通过深入了解 DDoS 攻击以及应对策略,我们可以更好地准备和保护自己的网络资源,确保其稳定性和可用性。让我们一起开始这个关于 DDoS 攻击的探索之旅。

二、什么是 DDoS 攻击?

分布式拒绝服务(DDoS)攻击是一种恶意行为,通过大规模互联网流量淹没目标服务器或其周边基础设施,旨在破坏目标服务器、服务或网络正常运行。

DDoS 攻击通过多台受感染的计算机系统充当攻击流量源,以实现攻击的目的。这些计算机系统可以包括普通计算机,也可以包括其他联网资源(如物联网设备)。

个人简单理解可以为,DDoS 攻击可类比为高速公路上的交通堵塞,阻碍了正常车辆的到达目的地。

在这里插入图片描述

三、DDoS 攻击的工作原理

DDoS 攻击是通过连接到互联网的计算机网络执行的。这些网络包括计算机和其他设备(例如 IoT 设备),它们被感染并受到恶意软件的控制,攻击者可以远程控制这些设备。这些感染的个体设备通常被称为"僵尸",而它们的集合则构成了"僵尸网络"。

一旦建立了僵尸网络,攻击者可以通过向每个僵尸发送远程指令来发动攻击。当僵尸网络将受害者的服务器或网络作为目标时,每个僵尸会向目标的 IP 地址发送请求,这可能导致服务器或网络不堪重负,进而拒绝正常流量的服务。

鉴于每个僵尸都是合法的互联网设备,因此很难区分攻击流量和正常流量。

四、如何识别 DDoS 攻击

DDoS 攻击最明显的迹象之一是网站或服务的突然减速或不可用。然而,造成类似性能问题的原因多种多样(如合法流量激增),因此通常需要进一步调查。流量分析工具可以帮助您识别 DDoS 攻击的一些显著特征:

  1. 来自单个 IP 地址或 IP 范围的可疑流量。
  2. 大量流量来自共享相同行为特征的用户,如设备类型、地理位置或 Web 浏览器版本。
  3. 单个页面或端点的请求数量出现不明原因的激增。
  4. 异常的流量模式,例如在非常规时间段内的激增或看似不自然的模式(例如,每 10 分钟一次的激增)。
    此外,DDoS 攻击的具体特征还可能因攻击类型而异。

五、常见的 DDoS 攻击有哪几类?

不同类型的 DDoS 攻击针对不同的网络连接组件。为了解不同的 DDoS 攻击如何运作,有必要知道网络连接是如何建立的。

互联网上的网络连接由许多不同的组件或“层”构成。就像打地基盖房子一样,模型中的每一步都有不同的用途。

OSI 模型(如下图所示)是一个概念框架,用于描述 7 个不同层级的网络连接。

在这里插入图片描述

几乎所有 DDoS 攻击都涉及用流量淹没目标设备或网络,攻击者可能利用一种或多种不同的攻击手段,也可能根据目标采取的防范措施循环使用多种攻击手段。

总结起来 DDoS 攻击可以分为三类

5.1 应用程序层攻击

5.1.1 攻击目标

此类攻击有时称为第 7 层 DDoS 攻击(指 OSI 模型第 7 层),其目标是耗尽目标资源。

攻击目标是生成网页并传输网页响应 HTTP 请求的服务器层。在客户端执行一项 HTTP 请求的计算成本比较低,但目标服务器做出响应却可能非常昂贵,因为服务器通常必须加载多个文件并运行数据库查询才能创建网页。

第 7 层攻击很难防御,因为难以区分恶意流量和合法流量。

5.1.2 应用程序层攻击示例

在这里插入图片描述

5.1.3 HTTP 洪水

HTTP 洪水攻击类似于同时在大量不同计算机的 Web 浏览器中一次又一次地按下刷新 ——大量 HTTP 请求涌向服务器,导致拒绝服务。

这种类型的攻击有简单的,也有复杂的。

较简单的实现可以使用相同范围的攻击 IP 地址、referrer 和用户代理访问一个 URL。复杂版本可能使用大量攻击性 IP 地址,并使用随机 referrer 和用户代理来针对随机网址。

5.2 协议攻击

5.2.1 攻击目标

协议攻击也称为状态耗尽攻击,这类攻击会过度消耗服务器资源和/或防火墙和负载平衡器之类的网络设备资源,从而导致服务中断。

协议攻击利用协议堆栈第 3 层和第 4 层的弱点致使目标无法访问。

5.2.2 协议攻击示例

在这里插入图片描述

5.2.3 SYN 洪水

SYN 洪水就好比补给室中的工作人员从商店的柜台接收请求。

工作人员收到请求,前去取包裹,再等待确认,然后将包裹送到柜台。工作人员收到太多包裹请求,但得不到确认,直到无法处理更多包裹,实在不堪重负,致使无人能对请求做出回应。

此类攻击利用 TCP 握手(两台计算机发起网络连接时要经过的一系列通信),通过向目标发送大量带有伪造源 IP 地址的 TCP“初始连接请求”SYN 数据包来实现。

目标计算机响应每个连接请求,然后等待握手中的最后一步,但这一步确永远不会发生,因此在此过程中耗尽目标的资源。

5.3 容量耗尽攻击

5.3.1 攻击目标

此类攻击试图通过消耗目标与较大的互联网之间的所有可用带宽来造成拥塞。攻击运用某种放大攻击或其他生成大量流量的手段(如僵尸网络请求),向目标发送大量数据。

5.3.2 攻击示例

在这里插入图片描述

5.3.3 DNS 放大

DNS 放大就好比有人打电话给餐馆说“每道菜都订一份,请给我回电话复述整个订单”,而提供的回电号码实际上属于受害者。几乎不费吹灰之力,就能产生很长的响应并发送给受害者。

利用伪造的 IP 地址(受害者的 IP 地址)向开放式 DNS 服务器发出请求后,目标 IP 地址将收到服务器发回的响应。

六、如何防护 DDoS 攻击?

若要缓解 DDoS 攻击,关键在于区分攻击流量与正常流量。

例如,如果因发布某款产品导致公司网站涌现大批热情客户,那么全面切断流量是错误之举。如果公司从已知恶意用户处收到的流量突然激增,或许需要努力缓解攻击。

难点在于区分真实客户流量与攻击流量。

在现代互联网中,DDoS 流量以多种形式出现。流量设计可能有所不同,从非欺骗性单源攻击到复杂的自适应多方位攻击无所不有。

多方位 DDoS 攻击采用多种攻击手段,以期通过不同的方式击垮目标,很可能分散各个层级的缓解工作注意力。

同时针对协议堆栈的多个层级(如 DNS 放大(针对第 3/4 层)外加 HTTP 洪水(针对第 7 层))发动攻击就是多方位 DDoS 攻击的一个典型例子。

为防护多方位 DDoS 攻击,需要部署多项不同策略,从而缓解不同层级的攻击。

一般而言,攻击越复杂,越难以区分攻击流量与正常流量 —— 攻击者的目标是尽可能混入正常流量,从而尽量减弱缓解成效。

如果缓解措施不加选择地丢弃或限制流量,很可能将正常流量与攻击流量一起丢弃,同时攻击还可能进行修改调整以规避缓解措施。为克服复杂的破坏手段,采用分层解决方案效果最理想。

6.1 黑洞路由

有一种解决方案几乎适用于所有网络管理员:创建黑洞路由,并将流量汇入该路由。在最简单的形式下,当在没有特定限制条件的情况下实施黑洞过滤时,合法网络流量和恶意网络流量都将路由到空路由或黑洞,并从网络中丢弃。

如果互联网设备遭受 DDoS 攻击,则该设备的互联网服务提供商(ISP)可能会将站点的所有流量发送到黑洞中作为防御。这不是理想的解决方案,因为它相当于让攻击者达成预期的目标:使网络无法访问。

6.2 速率限制

限制服务器在某个时间段接收的请求数量也是防护拒绝服务攻击的一种方法。

虽然速率限制对于减缓 Web 爬虫窃取内容及防护暴力破解攻击很有帮助,但仅靠速率限制可能不足以有效应对复杂的 DDoS 攻击。

然而,在高效 DDoS 防护策略中,速率限制不失为一种有效手段。

6.3 Web 应用程序防火墙

Web 应用程序防火墙(WAF) 是一种有效工具,有助于缓解第 7 层 DDoS 攻击。在互联网和源站之间部署 WAF 后,WAF 可以充当反向代理,保护目标服务器,防止其遭受特定类型的恶意流量入侵。

通过基于一系列用于识别 DDoS 工具的规则过滤请求,可以阻止第 7 层攻击。有效的 WAF 的一个关键价值是能够快速实施自定义规则以应对攻击。

6.4 Anycast 网络扩散

此类缓解方法使用 Anycast 网络,将攻击流量分散至分布式服务器网络,直到网络吸收流量为止。

这种方法就好比将湍急的河流引入若干独立的小水渠,将分布式攻击流量的影响分散到可以管理的程度,从而分散破坏力。

Anycast 网络在缓解 DDoS 攻击方面的可靠性取决于攻击规模及网络规模和效率。采用 Anycast 分布式网络是实施 DDoS防护策略的一个重要组成部分。

七、文末送书《构建新型网络形态下的网络空间安全体系》

本文介绍了网络安全中心的 DDoS攻击:工作原理、识别和防御策略,如果你想深入了解,可以看一下下面的博主推荐的这本书籍

  • 参与方式:关注博主,评论区留言即可参与,

  • 送出数量:暂定送出5本给粉丝(博文抽出3本 + 粉丝群2本)

经过30多年的发展,安全已经深入到信息化的方方面面,形成了一个庞大的产业和复杂的理论、技术和产品体系。

因此,需要站在网络空间的高度看待安全与网络的关系,站在安全产业的高度看待安全厂商与客户的关系,站在企业的高度看待安全体系设计与安全体系建设之间的关系。

这是对安全行业的一次以网络空间为框架,以思考为刀,以安全产品与技术为刃,以企业安全体系建设为牛的深度解构与重构。

在这里插入图片描述

  • 官方JD购买链接:https://item.jd.com/13767561.html

如果你是投资人,可以在这里看到整个产业发展的驱动力,看到安全技术和厂商的发展趋势,看到未来优秀的安全厂商和技术的特点,以及未来十年的厂商与技术格局。

如果你是客户,你可以在数以十计的安全标准和安全理论、数以百计的安全厂商及数以千计的产品和解决方案之间,找到一种合理的组合逻辑,从而让安全建设变得有理、有据、有序。

如果你是安全从业者,由于平时工作内容的聚焦,可能会对安全的某个点有深入研究,但是对整个安全系统还缺乏完整的理解。比如写反病毒引擎的,可能并没有机会分析病毒;写客户端程序的,可能不了解服务器端技术。在这里,你可以系统地了解安全是什么,安全有什么,安全该怎么做,安全的未来将会如何发展。

如果你是安全爱好者,这里还有大量的安全基础知识与有趣的安全故事来等你发掘。

在这里,安全不再是一堆零配件,而是一个完整的有机体。你可以沿着某种视角,由远及近、由外而内地了解安全,然后更好地驾驭它。

在这里插入图片描述

相关文章:

【云计算网络安全】解析DDoS攻击:工作原理、识别和防御策略 | 文末送书

文章目录 一、前言二、什么是 DDoS 攻击?三、DDoS 攻击的工作原理四、如何识别 DDoS 攻击五、常见的 DDoS 攻击有哪几类?5.1 应用程序层攻击5.1.1 攻击目标5.1.2 应用程序层攻击示例5.1.3 HTTP 洪水 5.2 协议攻击5.2.1 攻击目标5.2.2 协议攻击示例5.2.3 …...

64位Linux系统上安装64位Oracle10gR2及Oracle11g所需的依赖包

在64位Linux系统上安装64位Oracle 10gR2,到底需要装哪些包? 这不是一个完整的安装教程,仅仅探讨在64位CentOS 5.8系统上安装64位Oracle 10gR2,到底需要装哪些RPM包. 实验环境VMWare Workstation 8.0 Linux发行版: CentOS 5.8 x86_64 Kernel版本: 2.6.18-308.el5 Oracle Dat…...

Unity InputSystem 基础使用之鼠标交互

资料 官方文档 导入InputSystem包 Package Manager 搜索Input System进行下载启用该包,会重启Unity Editor 注意 InputSystem可以和旧版输入系统一起使用 设置:Project Settings->Player->Other Settings->Configuration->Active Input…...

《算法竞赛·快冲300题》每日一题:“二进制数独”

《算法竞赛快冲300题》将于2024年出版,是《算法竞赛》的辅助练习册。 所有题目放在自建的OJ New Online Judge。 用C/C、Java、Python三种语言给出代码,以中低档题为主,适合入门、进阶。 文章目录 题目描述题解C代码Java代码Python代码 “ 二…...

CnosDB 签约京清能源,助力分布式光伏发电解决监测系统难题。

近日,京清能源采购CnosDB,升级其“太阳能光伏电站一体化监控平台”。该平台可以实现电站设备统一运行监控,数据集中管理,为操作人员、维护人员、管理人员提供全面、便捷、差异化的数据和服务。 京清能源集团有限公司(…...

汇编:lea 需要注意的一点

lea和mov的效用上不一样,如果当前%rsi的值是0, lea 0x28(%rsi),%rax ,这个只是计算一个地址,而不是去做地址访问。 mov 0x8(%rsi),%rsi,而这个mov,在计算完地址,还要访问内存地址。如果rsi是0&a…...

SQL语言的分类:DDL(数据库、表的增、删、改)、DML(数据的增、删、改)

数据库管理系统(数据库软件)功能非常多,不仅仅是存储数据,还要包含:数据的管理、表的管理、库的管理、账户管理、权限管理等。 操作数据库的SQL语言,基于功能,划分为4类: 1、数据定…...

微信小程序精准扶贫数据收集小程序平台设计与实现

摘 要 近些年以来,随着我国的互联网技术的不断进步,计算机科学技术的发展也在不断的快速发展。在当下“互联网”的带动下,我国的各行各业,上到政府机关下到小微企业都通过互联网的发展带动取得了很好的发展势头。我国这两年来通过…...

PostgreSQL 流复制搭建

文章目录 前言1. 配置环境1.1 环境介绍1.2 主库白名单1.3 主库参数配置 2. 流复制搭建2.1 备份恢复2.2 创建复制用户2.3 参数修改2.4 启动并检查2.5 同步流复制2.6 同步复制级别 3. 流复制监控3.1 角色判断3.2 主库查看流复制3.3 延迟监控3.4 备库查询复制信息 前言 PostgreSQ…...

机器学习笔记之最优化理论与方法(十)无约束优化问题——共轭梯度法背景介绍

机器学习笔记之最优化理论与方法——共轭梯度法背景介绍 引言背景:共轭梯度法线性共轭梯度法共轭方向共轭VS正交共轭方向法共轭方向法的几何解释 引言 本节将介绍共轭梯度法,并重点介绍共轭方向法的逻辑与几何意义。 背景:共轭梯度法 关于…...

Mybatis核心对象及工作流程

目录 一、mybatis核心对象 (1)SqlSession对象直接操作数据库 (2)SqlSession对象通过代理对象操作数据库 二、mybatis工作流程 一、mybatis核心对象 (1)SqlSessionFactoryBuilder SqlSession工厂构建者对…...

无swing,高级javaSE毕业之贪吃蛇游戏(含模块构建,多线程监听服务),已录制视频

JavaSE,无框架实现贪吃蛇 B站已发视频:无swing,纯JavaSE贪吃蛇游戏设计构建 文章目录 JavaSE,无框架实现贪吃蛇1.整体思考2.可能的难点思考2.1 如何表示游戏界面2.2 如何渲染游戏界面2.3 如何让游戏动起来2.4 蛇如何移动 3.流程图…...

Kafka3.0.0版本——消费者(消费者组详细消费流程图解及消费者重要参数)

目录 一、消费者组详细消费流程图解二、消费者的重要参数 一、消费者组详细消费流程图解 创建一个消费者网络连接客户端,主要用于与kafka集群进行交互,如下图所示: 调用sendFetches发送消费请求,如下图所示: (1)、Fet…...

算法通关村-----位运算在海量元素中查找重复元素的妙用

用4KB内存寻找重复元素 问题描述 给定一个数组,包含从1到N的整数,N最大为32000,数组可能还有重复值,且N的取值不定,若只有4KB内存可用,如何打印数组中所有的重复元素。 问题分析 Java中存储整数使用int…...

RabbitMQ: Publish/Subscribe结构

生产者 package com.qf.mq2302.publishSub;import com.qf.mq2302.utils.MQUtils;import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection;public class EmitLog {private static final String EXCHANGE_NAME "logs";public static void main…...

单片机-蜂鸣器

简介 蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电 蜂鸣器主要分为 压电式蜂鸣器 和 电磁式蜂鸣器 两 种类型。 压电式蜂鸣器 主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。多谐振荡器由晶体管或集成电路构成,当接通电源后&…...

华为云云耀云服务器L实例评测 | 分分钟完成打地鼠小游戏部署

前言 在上篇文章【华为云云耀云服务器L实例评测 | 快速部署MySQL使用指南】中,我们已经用【华为云云耀云服务器L实例】在命令行窗口内完成了MySQL的部署并简单使用。但是后台有小伙伴跟我留言说,能不能用【华为云云耀云服务器L实例】来实现个简单的小游…...

Android——数据存储(二)(二十二)

1. SQLite数据库存储 1.1 知识点 (1)了解SQLite数据库的基本作用; (2)掌握数据库操作辅助类:SQLiteDatabase的使用; (3)可以使用命令操作SQLite数据库; …...

appium环境搭建

一.appium环境搭建 1.python3 python3的下载安装这里就不多做介绍了,当然你也可以选择自己喜欢的语音,比如java… 2.jdk 1)下载地址 官网(需登录账号): https://www.oracle.com/java/technologies/downloads/ 百度网盘&…...

十五、Webpack打包图片-js-Vue、Label命令、resolve模块解析

一、webpack打包图片 (1)加载图片案例准备 为了演示我们项目中可以加载图片,我们需要在项目中使用图片,比较常见的使用图片的方式是两种: img元素,设置src属性;其他元素(比如div&…...

XML Group端口详解

在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)&#xff0…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

人机融合智能 | “人智交互”跨学科新领域

本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1)下载安装包2)配置环境变量3)安装镜像4)node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1)使用 http-server2)详解 …...

土建施工员考试:建筑施工技术重点知识有哪些?

《管理实务》是土建施工员考试中侧重实操应用与管理能力的科目,核心考查施工组织、质量安全、进度成本等现场管理要点。以下是结合考试大纲与高频考点整理的重点内容,附学习方向和应试技巧: 一、施工组织与进度管理 核心目标: 规…...

海云安高敏捷信创白盒SCAP入选《中国网络安全细分领域产品名录》

近日,嘶吼安全产业研究院发布《中国网络安全细分领域产品名录》,海云安高敏捷信创白盒(SCAP)成功入选软件供应链安全领域产品名录。 在数字化转型加速的今天,网络安全已成为企业生存与发展的核心基石,为了解…...

Python异步编程:深入理解协程的原理与实践指南

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 持续学习,不断…...

2025 后端自学UNIAPP【项目实战:旅游项目】7、景点详情页面【完结】

1、获取景点详情的请求【my_api.js】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http(/login/getWXSessionKey, {code,avatar}); };//…...