DDoS攻击实验笔记

news2025/6/16 10:58:54

DoS&DDoS简介

        DoS(Denial of Service),拒绝服务攻击是通过一些方法影响服务的可用性,比如早期主要基于系统和应用程序的漏洞,只需要几个请求或数据包就能导致长时间的服务不可用,但易被入侵检测系统发现。

        DDoS(Distributed Denial of Service),又称分布式拒绝服务攻击。是拒绝服务攻击的一种,其目的主要在于资源占用和资源消耗,通过向服务提供者发起大量请求或长时间占用资源的方式达到拒绝服务的目的。这种攻击表面上都是合理的请求,无法通过系统升级和打补丁的方式阻止,也不能使用入侵检测系统进行防御。分布式拒绝服务攻击的精髓在于利用分布式的客户端,向服务提供者发送大量看似合法的请求,长期占用大量资源,达到拒绝服务的目的。

        DDoS会造成的危害有:出口带宽被堵死;游戏用户掉线导致客户流失;服务器连接数多,连接资源被耗尽;服务器卡、慢、死机、无法连接等。其攻击来源可能是高性能服务器配合发包软件;可联网的设备(如打印机、摄像头、电视等);移动设备(数量多,增长速度快,其高性能利于组建僵尸网络);个人PC(存在漏洞的PC或一些黑客迷自愿成为DDoS一员);黑客控制的僵尸网络等(僵尸网络又分为IRC型、HTTP型、P2P型等)。

        DDoS攻击具有这样的流量特点:IP地址随机或固定某些IP段随机;没有完整完成TCP三次握手;地址多数是伪造的;请求数量大、快。

攻击类型及防护方案介绍 

1) Smurf攻击

        攻击者向网关发送ICMP请求包,并将该ICMP请求报文的源地址伪造成受害主机IP地址,目的地址为广播地址。路由器接收到该数据包,发现目的地址是广播地址,就会将该数据包广播出去,局域网内所有的存活主机都会受到一个ICMP请求包,源地址是受害主机IP。接下来受害主机就会收到该网络内所有主机发来的ICMP应答报文,通过大量返回的ICMP应答报文来淹没受害主机,最终导致网络阻塞,使受害主机崩溃。下面是smurf攻击示意图:

        防护方案:禁止路由器广播ICMP请求包;禁止操作系统对广播发出的ICMP请求包做出响应;配置防火墙禁止来自你所处网络外部的ping包。

2) SYN Flood攻击

        SYN 泛洪(Flood)攻击是在TCP三次握手过程中产生的。攻击者通过发送大量伪造的带有SYN标志位的TCP报文,与目标主机建立了很多虚假的半开连接,在服务器返回SYN+ACK数据包后,攻击者不对其做出响应,也就是不返回ACK数据包给服务器,这样服务器就会一直等待直到超时。这种攻击方式会使目标服务器连接资源耗尽、链路堵塞,从而达到拒绝服务的目的。SYN Flood攻击图示如下:

        防护方案:

        SYN Check:使用防护设备,3次握手变成了6次握手,由防护设备检测SYN请求是否合法,通过后再由防护设备将报文转发给服务器,后续报文仍由防护设备代理。

        Micro Blocks:管理员可以在内存中为每个SYN请求创建一个小索引(小于16字节),而不必把整个连接对象存入内存。

        RST Cookies:在客户端发起第一个SYN请求后,服务器故意回应一个错误的SYN+ACK报文。如果合法用户收到这个报文,就会给服务器响应RST报文。当服务器收到这个报文时,就将这个主机的IP记录进合法IP列表,下次该主机发起SYN请求时,就可以直接通过了。

        STACK Tweaking:管理员可以调整TCP堆栈以减缓SYN泛洪攻击的影响。这包括减小超时时间,等到堆栈内存释放时再分配连接,否则就随机性地删除传入的连接。

3) ACK Flood攻击

        ACK Flood攻击是利用TCP三次握手过程。这里可以分为两种攻击方式。

        第一种:攻击者伪造大量的SYN+ACK包发送给目标主机,目标主机每收到一个SYN+ACK数据包时,都会去自己的TCP连接表中查看有没有与ACK的发送者建立连接 ,如果有则发送ACK包完成TCP连接,如果没有则发送ACK+RST 断开连接。但是在查询过程中会消耗一定的CPU计算资源。如果瞬间收到大量的SYN+ACK数据包,将会消耗服务器的大量CPU资源,导致正常的连接无法建立或增加延迟,甚至造成服务器瘫痪、死机。

        第二种:利用TCP三次握手的ACK+SYN应答,攻击者向不同的服务器发送大量的SYN请求,这些SYN请求数据包的源IP均为受害主机IP,这样就会有大量的SYN+ACK应答数据包发往受害主机,从而占用目标的网络带宽资源,形成拒绝服务。

        通常DDoS攻击会将ACK Flood与SYN Flood结合在一起,从而扩大攻击造成的影响。

        防护方案可参考如下:采用CDN进行流量稀释;避免服务器IP暴露在公网上;采用限速或动态指纹进行防御;利用对称性判断来分析出是否有攻击存在;在连续收到用户发送的ACK包时,中断回话,让其重连。

4) UDP Flood攻击

        UDP(User Datagram Protocol,用户数据报协议),是一种无连接和无状态的网络协议,UDP不需要像TCP那样进行三次握手,运行开销低,不需要确认数据包是否成功到达目的地。这就造成UDP泛洪攻击不但效率高,而且还可以在资源相对较少的情况下执行。UDPFlood可以使用小数据包(64字节)进行攻击,也可以使用大数据包(大于1500字节,以太网MTU为1500字节)进行攻击。大量小数据包会增大网络设备处理数据包的压力。而对于大数据包,网络设备需要进行分片、重组,最终达到的效果就是占用网络传输接口的带宽、网络堵塞、服务器响应慢等。

        防护方案:限制每秒钟接收到的流量(可能产生误判);通过动态指纹学习(需要攻击发生一定时间),将非法用户加入黑名单或特征过滤进行防御。

5) HTTP慢速攻击

        Slow HTTP DoS(Slow HTTP Denial of Service Attack,慢速HTTP拒绝服务攻击),黑客模拟正常用户向web服务器发送慢速http请求,由于是慢速的,服务器端需保持连接,直到数据传输结束或请求结束才可释放连接。当服务器端建立大量慢速连接,就会导致服务器拒绝服务。这种攻击可以分为两类,一类是客户端发数据,另一类是客户端读取服务器发来的数据。HTTP慢速攻击对基于线程处理的web服务器影响显著,如apache、dhttpd,而对基于事件处理的web服务器影响不大,如ngix、lighttpd。HTTP慢速攻击还可以细分成以下几种攻击方式:

A.Slowloris攻击方式

        HTTP协议规定请求头以一个空行结束,所以完整的HTTP请求头结尾是\r\n\r\n。然而使用非正常的\r\n来结尾,就会导致服务端认为请求头还没结束,等待我们继续发送数据直到超时时间。两种请求头区别如下,CRLF(CarriageReturn Line Feed)表示回车换行:

B.Slow POST攻击方式

        在HTTP头部信息,可以使用content-length声明HTTP消息实体的传输长度,服务器端会content-length的值作为HTTP BODY的长度。利用这一特点,攻击者把content-length设置的很大,然后缓慢发送数据部分,比如一次只发送一个字节,这样服务器端就要一直保持连接,直到客户端传完所有的数据。

C.Slow read攻击方式

        攻击者发送一个完整的HTTP数据请求,之后服务器会给出响应,这时攻击者在将自己的TCP窗口大小设置的很小,服务器会根据客户的TCP窗口大小来传送数据。由于客户端的TCP窗口大小很小,服务器只能缓慢的传输数据给客户端。当建立大量的这种连接时,Web应用的并发连接池空间将被耗尽,最终导致拒绝服务。 

SYN_FLOOD攻击&HTTP慢速攻击一些特点

         发动SYN FLOOD攻击的主机只要发送较少的,来源地址经过伪装而且无法通过路由达到的SYN连接请求至目标主机提供TCP服务的端口,将目的主机的TCP缓存队列填满,就可以实施一次成功的攻击。实际情况下,发动攻击时往往是持续且高速的。

        HTTP慢速攻击是利用HTTP现有合法机制,在建立了与HTTP服务器的连接后,尽量长时间保持该连接,不释放,达到对HTTP服务器的攻击。

 

 

 

 

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

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

相关文章

大数据Flink进阶(十八):Flink执行图和TaskSlot问题思考

文章目录 Flink执行图和TaskSlot问题思考 一、Flink执行图 二、TaskSlot问题思考 Flink执行图和TaskSlot问题思考 一、Flink执行图 Flink代码提交到集群执行时最终会被转换成task分布式的在各个节点上运行,在前面我们学习到DataFlow数据流图

【中级软件设计师】—操作系统考点总结篇(二)

【中级软件设计师】—操作系统考点总结篇(二) 1.操作系统概述 1.1操作系统的功能 1.2 特殊的操作系统 1.3 进程的概念和状态 进程与程序的区别: 进程是程序的一次执行过程,没有程序就没有进程 程序是一个静态的概念,…

【网络编程】TCP,UDP协议详解

前言 小亭子正在努力的学习编程,接下来将开启javaEE的学习~~ 分享的文章都是学习的笔记和感悟,如有不妥之处希望大佬们批评指正~~ 同时如果本文对你有帮助的话,烦请点赞关注支持一波, 感激不尽~~ 目录 前言 TCP协议 TCP协议特点 TCP协议通…

Python 小型项目大全 1~5

一、百吉饼 原文:http://inventwithpython.com/bigbookpython/project1.html 在百吉饼这种演绎逻辑游戏中,你必须根据线索猜出一个秘密的三位数。该游戏提供以下提示之一来响应您的猜测:"Pico",当您的猜测在错误的位置有…

询问ChatGPT的高质量答案艺术——提示工程指南(更新中……)

目录前言一、提示工程简介二、提示技巧2-1、生成法律文件2-2、添加提示技巧三、角色扮演3-1、智能手机产品描述3-2、添加角色扮演四、标准提示4-1、写一篇有关于新智能手机的评论4-2、添加标准提示、角色提示、种子词提示等等五、示例很少、或者没有示例5-1、生成一个手机配置六…

深度理解PyTorch的WeightedRandomSampler处理图像分类任务的类别不平衡问题

最近做活体检测任务,将其看成是一个图像二分类问题,然而面临的一个很大问题就是正负样本的不平衡问题,也就是正样本(活体)很多,而负样本(假体)很少,如何处理好数据集的类…

springboot实现邮箱验证码功能

引言 邮箱验证码是一个常见的功能,常用于邮箱绑定、修改密码等操作上,这里我演示一下如何使用springboot实现验证码的发送功能; 这里用qq邮箱进行演示,其他都差不多; 准备工作 首先要在设置->账户中开启邮箱POP…

ChatAudio 通过TTS + STT + GPT 实现语音对话(低仿微信聊天)

效果图什么是 STT 和 TTS?STT 是语音转文字(Speech To Text)TTS 是文字转语音(Text To Speech)为什么要使用 SST TTS 如果用户直接输入音频,OpenAI 的 API 中并没有直接使用语音和 GPT 进行对话的功能。所…

(C++)模板分离编译面对的问题

什么是分离编译模板的分离编译什么是分离编译 一个程序(项目)由若干个源文件共同实现,而每个源文件单独编译生成目标文件,最后将所有目标文件链接起来形成单一的可执行文件的过程称为分离编译模式。 模板的分离编译 假如有以下…

Java锁机制

Java锁机制1. 什么是锁JVM运行时内存结构2. 对象、对象头结构Mark Word中的字段3. synchronizedMonitor原理四种锁状态的由来4. 锁的4种状态4.1 无锁CAS(Compare and Swap)4.2 偏向锁实现原理4.3 轻量级锁如何判断线程和锁之间的绑定关系自旋4.4 重量级锁…

【计算机视觉·OpenCV】使用Haar+Cascade实现人脸检测

前言 人脸检测的目标是找出图像中所有的人脸对应的位置,算法的输出是人脸的外接矩形在图像中的坐标。使用 haar 特征和 cascade 检测器进行人脸检测是一种传统的方式,下面将给出利用 OpenCV 中的 haarcascade 进行人脸检测的代码。 程序流程 代码 impo…

摩兽Pesgo plus首发爆卖,全网关注度破亿!中国潮玩跨骑电自浪潮已至?

2023年4月11日,TROMOX摩兽圆满举办了“跨骑潮电,大有所玩”Pesgo plus新品发布会。发布会在抖音、天猫、视频号平台进行了同步直播并开启线上预定。发布会直播当晚,摩兽Pesgo plus即狂揽线上订单,全网各大平台相关话题累计热度已破…

XXL-JOB分布式任务调度平台详细介绍

一、概述 在平时的业务场景中,经常有一些场景需要使用定时任务,比如: 时间驱动的场景:某个时间点发送优惠券,发送短信等等。 批量处理数据:批量统计上个月的账单,统计上个月销售数据等等。 固…

用SQL语句操作oracle数据库--数据查询(上篇)

SQL操作Oracle数据库进行数据查询 Oracle 数据库是业界领先的关系型数据库管理系统之一,广泛应用于企业级应用和数据仓库等场景中。本篇博客将介绍如何使用 SQL 语句对 Oracle 数据库进行数据查询操作。 1.连接到数据库 在开始查询之前,需要使用合适的…

素材管理系统概念导入

引言 由于工作上的调整安排,有幸参加营销素材管理系统的产品建设工作中,营销宣传领域一直是我的知识盲区,所以素材管理系统的产品建设对我来说是个富有挑战性的工作,在这过程中,我也秉持着“好记性不如烂笔头”的原则&…

Golang每日一练(leetDay0033) 二叉树专题(2)

目录 97. 交错字符串 Interleaving String 🌟🌟 98. 验证二叉搜索树 Validate Binary Search Tree 🌟🌟 99. 恢复二叉搜索树 Recover Binary Search Tree 🌟🌟 🌟 每日一练刷题专栏 &am…

中国人工智能企业CIMCAI世界前三大船公司落地,智能船公司产品20秒AI自动验箱,箱信息箱况+精确地点报备智慧港航中国人工智能企业

中国人工智能企业CIMCAI世界前三大船公司落地,智能船公司产品20秒AI自动验箱,箱信息箱况精确地点报备智慧港航。小程序全时全域自动化箱况检测信息识别,CIMCAI全球领先新一代集装箱管理方案,人工智能AI自动化箱信息识别箱况检测地…

Python 小型项目大全 21~25

二十一、DNA 可视化 原文:http://inventwithpython.com/bigbookpython/project21.html 脱氧核糖核酸是一种微小的分子,存在于我们身体的每个细胞中,包含着我们身体如何生长的蓝图。它看起来像一对核苷酸分子的双螺旋结构:鸟嘌呤、…

【跟着陈七一起学C语言】今天总结:C语言的函数相关知识

友情链接:专栏地址 知识总结顺序参考C Primer Plus(第六版)和谭浩强老师的C程序设计(第五版)等,内容以书中为标准,同时参考其它各类书籍以及优质文章,以至减少知识点上的错误&#x…

太阳能电池板AI视觉检测:不良品全程阻断,高效助力光伏扩产

2022年,面对复杂严峻的国内外形势,我国光伏行业依然实现高速增长,多晶硅、硅片、电池片、组件产量稳居全球首位。2023年以来,扩产项目已多点开花。光伏装机量天花板将不断提升,分布式电站占比也将逐年上升。中国光伏行…