@EggGump
2019-04-19T12:05:48.000000Z
字数 3285
阅读 623
security
本文通过添加dFence中间设备,实现透明的DoS防御。图1架构图,将中间设备透明插入可能受攻击的主机前并拦截所有流量。
本部分讲如何透明调用中间设备,网络不用了解中间设备存在于否。要解决的问题有:1.双向流拦截,指定流固定到中间设备;2.动态状态管理;3.中间设务错误恢复。
当前存在的方法无法满足我们的需要。
通过使用iBGP和隧道技术来拦截inbound流量,iBGP在本在AS发路由表到所有的S,这样所有的目标主机的流量都被定位到一个固定的(dFence Middle box)M上。具体步骤:
见图2a
1.找M。在a中,IGP找的M是M1,但它不是HM。(home middle box,即该M是否是处理某流的M)
2.不是HM,而由M找HM,图a中由M1找M3,M3为HM。(某个特定的目标主机需要由一个M处理。)用流的hash来确认是不是HM。
3.HM通过隧道技术将包发给出口路由Rn,这里这们做是避免环。隧道技术为声明:(ACLs-to-S和ACLs-from-S)
为达到这样的目的,hash函灵敏定义为:更换sIP和dIP计算得到的Hash值不变。
使用PBR交付所有目的主机流量到M。如图2b
1.若满足ACL-from-S而交付到一个M上,这里是M4
2.M找HM,这里是M3
3.处理后正常交付即可。
当M介入或移除时,分别引入启动时间和移除时间。
1.state bootstrapping:在内,所有已有的双向连接都视为合理。
2.state removal:在内,对新来的连接不应用策略。
经过分析,启动时间设为5或10秒较合理,移除时间稍长以处理完连接。移除决策只能由M自己作出。
可能的出错原因有:power outage,hardware malfunciton,software errors,network outages,..。
解决办法:优雅地流转移。即通过转移处理流的HM来解决出错和负载平衡。
所有的M都维护一个全局home Hash表,对于某个流识别f,计算hash:h(f),再通过HM(h(f))找到它的HM。
所有的dF设备连成一个逻辑环,可通过R.next(Mi)递归找到每一个设备。当Mi失效时,则R.next(Mi)接替Mi的工作。
与上面相似,假如M1过载,而通过 HM(e)=M2将e从M1转到M2.
M维护的TCP连接主要分两类:M引进前和M引进后。
M主要维护连接的一个Connection Hash表,表项由FlowID(sIP,dIP,sP,dP)作键,表项组成:
另个还有个Src-Dest表,记录同样sIP-dIP的连接数,超过阈值就禁止建立新的连接。
再另外,对于目的主机S主动发送的连接使用Bloom filter来维护。
本文要实现的目标是透明实现DoS防御,攻击形式:SYN flood,Smurf-type,reflection attacks。
network-based SYN cookie generation
过程图见图4
当C发送SYN,M通过计算SYN cookies,并以此作为SYN-ACK序列号。此时为无状态。M与C连接阶段通过设置window=0来chock防止C发数据,这很重要,若C未完成连接即可丢弃。
M与C握后完成,创建Connection和Src-Dest表项,此时,M与S握手,序列号为C的SYN序列号。
当M与S完成shake,就用再chock,此时要维扩展护一个序列号偏移offset。
当要中继时,可通过offset来进行序列号转换,该如何处理可以通过service bit来决定。
Spoofed data floods and reflector attacks
也可用上面的机制解决。
控制平面流量截取XOPR,数据平面攻击缓解IXP(这个并不是SDN里的那个。)完整设计可见图6a,控制平面利用BGP和IGP来进行路由决策并更新交付表。
* Control plane interception: 当有攻击时,M拦截,利用iBGP使所有的victim的流量通向M,并设定隧道和ACL规则来配置egress以防止环路。
* Data plane mitigation:使用Shangri-La framework 实现IXP,将攻击缓解实现成一个包处理函数映射。如图6b。
* Control-data planes interaction: XORP和IXP之间使用ioctl()和系统调用来交流。XORP运行BGP/IGP并在数据平面上庙宇MAC/IP下一跳IP,PORT等信息。
lantency:各个功能的处理时间见到表1.
吞吐量:见表2,单位为:Kpps (kilo packets per second)。
服务器:1GHz Intel P-3 processor 256MB RAM,256KB cache,Apache Web Server Linux 2.4.20 kernel。评估:连接时间和最大TCP吞吐量。结果见图7
* Lantency:7a,x轴为攻击率,y轴为连接时间。
* 吞吐量:10s时加入M,可见加入M后吞吐量随之恢复正常。