【杂记-浅谈DDos攻击、浅析SYN Flood攻击、Dos及DDos攻击区别】

2024-05-29 13:20

本文主要是介绍【杂记-浅谈DDos攻击、浅析SYN Flood攻击、Dos及DDos攻击区别】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、DDos Distributed Denial of Service 分布式拒绝服务攻击

什么是DDos攻击
DDoS攻击是一种常见的网络攻击形,攻击者利用恶意程序对一个或多个目标发起攻击,企图通过大规模互联网流量耗尽攻击目标的网络资源,使目标系统无法进行网络连接、无法提供正常服务。
DDoS攻击会给攻击目标造成巨大的经济和品牌损失,同时,受攻击对象的核心业务数据也存在被窃取的风险,各行各业都采取部署DDoS攻击防御系统的方式阻断DDoS攻击,降低其对正常业务的影响。
DDos攻击的类型
根据攻击位置的不同,可以将DDoS攻击分为网络层攻击、传输层攻击、应用层攻击三种类型。攻击者经常组合使用不同的攻击类型,攻击复杂度持续演进,产生的攻击威胁也在不断增大。
网络层攻击
针对网络层的DDoS攻击主要目的是消耗网络带宽资源。
1、ICMP Flood攻击 ICMP因特网控制报文协议,用于在IP主机、路由器之间传递控制消息,ICMP协议本身特点决定了它非常容易被用于攻击网络上的路由器和主机,当攻击者向目标网络发送大量的ICMP数据包时,目标主机会耗费大量的CPU资源去处理和响应,直至耗尽设备资源,无法为合法用户提供正常服务。
2、ARP Flood攻击 ARP地址解析协议,是用来将IP地址解析为MAC地址的协议,主要以广播的方式发送ARP请求,攻击者通过发送大量的ARP请求,使有限的网络资源被无用的广播信息所占用,造成网络拥堵。其次,因为ARP协议没有安全认证机制,所以只要主机接收到ARP应答包,都会缓存在ARP表中,这为ARP欺骗提供了可能。
3、IP分片攻击 IP协议在传输数据包时,会将数据报文分为若干分片进行传输,并在目标系统中进行重组,当数据被人为恶意分片就会产生DDoS攻击,攻击者将经过恶意分段的数据包发送至目标网络,导致目标网络耗费大量资源进行重组,直至资源枯竭。
传输层攻击
传输层负责设备间的端到端通信和网络间通信流量控制和错误控制。传输层的DDoS攻击主要目的是使目标服务器或网络设备过载,常见攻击子类包括SYN Flood攻击、ACK Flood攻击、UDP Flood攻击等。
1、SYN Flood攻击 SYN Flood攻击主要利用了TCP协议的三次握手机制,攻击者通常利用工具或控制僵尸主机向服务器发送海量的变源IP地址或变源端口的SYN报文,服务器响应报文后产生大量的半连接,直至系统资源被耗尽,服务器无法提供正常的服务。
2、ACK Flood攻击 攻击者通过僵尸网络向目标服务器发送大量的ACK报文,报文带有超大载荷,会引起链路拥塞。或向目标服务器发送极高速率的变源变端口请求,导致转发设备异常,从而引起网络瘫痪。
3、UDP Flood攻击 UDP Flood攻击常用于大带宽DDoS攻击。攻击者使用包含无状态UDP协议的IP数据包充塞目标主机的端口,受害主机会寻找与UDP数据包相关的应用程序。如果没有找到,就向发送者回发一条“目标不可达”消息。一旦目标主机被攻击流量淹没,系统就会失去响应,从而造成合法用户无法正常访问的现象。
应用层攻击:
应用层的DDoS攻击主要目的是让真实用户无法正常使用应用程序,常见攻击子类包括“DNS Flood攻击”、“HTTP Flood攻击”和“CC攻击”等。
1、DNS Flood攻击 攻击者通过操纵大量傀儡机器,对目标网络发起海量域名查询请求,以中断该域的DNS解析。这种攻击将会破坏网站、API或Web应用程序响应合法流量的能力,让合法用户无法查找到用于调用特定资源的地址,导致业务暂时中断或停止。
2、HTTP Flood攻击
HTTP GET 攻击 攻击者操控多台设备向目标服务器发送对图像、文件或其他资产请求,当目标服务器被传入请求和响应所淹没时,来自正常流量源的业务请求也将被拒绝。
HTTP POST 攻击 与发送 POST 请求所需的处理能力和带宽相比,处理表单数据和运行必要数据库命令的过程相对密集。这种攻击利用相对资源消耗的差异,直接向目标服务器发送大量POST请求,直至目标服务器容量饱和并拒绝服务为止。
3、CC攻击 CC攻击常用于攻击提供网页访问服务的服务器。攻击者通过代理服务器向目标服务器发送大量貌似合法的请求,使CPU长时间处于高负荷运行状态,永远都有处理不完的连接。攻击会导致正常访问被中止,最终宕机崩溃。
如何防范DDos攻击
DDoS攻击防御的关键在于如何精准区分攻击流量与正常流量。

二、SYN Flood SYN洪水攻击

什么是SYN Flood
SYN Flood是DDoS(Distributed Denial of Service分布式拒绝服务)攻击之一。
SYN Flood作用方式
SYN Flood利用了TCP协议的三次握手机制,攻击者通常利用工具或者控制僵尸主机向服务器发送海量的变源IP地址或变源端口的TCP SYN报文,在连接超时之前,服务器会一直等待ACK报文,此时该连接状态为半开放连接(也被称为半连接),半连接会占用服务器的连接数,当系统资源被耗尽后,服务器将无法提供正常的服务。
通俗的讲,即客户端向服务端发送请求链接数据包,服务端随之向客户端发送确认数据包,但客户端不向服务端发送确认数据包,服务器一直等待来自客户端的确认,导致服务端资源被占用。
SYN Flood攻击过程
黑客通过伪造的源IP地址或端口,向服务器发送大量的SYN报文,请求建立TCP连接由于源IP地址或端口是伪造的,服务器发送的SYN-ACK报文永远不会被真实的客户端接收和回应。
黑客也会使用真实源IP地址,但只是通过攻击工具发送海量SYN报文,攻击工具并不会响应来自服务器SYN-ACK报文。
无论如何,服务器都接收不到ACK报文,产生了大量的半连接,此时服务器需要维持一张巨大的等待列表,不停地重试发送SYN-ACK报文,同时大量的资源无法释放,当服务器被这些恶意的半连接占满时,就不会再响应新的SYN报文,从而导致正常的用户无法建立TCP连接。
利用Anti-DDoS系统防范SYN Flood
1、理论上是在这些攻击报文到达服务器之前就进行拦截,然而对于防火墙这类安全设备而言,SYN报文是正常的业务报文,防火墙的安全策略必须允许其通过,否则服务器就无法对外提供服务,如果能明确虚假源的IP地址,就能通过精细的安全策略阻止这些源发来的SYN报文,但是管理员无法预知哪些是虚假源,即使能分析出虚假源,也无法做到快速、自动地配置或取消安全策略来应对不可预期的攻击流量。此时就需要Anti-DDoS系统的能力了,它部署在网络入口处,在服务器之前处理SYN报文,识别出虚假源,屏蔽来自这些地址的报文,只将合法的SYN报文传递给服务器。
3、源认证:Anti-DDoS系统拦截客户端发送的SYN报文,代替服务器向客户端发送SYN-ACK报文,如果客户端不应答,则认为该客户端为虚假源;如果客户端应答,则Anti-DDoS系统认为该客户端为真实源,并将其IP地址加入白名单,在一段时间允许该源发送的所有SYN报文通过,也不做代答。
4、首包丢弃:如果Anti-DDoS系统代替服务器应答了所有的SYN Flood攻击报文,那么性能瓶颈仅仅是从服务器转移到了Anti-DDoS系统而已。一旦Anti-DDoS系统的系统资源耗尽,攻击依旧会透传到服务器,而且大量反弹的SYN-ACK报文也会对网络造成一定的压力。Anti-DDoS系统利用首包丢弃来解决这个问题。正常情况下客户端发送SYN报文后如果在一定时间没有收到服务器的SYN-ACK应答,客户端会重新发送SYN报文。Anti-DDoS系统会丢弃掉收到的第一个SYN报文。SYN Flood攻击时,黑客发送的绝大多数是变源的SYN报文,所有的SYN报文对于Anti-DDoS系统来说都是首包,都将被直接丢弃。如果客户端重传了SYN报文,Anti-DDoS系统再对该报文进行源认证。如此一来,大大减少了Anti-DDoS系统代答的压力。首包丢弃和源认证两种手段结合,对于防御SYN Flood(特别是不断变换源IP和源端口的虚假源攻击)非常有效。

三、Dos攻击

什么是Dos攻击
DoS,Denial of Service拒绝服务攻击,其会用流量占用服务器,使网站或资源不可用。 DDoS分布式拒绝服务攻击是一种 DoS攻击,它使用多台计算机或机器来占用目标资源,两种类型的攻击都会使服务器或网络应用程序过载,其目的是中断服务。
DoS 和 DDoS 攻击有什么区别
1、主要区别:Dos是单个系统对单个系统的攻击,DDoS是多个系统对单个系统的攻击。
2、检测/补救的容易度: 由于 DoS 来自单个位置,因此高效的防火墙更容易检测其来源并切断连接,而DDoS 攻击来自多个远程位置,故掩盖了其来源。
3、攻击速度: 由于 DDoS 攻击来自多个位置,因此部署速度比来自单个位置的 DoS 攻击要快得多,攻击速度的提高使攻击检测变得更加困难,这意味着更大的损失,甚至是灾难性的后果。
4、流量: DDoS 攻击采用多台远程计算机,可以同时从不同位置发送大量流量,从而以一种能够逃避检测的方式使服务器快速过载。
5、执行方式: DDoS 攻击会协调受恶意软件影响的多个主机,从而创建由命令控制服务器管理的僵尸网络,而DoS 攻击通常使用一个脚本或工具从一台机器上执行攻击。
6、追踪来源: 在 DDoS 攻击中使用僵尸网络的追踪实际来源要比追踪 DoS 攻击的来源更复杂。
如何实现Dos攻击的防护
1、持续监控网络: 有益于识别正常流量模式并对早期检测和补救。
2、运行测试以模拟 DoS 攻击: 有助于评估风险、暴露漏洞并培训员工网络安全方面的知识。
3、创建保护计划: 创建检查清单、组成响应团队、定义响应参数并部署保护。
4、识别关键的系统和正常流量模式: 前者有助于规划保护,后者有助于早期发现威胁。
5、预备额外带宽: 虽无法阻止攻击,但将有助于网络处理流量峰值,并减轻任何攻击的影响。

这篇关于【杂记-浅谈DDos攻击、浅析SYN Flood攻击、Dos及DDos攻击区别】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1013739

相关文章

hevc和H.264格式的区别

HEVC(High Efficiency Video Coding)和H.264(也称为Advanced Video Coding,AVC)都是视频压缩标准,但它们之间存在一些显著的区别,主要集中在压缩效率、资源需求和兼容性方面。 压缩效率 HEVC,也被称为H.265,提供了比H.264更高的压缩效率。这意味着在相同的视频质量下,HEVC能够以大约一半的比特率进行编码,从而减少存储空间需求和

Java面试题:通过实例说明内连接、左外连接和右外连接的区别

在 SQL 中,连接(JOIN)用于在多个表之间组合行。最常用的连接类型是内连接(INNER JOIN)、左外连接(LEFT OUTER JOIN)和右外连接(RIGHT OUTER JOIN)。它们的主要区别在于它们如何处理表之间的匹配和不匹配行。下面是每种连接的详细说明和示例。 表示例 假设有两个表:Customers 和 Orders。 Customers CustomerIDCus

Eclipse+ADT与Android Studio开发的区别

下文的EA指Eclipse+ADT,AS就是指Android Studio。 就编写界面布局来说AS可以边开发边预览(所见即所得,以及多个屏幕预览),这个优势比较大。AS运行时占的内存比EA的要小。AS创建项目时要创建gradle项目框架,so,创建项目时AS比较慢。android studio基于gradle构建项目,你无法同时集中管理和维护多个项目的源码,而eclipse ADT可以同时打开

【杂记-浅谈DHCP动态主机配置协议】

DHCP动态主机配置协议 一、DHCP概述1、定义2、作用3、报文类型 二、DHCP的工作原理三、DHCP服务器的配置和管理 一、DHCP概述 1、定义 DHCP,Dynamic Host Configuration Protocol,动态主机配置协议,是一种网络协议,主要用于在IP网络中自动分配和管理IP地址以及其他网络配置参数。 2、作用 DHCP允许计算机和其他设备通

在 Java 中,JDK、JRE、JVM 分别代表什么,有何关系和区别?

在Java开发的世界中,我们会经常听到JDK、JRE和JVM这三个词。它们都与Java的运行环境以及Java程序的编译和运行有关,它们之间也存在一些关联性和区别。 什么是JDK、JRE和JVM 我们来看它们分别是什么。 JDK,全称Java Development Kit,即Java开发工具包。顾名思义,JDK是用于Java开发的一套工具包,里面包含了Java的编译器javac、

QT 中ListView和ListWidget有什么区别

ListView和ListWidget在Qt框架中都是用于显示列表数据的控件,但它们在使用方法和特性上存在一些明显的差异。以下是关于它们用法不一样的地方的详细分析: 数据管理方式: ListView:使用QAbstractItemModel数据模型来管理和显示列表数据。QAbstractItemModel是一个抽象类,允许开发者自定义数据模型以适应特定的数据结构和需求。这使得ListView在处

浅谈 MySQL for excel

欢迎关注微信公众号“Python生态智联”  MySQL for excel是一个大小只有几兆的MySQL附件,它能让我们在Microsoft excel中处理MySQL数据。小编用了两天时间浏览了MySQL for excel的使用指南并按demo演示了一遍(手册地址https://dev.mysql.com/doc/mysql-for-excel/en/),现从功能和局限两方面对MySQL

Transformers和Langchain中几个组件的区别

1.对于Transformers框架的介绍 1.1 介绍: transformers 是由 Hugging Face 开发的一个开源库,它提供了大量预训练模型,主要用于自然语言处理(NLP)任务。这个库提供的模型可以用于文本分类、信息抽取、问答、文本生成等多种任务。 1.2 应用场景: 文本分类:使用 BERT、RoBERTa 等模型进行情感分析、意图识别等。命名实体识别(NER):使用序列

java的clone() 深克隆与浅克隆的区别

克隆的目的:快速创建一个已有对象的副本。 克隆的步骤: 创建一个对象将原有对象的数据导入到新创建的数据中 1. Object的clone()源代码简介 [java]  view plain copy /**   * Creates and returns a copy of this {@code Object}. The default   * i

HTTP状态码中301与302的区别

一.官方说法  301,302 都是HTTP状态的编码,都代表着某个URL发生了转移,不同之处在于:  301 redirect: 301 代表永久性转移(Permanently Moved)。  302 redirect: 302 代表暂时性转移(Temporarily Moved )。  这是很官方的说法,那么它们的区别到底是什么呢?  1.1、什么是301转向?什么是301重定向?