When Match Fields Do Not Need to Match: Buffered Packet Hijacking in SDN:当匹配字段不需要匹配时:SDN中的缓冲包劫持
前述
坐标2021.1.31
有了上面的SDN基础,这篇很好理解了
SDN主要三个部分:控制面、数据面、应用程序。。。
这篇研究集中在 控制器、应用程序与新到达的flow流
下面以图为主,图全部来自原论文,如有侵权麻烦告知,立删并道歉
关于paper
当应用程序尝试安装流规则时,SDN系统不会检查缓冲区ID和匹配字段之间的不一致性。因此,恶意应用程序可以操纵缓冲区ID劫持缓冲包,即使它们与任何已安装的流规则都不匹配
论文据此设计了几种攻击方法,并设计了一个轻量级补丁
正文
SDN中的处理链
具有权限的APP需要为新流创建规则
缓冲区劫持
链内劫持
通常,APP4负责路由这个流。当PACKET_IN消息被传输到APP4时,它会在交换机中安装一个带有FLOW_MOD消息的流规则。消息包含一个指定为10.0.0.2的匹配字段、一个指定为2的缓冲区ID和一个指定为Y的操作。因此,新的流与安装的流规则匹配,并根据操作Y进行处理。同时,缓冲区ID为2的缓冲包根据操作释放和处理
假设APP3是一个恶意应用程序,在PACKET_IN消息被传输到APP4之前,恶意应用程序可以假装添加或更新它负责的流规则。它在FLOW_MOD消息中指定match字段为1.1.1.1,buffer ID为2,action为X。虽然匹配字段(1.1.1.1)和缓冲区ID为2的数据包的报头(10.0.0.2)不匹配,但是一旦交换机接收到FLOW_MOD消息,缓冲的数据包仍然被释放并根据动作X进行处理。
链间劫持
每个处理链同时接收PACKET_IN消息的副本
几种攻击方式
实现
构建了一个SDN测试平台,由商用硬件交换机EdgeCore AS4610-54T 和开源SDN控制器Floodlight 组成
分析了劫持概率和误差,以及攻击效果图
设计了补丁ConCheck
心得
T大的论文,找出漏洞还是比较难的,膜
特此声明,该博文所写均为本人自己理解,如有争议以论文原作者为准,(鞠躬