DDos防护系列之2--DDos防御策略_ds防护策略-程序员宅基地

技术标签: DDos防护  

前一篇文章讲述了什么是DDos,DDos的种类等。这一节我们讲述DDos的防御策略。
我们按照DDos的攻击类型来讲解每一种类型对应的防御策略。

一、DDos攻击类型
有以下一些类型,但不限于: 畸形报文、传输层(4层)DDoS攻击、Web应用DDoS攻击、DNS DDoS攻击、连接型DDoS攻击。
1. 畸形报文
每中报文都有相对应的标准格式,如果不符合这种格式就属于畸形报文,我们可以采取相应策略或丢弃。
TCP异常报文参见:
【华安解密之DDoS攻防】13 TCP原理篇之连接耗尽攻击&异常报文攻击

2. 传输层DDos攻击:
通过大流量的方式对目标机器造成攻击。有以下攻击类型: syn flood,syn-ack flood,ack flood,fin/rst flood,udp flood,icmp flood(这个属于网络层)等。
(1)syn flood:基本源认证(发错误确认序号的SYN-ACK回复包要求客户端发rst包)、高级源认证(发正确确认序号的SYN-ACK回复包要求客户端发ack包)、首包丢弃。
(2)syn-ack Flood:源认证(发syn包要求客户端发syn-ack包,模仿重传syn行为)
(3)ack flood:会话检查:分为基本模式,严格模式。
基本模式:
如果ACK报文没有命中会话,防御系统会允许第一个ACK报文通过,并建立会话,以此来对后续ACK报文进行会话检查;
如果ACK报文命中了会话,则继续检查报文的序号,序号正确的报文允许通过,序号不正确的报文则被丢弃。
严格模式:
如果ACK报文没有命中会话,直接丢弃报文;
如果ACK报文命中会话,并且序号正确,允许报文通过。
(4)fin/rstflood:会话检查。
如果FIN/RST报文没有命中会话,直接丢弃报文;
如果FIN/RST报文命中会话,则根据会话创建原因和会话检查结果来判断该报文是否通过:
  如果会话是由SYN或SYN-ACK报文创建的,则允许该FIN/RST报文通过。
  如果会话是由其他报文创建的(例如ACK报文),则进一步检查报文序号是否正确,序号正确的报文允许通过,序号不正确的报文则被丢弃。
(5)udp flood:一般传统的UDP攻击都是由攻击工具打出来的,通常会具有一定的特征,尤其在数据段会有一些相同或者有规律变化的字段。而对于我们前一节介绍的UDP反射放大攻击,虽然并不是攻击工具伪造的UDP报文,而是真实网络设备发出的UDP报文,在数据段不具备相同的特征,但是目的端口却是固定的,所以也可以作为一种特征。确定攻击报文的特征后,就可以根据特征进行过滤了。特征过滤也就是常说的指纹过滤,指纹分为静态指纹(手工配置)和动态配置(机器自主学习)

3. Web应用DDoS攻击
现在Web应用如此的多,攻击类型分为: http get flood, http post flood, cc攻击等。
(1)http get flood:302重定向认证、验证码认证、URI动态指纹学习(同一个源发出的包含同一指纹的请求超过设置的阈值时,就将该源加入黑名单)、URI行为监测(判断访问重点URI比例是否超过阈值来确定攻击源)
(2)http post flood:307重定向认证(加上Cookie)、验证码认证、URI动态指纹学习、URI行为监测
(3)http 慢连接攻击
Slow Headers:某个源发出的连续多个HTTP GET/POST请求报文的报文头中都没有结束符“\r\n”,则认为发生Slow Headers攻击,将该源IP地址加入黑名单。
Slow POST:某个源发出的连续多个HTTP POST请求报文的长度设置的很大,但是实际报文的数据部分长度都很小,则认为发生Slow POST攻击,将该源IP地址加入黑名单。

4. DNS DDoS攻击
DNS DDoS攻击类型有: DNS Request Flood、DNS Reply Flood和缓存投毒等。
(1)DNS Request Flood:TC源认证(让客户端使用TCP的请求,即可使用TCP的源认证)、首包丢弃、授权服务器可采用CNAME源认证
(2)DNS Reply Flood:因为只有缓存服务器会接收权威服务器的reply包,可以采用源认证权威服务器方式
(3)DNS反射攻击:会话机制:当DNS request报文经过Anti-DDoS系统时,Anti-DDoS系统会创建一张会话表,记录DNS请求报文的这五元组信息,当Anti-DDoS系统再收到DNS reply报文时,就会查会话表,五元组不对将被丢弃
(4)还有一个策略是:源IP限速和域名限速
(5)缓存投毒:会话机制

5. 连接型DDoS攻击
连接型攻击类型分为: TCP连接耗尽攻击,TCP慢速连接攻击,连接耗尽攻击,loic, hoic, slowloris, Pyloris, xoic等慢速攻击。
(1)TCP连接耗尽攻击:某个源IP在指定的时间间隔内发起的TCP新建连接数超过了阈值,则将该源IP加入黑名单。
(2)TCP慢速连接攻击:TCP连接上特定时间内通过的报文数小于阈值,则认为该连接为异常会话。如果在特定时间内某个源IP的异常会话数超过阈值,则将该源IP加入黑名单。

(3)总体来说,基于会话机制,通过新建连接速率检查、并发连接数检查、异常会话检查等措施,将攻击源加入黑名单,阻断攻击流量达到防御效果。


总体来说,防御分为这几大类:包检查、源认证、会话机制、机器自主学习。

源认证包括:

1. TCP/IP源认证(syn-cookie技术等)

2. 应用层源认证(302跳转,CNAME反弹等)

3. 用户源认证(验证码等)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wenph2008/article/details/54958805

智能推荐

响应式编程实现异步RPC,提升xxl-job调度吞吐量-程序员宅基地

文章浏览阅读1.1k次。在xxl-job中,RPC即用于调度中心请求执行器执行job、kill job,也用于执行器请求调度中心主动注册、执行结果上报。xxl-job实现的RPC类似Feign框架,是基于http..._xxljob 用的什么协议

C++ Json到对象的自动序列化和反序列化工作_c++ json序列化和反序列化-程序员宅基地

文章浏览阅读555次,点赞17次,收藏22次。JSERIALIZE_DEF_OBJECTLIST(Person,Object,objectList) //接受json中的objectList对象数组,对象数组使用此宏定义。JSERIALIZE_DEF_OBJECTTYPE(Person,Son,son) //接受json中的son对象,对象成员使用此宏定义。//输出反序列化结果。

DOSBOX 0.74模拟器安装Windows 95_dosbox imgmount-程序员宅基地

文章浏览阅读7.8k次,点赞2次,收藏6次。DosBox本身带有5.0版的DOS系统,启动后虚拟一个Z盘存放有Dosbox特有的外部指令,如config.com、imgmount.com等,经测试,可以顺利安装各版本的windows 3.1系统,但是不能安装win95,需要用原版的dos镜像启动才能安装。1. 获取启动盘镜像文件 下载Win95启动软盘镜像文件,名为boot.img,放到DosBox 0.74的目录下。2. 制作硬盘镜像文件_dosbox imgmount

呼叫转移的普适性及编程实现_电话自动转移程序开发-程序员宅基地

文章浏览阅读53次。总结来说,呼叫转移是一种方便的电话通信功能,在编程中可以通过使用电话服务提供商的API来实现。然而,实际的实现可能因具体的服务提供商而有所不同,你需要参考相应的文档或与服务提供商联系以获取准确的实现细节。在函数内部,我们构建了一个API请求的有效载荷(payload),其中包含了原始电话号码和目标电话号码。在编程中,呼叫转移的实现涉及使用电话通信协议和相应的编程语言。需要注意的是,实际的呼叫转移功能的实现可能因电话服务提供商的不同而有所差异。首先,我们需要确保已经安装了Python的开发环境和相应的库。_电话自动转移程序开发

FLink聚合性能优化--MiniBatch分析_flink mini-batch-程序员宅基地

文章浏览阅读5.4k次,点赞4次,收藏15次。[@ TOC]一、MiniBatch的演进思路1、MiniBatch版本Flink 1.9.0 SQL(Blink Planner) 性能优化中一项重要的改进就是升级了微批模型,即 MiniBatch(也称作MicroBatch或MiniBatch2.0),在支持高吞吐场景发挥了重要作用。MiniBatch与早期的MiniBatch1.0在微批的触发机制略有不同。原理同样是缓存一定的数据后..._flink mini-batch

EasyExcel导入_easyexcel 对接multipartfile-程序员宅基地

文章浏览阅读808次,点赞6次,收藏6次。导入依赖<dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.1.6</version></dependency>Controllerimport java.text.ParseException;import org.springframework._easyexcel 对接multipartfile

随便推点

2022考研日语71分自学经验贴;日语可以自学吗?-程序员宅基地

文章浏览阅读1.2k次,点赞3次,收藏5次。目录1 个人对考研日语的评价1 日语VS英语2 考研日语适合哪些人,什么时候开始3 找到可以选日语的院校专业的方法4 高考日语自学经历(供参考)4.1 学习过程4.2 必用资料5 考研日语自学+作文课经历(供参考)5.1 资料相关5.2 完型(20分)5.3 阅读(40分)5.4 翻译(15分)5.5 作文(25分)end实在受不了英语应试的折磨,高考和考研都用了203日语替换了英语(高考127分,考研估分65-70分)1 个人对考研日语的评价我是有了高考127分的基础(大概N3水平,N2擦线水平),

JVM性能优化 (一) 初识JVM-程序员宅基地

文章浏览阅读703次,点赞22次,收藏24次。到这里文章就讲完了,有疑问的兄弟可以在下面讨论或留言,也祝大家在今年开开心心,健健康康,能够拥有一份好工作,大家加油,我是牧小农!自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

通过手动给upx去壳简单了解逆向_upx脱壳机-程序员宅基地

文章浏览阅读1.7k次。对于像我这种想入门逆向的,这种方式真的可以培养兴趣,也从中学到了很多知识,我也不会仅仅止步于脱upx的。[外链图片转存中…(img-xkCBlSoD-1693021558445)]即可。对于像我这种想入门逆向的,这种方式真的可以培养兴趣,也从中学到了很多知识,我也不会仅仅止步于脱upx的。_upx脱壳机

Quartz定时任务调度cron 表达式时间格式(☆)_cron表达式 下午5点30-程序员宅基地

文章浏览阅读890次。cron 表达式的格式 Quartz Cron 表达式支持到七个域 名称 是否必须 允许值 特殊字符 秒 是 0-59 ..._cron表达式 下午5点30

SQL Server 疑难杂症--转换科学计数法的数值字符串为decimal类型_mssql 字符串转decimal 精度问题-程序员宅基地

文章浏览阅读1.8k次。今天在操作数据库时,需要将字符串转换成Decimal类型。代码如下:selectcast('0.12'asdecimal(18,2));selectconvert(decimal(18,2),'0.12');当需要将科学计数法的数字字符串转换成Decimal时,这2种写法都报错:Msg 8114, Level 16, State 5, Line 1Erro..._mssql 字符串转decimal 精度问题

soul源码解读(十八)-- resilience4j插件原理分析_resilience4j timeoutduration含义-程序员宅基地

文章浏览阅读553次。soul源码解读(十八)resilience4j插件使用resilience4jresilience4j插件是网关用来对流量进行限流与熔断的可选选择之一。resilience4j为网关熔断限流提供能力。插件使用1.启动 admin,打开 resilience4j 插件开关2.在 bootstrap 项目的 pom 文件引入 resilience4j 插件的相关依赖,启动 bootstrap <!-- soul resilience4j plugin start--> <_resilience4j timeoutduration含义

推荐文章

热门文章

相关标签