网络层的DDoS攻击与应用层的DDoS攻击之间的区别

news2025/1/16 2:50:06

DDoS攻击(即“分布是拒绝服务攻击”),是基于DoS的特殊形式的拒绝服务攻击,是一种分布式、协作的大规模攻击方式,主要瞄准一些企业或政府部门的网站发起攻击。根据攻击原理和方式的区别,可以把DDoS攻击分为两个不同层次,一种是传统的、基于网络层的DDoS攻击,另一种则是现阶段较为常见的、基于应用层的DDoS攻击,这两类不同层面的DDoS攻击方式各有特点,都对网络的安全造成了极大的危害。

一、网络层DDoS攻击原理及方式

常见的网络层DDoS攻击就是利用TCP/IP协议族的一些特征,控制大量的傀儡机发送合理的请求来消耗攻击目标主机的CPU和内存资源,由于攻击目标主机资源的快速消耗,就会使得合法的用户无法得到所请求的服务。

常见的网络层DDoS攻击方式有:

1、SYN-Flood攻击

SYN-Flood攻击是指攻击者利用TCP三次握手的原理,向目标主机发送大量SYN标志的TCP请求,当服务器接收的这些请求数据包的时候,会为这些连接请求建立会话,并且把这些并未建立完整连接的会话排到缓冲区队列中。攻击者可以发送源地址为假的分组,等待服务器发送分组,而由于源地址为假,因为系统发送回来的分组就等不到源地址主机的响应,因此,服务器的带宽和资源将在维持大量的这类半连接上被消耗掉,一旦请求超过了服务器的缓冲区容量,此时服务器就不能再接收新的连接请求了。此时其他合法的用户就无法建立与服务器的连接。

2、ACK-Flood攻击

ACK Flood攻击。在TCP连接建立之后,所有的数据传输TCP报文都是带有ACK标志位的,主机在接收到一个带有ACK标志位的数据包的时候,需要检查该数据包所表示的连接四元组是否存在,如果存在则检查该数据包所表示的状态是否合法,然后再向应用层传递该数据包。如果在检查中发现该数据包不合法,例如该数据包所指向的目的端口在本机并未开放,则主机操作系统协议栈会回应RST包告诉对方此端口不存在。通常状态检测防火墙所做的事情与此类似,只不过防火墙只拦截非法的数据包,而不主动回应。

对比主机以及防火墙在接收到ACK报文和SYN报文时所做动作的复杂程度,显然ACK报文带来的负载要小得多。所以在实际环境中,只有当攻击程序每秒钟发送ACK报文的速率达到一定的程度,才能使主机和防火墙的负载有大的变化。当发包速率很大的时候,主机操作系统将耗费大量的精力接收报文、判断状态,同时要主动回应RST报文,正常的数据包就可能无法得到及时的处理。这时候客户端(以IE为例)的表现就是访问页面反应很慢,丢包率较高。但是状态检测的防火墙通过判断ACK报文的状态是否合法,借助其强大的硬件能力可以较为有效的过滤攻击报文。当然如果攻击流量非常大,由于需要维护很大的连接状态表同时要检查数量巨大的ACK报文的状态,防火墙也会不堪重负导致全网瘫痪。

3、UDP-Flood攻击

UDP在Internet中的应用是比较广泛的,尤其在一类实时性要求较高,而对数据包传输的完整性要求不高的应用来说,这其中以视频和即时通信最为典型,这些服务首先要求保证的不是质量而是实时性。UDP Flood常发生对DNS服务器以及流媒体视频服务器上,UDP是基于无连接的协议,当攻击目标接收到一个UDP数据包时,它会确定目的端口所对应的应用程序。当攻击目标主机发现该应用程序并不存在时,会产生一个目的地址无法连接的ICMP数据包发送给源地址。如果向攻击目标主机的端口发送了足够多的UDP数据包的时候,攻击目标主机就会崩溃。常见的UDP攻击有NTP攻击。

4、ICMP-Flood攻击

ICMP Flood 的攻击原理和ACK Flood原理类似,属于流量型的攻击方式,也是利用大的流量给服务器带来较大的负载,影响服务器的正常服务。由于目前很多防火墙直接过滤ICMP报文,因此ICMP Flood出现的频度较低。

二、应用层DDoS攻击原理及方式

传统上的攻击DDoS是指发生在网络层的DDoS攻击,如本章上文所指的DDoS攻击一般就是指代的网络层DDoS攻击。而应用层DDoS攻击是在网络层DDoS攻击的基础上发展起来的,应用层DDoS攻击是一种新型的攻击方式,这类攻击方式的本质还是基于洪水式的攻击方式,即攻击者通过代理服务器或者僵尸网络向攻击目标发送大量的高频合法请求,以达到消耗攻击目标带宽的目的,然而,应用层DDoS攻击更为主要的目的是要能够消耗主机资源。

常见的应用层DDoS攻击有:

1、 DNS-Flood攻击

DNS-Flood就是攻击者操纵大量傀儡机器,对目标发起海量的域名查询请求。为了防止基于ACL的过滤,必须提高数据包的随机性。常用的做法是UDP层随机伪造源IP地址、随机伪造源端口等参数。在DNS协议层,随机伪造查询ID以及待解析域名。随机伪造待解析域名除了防止过滤外,还可以降低命中DNS缓存的可能性,尽可能多地消耗DNS服务器的CPU资源。

2、 慢连接攻击

在POST提交方式中,允许在HTTP的头中声明content-length,也就是POST内容的长度。在提交了头以后,将后面的body部分卡住不发送,这时服务器在接受了POST长度以后,就会等待客户端发送POST的内容,攻击者保持连接并且以10S-100S一个字节的速度去发送,就达到了消耗资源的效果,因此不断地增加这样的链接,就会使得服务器的资源被消耗,最后可能宕机。

3、CC攻击

CC攻击是基于页面攻击的,主要攻击目标是提供网页访问服务的服务器。这些网页往往存在ASP,JSP,PHP等脚本程序,并且CC攻击会重点调用Mssql、Mysql、Oracle等数据库,并对这些数据库发起操作。对于网页的访问来说,如果只是查看静态的网页内容,这种服务是不会占用太多服务器的资源的,然而当需要访问涉及到用户与页面之间存在交互的动态网页,这时就需要占用服务器的大量资源了。

比如用户在对数据库进行查找,修改时,服务器第一次会把用户所发出的对于数据库的操作返回,进行相应的操作后,第二次再把结果返回给用户,这其中就包括了至少两次的输入输出操作。如果同一时刻有大量的用户发起这样的请求,服务器的性能会很快下降。CC攻击利用了这个特点,模拟许多用户不间断的对服务器进行访问,而且CC攻击往往是攻击服务器上开销比较大的动态页面。这样的攻击方式有很强的隐蔽性,使得系统很难区分是正常的用户操作还是恶意的攻击。

CC攻击和HTTP GET攻击的攻击方式差不多,唯一的区别在于CC攻击是利用了代理作为攻击的发起点,这一方面使得追查攻击源变得困难。而HTTP GET攻击则并没有使用代理的方式。另一方面CC攻击还利用了代理服务器的缓存特性,即当客户端断开连接得时候,代理服务器还能保持和服务器的一段时间的连接,这个特性可以保障CC攻击的发起者无需关心由服务器发回的响应,而继续保持对服务器的持续交互。CC攻击的这种特性更加严重损害了服务器的性能。因此,CC攻击对服务器性能所造成的损失将更为巨大,也更加难以防范。而当HTTP GET连接被断开之后,发起攻击的傀儡机也就不能再继续发送请求数据包了,这种情况下HTTP GET攻击就比CC攻击显得易于防范,其危害也相应的就显得较易控制。

三、应用层DDoS攻击与网络层DDoS攻击的差异

应用层DDoS攻击和传统的网络层DDoS攻击之间存在着较大的差别,很多网络层DDoS攻击的特性在应用层攻击中已经不复存在了,这两类攻击的具体差别体现在以下几个方面:

1、两者实现的层次不同

网络层DDoS攻击发生在低层,而应用层DDoS攻击利用了高层协议实现。网络层DDoS攻击的典型攻击方式是:攻击者使用虚假的IP地址来控制攻击节点,然后由被控制的攻击节点向目标主机发送大量的攻击数据包,这些数据包包括有UDP和ICMP等,同时这种攻击方式将会利用TCP协议三次握手机制的缺点,使得攻击目标在收到这些不存在的IP地址的连接请求之后,为了维护一个开销非常大的半开连接而需要消耗大量的CPU和内存资源,最终将导致无法再为用户提供服务。

而应用层则DDoS则不然,以Web服务为例,基于Web的应用(如HTTP和HTTPS)通过开放的TCP端口为客户提供服务,应用层DDoS攻击利用了高层的协议,其攻击得以实现是以正常TCP连接和IP分组为前提,因此这就不具备传统DDoS攻击的行为特征(以TCP半开放连接最为显著),而且它无法采用虚假的IP地址(利用虚假的IP地址将无法建立合法和有效的TCP连接)的方法。因为基于网络层的检测系统很难对高层的行为进行判断,所以系统就无法判断经过这些端口的用户请求由正常用户还是攻击者发出的,因此针对高层协议的应用层DDoS攻击的请求可以顺利穿越基于底层协议的检测系统。

2、应用层DDoS有更多更复杂的形式

以Web服务器为例,它可以提供诸如数据库查询、客户端服务端的交互等服务,所以攻击者通过大量傀儡机向攻击目标主机发送请求数据包的攻击方式并不是应用层DDoS攻击的主流攻击方式,相反,应用层DDoS攻击可以用低速率的请求、少量的攻击节点来实现攻击效果。从这点上来看,应用层的DDoS攻击远比网络层DDoS攻击来的复杂,它可以实现更多的功能。因此,应用层DDoS攻击可以产生更大的破坏力。这种以简单的HTTP请求就可以触发服务器执行一系列复杂操作的攻击方式是应用层DDoS和网络层DDoS攻击的差异之一。

总的来说,网络层DDoS攻击和应用层DDoS攻击的主要区别在于攻击的目标和手段。网络层攻击主要针对网络基础设施,而应用层攻击则针对应用程序本身。因此,在防御策略上也需要有所不同。对于网络层DDoS攻击,防御措施通常包括配置防火墙、路由器和交换机等网络设备以过滤伪造或无效的数据包,以及使用内容分发网络(SCDN)等技术来分散和缓解攻击流量。对于应用层DDoS攻击,防御措施则更加复杂。除了使用防火墙等基础设施防御手段外,还需要加强应用程序的安全性和稳定性,例如通过限制请求频率、实施验证码机制、使用负载均衡等技术来分散和过滤有害请求。总之,无论是网络层DDoS攻击还是应用层DDoS攻击,都对网络安全构成了严重威胁。因此,我们需要不断学习和研究新的防御技术和策略,以确保网络安全和稳定。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1470677.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(done) 如何判断一个矩阵是否可逆?

参考视频:https://www.bilibili.com/video/BV15H4y1y737/?spm_id_from333.337.search-card.all.click&vd_source7a1a0bc74158c6993c7355c5490fc600 这个视频里还暗含了一些引理 1.若 AX XB 且 X 和 A,B 同阶可逆,那么 A 和 B 相似。原因&#xff1…

RDMA内核态函数ib_post_recv()源码分析

接上文,上文分析了内核rdma向发送队列添加发送请求的函数ib_post_send,本文分析一下向接收队列添加接收请求的函数ib_post_recv。其实函数调用流程与上文类似,不再重复说明,可参考链接。 函数调用过程 最终会调用到这个函数 下面…

Stable Diffusion 绘画入门教程(webui)-ControlNet(Inpaint)

上篇文章介绍了语义分割Tile/Blur,这篇文章介绍下Inpaint(重绘) Inpaint类似于图生图的局部重绘,但是Inpain效果要更好一点,和原图融合会更加融洽,下面是案例,可以看下效果(左侧原图…

【Java多线程】对线程池的理解并模拟实现线程池

目录 1、池 1.1、线程池 2、ThreadPoolExecutor 线程池类 3、Executors 工厂类 4、模拟实现线程池 1、池 “池”这个概念见到非常多,例如常量池、数据库连接池、线程池、进程池、内存池。 所谓“池”的概念就是:(提高效率) 1…

pytorch -- ToTensor使用

1. ToTensor定义 导入:from torchvision import transforms 通过transforms.ToTensor解决两个问题(PIL image/numpy.ndarray 转化为 tensor ) ToTensor()返回一个ToTensor的对象(创建具体的工具),传入pic就会返回一个Tensor类型的…

应急响应实战笔记03权限维持篇(4)

第4篇:Linux权限维持--后门篇 本文将对Linux下常见的权限维持技术进行解析,知己知彼百战不殆。 1、一句话添加用户和密码 添加普通用户: # 创建一个用户名guest,密码123456的普通用户 useradd -p openssl passwd -1 -salt sal…

Spring的另一大的特征:AOP

目录 AOP (Aspect Oriented Programming)AOP 入门案例(注解版)AOP 工作流程——代理AOP切入点表达式AOP 通知类型AOP通知获取数据获取切入点方法的参数获取切入点方法返回值获取切入点方法运行异常信息 百度网盘分享链接输入密码数…

[数据集][目标检测]游泳者溺水数据集VOC+YOLO格式2类别895张

数据集制作单位:未来自主研究中心(FIRC) 数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):895 标注数量(xml文件个数)&#xff1a…

第7.1章:StarRocks性能调优——查询分析

目录 一、查看查询计划 1.1 概述 1.2 查询计划树 1.3 查看查询计划的命令 1.3 查看查询计划 二、查看查询Profile 2.1 启用 Query Profile 2.2 获取 Query Profile 2.3 Query Profile结构与详细指标 2.3.1 Query Profile的结构 2.3.2 Query Profile的合并策略 2.…

计算机视觉基础知识(十五)--卷积神经网络

卷积神经网络简介 CNN--卷积神经网络,是一种前馈神经网络;不同于传统的只有线性连接的神经网络;CNN具有卷积(convolution)操作、池化(pooling)和非线性激活函数映射等;经典CNN网络有…

【Linux】--- 详解Linux软件包管理器yum和编辑器vim

目录 一、Linux软件包管理器 - yum1.1 yum和软件包是什么1.2 Linux系统(Centos)的生态1.3 yum相关操作1.4 yum本地配置 二、Linux编辑器 - vim使用2.1 vim的基本概念2.2 vim命令模式命令集2.3 vim末行模式命令集2.4 关于vim的几个相关问题 一、Linux软件包管理器 - yum 1.1 yu…

Codeforce Monsters Attack!(B题 前缀和)

题目描述: 思路: 本人第一次的想法是先杀血量低的第二次想法是先搞坐标近的第三次想法看到数据量这么大, 我先加个和看看貌似我先打谁都行,由此综合一下, 我们可以把每一个不同的坐标当作一轮从最小的坐标开始&#x…

Vue+SpringBoot打造在线课程教学系统

目录 一、摘要1.1 系统介绍1.2 项目录屏 二、研究内容2.1 课程类型管理模块2.2 课程管理模块2.3 课时管理模块2.4 课程交互模块2.5 系统基础模块 三、系统设计3.1 用例设计3.2 数据库设计 四、系统展示4.1 管理后台4.2 用户网页 五、样例代码5.1 新增课程类型5.2 网站登录5.3 课…

机器学习打分函数在分子对接中的应用系列-GB_Score

欢迎浏览我的CSND博客! Blockbuater_drug …点击进入 文章目录 前言一、GB-Score是什么?二、文献复现 -训练和验证环境1. GB score验证虚拟环境的配置2. Usage1- Preparing ligand and protein file2- Generating features3 - Repeat and extend current…

打印水仙花数---c语言刷题

欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 题述 求出0~100000之间的所有“水仙花数”并输出。 “水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153&#…

openssl3.2 - crypto-mdebug被弃用后, 内存泄漏检查的替代方法

文章目录 openssl3.2 - crypto-mdebug被弃用后, 内存泄漏检查的替代方法概述笔记查看特性列表openssl3.2编译脚本 - 加入enable-crypto-mdebug看看有没有替代内存诊断的方法?main.cppmy_openSSL_lib.hmy_openSSL_lib.c备注备注END openssl3.2 - crypto-mdebug被弃用后, 内存泄…

sonar-java 手写一个规则-单元测试分析

前言 最近做项目,定制sonar规则,提高Java代码质量,在编写的sonar规则,做验证时,使用单元测试有一些简单的心得感悟,分享出来。 自定义规则模式 sonar的自定义规则很简单,一般而言有2种模式可…

解决vulhub漏洞环境下载慢卡死问题即解决docker-valhub漏洞环境下载慢的问题

解决vulhub环境下载慢/卡 当前环境为:ubuntu20 1.在 cd /etc/docker/目录下创建或修改daemon.json文件 sudo touch daemon.json编辑daemon.json文件 sudo vim daemon.json2.填写阿里云镜像地址: { "registry-mirrors":["https://6kx…

UE5 C++ Gas开发 学习记录(三)

添加AuraPlayerState,AuraAbilitySystemComponentBase和AuraAttributeSet 在Build.cs里添加 // Copyright Epic Games, Inc. All Rights Reserved. using UnrealBuildTool; public class MyGas : ModuleRules { public MyGas(ReadOnlyTargetRules Target) : base(Target) { P…

Android pixel6网页线刷官方镜像

背景 p6-7系pixel更新Android 13,首次引入了防回滚机制,Android13系统检测到属于Android12版本的旧bootloader就会直接红字警告拒绝引导,多次引导就会成为收藏品!(除非充钱) 今天收到了新的pixel6,想着以后刷机刷内核肯定频繁,就先打个预防针。 网页线刷官方镜像 查…