风暴型DoS攻击
DoS 攻击及解决方案

DoS 攻击及解决方案引言概述:DoS(拒绝服务)攻击是一种网络安全威胁,旨在通过消耗目标系统的资源,使其无法提供正常服务。
这种攻击行为对个人用户、企业和政府机构都可能造成严重影响。
为了保护网络安全,我们需要了解DoS攻击的原理,并采取相应的解决方案来应对这一威胁。
一、DoS攻击的类型1.1 带宽消耗型攻击:攻击者通过向目标系统发送大量的数据流量,占用其带宽资源,导致正常用户无法访问目标系统。
1.2 连接消耗型攻击:攻击者通过建立大量的无效连接,耗尽目标系统的连接资源,使其无法处理正常用户的请求。
1.3 协议攻击:攻击者利用目标系统的协议漏洞,发送特制的恶意数据包,导致目标系统崩溃或无法正常工作。
二、DoS攻击的影响2.1 服务不可用:DoS攻击会导致目标系统无法提供正常的服务,造成用户无法访问网站、应用程序或其他网络资源。
2.2 业务中断:企业和政府机构可能因为DoS攻击而无法正常开展业务活动,造成经济损失和声誉受损。
2.3 数据泄露:一些DoS攻击可能是为了掩盖真正的攻击目的,攻击者可能通过此类攻击窃取敏感数据或者进行其他恶意行为。
三、解决方案3.1 流量过滤:使用防火墙或入侵检测系统(IDS)来过滤恶意流量,阻止DoS 攻击流量进入目标系统。
3.2 负载均衡:通过将流量分散到多个服务器上,减轻单个服务器的压力,提高系统的抗DoS攻击能力。
3.3 增加带宽和连接资源:增加网络带宽和系统连接资源,使目标系统能够承受更多的流量和连接请求。
四、预防措施4.1 更新和维护系统:及时安装系统补丁和更新,修复可能存在的漏洞,降低被攻击的风险。
4.2 强化网络安全策略:采用访问控制列表(ACL)和安全策略来限制外部访问,并监控网络流量,及时发现和阻止异常流量。
4.3 建立紧急响应机制:制定应急响应计划,包括备份数据、恢复系统和通知相关方面,以便在DoS攻击发生时能够快速应对。
结论:DoS攻击是一种严重的网络安全威胁,对个人用户、企业和政府机构都可能造成严重影响。
DoS 攻击及解决方案

DoS 攻击及解决方案简介:DoS(Denial of Service)攻击是指恶意攻击者通过向目标服务器发送大量请求或占用大量资源,导致服务器无法正常响应合法用户请求的一种攻击方式。
本文将详细介绍DoS攻击的原理、常见类型以及解决方案。
一、DoS攻击原理:DoS攻击的原理是通过使服务器过载或消耗其资源来阻止合法用户的访问。
攻击者可以利用各种技术和手段来实施DoS攻击,包括但不限于以下几种方式:1. 带宽洪泛攻击(Bandwidth Flooding):攻击者利用大量的流量向目标服务器发送请求,使其带宽耗尽,导致服务器无法正常响应。
2. SYN Flood攻击:攻击者发送大量伪造的TCP连接请求(SYN包),但不完成握手过程,从而耗尽服务器的资源,使其无法处理其他合法用户的请求。
3. ICMP Flood攻击:攻击者通过向目标服务器发送大量的ICMP Echo请求(Ping请求),耗尽服务器的处理能力,导致服务器无法正常工作。
4. UDP Flood攻击:攻击者向目标服务器发送大量的UDP包,占用服务器的带宽和处理能力,导致服务器无法响应合法用户的请求。
二、常见的DoS攻击类型:1. 基于流量洪泛的攻击:- SYN Flood攻击:攻击者发送大量伪造的TCP连接请求,使服务器资源耗尽。
- UDP Flood攻击:攻击者发送大量的UDP包,占用服务器的带宽和处理能力。
- ICMP Flood攻击:攻击者发送大量的ICMP Echo请求,耗尽服务器的处理能力。
2. 基于资源消耗的攻击:- 资源耗尽攻击:攻击者通过占用服务器的CPU、内存或磁盘空间等资源,使服务器无法正常工作。
3. 基于应用层的攻击:- HTTP Flood攻击:攻击者利用大量的HTTP请求占用服务器的资源,使其无法正常响应合法用户的请求。
- Slowloris攻击:攻击者发送大量的半连接请求,使服务器的连接资源耗尽。
三、DoS攻击的解决方案:1. 流量过滤和防火墙:- 使用防火墙来限制对服务器的访问,过滤掉可疑的流量。
DoS 攻击及解决方案

DoS 攻击及解决方案简介:DoS(Denial of Service)攻击是一种恶意行为,旨在通过超出目标系统处理能力的请求或者资源耗尽,使目标系统无法正常提供服务。
本文将详细介绍DoS攻击的原理和常见类型,并提供一些解决方案以帮助组织和个人保护自己的网络安全。
1. DoS 攻击原理:DoS攻击利用了目标系统的弱点,通过发送大量的请求或者占用大量的系统资源,使目标系统无法正常处理合法用户的请求。
攻击者可以利用多种技术和手段来实施DoS攻击,包括但不限于以下几种方式:- 带宽洪泛攻击:攻击者通过向目标系统发送大量的数据包,占用目标系统的带宽资源,导致合法用户无法正常访问目标系统。
- SYN 攻击:攻击者发送大量伪造的TCP连接请求,占用目标系统的资源,使其无法处理合法的连接请求。
- UDP 泛洪攻击:攻击者向目标系统发送大量的UDP数据包,占用目标系统的处理能力,导致目标系统无法正常运行。
- ICMP 攻击:攻击者发送大量的ICMP回显请求(ping),占用目标系统的处理能力,导致目标系统无法响应合法的请求。
2. DoS 攻击的解决方案:为了应对DoS攻击,组织和个人可以采取一系列的防御措施和解决方案,以确保网络的安全和正常运行。
以下是一些常见的解决方案:- 流量过滤:通过使用防火墙或者入侵检测系统(IDS)等工具,对网络流量进行过滤和检测,识别并阻止潜在的DoS攻击流量。
- 负载均衡:通过使用负载均衡器,将流量分散到多个服务器上,以分担单个服务器的负载,提高系统的容错能力。
- 增加带宽:增加网络带宽可以提高系统对DoS攻击的抵御能力,使系统能够更好地处理大量的请求。
- 限制连接数:通过设置系统参数或者使用专门的设备,限制每个IP地址或者每个用户的最大连接数,以防止单个用户或者IP地址占用过多的系统资源。
- 使用反向代理:通过使用反向代理服务器,将流量转发到多个后端服务器上,以分散攻击者对单个服务器的攻击。
DoS 攻击及解决方案

DoS 攻击及解决方案简介:DoS(Denial of Service)攻击是一种通过使目标系统的服务不可用来干扰或者中断正常网络通信的恶意行为。
攻击者通过发送大量的请求或者占用目标系统的资源,使其无法正常响应合法用户的请求。
本文将详细介绍DoS攻击的原理、常见类型以及解决方案。
一、DoS攻击的原理DoS攻击的原理是通过消耗目标系统的资源,使其无法正常提供服务。
攻击者通常会利用目标系统的弱点或者漏洞,发送大量的请求或者占用系统资源,导致系统负载过高或者崩溃。
常见的DoS攻击类型包括:泛洪攻击、资源耗尽攻击、缓冲区溢出攻击等。
二、常见的DoS攻击类型1. 泛洪攻击(Flood Attack)泛洪攻击是最常见的DoS攻击类型之一。
攻击者通过向目标系统发送大量的请求,占用其带宽、处理能力或者存储资源,导致系统无法正常处理合法用户的请求。
常见的泛洪攻击包括:UDP泛洪攻击、ICMP泛洪攻击、SYN泛洪攻击等。
2. 资源耗尽攻击(Resource Exhaustion Attack)资源耗尽攻击是通过占用目标系统的资源,使其无法为合法用户提供服务。
攻击者通常会利用系统的漏洞或者弱点,耗尽目标系统的CPU、内存、磁盘空间等资源。
常见的资源耗尽攻击包括:CPU耗尽攻击、内存耗尽攻击、磁盘空间耗尽攻击等。
3. 缓冲区溢出攻击(Buffer Overflow Attack)缓冲区溢出攻击是通过向目标系统发送超过其缓冲区容量的数据,覆盖或者改写系统的关键数据,导致系统崩溃或者执行恶意代码。
攻击者通常会利用程序或者操作系统的漏洞,通过精心构造的输入数据触发缓冲区溢出。
常见的缓冲区溢出攻击包括:堆溢出攻击、栈溢出攻击等。
三、DoS攻击的解决方案为了应对DoS攻击,我们可以采取以下解决方案:1. 流量过滤通过使用防火墙、入侵检测系统(IDS)等安全设备,对流入的网络流量进行过滤和检测。
可以根据特定的规则或者模式来过滤掉异常的流量,阻挠DoS攻击流量进入目标系统,从而减轻攻击的影响。
DOS攻击

传统上,攻击者所面临的主要问题是网络带宽,由于较小的网络规模和较慢的网络 速度的限制,攻击者无法发出过多的请求。虽然类似“the ping of death”的攻击 类型只需要较少量的包就可以摧毁一个没有打过补丁的UNIX系统,但大多数的DoS 攻击还是需要相当大的带宽的,而以个人为单位的黑客们很难使用高带宽的资源。 为了克服这个缺点,DoS攻击者开发了分布式的攻击。攻击者简单利用工具集合许 多的网络带宽来同时对同一个目标发动大量的攻击请求,这就是DDoS(Distributed Denial of Service)攻击。
对于安装有Windows的机器,Windows泪滴攻击检测软件可作为被攻击后的一个解 决方案。 如果您在Linux系统上遭到攻击,请将内核升级到2.0.32 / 2.1.63或更高版 本
UDP泛洪 (UDPflood)
UDP攻击,又称UDP洪水攻击或UDP淹没攻击(英文:UDP Flood Attack)是导致 基於主机的服务拒绝攻击的一种。UDP 是一种无连接的协议,而且它不需要用任何 程序建立连接来传输数据。当攻击者随机地向受害系统的端口发送 UDP 数据包的时 候,就可能发生了 UDP 淹没攻击。
2,利用被攻击主机提供服务或传输协议上处理重复连接的缺陷,反复高频的发出攻 击性的重复服务请求,使被攻击主机无法及时处理其它正常的请求。
3,利用被攻击主机所提供服务程序或传输协议的本身实现缺陷,反复发送畸形的攻 击数据引发系统错误的分配大量系统资源,使主机处于挂起状态甚至死机。
攻击流程
要理解dos攻击,首先要理解TCP连接的三次握手过程(Three-wayhandshake)。 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。[1] 第一次握手:建立连接时,客户端发送SYN包((SYN=i)到服务器,并进入SYN SEND状 态,等待服务器确认; 第二次握手:服务器收到SYN包,必须确认客户的SYN (ACK=i+1 ),同时自己也发送 一个SYN包((SYN=j)}即SYN+ACK包,此时服务器进入SYN_RECV状态;[1] 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包 ACK(ACK=j+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三 次握手,客户端与服务器开始传送数据。
DoS 攻击及解决方案

DoS 攻击及解决方案DoS攻击及解决方案概述:DoS(拒绝服务)攻击是一种恶意行为,旨在使目标系统无法正常运行,无法为合法用户提供服务。
攻击者通过发送大量的请求或占用系统资源,导致系统崩溃或变得无法响应。
本文将深入探讨DoS攻击的原理、类型以及解决方案。
一、DoS攻击原理:DoS攻击的原理是通过消耗目标系统的资源,使其无法正常工作。
攻击者可以利用多种方法实施DoS攻击,包括以下几种常见的攻击方式:1. 集中式攻击:攻击者利用单个计算机或网络发起大量请求,占用目标系统的带宽和处理能力,使其无法响应合法用户的请求。
2. 分布式攻击:攻击者利用多个计算机或网络发起协同攻击,通过分散攻击流量,增加攻击的威力和难以追踪的难度。
3. SYN洪水攻击:攻击者发送大量伪造的TCP连接请求给目标服务器,占用服务器资源,导致无法正常处理合法请求。
4. ICMP洪水攻击:攻击者发送大量的ICMP回显请求(ping),占用目标系统的带宽和处理能力。
5. UDP洪水攻击:攻击者发送大量的UDP数据包给目标服务器,占用服务器带宽,导致系统无法正常工作。
二、DoS攻击的解决方案:针对DoS攻击,可以采取以下解决方案来保护目标系统的安全和正常运行:1. 流量过滤:通过在网络边界设备上设置流量过滤规则,可以阻止大量无效或恶意流量进入目标系统。
可以使用防火墙、入侵检测系统(IDS)等设备进行流量过滤。
2. 负载均衡:通过使用负载均衡设备,将流量分散到多个服务器上,可以避免单一服务器过载,增加系统的容量和稳定性。
3. SYN Cookie:使用SYN Cookie技术可以有效防御SYN洪水攻击。
当服务器收到SYN请求时,不立即建立连接,而是将一些状态信息编码到SYN-ACK响应中发送给客户端。
只有在客户端正确响应后,服务器才建立连接。
4. 限制连接数:通过设置最大连接数限制,可以防止单个IP地址或用户占用过多的系统资源。
可以在服务器或负载均衡设备上设置连接数限制。
DoS 攻击及解决方案

DoS 攻击及解决方案概述:在网络安全领域中,拒绝服务攻击(Denial of Service,简称DoS)是一种恶意行为,旨在通过使目标系统或网络资源无法提供正常服务来瘫痪或限制其可用性。
本文将介绍DoS攻击的原理和常见类型,并提供一些解决方案来减轻和防止这类攻击对系统和网络的影响。
1. DoS 攻击原理:DoS攻击的基本原理是通过向目标系统发送大量的请求或者占用大量的系统资源,使目标系统无法正常响应合法用户的请求。
攻击者通常利用网络的弱点或者系统的漏洞来实施攻击。
下面是一些常见的DoS攻击类型:1.1 SYN Flood 攻击:攻击者通过向目标系统发送大量伪造的TCP连接请求(SYN包),占用目标系统资源,导致合法用户无法建立有效连接。
1.2 ICMP Flood 攻击:攻击者利用Internet控制消息协议(ICMP)发送大量的伪造请求,使目标系统的网络带宽被占满,导致合法用户无法正常访问。
1.3 UDP Flood 攻击:攻击者发送大量伪造的用户数据报协议(UDP)数据包到目标系统,占用目标系统的网络带宽和系统资源,导致合法用户无法正常访问。
1.4 HTTP Flood 攻击:攻击者通过发送大量的HTTP请求到目标系统,占用目标系统的网络带宽和服务器资源,使合法用户无法正常访问网站。
2. DoS 攻击解决方案:为了减轻和防止DoS攻击对系统和网络的影响,可以采取以下解决方案:2.1 流量过滤和限制:通过使用防火墙、入侵检测系统(IDS)和入侵防御系统(IPS)等安全设备,对网络流量进行过滤和限制。
这些设备可以根据预定的规则过滤掉来自攻击者的恶意流量,并限制对目标系统的访问请求。
2.2 负载均衡和流量分发:通过使用负载均衡器和流量分发器,将来自用户的请求分散到多个服务器上。
这样可以减轻单个服务器的压力,提高系统的可用性,并且能够在一定程度上抵御DoS攻击。
2.3 增加带宽和资源:通过增加网络带宽和系统资源,可以提高系统的处理能力和容量,从而减轻DoS攻击对系统的影响。
DoS 攻击及解决方案

DoS 攻击及解决方案简介:DoS(Denial of Service)攻击是一种恶意行为,旨在通过超载目标系统或者网络资源,使其无法正常运行或者提供服务。
攻击者通过发送大量无效请求或者占用系统资源,导致合法用户无法访问目标系统。
本文将介绍DoS攻击的常见类型,并提供一些解决方案来保护系统免受此类攻击。
一、DoS攻击类型:1. 带宽洪泛攻击(Bandwidth Flooding Attack):攻击者通过向目标系统发送大量的数据流量,消耗目标系统的带宽资源,导致合法用户无法访问。
2. SYN 泛洪攻击(SYN Flood Attack):攻击者发送大量伪造的TCP连接请求(SYN包),占用目标系统的资源,导致合法用户无法建立有效的连接。
3. ICMP 洪泛攻击(ICMP Flooding Attack):攻击者发送大量伪造的ICMP请求,占用目标系统的处理能力,导致合法用户无法正常通信。
4. 慢速攻击(Slowloris Attack):攻击者通过发送大量不完整的HTTP请求,占用目标系统的连接资源,使其无法接受新的请求。
5. 反射攻击(Reflection Attack):攻击者利用具有放大效应的服务(如DNS 或者NTP),向目标系统发送伪造的请求,使目标系统被大量响应数据包淹没。
二、DoS攻击解决方案:1. 流量过滤:使用防火墙或者入侵谨防系统(IDS)来过滤恶意流量,识别并阻挠DoS攻击流量的进入目标系统。
2. 流量限制:实施流量限制策略,限制每一个IP地址或者网络的连接数和带宽使用,以防止单个攻击者占用过多资源。
3. SYN Cookie:启用SYN Cookie机制,用于在建立TCP连接时验证客户端的合法性,防止SYN泛洪攻击。
4. 资源分配优化:优化目标系统的资源分配,限制每一个连接的资源使用,防止慢速攻击或者带宽洪泛攻击。
5. 流量清洗:使用专门的DoS防护设备或者云服务提供商,对流量进行实时监测和清洗,过滤掉恶意流量,确保合法用户的访问不受影响。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
风暴型DoS攻击风暴型DoS攻击是最为主要的、发生最多的一种拒绝服务攻击类型[DoS_tre nds],它又可进一步分为单纯风暴型和反射型两种。
风暴型DoS攻击靠的不是畸形数据包,而是依靠数据包的总量来达到攻击的目的,因此,它也是一种强力攻击或者野蛮攻击(Brute Force Attack)。
虽然这种攻击通常会采用源地址伪造(假冒)的手段,但除了某些特定的攻击方式如反射攻击外,源地址伪造不一定是必需的,但却常常是对攻击者有利的。
风暴型攻击需要向目标发送大量的数据包,而单个攻击者(或用于攻击的机器,简称攻击主机)的力量是有限的,因此,如果集聚多个攻击者的力量,同时向一个受害者发动攻击,则效果会更明显,这就是所谓的分布式拒绝服务(DDoS)攻击。
对于风暴型拒绝服务攻击,可以由一个攻击者攻击一个受害者,也可以一个攻击者攻击多个受害者、多个攻击者攻击多个受害者、多个攻击者攻击一个受害者等。
但是,一个攻击者同时攻击多个受害者的情况比较少见,因为这样造成了力量分散,不易达到攻击者的目标。
需要注意的是,有一种称为瞬时拥塞(Flash Crowd)的现象看起来与风暴型拒绝服务攻击类似。
站在目标终端(在拒绝服务的情况下是受害者,在瞬时拥塞的情况下是受访问的主机)的角度有时难以区分这两者,它们都会占用带宽和系统资源,造成网络的拥塞和/或服务器的过载。
不同的是前者是在短时间内众多的合法用户因为某种原因而访问系统所造成的,而后者则是恶意的、虚假的访问所造成的。
此外,二者之间还有其他的区别:(1)由于瞬时拥塞是正常的应用导致的,当因为网络拥塞而收到流量控制信息时,这些正常的应用程序会对其访问作适当调整,如降低访问量,延长数据包发送的时间间隔等;但是拒绝服务攻击的攻击主机或其攻击引擎则不会收到流量控制信息(当数据包的源IP地址是伪造的时候)或者即使收到这种信息也不会降低数据包的发送量。
下面先讨论Internet的几个重要缺陷,它们是风暴型攻击得以成功的主要原因,然后讨论直接和间接两类风暴型攻击。
4.2.1 与风暴型攻击相关的Internet的缺陷Internet有着几个重要的缺陷,它们使得在Internet中风暴型拒绝服务攻击可以很容易地得以实施[Peng04]。
1.连接性与资源共享Internet的设计目的是提供一个信息资源共享的公共基础实施。
这导致了两个后果:一是潜在的受害者,如Web服务器等,为了提供公开服务就必须与Int ernet连接并且对公众是可见的。
这种可见性是通过全球可路由的IP地址来实现的。
二是Internet是基于包交换的,这点与采用电路交换的公共电信网是不同的。
对于电路交换,每个服务(如一次通话)都会分到一个独立的信道直至服务结束。
给用户的服务不会因其他用户的行为而受到影响。
然而,在包交换网络中,所有用户共享所有资源,给予一个用户的服务会受到其他用户的影响。
风暴型拒绝服务攻击可以利用这两点:攻击数据包在被判断为是否恶意之前就会被转发到受害者。
通过占用大部分共享资源,风暴型攻击力图影响提供给其他用户的服务。
2.认证与追踪性Internet没有认证机制,这导致一个严重的问题就是IP欺骗。
IP欺骗指的是构造包含有伪造的IP地址的数据包。
源IP地址欺骗则是伪造的数据包中的“源IP地址”域中的内容不是分配给该计算机的地址。
由于没有对每个IP数据包的真实性检查机制,攻击者可以伪造数据包中任何区域的内容然后发送数据包到I nternet中。
此外,通常情况下,路由器是不具备数据包追踪功能的,如保存连接记录。
实际上,由于需要保存的数据流量太大,保存这种记录是不可能的。
因此,没有现实的方法验证一个数据包是否来自于其所声称的地方。
通过IP欺骗隐藏来源,攻击者就可以发起攻击而无须担心对由此造成的损失负责。
3.对全球网络基础设施的依赖当攻击者可以消耗完受害者的资源时,拒绝服务攻击就发生了。
一般地,即使是资源很充足的目标也可能在仅由一个攻击源发出的数据流的攻击下瘫痪。
此外,全球网络基础设施不提供可靠性保证,这使得攻击者可以“放大”其攻击效力。
首先,一些不恰当的协议设计导致一些(尤其是畸形的)数据包比其他数据包耗费更多的资源。
例如,TCP-SYN包比其他的TCP包占用的目标资源要多。
其次,Internet是一个“大集体”,其中有很多的不安全的系统。
更不幸的是,每年公布的漏洞都在不断地增加。
因此,攻击者可以利用漏洞,控制大量的不安全的系统,然后利用这些系统实施分布式风暴型拒绝服务攻击,其攻击的力度大为增强。
4.2.2 直接风暴型攻击1.PING风暴攻击这种攻击是单纯地向受害者发送大量的ICMP回应请求(ICMP Echo Request,即Ping)消息,使受害者系统忙于处理这些消息而降低性能,严重者可能导致系统无法对其他的消息做出响应。
2.SYN风暴攻击SYN风暴攻击[CA-1996-21][Schuba97]是最常见的一种攻击。
据统计[infe r],有90%的拒绝服务攻击使用的是TCP协议,而SYN风暴又是其中最常用的一种攻击。
在TCP的连接建立过程中,需要连接双方完成3次握手,只有当3次握手都顺利完成,一个TCP连接才告建立。
当一个系统(称为客户端Client)希望与另一个提供服务的系统(称为服务器Server)建立一个TCP连接时,其首先向服务器发送一个SYN消息,如果服务器同意建立连接,则响应一个对SYN消息的回应(SYN-ACK),而客户端收到服务器的SYN-ACK以后,再向服务器发送一个ACK消息,当服务器收到此消息以后,一个TCP的连接就告完成。
连接的建立过程如图4.5所示。
在3次握手进行的过程中,服务器需要保持所有未完成的的握手信息(称为半开连接,即收到TCP-SYN并发送了SYN-ACK,但第3次握手信息(ACK未收到的状态)直到握手完成或超时(不同的系统超时长度的设置不同,一般情况下在75秒左右,如BSD类的系统的超时设置就是75秒[Stevens94],有的系统的超时设置甚至达到10余分钟[packetgram]。
)以后丢弃该信息。
由于半开连接的数量是有限的,例如,很多操作系统设置半开连接数的默认值为1 024,如果攻击者不停地向受害者发送连接请求,而又不按协议规定完成握手过程,则服务器的半开连接栈可能会用完,从而不再接受其他的连接请求。
图4.5 TCP连接的建立(3次握手协议)在实际攻击中,攻击者常采用地址伪造的手段,一方面可以掩盖发出攻击的真实地点,从而逃避追踪;另一方面,如果攻击者不伪造地址,在未修改攻击主机TCP协议栈的情况下,其系统会自动对SYN-ACK做出响应,无论是其以ACK回应建立连接还是以RST(即重置,Reset)回应取消连接都会在服务器上释放对应的半开连接(一般情况下,由于没有应用程序要求建立连接,所以攻击者机器可能会返回一个RST信息),从而既影响攻击主机的性能,又由于攻击主机发出的响应使得受害者较早地释放对应的半开连接进而减少占用半开连接的时间,降低攻击效果;如果攻击者将攻击数据包的源IP地址伪造成那些主机不存在或主机没有运行的IP地址,则受害者必须等待超时才能释放相应的半开连接,从而对攻击者而言达到最佳效果。
如图4.6所示为遭受到SYN风暴攻击的机器状态。
注:锁定一个TCP端口要锁定一台服务器的某个TCP端口,攻击者不需要一个很快的主机或者网络。
一般标准的TCP的超时是在多次重传而收不到回应时发生,超时设置通常是542秒[Stevens94]。
假设一台机器的某特定端口允许1 024个半开连接,似乎只需每秒钟发送2个数据包给它就可以了。
事实上,不是这样,因为当有新的SYN数据包到来时,现有的某些半开连接会被释放(具体情况根据实现算法的不同而异,例如有的是随机释放,即从现有的半开连接中随机选取进行释放,而有的则是优先释放占用时间最久的那个)以接受新的连接请求。
服务器从发送SYN-ACK 到收到客户端的回应之间的这段时间一般称为往返时间(Round Trip Time,简称RTT)。
如果当ACK消息到达服务器时,服务器找不到相应的半开连接,则连接也不会建立。
攻击者可以通过迫使服务器在收到客户端的ACK消息之前释放对应的半开连接,导致用户无法与服务器建立任何连接(当然,在攻击之前已经建立的连接除外),从而彻底“锁死”服务器。
假设服务器是随机释放半开连接的,即以1/N的概率释放,如果攻击者要在平均的往返时间之前重新占用可能的半开连接,则攻击者必须以每秒N/RTT个的频率发送数据包。
对于1 024的监听队列,如果往返时间是100毫秒,则需要每秒发送大约10 000个数据包。
最小的TCP数据包是64字节,因此,只需要4Mb ps的带宽就可以锁死一个上述的服务器。
图4.6 SYN风暴攻击的原理图3.TCP连接耗尽攻击在TCP连接中,操作系统的内核会维持每一个TCP连接的信息。
但如有太多的连接,则需要占用很多的内存和CPU时间。
通过众多的连接耗尽受害者资源的攻击即为连接耗尽攻击。
有的也称之为空连接攻击,因为攻击者建立连接,但是不为发送数据。
一般来说,只要拥有足够的RAM、高速的处理器和适当的比较容易操作的OS,只需简单地使用Telnet之类的程序就可耗尽一个安全性不太强的系统的TCP连接。
不过,采用这种笨拙的方法也会耗费攻击者很多的资源,因此,如此简单的方法不会对受害者构成太大的威胁。
有的攻击程序利用网络API,如Berkeley Sockets使得这种攻击更为有效,但这种采用网络API的方式由于在攻击主机上要建立连接,其仍不足以对受害者系统造成严重的危害。
如图4.7所示为连接耗尽攻击示意图。
图4.7 连接耗尽攻击Naptha [razor][CA-2000-21]则能非常有效地利用TCP连接耗尽。
其有效在于其不是用传统的网络API建立TCP连接,与实际的TCP/IP栈不同,它不保持任何的连接状态信息。
它只根据收到的数据包中的Flag来回答。
当Naptha向受害者发起成千上万的连接后,其给攻击者系统带来较少的资源消耗,但却会耗尽受害者系统的所有资源!通过这种方式,其可以暴露受害者系统的某些服务甚至TCP/IP栈本身的漏洞。
例如,打上补丁包SP1①的Novell's Netware 5.0在端口524上建立起3 0 00连接后就会死机。
所有的64MB RAM耗尽,CPU使用率也达到100%。
系统在闲置12小时后其连接还没有超时,内存也没有恢复。
FreeBSD 4.0-REL在SSH端口建立495个连接后就无法使用了。
每个连接都启用了一个Daemon,最后导致所有可能的文件句柄都用光。
系统报出“打开了太多的文件”的错误。
大约30分钟以后,连接才逐渐超时,系统逐渐恢复可用状态。