转载-- 浅谈DDos攻击与防御

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

浅谈DDos攻击与防御

发表于 2017-05-10   |   分类于 网络安全   |   热度 4194 ℃

 

水能载舟,亦能覆舟


  最近重新拜读了道哥的经典力作《白帽子讲Web安全》一书,发觉好书看一遍是不够的,每次品味都有不同的味道。道哥此书侧重于企业安全,即所讲所写偏重企业内部的安全建设,而不是针对某些漏洞大书特书。再次细读,深感需要做点笔记加强加强记忆,于是便以本篇开始,记录一些曾经看过的经典书籍的笔记。本篇主要用于记录《白帽子讲Web安全》读后感之DDos攻击与防御相关的知识。本篇记录的绝大部分内容来自《白帽子讲Web安全》,感谢道哥!

 

DDos简介

  DDos又叫分布式拒绝服务,全称Distributed Denial of Service,利用DDos造成的攻击称为拒绝服务攻击,其原理就是利用大量的请求造成资源过载,导致服务不可用。
  DDos攻击从层次上可分为网络层攻击与应用层攻击,从攻击手法上可分为快型流量攻击与慢型流量攻击,但其原理都是造成资源过载,导致服务不可用。

网络层DDos攻击

网络层DDos攻击包括SYN flood、UDP flood、ICMP flood等。

SYN flood攻击

  SYN flood攻击主要利用了TCP三次握手过程中的bug,我们知道TCP三次握手过程是要建立连接的双方发送SYN,SYN+ACK,ACK数据包,而当攻击方随意构造源ip去发送SYN包时,服务器返回的SYN+ACK就不能得到应答(因为ip是随意构造的),此时服务器就会尝试重新发送,并且会有至少30s的等待时间,导致资源饱和服务不可用,此攻击属于慢型dos攻击。

UDP flood攻击

  由于udp是一种无连接的协议,因此攻击者可以伪造大量的源IP地址去发送udp包,此种攻击属于大流量攻击。正常应用情况下,UDP包双向流量会基本相等,因此在消耗对方资源的时候也在消耗自己的资源。

ICMP flood攻击

  此攻击属于大流量攻击,其原理就是不断发送不正常的ICMP包(所谓不正常就是ICMP包内容很大),导致目标带宽被占用,但其本身资源也会被消耗。并且目前很多服务器都是禁ping的(在防火墙在可以屏蔽icmp包),因此这种方式已经落伍。

网络层DDos防御

  • 网络架构上做好优化,采用负载均衡分流。
  • 添加抗DDos设备,流量清洗。
  • 限制单ip请求频率。
  • 防火墙等防护设置禁止icmp包等

网络层的DDos攻击究其本质其实是无法防御的,我们能做得就是不断优化自身的网络架构,以及提升网络带宽。

应用层DDos攻击

应用层DDos攻击不是发生在网络层,是发生在TCP建立握手成功之后,应用程序处理请求的时候。

CC攻击

  CC攻击还有一段比较有趣的来历,据说当时绿盟为了防御DDos攻击研发了一款产品,叫做“Collapasar”,能够有效的防御SYN flood攻击。然而黑客为了挑衅,研发了一款Challenge Collapasar工具(简称CC)。
  CC攻击的原理,就是针对消耗资源比较大的页面不断发起不正常的请求,导致资源耗尽。因此在发送CC攻击前,我们需要寻找加载比较慢,消耗资源比较多的网页,比如需要查询数据库的页面、读写硬盘文件的等。通过cc攻击,使用爬虫对某些加载需要消耗大量资源的页面发起http请求。

slowloris

  这是由于webserver中间件漏洞引发的拒绝服务攻击,其原理是以极低的速度往服务器发送HTTP请求。apache等中间件默认会设置最大并发链接数,而这种攻击就是会持续保持连接,导致服务饱和不可用。slowloris有点类似基于HTTP协议的SYN flood攻击。

poc

构造以下畸形http请求包

 

1

2

3

4

 

GET / HTTP/1.1\r\n

Host: Victim host\r\n

User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.503l3; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MSOffice 12)\r\n

Content-Length: 42\r\n

 

完整的http请求头结尾应该是两次的\r\n\r\n,这里少了一次,因此服务器将会一直等待。

HTTP POST DOS

  其原理是在发送HTTP POST包时,指定一个非常大的Content-Length值,然后以极低的速度发包,保持连接不断,导致服务饱和不可用。

poc

构造以下畸形http请求包

 

1

2

3

4

 

GET / HTTP/1.1\r\n

Host: Victim host\r\n

User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.503l3; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MSOffice 12)\r\n

Content-Length: 9999999999\r\n\r\n

 

Slow Read attack

  Slow Read attack攻击方式是采用调整TCP协议中的滑动窗口大小,来对服务器单次发送发送的数据大小进行控制,使得服务器需要对一个回应分成很多个包来发送。

Server Limit Dos

  这是由于cookie导致的dos攻击,当然其原理还是基于webserver的特性。apache默认最大的http包头长度为8192字节,如果超出此长度,则会返回4xx错误。如果我们利用存储型xss漏洞,将一个超长的cookie写入客户端页面,则用户再访问此页面后,由于请求头加载了恶意的超长cookie,导致其不能访问该站的页面(除非清空cookie)

ReDos

  这是由于代码写得有缺陷,导致使用正则时,会出现大量占用资源的情况,导致服务不可用,这是利用了正则表达式在匹配时的某些特性决定的。

应用层DDos防御

  • 判断User-Agent字段(不可靠,因为可以随意构造)
  • 网页中镶嵌js代码(不可靠,因为爬虫也可携带浏览器引擎,或者执行js代码)
  • 针对ip+cookie,限制访问频率(由于cookie可以更改,ip可以使用代理,或者肉鸡,也不可靠)
  • 关闭apache最大连接数等,合理配置中间件,缓解ddos攻击。
  • 页面中添加验证码,比如搜索数据库时。
  • 编写代码时,尽量实现优化,并合理使用缓存技术,减少数据库的读取操作。

  应用层的防御有时比网络层的更难,因为导致应用层被dos攻击的因素非常多,有时往往是因为程序员的失误,导致某个页面加载需要消耗大量资源,有时是因为中间件配置不当等等。而应用层DDos防御的核心就是区分人与机器(爬虫),因为大量的请求不可能是人为的,肯定是机器构造的。因此如果能有效的区分人与爬虫行为,则可以很好地防御此攻击。

无线DDOS

@更新于2017年5月31日
参考:http://www.freebuf.com/articles/wireless/135598.html

Auth Flood攻击

Auth Flood攻击:即身份验证洪水攻击。该攻击目标主要针对那些处于通过验证、和AP建立关联的关联客户端,攻击者将向AP发送大量伪造的身份验证请求帧(伪造的身份验证服务和状态代码),当收到大量伪造的身份验证请求超过所能承受的能力时,AP将断开其他无线服务连接。

Deauth Flood攻击

Deauth Flood攻击即为取消验证洪水攻击,它旨在通过欺骗从AP到客户端单播地址的取消身份验证帧来将客户端转为未关联/未认证的状态。对于目前的工具来说,这种形式的攻击在打断客户无线服务方面非常有效和快捷。一般来说,在攻击者发送另一个取消身份验证帧之前,客户端会重新关联和认证以再次获取服务。攻击者反复欺骗取消身份验证帧才能使所有客户端持续拒绝服务。

Association Flood攻击

Association Flood攻击即为关联洪水攻击。在无线路由器或者接入点内置一个列表即为连接状态表,里面可显示出所有与该AP建立连接的无线客户端状态。它试图通过利用大量模仿和伪造的无线客户端关联来填充AP的客户端关联表,从而达到淹没AP的目的。
由于开放身份验证(空身份验证)允许任何客户端通过身份验证后关联。利用这种漏洞的攻击者可以通过创建多个到达已连接或已关联的客户端来模仿很多客户端,从而淹没目标AP的客户端关联表。

Disassociation Flood攻击

Disassociation Flood攻击即为取消关联洪水攻击,和deauthenticaiton flood攻击表现方式很相似。它通过欺骗从AP到客户端的取消关联帧来强制客户端成为未关联/未认证的状态。一般来说,在攻击者发送另一个取消关联帧之前,客户端会重新关联以再次获取服务。攻击者反复欺骗取消关联帧才能使客户端持续拒绝服务。
Disassociation Broadcast攻击和Disassociation Flood攻击原理基本一致,只是在发送程度及使用工具上有所区别,前者很多时候用于配合进行无线中间人攻击,而后者常用于目标确定的点对点无线DOS,比如破坏或干扰指定机构或部门的无线接入点等。

RF Jamming攻击

RF Jamming攻击即为RF干扰攻击。该攻击是通过发出干扰射频达到破坏正常无线通信的目的。而前面几种攻击主要是基于无线通信过程及协议的。RF为射频,主要包括无线信号发射机及收信机等。

本文标题:浅谈DDos攻击与防御

文章作者:nmask

发布时间:2017年05月10日 - 09:05

最后更新:2017年07月25日 - 20:07

原始链接:https://thief.one/2017/05/10/1/ 

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

【嵌入式原理系列-第七篇】ld脚本实战:从零构建MCU内存布局 本文是一篇针对嵌入式开发者的实战指南,详细讲解了如何从零开始为MCU编写ld链接器脚本以构建自定义内存布局。文章以STM32F103C8T6为例,深入剖析了MEMORY和SECTIONS指令的用法,并提供了OTA分区、非易失数据存储等高级定制案例,帮助开发者解决实际工程中的FlashRAM管理难题,实现对程序运行的深度掌控。 阅读详情

相关推荐

vscode+latex+bib文献管理

下载vscode 安装插件`` 在setting.json中配置 在.tex文件中编写论文内容,然后左侧TEX侧边栏中编译,如下图所示,中文用xelatex,英文用pdflatex;编译成功后,就可以查看pdf版本的论文了,我一般在浏览器显示。 涉及到文献编译:XXX.bib中存储文献管理内容;XXX.tex是文章内容,使用xelatex编译后会生成XXX.aux,ctrl+⋅ctrl+·ctrl+⋅打开命令行窗口,输入bibtex XXX(可以对aux文件进行编译,不需要加后缀),然后再xelatex.

小卜妞的博客 2531

浅谈DDos攻击防御

最近重新拜读了道哥的经典力作《白帽子讲Web安全》一书,发觉好书看一遍是不够的,每次品味都有不同的味道。道哥此书侧重于企业安全,即所讲所写偏重企业内部的安全建设,而不是针对某些漏洞大书特书。再次细读,深感需要做点笔记加强加强记忆,于是便以本篇开始,记录一些曾经看过的经典书籍的笔记。本篇主要用于记录《白帽子讲Web安全》读后感之DDos攻击防御相关的知识。本篇记录的绝大部分内容来自《白帽子讲Web...

Fly_鹏程万里 2680

【Godot4自学手册】第一节配置Godot运行环境

Godot是一款自由开源、由社区驱动的 2D 和 3D 游戏引擎!它是一款功能丰富的跨平台游戏引擎,可以通过统一的界面创建 2D 和 3D 游戏。它提供了一套全面的通用工具,因此用户可以专注于制作游戏,而无需重新发明轮子。游戏可以一键导出到多个平台,包括主流的桌面平台(Linux、macOS、Windows)、移动平台(Android、iOS)、基于 Web 的平台以及主机平台。

zhaoyang314的博客 5930

防御DDoS攻击的五种ddos security安全解决方案

DDoS(分布式拒绝服务)攻击是一种恶意行为,旨在通过大量的请求淹没目标服务器或网络,导致服务不可用。为应对DDoS攻击,有多种安全解决方案可供选择。流量清洗是一种有效的DDoS攻击防御策略,通过实时监测和过滤进入的网络流量,识别并过滤掉DDoS攻击流量,仅将合法流量传送到目标服务器。流量清洗的实施可以采用专业的DDoS清洗设备或云服务。这些设备和服务使用先进的流量分析和识别技术,在网络边缘或云端建立监控节点。当流量进入网络时,它们会即时分析流量的源、目的、流量特征和行为模式等,以判断是否存在恶意攻击

Innocence_0的博客 1万+

如何防御ddos攻击

DDoS可以说在互联网界大名鼎鼎,也可以直言说是臭名昭著,随着DDoS攻击的范围越来越广泛,网站的安全也就变得更加重要。我们在预防DDoS攻击前,可以先来了解一下DDoS,还有DDoS的常见攻击方式。 关于DDoS攻击 DDoS(Distributed Denial of Service),即分布式拒绝服务,那这分布式拒绝服务具体是什么意思?广义上来讲一切能够导致合法用户不能正常访问网络服务的行为都是拒绝服务攻击,而DDoS主要是通过大量合法请求占用大量资源,导致服务器瘫痪,使正常用户无法访问。DDoS

xyyaq的博客 8331

DDoS 攻击防御

分布式拒绝服务攻击(Distributed Denial of Service),是指处于不同位置的多个攻击者同时向一个或数个目标发动攻击。由于攻击的发出点是分布在不同地方的,这类攻击称为分布式拒绝服务攻击DDoS 是一种基于 DoS 的特殊形式的拒绝服务攻击。单一的 DoS 攻击一般是采用一对一方式,利用网络协议和操作系统的缺陷,采用欺骗和伪装的策略来进行网络攻击,使网站服务器充斥大量要求回复的信息,消耗网络带宽或系统资源,导致网络或系统不胜负荷以至于瘫痪而停止提供正常的网络服务。 DoS 相比,DD

qq_45378738的博客 1873

DDoS攻击原理及防御

转自:微点阅读 https://www.weidianyuedu.com 随着网络时代的到来,网络安全变得越来越重要。在互联网的安全领域,DDoS(Distributed DenialofService)攻击技术因为它的隐蔽性,高效性一直是网络攻击者最青睐的攻击方式,它严重威胁着互联网的安全。那么,DDoS攻击原理是什么?下面微点阅读小编就为大家介绍一下相关知识点,我们一起来看看吧!  DDoS攻击原理及防护措施介绍:  一、DDoS攻击的工作原理  1.1 DDoS的定义  DDos的前身

xiaoweids的博客 3308

转载-浅谈Ddos攻击攻击防御

EMail: jianxin#80sec.comSite: http://www.80sec.comDate: 2011-2-10From: http://www.80sec.com/ [ 目录 ]一 背景二 应急响应三 常见ddos攻击防御四 根源及反击五 总结 一 背景 在前几天,我们运营的某网站遭受了一次ddos攻击,我们的网站是一个公益性质的网站,为各个厂商和白帽子之间搭...

weixin_34025151的博客 127

浅谈DDOS中NTP放大攻击的操作过程以及防御措施?

在诸多的DDoS攻击事件中,放大攻击的流行度占了百分之五十左右,攻击难度系数只是占中间部分,但它的影响力较大。这意味着它的防护和缓解比较复杂。那么就有人想要知道什么是NTP放大攻击?NTP的防御措施是怎么样的呢?接下来小...

cilin7010的博客 1221

浅谈拒绝服务攻击的原理防御(4):新型DDOS攻击 – Websocket和临时透镜

0×01 前言 前几天我已经分别发了三篇关于DDOS攻击相关的文章,前几天我为大家介绍的DDOS攻击的方法和原理都是已经出现过大规模攻击行为的,或者说是已经实践过的,今天我要讲的是还没有发生过大规模攻击行为的新方法–websocket和临时透镜,这两种方法其实以前早就有人介绍过了,但是我做的研究比以前发表过的那些可能更具体些,我也想把我的试验过程和一些心得分享给大家,大家一起交流一下将新技术

killcoco的小窝 2034

linux 反射拒绝服务,浅谈拒绝服务攻击的原理防御(2) :反射型DDOS

原标题:浅谈拒绝服务攻击的原理防御(2) :反射型DDOS*本文原创作者:黑戈爾,本文属FreeBuf原创奖励计划,未经许可禁止转载0×01 前言前几天提交了一篇关于DDOS攻击的文章到今天下午才审核通过发表出来,所以晚上闲来无事在接着写下面的内容,今天我就不多说废话了直接来干货。目前来说流量型反射DDOS攻击都是以UDP为载体的,毕竟TCP的三次握手就让伪造源地址反射大流量变得不现实(tcp反...

weixin_33574009的博客 328

浅谈JS DDoS攻击原理防御

 分布式拒绝服务攻击DDoS攻击是一种针对网站发起的最古老最普遍的攻击。Nick Sullivan是网站加速和安全服务提供商CloudFlare的一名系统工程师。近日,他撰文介绍了攻击者如何利用恶意网站、服务器劫持和中间人攻击发起DDoS攻击,并说明了如何使用HTTPS以及即将到来的名为“子资源一致性(Subresource Integrity,简称SRI)”的Web新技术保护网站免受攻击。 ...

weixin_30500105的博客 268

浅谈基于 NTP 的反射和放大攻击

                       浅谈基于 NTP 的反射和放大攻击转载于:https://www.2cto.com/article/201402/278775.html0x01 一些案例最近一段时间 DDoS 攻击事件让基于 NTP 的 DDoS 攻击变得很火热,先看看下面的信息感受下:“It was a very large DDoS targeting a CloudFlare ...

William234的博客 3511

DDos攻击的文章

云舒的文章:《深入浅出DDoS攻击防御》 http://www.programmer.com.cn/12874/ 80sec的一篇实战文章:《浅谈Ddos攻击攻击防御》 http://www.80sec.com/ddos-attack-defend.html SYN Flood的实现:《SYN Flood攻击的基本原理及防御》 http://www.xfocus.net/article...

weixin_30583563的博客 167

linux 反射拒绝服务,浅谈拒绝服务攻击的原理防御(2):反射型DDOS

*本文原创作者:黑戈爾,本文属FreeBuf原创奖励计划,未经许可禁止转载0x01 前言前几天提交了一篇关于DDOS攻击的文章到今天下午才审核通过发表出来,所以晚上闲来无事在接着写下面的内容,今天我就不多说废话了直接来干货。目前来说流量型反射DDOS攻击都是以UDP为载体的,毕竟TCP的三次握手就让伪造源地址反射大流量变得不现实(tcp反射ACK倒是还行- -!)下面来看看一般能用于反射放大的协议...

weixin_42362885的博客 305

CSRF、XSS、SQL注入、DDOS攻击和预防

看到比较好的安全测试文章,记录一下 1、浅谈前后端分离架构下如何防御CSRF攻击 runtester.com/detail/blog… 2、浅谈XSS攻击防御 runtester.com/detail/blog… 3、浅谈SQL注入和防御 runtester.com/detail/blog… 4、浅谈DDOS攻击和预防 runtester.com/detail/blog… 转载于:https:...

weixin_33711641的博客 316

浅谈服务器的防御类型和防御大小

随着时代的发展,游戏还 是网站游戏发展也巨快,同时伴随的攻击也是愈演愈烈,面对频繁的攻击,选择高防服务器是重中之重,因此如何在选择高防服务器要先了解防御类型和防御大小。 首先是我们常见的防火墙防御。防火墙是介于内部网和外部网之间、专用网和公共网之间的1种保护屏障,防火墙分为两种:1种是软件防火墙、另1种是硬件防火墙。 1、软件防火墙:软件防火墙是寄生于操作平台上的,软件防火墙是通过软件去实现隔离内部网外部网之间的1种保护屏障。 2、硬件防火墙:硬件防火墙是镶嵌系统内的,硬件防火墙是有...

IDC66666的博客 826

pythonddos防御_浅谈拒绝服务攻击的原理防御(7):用Python和C实现syn flood攻击...

*原创作者:黑戈爾,本文属FreeBuf原创奖励计划,未经许可禁止转载0x01 前言以前做DDOS的实验都是用python来编写工具的,开始不会编写结构不会算校验和的时候就用scapy写,后来学会了报文结构开始自己构造各种报文,但是用python写成之后虽然是能实现基本功能,但是性能太差,其不到攻击效果,然后又开始学c语言,用c语言重写了syn flood攻击工具,今天我把python和c的源码都...

weixin_39778003的博客 446

浅谈 CC 攻击的防护方法

什么是 CC 攻击 CC(Challenge Collapsar)原意是挑战黑洞。黑洞是绿盟科技的一款抗分布式拒绝服...

csldnyd1209的博客 817
上一篇: TCP三次握手
下一篇: Markdown编辑记录
Turbyun
博客等级 码龄9年 22粉丝 67原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值