应用层拒绝服务攻击

DOS:Denial Of Service

DDOS:Distributed Denial Of Service(利用僵尸网络——由“肉鸡”组成,发起 DoS 攻击)

常见的 DDOS 攻击

SYN flood(经典,利用了 TCP 协议“三次握手”设计中的缺陷),UDP flood,ICMP flood 等。

SYN flood

在攻击时首先伪造大量的源 IP,分别向服务器端发送大量的 SYN 包。此时服务器端返回 SYN/ACK 包,由于源地址是伪造的,SYN/ACK 包不会被应答。服务器端会重试 3~5次并等待一个 SYN Time(30~120秒),如果超时则丢弃连接。防御方式:SYN Cookie(为每个 IP 地址分配一个 Cookie,并统计每个 IP 的访问频率。如果在段时间内收到大量的来自同一个 IP 的数据包,则认为受到攻击,之后来自这个 IP 地址的包将被丢弃)、SYN Proxy、safereset 等算法。

在很多对抗 DDOS 的产品中,一般会综合使用各种算法,结合一些 DDOS 攻击的特征,对流量进行清洗。对抗 DDOS 的网络设备可以串联或者并联在网络出口处。

应用层 DDOS

不同于网络层 DDOS,应用层 DDOS 已经完成了 TCP 的三次握手,连接已经建立,所以发起攻击的 IP 地址都是真实的。当前的商业 Anti-DDOS 设备只在对抗网络层 DDOS 时效果较好,而对应用层 DDOS 攻击却缺乏有效的作用。

CC 攻击:Challenge Collapasar(Collapasar 是绿盟的反 DDOS 设备,能有效地清洗 SYN Flood 等有害流量),CC 攻击的原理就是对一些消耗资源(查询数据库、读写硬盘文件等)较大的应用页面不断发起正常的请求,以此达到消耗服务资源的目的。

应用层 DDOS 攻击的一种实现方式:在黑客入侵了一个流量很大的网站后,通过篡改页面,将巨大的用户流量分流到目标网站。比如在大流量网站上插入如下代码:

<iframe src="http://targetSite" height=0 width=0></iframe>

一些优化服务器性能的方法能够缓解应用层 DDOS 攻击(提升服务能力、资源容量)。常用的防御措施是在应用中限制每个“客户端” 做请求频率的限制(基于 IP、Cookie 确定客户端,攻击者可以使用代理服务器发起攻击突破该限制)。

防御应用层 DDOS

人机识别(验证码)是应用层防御 DDOS 的好物,只是会影响用户的体验。

在 Apache 的配置中,有些参数可以缓解 DDOS,比如调小 Timeout、KeepAlive Timeout 值,增加 MaxClients 值(可能影响正常业务)。Apache 提供的模块接口可以扩展 Apache、设计防御措施,比如 mod_qos(限制单个 IP 地址的访问频率),mod_evasive。

Yahoo 的 Detecting system abuse。

资源耗尽攻击

Slowloris 攻击:以极低的速度往服务器发送 HTTP 请求。由于 Web Server 对于并发的连接数都有一定的上限,因此若恶意地占用这些连接不释放,那么 Web Server 的所有连接都将被恶意连接占用,从而无法接受新的请求,导致拒绝服务。

HTTP POST DOS:在发送 HTTP POST 包时,指定一个非常大的 Content-Length 值,然后以很低的速度发包,比如 10~100s  发送一个字节,保持住这个连接不断开。当客户端连接数多了以后,占用住了 Web Server 的所有可用连接,从而导致 DOS。

Server Limit DOS:Web Server 对 HTTP 包头的长度有限制,如果客户端发送的 HTTP 包头超过限制,服务器将返回 4xx 错误。攻击者可以通过 XSS 往客户端写入一个超长的 Cookie,则用户在清空 Cookie 前将无法再访问该 Cookie 所在域的任何页面(Cookie 是存放在 HTTP 包头里发送的)。防御:可以将 Apache 的配置参数 LimitRequestFieldSize 设置为 0 (大小不限制)。

正则表达式引发的 DOS 攻击——ReDOS

正则表达式是基于 NFA 的一个状态机,每个状态和输入符号都可能有许多不同的下一个状态。正则解析引擎将遍历所有可能的路径直到最后。由于每个状态都有若干个“下一个状态”,因此决策算法将逐个尝试每种情况,直到匹配到一个路径。如果正则表达式编写不当,将引起解析过程变复杂,消耗计算资源。

存在 ReDOS 的正则表达式:

a++    (a+)+

charclass+ ([a-zA-Z]+)*

a_or_aa  (a|aa)+

a_or_a   (a|a?)+

a_11    (.*a){11}

a_65    (.*a){65}

Friedl    ([^\\"‘]+)*

上述表达式的变体:^expr$

OWASP  ^[a-zA-Z]+(([‘\,\.\-][a-zA-Z ])?[a-zA-Z]*)*$

DataVault  ^\[(,.*)*\]$

EntLib  ^([^"]+)(?:\\([^"]+))*$

JavaClassname  ^(([a-z])+.)+[A-Z]([a-z])+$

Cox_10  a?a?a?a?a?a?a?a?a?a?aaaaaaaaaa

Cox_25  a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?aaaaaaaaaaaaaaaaaaaaaaaaa

ReDOS 的测试用例

a_12X  aaaaaaaaaaaaX

a_18X  a_33X  a_49X

Cox_10  aaaaaaaaaa

Cox_20  Cox25  Cox34

JavaClassname  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!

EmailValidation  [email protected]!

EmailValidation  [email protected]

invalid_Unicode  (.+)+\u0001

DataVault_Dos  [,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

EntLib_DoS  \\\\\\\\\\\\\\\\\\\\\\\\\\"

EntLib_DoSX  \\\\\\\\\\\\\\\\\\\\\\\\\\"X

时间: 2024-12-10 04:02:40

应用层拒绝服务攻击的相关文章

《白帽子讲WEB安全》学习笔记之第13章 应用层拒绝服务攻击

第13章 应用层拒绝服务攻击 13.1 ddos简介 DDoS攻击通过大量合法的请求占用大量网络资源,以达到瘫痪网络的目的.这种攻击方式可分为以下几种: q  通过使网络过载来干扰甚至阻断正常的网络通讯: q  通过向服务器提交大量请求,使服务器超负荷: q  阻断某一用户访问服务器: q  阻断某服务与特定系统或个人的通讯. IP Spoofing IP欺骗攻击是一种黑客通过向服务端发送虚假的包以欺骗服务器的做法.具体说,就是将包中的源IP地址设置为不存在或不合法的值.服务器一旦接受到该包便会

【网络安全】——服务端安全(注入攻击、认证与会话管理和访问控制、访问控制、加密算法与随机数、Web框架安全、应用层拒绝服务攻击DDOS等)

这一篇博客记录的是服务端安全应用安全的知识,学习内容来自<白帽子讲Web安全>. ? 承接自上一篇客户端安全之后,包括注入攻击.认证与会话管理和访问控制.访问控制.加密算法与随机数.Web框架安全.应用层拒绝服务攻击DDOS.Web Server安全等方面. @ 目录 注入攻击 SQL注入 盲注 Timing Attack 数据库攻击技巧 常见的攻击机巧 命令执行 攻击存储过程 编码问题 SQL Column Truncation 正确地防御SQL注入 其他注入攻击 文件上传漏洞 文件上传漏洞

缓慢的http拒绝服务攻击

1 详细描述: 缓慢的http拒绝服务攻击是一种专门针对于Web的应用层拒绝服务攻击,攻击者操纵网络上的肉鸡,对目标Web服务器进行海量http request攻击,直到服务器带宽被打满,造成了拒绝服务. 慢速HTTP拒绝服务攻击经过不断的演变和发展,主要有三种攻击类型,分别是Slow headers.Slow body.Slow read.以Slow headers为例,Web应用在处理HTTP请求之前都要先接收完所有的HTTP头部,因为HTTP头部中包含了一些Web应用可能用到的重要的信息.

Kali Linux 渗透测试之拒绝服务攻击及防御

作为渗透测试人员,有时候需要对客户的系统进行DDOS攻击测试,那么这个时候就需要我们有一款合格的测试工具.而在Kali Linux上就集成了一些DDOS测试工具供测试者使用,下面就简单介绍一些测试工具. kali下的拒绝服务攻击: D(D)OS........................................1 yersinia......................................2 hping3................................

DoS(拒绝服务攻击)与DDoS(分布式拒绝服务攻击)

SYN Flood是当前最流行的DoS(拒绝服务攻击)与DDoS(分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,从而使得被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式.http://blog.csdn.net/bill_lee_sh_cn/article/details/6065704SYN Flood是当前最流行的DoS(拒绝服务攻击)与DDoS(分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,常用假冒

ICMP拒绝服务攻击(原始套接字系列四)

拒绝服务攻击(DoS)企图通过使被攻击的计算机资源消耗殆尽从而不能再提供服务,拒绝服务攻击是最容易实施的攻击行为.中美黑客大战中的中国黑客一般对美进行的就是拒绝服务攻击,其技术手段大多不够高明. ICMP实现拒绝服务攻击的途径有二:一者"单刀直入",一者"借刀杀人".具体过程分析如下:   ICMPFLOOD攻击 大量的 ICMP消息发送给目标系统,使得它不能够对合法的服务请求做出响应.中美黑客大战中的多数中国黑客采用的正是此项技术.ICMP FLOOD攻击实际上是

【DDOS】DNS放大拒绝服务攻击代码

/* DNS 头定义 */ struct dnshdr { unsigned short id; unsigned short flags; unsigned short qdcount; unsigned short ancount; unsigned short nscount; unsigned short arcount; }; #pragma pack(pop) int t_raw_socket = 0; int t_scr_ip = 0; int t_dns_ip = 0; int

拒绝服务攻击及预防措施

在拒绝服务攻击中,攻击者加载过多的服务将对方资源全部使用,使得没有多余资源供其他用户无法使用.SYN Flood攻击是典型的拒绝服务攻击. SYN Flood常常是源IP地址欺骗攻击的前奏,又称半开式连接攻击,每当我们进行一次标准的TCP连接就会有一个三次握手的过程,而SYN Flood在它的实现过程中只有三次握手的前两个步骤,当服务方收到请求方的SYN并回送SYN-ACK确认报文后,请求方由于采用源地址欺骗等手段,致使服务方得不到ACK回应,这样,服务方会在一定时间内处于等待接收请求方ACK报

DDOS拒绝服务攻击

疯狂的向服务器发请求,损人不利己 消耗服务器资源殆尽—拒绝服务 分布式拒绝服务攻击:  1.肉鸡   -解决方案-服务器足够强大 2.攻击联盟 3.利用TCP建立连接的规则 a.C-S    使用不存在的IP地址模拟发送请求    (技术难点:底层代码) b.S-C    服务器请求等待,资源占用,等待超时 c.C-S