Contents

SDN-RDCD: A Real-Time and Reliable Method for Detecting Compromised SDN Devices

Zhou H , Wu C , Yang C , et al. SDN-RDCD: A Real-Time and Reliable Method for Detecting Compromised SDN Devices[J]. IEEE/ACM Transactions on Networking, 2018, PP(99).

本文目标是通过一个审计器检测被挟持的SDN设备,实验结果并未与其他进行比较,因为他声称自己的正确率有100,但是并没有提供检测具体哪个设备被挟持。

背景介绍

目前的检测方法都是在假设Controller正常的情况下进行的,本文方法是在Controller和Switch均不可信的情况下进行,主要思想是利用备份控制器对当前设备进行检测,进行检测的设备称为审计器(我是这么翻译的),选自slave Controller,使用分布式控制器的场景如图1所示:每个switch被一个master controller管理和几个backup controller管理,当master失效后,会从backup里选一个当master。

https://s2.ax1x.com/2019/04/02/A67oO1.md.png

本文算法

假设

攻击者所劫持的controller数和switch数不知道,且都有root权限,这里需要假设至少一个switch被劫持且至少一个与其相关的审计器未被劫持。

原则

审计器中每条记录需要收集的信息:网络更新请求request,master对该request执行结果,switch收到的更新指令,switch更新后的状态。审计器的每个记录会创建一个审计ID,审计器会计算结果(与master所做的工作相同),并与master比较,如果不一样,就发出警告,说明master被黑,异构控制器作为审计器会更加适合。具体过程为:master会mirror每个收到的update request给auditor,auditor依ID创建审计记录,并重新执行,最后将从master那收到的结果和自己的结果作比较;同时,switch mirror所有的PACKET_IN,instruction,state给它所有的auditor。每条审计记录包含的内容有:网络更新请求request,master的执行结果 $R_{M}$,审计器执行结果$R_A$,switch收到的更新指令$I_S$,相关switch的更新状态$R_S$,可见图2解(这里的request本质上是一个PACKET_IN消息,是switch收到不知如何处理的包时发送给Controller的一个消息):

https://s2.ax1x.com/2019/04/02/A6qffS.md.png

审计结果如下:

  • $R_M=I_S=R_S=R_A$正常
  • $R_M=I_S=R_S \neq R_A$ master被挟持。
  • $R_M=I_S \neq R_S$ switch被挟持。
  • $R_M \neq I_S$中间人攻击
  • switch没接到指令自己更新了,

审计器如果收到一个request就创建一个审计记录,如果是其他的审记消息就把他加入到相应审计ID的记录里,如图3

https://s2.ax1x.com/2019/04/02/A6qbT0.md.png

SDN-RDCD algorithm for controllers

本部分是对algorithm1中使用参数进行了相关解释,算法说明跟叙述相同。

Effectiveness Analysis

如果所有的审计器都被挟持或所有的master和switch都被hacker,这就测不出来,否则只要有一个审计器可用,则可以发出警告并通过日志找到原因。 证明算法有效:$P’$指有SDN-RDCD时被hijack的概率,$P$指没有SDN-RDCD时被hijack的概率,M指master被挟持,S指所有相关的switch被挟持,A指每一个auditor都被挟持。则: $$P=P(M\cup S)=P(M)+P(S)-P(M\cap S) \tag{1}$$ $$P’=P((M\cap A)\cup(M\cap S)\cup S)=P((M\cap A)\cup S)=P(M\cap A)+P(S)-P(M\cap A\cap S)\tag{2}$$

$P要小于P’$,同时,攻击者很可能未察觉RDCD在运行从而关闭它,因此RDCD更安全,安全加强程度计算公式如下: $$\Delta P=P-P’=P(M)-P(M\cap S)-P(M\cap A)+P(M \cap A \cap S) \tag{3}$$ 图4是相应图解。

https://s2.ax1x.com/2019/04/02/A6vLz8.png

如果M与S和A独立,则式3可简化为: $$\Delta P=P-P’=P(M)(1-P(S \cup A)) \tag{4}$$ 令能被检测出来的概率为$P_S$,则可计算出: $$\begin{aligned}P_S&=1-P(A\cup(M\cap S)\cup S)\&=1-P(A\cup S)\&=1-P(A)-P(S)+P(A\cap S)\end{aligned} \tag{5}$$

##系统实现

  • controller利用分布式技术同步信息
  • switch状态更新通过在OF协议中添加ID字段从而方便审计器处理
  • switch发送消息给审计器通过添加与FLOW_REMOVED(交换机发送消息给controller的一种方式)相同机制,并且只发送给审计器。
  • 路由状态更新时需要将更新内容和ID发给审计器。

##overhead analysis 作者总结为可乎略不计

#评估 两个部分:评估监测率、监测时间,评估CUP和内存 其本拓扑如图5

https://s2.ax1x.com/2019/04/02/A6zD41.md.png

switch环境:quad-core CPU(Intel Xeon 2.5GHz),16G memory Master:quad-core CPU(Intel Xeon 2.5GHz),16G memory Auditor:Master:quad-core CPU(Intel Xeon 2.4GHz),16G memory host1发送PACKET_IN以查host9的位置,每秒5个,300s共1500个,每个都使用不同的源和目的端口 如果控制器被挟持,则控制器安排的路径为蓝色(攻击者安排的路径)而不是最优的红色,switch也是如此。 ##有效性和性能 图6,7

https://s2.ax1x.com/2019/04/02/AcSp80.png

有效性为100%,对被挟持的master测试时间为1.926ms,对被挟持的switch测试时间为7.486ms。 ##overhead evaluation

https://s2.ax1x.com/2019/04/02/AcS0sS.png

在有RDCF和无RDCF两种情况下比较,图8,9,10分概率分布,表达结果为:RDCD占用资源很少。 图11,12,13为这三种设备的内存使用性况概率分布

https://s2.ax1x.com/2019/04/02/AcSIZ4.png

结果也是占用资源很少 图14,15,16是这三种设图带宽占用概率分布,结论也是占用资源很少。

https://s2.ax1x.com/2019/04/02/AcSqRx.md.png