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

智能推荐

C# 引用Newtonsoft.Json库 将Json格式字符串中的null转换为空字符串_c# json反序列化null值处理-程序员宅基地

文章浏览阅读2.2k次。定义自定义的JsonConverter类,用于控制反序列化过程中的类型转换。使用JsonSerializerSettings对象设置反序列化。_c# json反序列化null值处理

K8S教程(5)Dashboard的安装与使用_kubectl edit svc kubernetes-dashboard -n kubernete-程序员宅基地

文章浏览阅读2.7k次。K8S Dashboard的官方介绍:https://kubernetes.io/zh/docs/tasks/access-application-cluster/web-ui-dashboard/1、下载资源清单并且应用kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml2、查看应用资源清单后所创建的deployment及Pod信_kubectl edit svc kubernetes-dashboard -n kubernetes-dashboard

Google I/O大会轰动全场的Glass Demo视频是怎么来的?-程序员宅基地

文章浏览阅读2.1k次。说起Google I/O 2012开发者大会上令人印象最深刻的一幕莫过于Google Project Glass的跳伞表演了。整个过程在Google Hangout上视频直播,现场的观众和在网上观看Youtube视频直播的网友们随着跳伞者的视角如醉如痴。在昨天玩High全场后,今天Google又玩了一回跳伞,不过观众们还是很兴奋,有读者甚至在雷锋网微博上留言:“这次Google I/O 201

k8s-1.26.6 二进制部署_etcd-ca-crs.json-程序员宅基地

文章浏览阅读509次,点赞2次,收藏3次。公有云要用公有云自带的负载均衡,比如阿里云的SLB,腾讯云的ELB,用来替代haproxy和keepalived,因为公有云大部分都是不支持keepalived的,另外如果用阿里云的话,kubectl控制端不能放在master节点,推荐使用腾讯云,因为阿里云的slb有回环的问题,也就是slb代理的服务器不能反向访问SLB,但是腾讯云修复了这个问题。下载地址:https://github.com/kubernetes-sigs/cri-tools/blob/master/docs/crictl.md。_etcd-ca-crs.json

莫烦Python3学习_莫烦python的主题-程序员宅基地

文章浏览阅读1.1k次,点赞3次,收藏9次。Python3学习简单介绍1.1 解释器1.2 脚本文件1.3 代码风格建议1.4 模块2. 变量和数据类型2.1 关键字和标识符2.2 从键盘读取输入简单介绍1.1 解释器python3 # 回车后这个时候解释器便工作于交互模式print("Hello World!&a_莫烦python的主题

图神经网络:(节点分类)KarateClub数据集上实现图神经网络_图神经网络节点分类示例-程序员宅基地

文章浏览阅读1.9k次,点赞4次,收藏7次。文献”SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS“解读。使用GCN解决KarateClub社交网络问题。_图神经网络节点分类示例

随便推点

车辆航向角、横摆角、质心侧偏角的区别——转载_qiche航向角和偏航角的区别-程序员宅基地

文章浏览阅读604次,点赞2次,收藏2次。如下图: θ是航向角;_qiche航向角和偏航角的区别

Vue+element ui 表单中自适应文本高度的文本域及表格中列数据展示_vue autosize-程序员宅基地

文章浏览阅读4.3k次,点赞2次,收藏7次。Vue+element ui 表单中自适应文本高度的文本域及表格中列数据展示:通过设置autosize属性可以使得文本域的高度能够根据文本内容自动进行调整,并且autosize还可以设定为一个对象,指定最小行数和最大行数。..._vue autosize

MySQL 菜鸟入门“秘籍”-程序员宅基地

文章浏览阅读126次。本文收录在Linux 系统化学习系列文章总目录一、MySQL简介1、什么是数据库 ?  数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型...

N1刷armbian,安装cups(惠普打印机)_armbian升级cups-程序员宅基地

文章浏览阅读4k次。自用,网络设置还是没有搞懂_armbian升级cups

JavaScript 鼠标移动事件_js添加鼠标移动事件-程序员宅基地

文章浏览阅读7k次,点赞2次,收藏3次。今天我要分享的JavaScript鼠标移动事件的知识点1.首先准备一个文件夹和一张GIF的动图,打开VS Code,新建一个文件,Ctrl+S保存文件,输入文件名,文本类型设置成HTML,如下图所示;2.在文档里输入英文状态下的感叹号+回车键,如下图所示;3.在body里输入img标签,把GIF图引入,在img标签里输入style属性,设置定位,宽和高如下图所示;4.现在开始写JavaScript代码:(1)获取img标签,然后添加鼠..._js添加鼠标移动事件

关于初始化数据库时报错及解决办法(常见故障整理)_使用持久数据库初始化nss时出错-程序员宅基地

文章浏览阅读5.6k次。在初始化数据库时使用如下命令:[root@localhost mysql]# bin/mysqld \--initialize-insecure \--user=mysql \--basedir=/usr/local/mysql \--datadir=/usr/local/mysql/data问题描述12020-08-16T18:34:32.735665Z 0 [ERROR] bin/mysqld: Error while setting value 'NO_ENGINE_SUBSTITUT_使用持久数据库初始化nss时出错

推荐文章

热门文章

相关标签