crossPath attack:通过共享链路攻击控制平面读书笔记
文章目录
abstract
利用控制流量和数据流量共享的链路,利用精心设计的数据流里破坏控制流量的转发。
本文值得学习:各种图表的使用,实验环节,数据建模环节。
introduction
链路共享的这种思想是很常见的,因为他可以降低成本。攻击者首先要找到目标共享链路,但是这对于终端用户是很难的。传统网络一些探测工具也是无效的。本文展示了对抗路径侦查发现共享路径
。
根据思想:如果出现短期突发流量,控制平面的消息会延迟,本文展示了一种探测方法找到目标链路
。
为了证明我们的攻击是有效的,实验了四个典型的sdn应用。
文章的主要贡献:
展示了一种攻击方法;
发展一种探测技术寻找包含共享链路的目标链路。
threat model
流表被动下发,in-band 控制通道。攻击者至少已经控制了一台主机。
the crossPath attack
攻击者通过生成共享链路的数据流量干扰控制流量的传输。首先攻击者需要首先探测目标链路:也就是和控制流量共享的链路。
如上图,h1 h3通信链路为h1->s2->s3->s4->h3
s2和控制器通信链路为s1->s3->s5->c
所以链路s2 s3为共享链路。
adversarial path reconnaissance
如果共享链路数据大爆发,控制路径延迟会变高,基于这个发现,我们实现我们的探测。
两个阶段:第一是测量控制平面延迟
第二辨别目标路径。
stage 1
measuring delay of control path
一些数据建模,大概意思为,一个新数据包(需要向控制器发出请求)到达控制器的往返时间减旧数据包(流表可以匹配)的往返时间等于 控制器下发控制信息的时间。
stage 2
identifying target data path
发送两类数据包: timing stream
time stream 需要是一种收到响应的包,这样可以测量RTT。
这种类型的包有很多,例如icmp, TCP 等。
time stream需要包含一对数据包:第一个数据包触发新流安装第二个匹配新安装的规则。
可以首先等待足够的时间之后,发送第一个数据包,然后收到第一个回复之后马上发送第二个。
计算一个时间δ。
一般而言,流表的超时时间30s足够了。
第二类数据包: testing stream
等到第一种流过期之后,我们在发送短期爆发流的同时发送测试包测量。
计算一个时间δ‘
如果δ‘ 远大于δ, 那么说明短期爆发的数据包链路中包含共享链路。
如果两者相近,那么说明不包含。
improved reconnaissance
T-test
上述的方法虽然短短的数据包可以计算出时间,但是受到噪音因素影响大,可以通过T-test 提高精确度。
parallelization
每个网络有若干链路,每条链路如果都使用上述的T-test,并且发送测量数据包之前需要等待一个超时时间,那么测完整个网络的效率非常低下,需要等待很长的时间。一些链路之间可以并行测试提高效率。
Defense Against the CrossPath Attack
文中在附录中提到两种防御手段,首先可以使用优先级的方法,为控制信息提供更高的优先级,在交换机中由于控制信息优先级更高,率先被转发,控制平面不受影响。
一些交换机并不支持优先级的实现,所以可以采用链路预留的手段。