@EggGump
2019-04-03T08:50:56.000000Z
字数 2620
阅读 618
security
本文目标是通过一个审计器检测被挟持的SDN设备,实验结果并未与其他进行比较,因为他声称自己的正确率有100,但是并没有提供检测具体哪个设备被挟持。
目前的检测方法都是在假设Controller正常的情况下进行的,本文方法是在Controller和Switch均不可信的情况下进行,主要思想是利用备份控制器对当前设备进行检测,进行检测的设备称为审计器(我是这么翻译的),选自slave Controller,使用分布式控制器的场景如图1所示:每个switch被一个master controller管理和几个backup controller管理,当master失效后,会从backup里选一个当master。
攻击者所劫持的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的执行结果 ,审计器执行结果,switch收到的更新指令,相关switch的更新状态,可见图2解(这里的request本质上是一个PACKET_IN消息,是switch收到不知如何处理的包时发送给Controller的一个消息):
审计结果如下:
审计器如果收到一个request就创建一个审计记录,如果是其他的审记消息就把他加入到相应审计ID的记录里,如图3
本部分是对algorithm1中使用参数进行了相关解释,算法说明跟叙述相同。
如果所有的审计器都被挟持或所有的master和switch都被hacker,这就测不出来,否则只要有一个审计器可用,则可以发出警告并通过日志找到原因。
证明算法有效:指有SDN-RDCD时被hijack的概率,指没有SDN-RDCD时被hijack的概率,M指master被挟持,S指所有相关的switch被挟持,A指每一个auditor都被挟持。则:
,同时,攻击者很可能未察觉RDCD在运行从而关闭它,因此RDCD更安全,安全加强程度计算公式如下:
作者总结为可乎略不计
两个部分:评估监测率、监测时间,评估CUP和内存
其本拓扑如图5
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
有效性为100%,对被挟持的master测试时间为1.926ms,对被挟持的switch测试时间为7.486ms。
在有RDCF和无RDCF两种情况下比较,图8,9,10分概率分布,表达结果为:RDCD占用资源很少。
图11,12,13为这三种设备的内存使用性况概率分布
结果也是占用资源很少
图14,15,16是这三种设图带宽占用概率分布,结论也是占用资源很少。