DDoS 究竟在攻击什么?

分布式拒绝服务(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.mzph.cn/bicheng/49597.shtml

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

相关文章

STM32F401VET6 PROTEUS8 ILI9341 驱动显示及仿真

stm32cubemx新建工程代码&#xff0c;并生成工程 设置gpio 设置SPI 其他的参考stm32默认设置 然后编辑驱动代码 ili9341.h #ifndef ILI9341_H #define ILI9341_H#include <stdbool.h> #include <stdint.h>#include "glcdfont.h" #include "stm32…

物联网Java项目, 2万多TPS如何处理?

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「物联网Java的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01;2W个采集点&#xff0…

内网安全:IPC横向

IPC计划任务横向 IPC配合系统服务横向 前言&#xff1a; IPC是为了实现进程之间的通信而开放的管道。IPC可以通过验证用户名和密码来获取相应的权限。通过IPC可以与目标机器建立连接。 IPC计划任务横向 本次目标&#xff1a;通过机器192.168.11.40&#xff0c;横向控制机器192…

学生信息管理系统详细设计文档

一、设计概述 学生信息管理系统是一个用于管理学生信息的软件系统&#xff0c;旨在提高学校对学生信息的管理效率。本系统主要包括学生信息管理、课程信息管理、成绩信息管理、班级信息管理等功能模块。详细设计阶段的目标是确定各个模块的实现算法&#xff0c;并精确地表达这…

图形化开发安卓程序-App Inventor环境搭建一

图形化开发安卓程序-App Inventor环境搭建一 1.概述 现在不用专业的开发技能并可以实现自己DIY一个程序的想法&#xff0c;将天马行空的创意编程现实&#xff0c;配合硬件我们也可以称为当下最流行的AI大师、物联网大师。 2.环境安装 appInvenor开发不依赖本地计算机&#…

数据结构(5.3_1)——二叉树的先中后序遍历

先序遍历——根左右——前缀表达式 中序遍历——左根右——中缀表达式 后序遍历——左右根——后缀表达式 二叉树的遍历(手算) 先序遍历代码 struct ElemType {int value; }; //二叉树的结点(链式存储) typedef struct BiTNode {ElemType data;//数据域struct BiTNode *lchil…

解决kkfileview 使用https预览问题记录

场景&#xff1a;项目使用了开源的kkfileview进行文件在线预览&#xff0c;部署方式使用的是docker&#xff0c;使用IP进行访问&#xff0c;但是http协议直接访问有漏洞告警&#xff0c;现在需要调整为https&#xff0c;且仍然需要使用IP访问。 kkfileview官网kkFileView - 在线…

AI学习记录 - 规范化输出对接现有系统的实例

假设我们有一个学生管理系统&#xff0c;通过prompt提示&#xff0c;格式化输出然后对接现有系统&#xff0c;也是通过react实现&#xff0c;因为这只是一个知识分享&#xff0c;没弄太复杂&#xff08;使用react实现&#xff09;。 学生管理系统 1、设计好prompt getMemory()…

Python对某音乐论坛进行简单的采集

今天简单的用Python来采集一下某论坛的歌曲 环境使用 Python 3.10 Pycharm 模块使用 requests --> 发送请求 pip install requests execjs --> pip install execjs re 正则源码和视频讲解都打包好了&#xff0c;文末名片自取 基本流程 一、数据来源分析 1.明…

手写RPC-令牌桶限流算法实现,以及常见限流算法

为什么需要服务限流、降级 分布式架构下&#xff0c;不同服务之间频繁调用&#xff0c;对于某个具体的服务而言&#xff0c;可能会面临高并发场景。在这样的情况下&#xff0c;提供服务的每个服务节点就都可能由于访问量过大而引起一系列问题&#xff0c;比如业务处理耗时过长、…

VMware三种网络模式---巨细

文章目录 目录 ‘一.网络模式概述 二.桥接模式 二.NAT模式 三.仅主机模式 四.案例演示 防火墙配置&#xff1a; 虚拟电脑配置 前言 本文主要介绍VMware的三种网络模式 ‘一.网络模式概述 VMware中分为三种网络模式&#xff1a; 桥接模式&#xff1a;默认与宿主机VMnet0绑…

基于Java中的SSM框架实现商店积分管理系统项目【项目源码+论文说明】计算机毕业设计

基于Java中的SSM框架实现商店积分管理系统演示 摘要 随着时代的发展&#xff0c;信息化的管理手段已被普遍应用于企业的日常运作中。在当今竞争激烈的市场中&#xff0c;消费者的需求量日益增长&#xff0c;而商品信息的管理也变得越来越复杂&#xff0c;因此&#xff0c;实施…

14. Hibernate 一对多双向关联映射

1. 前言 本节课程和大家一起聊聊一对多关联映射。通过本节课程&#xff0c;你将了解到&#xff1a; 如何实现一对多关联映射&#xff1b; 如何实现双向一对多关联映射&#xff1b; 关联映射中的级联操作。 2. 一对多关联映射 关系型数据库中表与表中的数据存在一对多&…

深入理解Linux网络(八):内核如何发送网络包

深入理解Linux网络&#xff08;八&#xff09;&#xff1a;内核如何发送网络包 一、总览二、网卡启动准备三、ACCEPT 创建新 SOCKET四、开始发送数据send 系统调⽤实现传输层处理传输层拷贝传输层发送 网络层发送原理邻居⼦系统网络设备子系统软中断调度igb网卡驱动发送发送完成…

Python 实现PDF和TIFF图像之间的相互转换

PDF是数据文档管理领域常用格式之一&#xff0c;主要用于存储和共享包含文本、图像、表格、链接等的复杂文档。而TIFF&#xff08;Tagged Image File Format&#xff09;常见于图像处理领域&#xff0c;主要用于高质量的图像文件存储。 在实际应用中&#xff0c;我们可能有时需…

wefwefwe

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话&#xff1a; 知不足而奋进&#xff0c;望远山而前行&am…

在 ArkTS 中集成 C 语言模块来管理文件描述符

文章目录 前言ArkTS模块C语言模块C模块代码 总结 前言 在现代开发中&#xff0c;尤其是在处理文件操作时&#xff0c;使用文件描述符&#xff08;fd&#xff09;是一种常见的方法。ArkTS提供了一种强大的方式来与底层C代码交互&#xff0c;使我们能够利用C语言的性能优势来管理…

dsa加训

refs: OI Wiki - OI Wiki (oi-wiki.org) 1. 枚举 POJ 2811 熄灯问题 refs : OpenJudge - 2811:熄灯问题 如果要枚举每个灯开或者不开的情况&#xff0c;总计2^30种情况&#xff0c;显然T。 不过我们可以发现&#xff1a;若第i行的某个灯亮了&#xff0c;那么有且仅有第i行和第…

Win10使用VS Code远程连接Ubuntu服务器时遇到SSH公钥错误的解决方案

在使用Windows 10上的Visual Studio Code&#xff08;VS Code&#xff09;远程连接Ubuntu 20.04服务器时&#xff0c;遇到了以下错误&#xff1a; 错误的原因 这个错误消息表明&#xff0c;SSH 客户端检测到远程主机的 ECDSA 公钥已更改。可能是由于以下原因之一&#xff1a…

组蛋白乳酸化 | 调控蛋白Writers、Erasers和Readers

组蛋白修饰的调控可以被归类为三类蛋白&#xff1a;Writers&#xff08;写入者&#xff09;、Erasers&#xff08;擦除者&#xff09;和Readers&#xff08;读取者&#xff09;。Writers是负责在组蛋白上添加修饰基团的蛋白&#xff0c;包括乙酰化、甲基化等修饰。Erasers则是负…