您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
   
 
 
     
   
 订阅
  捐助
DDOS安全产品常用防御体系和方案
 
作者:waterxi 来源:博客园 发布于: 2015-05-06
   次浏览      
 

传统方案

早期的DDOS防御是通过防火墙和路由器来检测和实现的,这样的方案对早期的攻击有着一定的防护效果,防火墙对于协议层的防护是很有效果。然而互联网的发展使DDOS攻击的技巧性越来越高,而且攻击能力也越来越强,使用防火墙防御DDOS显然力不从心:

1.防火墙和路由器只有在针对协议层攻击时才会有效,而越来越多的DDOS攻击是应用层面上;

2.防火墙不是专门为DDOS而设计的,用来为DDOS做流量监控清洗会在性能上影响防火墙正常功能,这对防火墙来说是个不必要的考验;

3.大型网络的部署和扩容远比软件升级复杂,通过程序发起的DDOS攻击,比网络设备的防御更为灵活;

就像前面提到的一样,DDOS的防御没有绝对有效的方案,尽管大型互联网环境渴求越来越多的防御方案,但目前大型互联网系统的防御更多的是各种方案的组合。

前面提到过,防御DDOS的防御是一种半自动的流程,所谓DDOS防御体系,无非是流量检测+异常流量清洗+策略规则+控制系统+人工处理。

流量检测

流量检测目前有两种技术,DPI(Deep Packet Inspection深度包检测)和DFI(Deep/Dynamic Flow Inspection,深度/动态流检测),两种技术各有千秋。

DPI

传统流量分析仅仅通过对IP包头中的五元组信息进行分析,包含源地址、目标地址、源端口、目的端口及协议类型等4层以下的基本信息,而DFI是一种基于应用层的流量检测和控制技术。该技术通过对IP包内容读取,对IOS7协议中应用层信息进行重组获取应用程序的内容。按协议类型,DPI识别划分三类:

1.协议特征字识别技术

不同应用采用不通过协议,这些协议通常具有其特殊指纹(如特定端口、字符串、bit序列等),可以通过识别报文中的这些指纹信息确定业务承载应用;以用户熟知的BT为例,其Handshake的协议特征字为“。BitTorrent Protocol”;

2.应用层网关识别技术

如果业务流没有任何特征,可以使用应用层网关识别技术。通过应用层网关识别出控制流,再根据控制流协议选择特定应用层网关对业务流进行解析,识别出对应的业务流。比如通过检测SIP(会话初始协议)/H323的协议交互获取完成RTP(实时传输协议,Real-time Transport Protocol)信息;

3.行为模式识别技术

行为模式主要用于无法根据协议判断业务的情况。比如垃圾邮件和正常邮件的业务流内容是一样的,必须通过行为模式才能识别出恶意的行为。

DFI

与DFI流量识别不同,DFI是一种基于流量行为的应用层识别技术,通过不能类型的应用在会话连接和数据流上的状态进行识别。

DFI基于流量的行为特征,建立流量特征模型,分析会话连接流的包长、连接速度、字节大小,间隔等信息对比流模型,实现应用类型的辨别。

两种技术的区别如下:

1.处理速度:DFI仅仅需要对流量进行分析和后台模型对比,相比需要逐包进行分析的DPI,处理了速度较快;

2.DPI需要不断更新协议和新应用以及正则匹配公式,维护成本高;

3.DPI对应用类型和协议识别精确,DFI仅能做粗略分析;

4.DPI无法识别加密传输的控制流;

异常流量清洗

清洗设备

前面分析到首包丢弃和TCP Proxy的时候,提到过一个思路——把所有网络层安全检测识别防御逻辑和业务处理隔离开,目前完成安全检查识别和防御功能的,主要是异常流量清洗设备。

通常来说,流量清洗设备可以通过异常流量限速,规则过滤等等各种方式实现多层次安全防御,过滤掉网络层和应用层的攻击。

多层防护

多层防护指通过静态特征检测,动态规则过滤,限速和人机识别等方式进行网络层和应用层的防御。实际上无论哪种防御手段,都只能保证网络层的清洗效果,应用层的更多的是采取限流的手段,误杀率很高。

网络层

网络层的防护,多数情况下是针对各种flood攻击。

1.限速

最常见的防御手段,一般来说用户会对自己的应用设置阈值,包括pps、bps、qps、newcons、concurcons等,可以对于超过用户阈值的流量进行限速。

2.Syn cookie防御

Syn cookie的防御见前面相关部分。

3.Syn reset

Syn reset的方法类似于前面提到的首包丢弃,相对于首包丢弃中被动等待client重传的方法相比,syn reset模拟服务器发送syn+ack报文,正常的client会判断ack中序列号错误,则发送rst报文,终止连接。

4.Tcp状态

TCP传输时,正常客户端使用正常的协议栈通信,有相应的状态变迁模型。一般的攻击并没有模拟合法的协议栈,这种情况下可以通过状态监测,确定状态补全的报文并选择丢弃。比如未完成3次握手的一些攻击,并没有完成3次握手的状态变迁模型。

TCP的状态图如下所示:

5.指纹识别

狭义的指纹定义指指尖的印痕或者影印,广义的指纹可以指任何代表特色,痕迹和特征等能描述特性的证据。

这里的指纹识别,事实上是对TCP/IP,HTTP等指纹特征的一个机器学习的过程——收集正常流量的统计特征,根据这些统计特征进行建模。异常流量对比这样的模型,通常某一特征会明显超过正常流量,从而进行过滤。

应用层

之前提到了应用层攻击不同于网络层攻击,原因在于它属于上层协议,更接近于业务逻辑,甚至和正常业务没有严格界限。另外,这种层次的攻击往往严重消耗服务端的宽带或主机资源,破坏性很大。

大部分应用层攻击集中在HTTP上,少部分针对于DNS。

域名限速

可以以域名为单位对请求进行单独的限速。

DNS首包丢弃

DNS首包丢弃方法见常见DDOS攻击DNS query flood防御部分。

DNS TC重试

DNS首包丢弃方法见常见DDOS攻击DNS query flood防御部分。

HTTP Cookie验证

见HTTP flood防御手段限制访问频率部分。

在线方案&旁路方案

互联网DDOS防御,一般可以分为在线部署和旁路部署,两者针对不同用户和环境而部署方式不同,各有利弊。

通常来说大型的互联网或者运营商网络一般采取旁路部署,这样的方式不影响主干网络拓扑结构,不影响正常业务,利于扩容。另外,旁路部署一般有专门的调度系统,除了保证清洗的控制外,还有流量丢弃(黑洞)等控制。

而一般来说小型网络通常采用在线部署方案,它的优点是检测和防护在一起,且一直保持清洗状态。缺点是对可靠性要求很高,而且缺少专门的调度系统,本身灵活性较差,面对复杂的攻击时显得比较单薄。

在线部署

典型的在线部署方案如下:

经过路由器的流量直接进入到清洗设备,在清洗结束后流量进入到交换机并最终到业务目标地址。清洗过程中,可以加入对清洗设备的控制,这种方法可以通过校验清洗效果随时改变清洗策略。

旁路部署

典型的旁路部署方案如下:

旁路部署和在线部署相比复杂了不少,主要包含了以下几个方面:

流量检测

旁路部署一般有专门的流量检测系统,通过对分光的镜像流量进行分析以判断异常流量,并触发调度系统,进行异常流量清洗或者丢弃操作;

流量牵引

流量牵引即控制端向清洗设备发送清洗指令,清洗设备和核心路由器进行交互,通过BGP协议等方法指定IP流量牵引到清洗设备上;

流量清洗

清洗设备对牵引来的流量进行攻击识别,并对攻击报文进行过滤和清洗;

流量回注

清洗设备将清洗后的流量回注的核心路由器上,核心路由器将这些流量引导至正常用户网路中;

混合部署

一些混合型的部署也有着一定的意义,比如可以对在线部署进行改造,清洗设备不直连用户网交换机,而是放在旁路位置,仍然使用流量回注的方式确保非环路的连通;这种情况下,尽管没有专门的流量检测模块做镜像流量分析,仍然可以保持调度系统对清洗设备的各种策略控制,部署实例如下:

如上所述,这种混合方案实质上是清洗设备的旁路部署,但形式和效果上是一种在线方案(可切换到旁路效果),并确保核心调度对牵引和回注的绝对控制和灵活性。

流量牵引和回注

流量牵引和回注的过程如下:

牵引

当检测到异常流量需要清洗时,发送牵引命令到清洗设备,此时清洗设备会向最近的路由器发送一条被攻击网段的BGP路由(no-advertise属),指定下一跳地址为清洗设备,且路由不需要全网扩散。

由于BGP策略优先于普通路由,所以流量的下一条地址指定为清洗设备。

除BGP外,策略路由和MPLS等都可以实现流量牵引的技术。

回注

同流量牵引一样,回注的过程同样通过指定路由器策略实现,避免清洗设备中流量到达路由器后形成环路。

流量回注一般可以采用3种方式,策略路由、路由策略和vlan。

策略路由优先于普通路由,可以在报文入口指定下一跳地址,从而流量回注时优先命中策略路由,而不是清洗设备;

GRE和MPLS协议可以指定报文的目标地址,将回注流量封装成GRE或MPLS报文,发送回核心路由器,核心路由器将GRE和MPLS报文转发给目标地址设备,目标设备解析GRE和MPLS报文,发送到用户网络,从而避免形成环路;

利用Vlan的二层转发特点(交换机可以通过mac地址定位vlan端口,否则向vlan内所有端口发送报文),将清洗设备和目标设备配置在同一个vlan内,实现回注的流量达到用户网路的目的。

   
次浏览       
相关文章

企业架构、TOGAF与ArchiMate概览
架构师之路-如何做好业务建模?
大型网站电商网站架构案例和技术架构的示例
完整的Archimate视点指南(包括示例)
相关文档

数据中台技术架构方法论与实践
适用ArchiMate、EA 和 iSpace进行企业架构建模
Zachman企业架构框架简介
企业架构让SOA落地
相关课程

云平台与微服务架构设计
中台战略、中台建设与数字商业
亿级用户高并发、高可用系统架构
高可用分布式架构设计与实践
最新活动计划
LLM大模型应用与项目构建 12-26[特惠]
QT应用开发 11-21[线上]
C++高级编程 11-27[北京]
业务建模&领域驱动设计 11-15[北京]
用户研究与用户建模 11-21[北京]
SysML和EA进行系统设计建模 11-28[北京]

专家视角看IT与架构
软件架构设计
面向服务体系架构和业务组件
人人网移动开发架构
架构腐化之谜
谈平台即服务PaaS


面向应用的架构设计实践
单元测试+重构+设计模式
软件架构师—高级实践
软件架构设计方法、案例与实践
嵌入式软件架构设计—高级实践
SOA体系结构实践


锐安科技 软件架构设计方法
成都 嵌入式软件架构设计
上海汽车 嵌入式软件架构设计
北京 软件架构设计
上海 软件架构设计案例与实践
北京 架构设计方法案例与实践
深圳 架构设计方法案例与实践
嵌入式软件架构设计—高级实践
更多...