DDoS 究竟在攻击什么?

news2024/9/20 5:47:52

分布式拒绝服务(DDoS)攻击是一种常见的网络攻击形式,攻击者通过向目标服务端发送大量的请求,使目标服务端无法进行网络连接,无法正常提供服务。

DDoS 攻击通常是由大量的分布在全球各地的 “僵尸” 计算机(也称为 “肉鸡” 或 “僵尸网络”)共同发起请求,这些计算机可能被感染了恶意软件,攻击者可以通过远程指令控制来发起攻击,从而达到掩饰攻击来源、加大攻击威力的目的。

1. 协议型攻击

这类攻击类型主要利用网络协议的漏洞或者设计缺陷,消耗目标服务端的资源,其中最著名的莫过于 TCP SYN Flood 攻击,几乎所有大型网站都遭受过这种类型攻击,造成几个小时到几天的服务不可用时间。

全连接与半连接

在描述 TCP SYN Flood 的攻击原理和如何防范之前,先来简单介绍一下 TCP 的全连接和半连接。

全连接是指服务端收到了客户端的 ACK,完成了 TCP 三次握手,然后会把这个连接移动到全连接队列中,全连接队列中的套接字,需要被应用 accept() 系统调用出队取走,服务端才可以开始处理客户端的请求。

也就是说,全连接队列包含了所有完成了三次握手,但还未被应用 accept() 取走的连接,默认情况下,如果全连接队列已满,客户端发送的 ACK 报文会被直接丢掉 (取决于 net.ipv4.tcp_abort_on_overflow 参数设置),返回 connection reset by peer 错误。

半连接是指还没有完成 TCP 三次握手的连接,连接只进行了一半,也就是服务端收到了客户端的 SYN 控制报文之后,服务端会把这个连接放入半连接队列中,然后再向客户端发送 SYN + ACK 控制报文。

和全连接队列一样,半连接队列也有溢出处理机制,默认情况下,如果半连接队列已满,客户端发送的 SYN 报文会被直接丢掉。

SYN Flood (洪泛) 攻击

SYN Flood (洪泛) 攻击就是针对半连接队列的,攻击方不停地向服务端发起连接建立请求,但是建立连接时只完成第一步,第二步中,当攻击方收到服务端的 SYN + ACK 之后,故意丢掉报文,然后什么也不做,这样重复执行执行攻击过程,服务端的半连接队列很快就会被打满,这时其它正常的请求也无法和服务建立连接,攻击者的目的就达到了。

hping3

hping3 (Redis 作者开发的另外一个工具) 可以构造 TCP/IP 协议数据包,对系统进行安全审计、防火墙测试、DDoS 攻击测试等。

通过抓包输出,可以得出如下结果:

  1. 客户端 (攻击方) 构造大量的 SYN 包,请求建立 TCP 连接

  2. 服务端 (被攻击方) 收到 SYN 包后,会向源 IP (客户端) 发送 SYN + ACK 报文,并等待三次握手的最后一次 ACK 报文,直到超时

  3. 经过一段时间后,服务端的半连接队列会打满,从而无法建立新的 TCP 连接

SYN Flood (洪泛) 攻击防范

如前文所述,SYN Flood (洪泛) 主要攻击的 TCP 的半连接队列,所以 最重要的防范措施就在于: 如何保护半连接队列不被恶意连接打满?

  1. 服务端的 TCP 连接,会处于 SYN_RECEIVED 状态

  2. 查看 TCP 半开连接的方法,关键在于 SYN_RECEIVED 状态的连接

2. 反射型攻击

反射型 DDoS 攻击也称为 (流量) 放大型攻击。

攻击者向服务端发送大量的数据包,占用服务端的带宽和资源,造成目标服务端无法正常提供服务,例如 UDP 洪泛、ICMP 洪泛。

UDP 洪泛: 攻击者向目标服务发送大量的 UDP 数据报文试图填充服务端的可用端口,服务端如果没有找到指定端口,会返回 “Destination Unreachable” 应答报文,在海量 UDP 请求下,服务端就会被攻击流量淹没。

ICMP 洪泛:攻击者向目标服务端发送大量的 ICMP ECHO, 也就是 ping 请求 数据包,目标服务端会耗费大量的 CPU 资源去处理和响应,从而无法响应正常请求。

攻击者也可以利用利用第三方服务或设备,放大攻击流量,典型的如 DNS 攻击。攻击者利用开放的 DNS 服务端向目标系统发送大量的 DNS 查询请求,通过伪造源 IP 地址为被攻击目标,使被攻击目标系统收到大量的 DNS 响应数据包,占用其带宽和服务端资源。

攻击特点

不论哪种类型的反射型攻击,其攻击方式都具有如下特点:

  1. 高流量: 攻击者发送大量的数据 (请求报文) 到目标服务端或网络,使其超出正常处理能力范围

  2. 大规模且难以识别: 攻击者操作数百或数千个攻击节点 (也称为 “肉鸡” 或 “僵尸网络”),形成大规模的攻击,而且攻击节点很难找出共性特征 (攻击流量和正常流量看起来几乎一样)

  3. 目的明确且无差别攻击: 攻击的目的通常是使目标服务端或网络不可用,所有会攻击目标服务端所有开放端口

  4. 持续性: 攻击行为可以持续数小时甚至数天

攻击防范

反射型攻击的单纯从技术上很难实现绝对防范,毕竟像 Github 这种级别的网站面对 DDoS 时也只能 “躺平”,目前主流的解决方法基本都是通过 “加钱” 的方式来解决的,例如堆硬件、搭软件、叠带宽等方面。

  1. 流量过滤和清洗: 使用 (云计算厂商提供的) 专业的 DDoS 防护设备或服务,对流量进行实时监测、过滤和清洗、识别并阻止异常流量

  2. 入侵检测和防御: 部署入侵检测系统 (IDS) 和入侵防御系统 (IPS),对网络流量进行实时监控和分析、识别并阻止异常流量

  3. 增加带宽和资源: 增加网络带宽和服务端资源,提高系统抵御大流量攻击的能力

  4. ISP: 与互联网服务提供商(ISP)合作,共同防范 DDoS 攻击

  5. CDN: 尽可能使用 CDN 分发流量,最大限度减少攻击对关键业务/服务的影响

  6. 限流: 关键业务/服务中对网络流量进行限制

德迅云安全---安全加速SCDN

安全加速(Secure Content Delivery Network,SCDN)是德迅云安全推出的集分布式DDoS防护、CC防护、WAF防护、BOT行为分析为一体的安全加速解决方案。已使用内容分发网络(CDN)或全站加速网络(ECDN)的用户,可为加速域名一键开启安全防护相关配置,全方位保障业务内容分发。

Web攻击防护

OWASP TOP 10威胁防护

有效防御 SQL注入、XSS攻击、命令/代码执行、文件包含、木马上传、路径穿越、恶意扫描等OWASP TOP 10攻击。专业的攻防团队7*24小时跟进0day漏洞,分析漏洞原理,并制定安全防护策略,及时进行防护。

AI检测和行为分析

通过对德迅云积累海量日志进行学习和训练输出多种Web安全防护模型,对用户多请求的多元因子进行智能分析,有效提高检出率,降低误报率;通过信息孤岛、行为检测分析,识别恶意攻击源,保护网站安全。

智能语义解析引擎

提供智能语义解析功能,在漏洞防御的基础上,增强SQL注入和XSS攻击检测能力。

应用层DDoS防护

CC、HTTP Flood攻击防御

威胁情报库:通过大数据分析平台,实时汇总分析攻击日志,提取攻击特征并进行威胁等级评估,形成威胁情报库。
个性化策略配置:如请求没有命中威胁情报库中的高风险特征,则通过IP黑白名单、访问频率控制等防御攻击。
日志自学习:实时动态学习网站访问特征,建立网站的正常访问基线。
人机校验:当请求与网站正常访问基线不一致时,启动人机校验(如JS验证、META验证等)方式进行验证,拦截攻击。

慢连接攻击防御

对Slow Headers攻击,通过检测请求头超时时间、最大包数量阈值进行防护。
对Slow Post攻击,通过检测请求小包数量阈值进行防护。

合规性保障

自定义防护规则

用户可以对HTTP协议字段进行组合,制定访问控制规则,支持地域、请求头、请求内容设置过滤条件,支持正则语法。

访问日志审计

记录所有用户访问日志,对访问源进行TOP N,提供趋势分析,可以根据需要提供日志下载功能。

网页防篡改

采用强制静态缓存锁定和更新机制,对网站特定页面进行保护,即使源站相关网页被篡改,依然能够返回给用户缓存页面。

数据防泄漏

对response报文进行处理,对响应内容和响应进行识别和过滤,根据需要设置数据防泄漏规则,保护网站数据安全。

HTTP流量管理

支持HTTP流量管理

可以设置源IP或者特点接口访问速率,对超过速率的访问进行排队处理,减缓服务器压力。

请求头管理

可以根据业务需要对请求头和响应头进行处理,可进行请求头替换或者敏感信息隐藏设置。

安全可视化

四大安全分析报表

默认提供Web安全攻击报表、CC攻击防护报表、用户访问统计报表和自定义规则命中报表,满足业务汇报和趋势分析需求。

全量日志处理

提供全量日志查询和下载功能,可以通过OpenAPI接口获取实时日志或离线日志信息。

实时数据统计

提供基于均值和峰值带宽统计信息,提供攻击带宽和正常占比,随时关注业务状况。提供多种组件,了解业务监控和核心指标变化情况。

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

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

相关文章

c++ 求解质因数(细节详解)

定义 这里先来了解几个定义(如已了解,可直接看下一个板块) 因数:又称为约数,如果整数a除以整数b(b0)的商正好是是整数而没有余数,我们就说b是a的因数 质数:又称为素数…

免费HTTPS代理的风险与网站推荐

在当今的网络环境中,免费HTTPS代理服务因其“零成本”的特点吸引了不少用户。然而,免费往往意味着某些隐性的代价。作为专业的测评团队,我们深入探索了市场上的免费HTTPS代理服务,并在此提醒大家注意其中的风险,同时推…

【企业级开发模型】Git分支设计模型 | 企业级项目挂历实战_准备工作开发场景实操

目录 3.Git分支设计模型 3.1master分支 3.2release分支 3.3develop分支 3.4feature分支 3.5hotfix分支 4.企业级项目挂历实战_准备工作&开发场景实操学习文档 3.Git分支设计模型 对于我们开发人员来说,对于不同的场景/环境,来设计分支模型。…

Redis与MySQL数据一致性问题的策略模式及解决方案

目录 一、策略模式 1、旁路缓存模式(Cache Aside Pattern) 2、读写穿透(Read-Through/Write-Through) 3、异步缓存写入(Write Behind) 二、一致性解决方案 1、缓存延迟双删 2、删除重试机制 3、读取…

30.【C语言】函数系列下

1.嵌套调用 *定义:函数之间的互相调用 *例: int function1(int a, int b) {function2(b);//嵌套函数的调用return a; } //注意:不能将function2定义在function1的里面,这不叫嵌套函数的调用 void function2(int c) {} #include…

聊一聊 Node.js(Express)的 req.body、req.params 和 req.query 区别和应用场景

在Node.js的Express框架中,处理客户端发送到服务器的数据时,我们主要使用req.body、req.params和req.query三个属性。这些属性虽然都是请求对象(req)的一部分,但它们的数据来源和用途却各不相同。本文将为大家详细解读它们的区别和使用方法。…

AI绘画SD中 ControlNet 组件 IP-Adapter 实现风格迁移,AI绘画垫图神器!

大家好,我是画画的小强 今天给大家介绍一下AI绘画SD中ControlNet 的 IP-Adapter 组件,该组件可以方便快捷的帮我们对图片的风格进行迁移,简而言之就是可以参考你放置的图片风格来生成其他图片。 它的效果和reference only有点类似&#xff…

LabVIEW 实现用户授权与管理多项测试项目

在使用 LabVIEW 开发测试软件时,用户授权和项目管理是一个重要的功能。为了确保系统安全性、灵活性和可扩展性,可以设计一个用户管理系统,允许管理员增加或减少用户的测试项目权限。以下是一个详细的实现方案,包括用户授权管理、项…

vue字段判断是否可以鼠标悬浮或者点击跳转

通过字段判断是否可以鼠标悬浮展示颜色 是否点击 <span :class"[converBond.stkindustry ! null ? hoverSpan:,]"click"converBond.stkindustry ! null ?goToIndustry(converBond.stkindustryname,converBond.stkindustry):false">{{converBon…

【星地多网融合调度平台】——打造全方位、立体化的应急通信网络

在复杂的应急场景下&#xff0c;信息的快速传递与指挥调度显得尤为重要。星地多网融合调度指挥箱&#xff0c;凭借其强大的多网融合能力&#xff0c;确保了指挥中心与前线救援队伍之间的信息流畅&#xff0c;无论是位置追踪、应急通信&#xff0c;还是全方位视频监控&#xff0…

数仓架构解析(第45天)

系列文章目录 经典数仓架构传统离线大数据架构 文章目录 系列文章目录烂橙子-终生成长社群群主&#xff0c;前言1. 经典数仓架构2. 传统离线大数据架构 烂橙子-终生成长社群群主&#xff0c; 采取邀约模式&#xff0c;不支持付费进入。 前言 经典数仓架构 传统离线大数据架…

细说MCU用单路DAC模块设计和输出锯齿波的实现方法

目录 一、STM32G474RE的DAC模块 二、配置 1.配置DAC 2.选择时钟源和Debug 3.配置系统时钟 三、代码修改 1.启动DAC 2.给DAC的数据输出寄存器赋值 3.运行并观察输出 一、STM32G474RE的DAC模块 有些MCU本身就带有数/模转换器(Digital to Analog Converter,DAC)模块&am…

netty入门-3 EventLoop和EventLoopGroup,简单的服务器实现

文章目录 EventLoop和EventLoopGroup服务器与客户端基本使用增加非NIO工人NioEventLoop 处理普通任务与定时任务 结语 EventLoop和EventLoopGroup 二者大概是什么这里不再赘述&#xff0c;前一篇已简述过。 不理解也没关系。 下面会简单使用&#xff0c;看了就能明白是什么 这…

加速决策过程:企业级爬虫平台的实时数据分析

摘要 在当今数据驱动的商业环境中&#xff0c;企业如何才能在海量信息中迅速做出精准决策&#xff1f;本文将探讨企业级爬虫平台如何通过实时数据分析加速决策过程&#xff0c;实现数据到决策的无缝衔接。我们聚焦于技术如何赋能企业&#xff0c;提升数据处理效率&#xff0c;…

深入分析 Android ContentProvider (三)

文章目录 深入分析 Android ContentProvider (三)ContentProvider 的高级使用和性能优化1. 高级使用场景1.1. 数据分页加载示例&#xff1a;分页加载 1.2. 使用 Loader 实现异步加载示例&#xff1a;使用 CursorLoader 加载数据 1.3. ContentProvider 与权限管理示例&#xff1…

On the Dimensionality of Word Embedding论文解读

基本信息 作者Zi Yindoi10.3115/v1/D14-1162发表时间2018期刊NIPS网址https://arxiv.org/abs/1812.04224 研究背景 1. What’s known 既往研究已证实 词嵌入的一元不变性。 多数的词嵌入算法本质上都是矩阵分解。 2. What’s new 创新点 提出了 Pairwise Inner Product&…

Prometheus配置alertmanager告警

1、拉取镜像并运行 1、配置docker镜像源 [rootlocalhost ~]# vim /etc/docker/daemon.json {"registry-mirrors": ["https://dfaad.mirror.aliyuncs.com"] } [rootlocalhost ~]# systemctl daemon-reload [rootlocalhost ~]# systemctl restart docker2、…

单片机主控的基本电路

论文 1.复位电路 2.启动模式设置接口 3.VBAT供电接口 4.MCU 基本电路 5.参考电压选择端口 6.SDRAM电路 7.LCD模块电路 8.USB电路 9.按键电路 10.LED电路 11.SD卡电路 12.电量检测电路 13.蓝牙接口通信电路 14.SPI FLASH 电路

Spark实时(四):Strctured Streaming简单应用

文章目录 Strctured Streaming简单应用 一、Output Modes输出模式 二、Streaming Table API 三、​​​​​​​​​​​​​​Triggers 1、​​​​​​​unspecified&#xff08;默认模式&#xff09; 2、​​​​​​​​​​​​​​Fixed interval micro-batches&am…

总结20个Python接单赚钱的平台,兼职月入6000+_让你早日实现财富自由

今天就给大家盘点几个基本入门接私活的资源&#xff0c;让你轻松学python&#xff0c;实现经济独立。 一、Python兼职种类&#xff1a; 接私活刚学会python那会&#xff0c;就有认识的朋友介绍做一个网站的私活&#xff0c;当时接单赚了4K&#xff0c;后又自己接过开发网站后…