Contents

dFence: Transparent Network-based Denial of Service Mitigation

Mahimkar A , Dange J , Shmatikov V , et al. dFence: Transparent Network-based Denial of Service Mitigation[J]. Nsdi ’, 2007:24-24.,

本文通过添加dFence中间设备,实现透明的DoS防御。图1架构图,将中间设备透明插入可能受攻击的主机前并拦截所有流量。

https://s2.ax1x.com/2019/04/19/EptP10.png

Transparent Middlebox Invocation

本部分讲如何透明调用中间设备,网络不用了解中间设备存在于否。要解决的问题有:1.双向流拦截,指定流固定到中间设备;2.动态状态管理;3.中间设务错误恢复

Dynamic Traffic Interception

当前存在的方法无法满足我们的需要。

Inbound traffic interception

通过使用iBGP和隧道技术来拦截inbound流量,iBGP在本在AS发路由表到所有的S,这样所有的目标主机的流量都被定位到一个固定的(dFence Middle box)M上。具体步骤: 见图2a

https://s2.ax1x.com/2019/04/19/EpNmqS.png

  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)

Outbound traffic interception

为达到这样的目的,hash函灵敏定义为:更换sIP和dIP计算得到的Hash值不变。 $h_{1}\left(\operatorname{src} a d d r, \operatorname{src}{-} p o r t\right) \oplus h{2}\left(d s t_{-} a d d r, d s t_{-} p o r t\right)$ 使用PBR交付所有目的主机流量到M。如图2b

  1. 若满足ACL-from-S而交付到一个M上,这里是M4
  2. M找HM,这里是M3
  3. 处理后正常交付即可。

Dynamic State Management

当M介入或移除时,分别引入启动时间$T_b$和移除时间$T_r$。

  1. state bootstrapping:在$T_b$内,所有已有的双向连接都视为合理。
  2. state removal:在$T_r$内,对新来的连接不应用策略。 经过分析,启动时间设为5或10秒较合理,移除时间稍长以处理完连接。移除决策只能由M自己作出。

Falure Recovery and load balancing

可能的出错原因有:power outage,hardware malfunciton,software errors,network outages,..。 解决办法:优雅地流转移。即通过转移处理流的HM来解决出错和负载平衡。 所有的M都维护一个全局home Hash表,对于某个流识别f,计算hash:h(f),再通过HM(h(f))找到它的HM。

Failure rcovery

所有的dF设备连成一个逻辑环,可通过R.next(Mi)递归找到每一个设备。当Mi失效时,则R.next(Mi)接替Mi的工作。

Load balancing

与上面相似,假如M1过载,而通过 HM(e)=M2将e从M1转到M2.

Middlebox Disign.

M维护的TCP连接主要分两类:M引进前和M引进后。 M主要维护连接的一个Connection Hash表,表项由FlowID(sIP,dIP,sP,dP)作键,表项组成:

  • flow definition
  • offset:C和S的序列号差值,后面会讲到。
  • Timestamp:连接最近一次的包到达时间
  • service bits:

https://s2.ax1x.com/2019/04/19/EpdFPJ.png

  • inboundPacketRate:每个时间间隔到达的包数。

另个还有个Src-Dest表,记录同样sIP-dIP的连接数,超过阈值就禁止建立新的连接。 再另外,对于目的主机S主动发送的连接使用Bloom filter来维护。

Mitigation Policies

本文要实现的目标是透明实现DoS防御,攻击形式:SYN flood,Smurf-type,reflection attacks。

Mitigation spoofed attacks

  • network-based SYN cookie generation 过程图见图4

https://s2.ax1x.com/2019/04/19/EpB3RJ.png

当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 也可用上面的机制解决。

Mitigation unspoofed attacks

  • Unspoofed data floods:过于占用带宽,M拦截S的ACK,使C减速,项不减速则弃包。
  • Too many unspoofed connection:控制Zombie完成握手,控制src-dst连接数在一个合理的范围。
  • NAPTHA attacks:攻击都关闭TCP并不发送FIN,M通过时间,是就RST
  • Botnet attack:黑客控制上些机器对victim进行HTTP或其他请求轰炸,通过流量统计或ISP的/24前缀白名单优化。因为zombie 机器通常sparsely distributed,因此有效。

Evasions and Attacks on Middlebos

  • exhausting the connection state。即填满Connection表。限制单主机连接数量,只保留未欺骗源的状态。
  • Adaptive traffic variation:你on 我off,你off 我on。避免快速加入或退出M。
  • werewolf attack:先正常连接,连上后再攻击你。定期检查流发送率和白名单。
  • Multiple attacks:增加MiddleBox数据 policy desion tree见图5,这个和Avant-guard有点像。

https://s2.ax1x.com/2019/04/19/Epynl4.md.png

implementation

控制平面流量截取XOPR,数据平面攻击缓解IXP(这个并不是SDN里的那个。)完整设计可见图6a,控制平面利用BGP和IGP来进行路由决策并更新交付表。

https://s2.ax1x.com/2019/04/19/EpyoNV.png

  • 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等信息。

评估

Micro benchmarks

  • lantency:各个功能的处理时间见到表1.

https://s2.ax1x.com/2019/04/19/Ep6EDA.png

  • 吞吐量:见表2,单位为:Kpps (kilo packets per second)。

https://s2.ax1x.com/2019/04/19/Ep6M8S.png

end-to-end benchmarks

服务器:1GHz Intel P-3 processor 256MB RAM,256KB cache,Apache Web Server Linux 2.4.20 kernel。评估:连接时间和最大TCP吞吐量。结果见图7

https://s2.ax1x.com/2019/04/19/Ep6sbR.png

  • Lantency:7a,x轴为攻击率,y轴为连接时间。
  • 吞吐量:10s时加入M,可见加入M后吞吐量随之恢复正常。