
技术摘要:
本发明公开了一种针对SDN的虫洞攻击的检测方法,其包括通过使用Packet‑Out报文、Packet‑In报文和心跳包,来计算各交换机之间路径的延迟数据,比较新加入链路的延迟超过已有路径延迟的150%所占的比例,当比例超过所设定的阈值时,控制器认定此路径为恶意链路,链路两 全部
背景技术:
软件定义网络(Software Defined Network,SDN)的出现为未来的网络提供了一 种 新的网络设计结构。与传统网络不同,SDN将控制面与数据面分离,从而提供了整体的 网络逻辑可见性和灵活的可编程性。许多企业都对其展现了极大地兴趣,以谷歌为代表 的 一些企业,已经在他们的网络中部署了SDN。 在正常的SDN网络中,控制器通过与链路层发现协议(LLDP)相关的OpenFlow 发现 协议(OFDP)来发现网络拓扑。但是,在LLDP中,存在两个缺点:(1)、LLDP 的语法简单,伪造 LLDP包并不困难;(2)、没有关于LLDP包的认证机制。由于这些 缺点,SDN的链路发现服务已 经被证实并不安全。Hong等人利用这些缺陷伪造了LLDP 包,从而宣称两个实际并不相连的 远程交换机通过一条伪造的链路。这样,SDN控制器 将获取到一个错误的网络拓扑,并且将 数据流导向这条伪造链路。攻击者进一步可以借 助辅助带内通路,便能在SDN中实现伪造 链路上的信息传递,从而构造SDN网络中的 虫洞攻击。因此,为了保证网络拓扑的完整性, 针对SDN中虫洞攻击的探测算法研究 便具有深远意义。 与无线网类似,SDN中的虫洞攻击的目标是使控制器误以为两个并不相邻的交换 机 是直接相连的。这样,由于伪造的链路是最短最优路径,控制器会将原本不会经过受控 交换机的流量导向这两个交换机。之后,攻击者可在两个受控交换机之间,选择一条可 行 的带内路径,将数据包沿此路径转发。转发过程中,数据包的源地址和目的地址字段 会进 行修改,借此避免被控制器探测到。详细来说,如图1所示,在连接到S3的子网 中,攻击者选 定一个恶意中继主机。之后,当S1接收到要转发给S5的数据包时,S1 会将数据包伪装成从 它的子网发送给中继主机的数据包。这可以通过在交换机中已有的 替换数据包地址的动 作来实现。然后,中继主机再一次修改数据包的地址,将它们伪装 成从中继主机转发给S2 子网中特定主机的数据包。由于保证了S3-S4-S5是最短路径, 这些数据包将会到达S5,之 后S5会恢复它们的原始地址,并按照控制器安装的流表项 将它们转发到下一跳。已有的实 验表明,虫洞攻击可以使用创造新动作、添加VLAN标 签、制造MAC与IP地址不匹配关系这三 种方法来实现带内信息转发。借助虫洞攻击, 攻击者可以进一步发起DoS攻击或窃取私有 信息。 现有的虫洞攻击检测方法,均是针对无线网中的虫洞攻击所提出的。这些检测措 施 主要被分为两类:(1)、基于距离或时间约束;(2)基于图论或地理位置约束。但是, 与无 线网络不同的是,这些方法不能应用于SDN中。首先,SDN中的节点是交换机而 不是传感器, 信息通过有线网络进行传递。这意味着,网络中并不存在信号最大传输距 离这个概念。此 外,SDN的拓扑并不能轻易地进行改变,交换机之间只能通过链路进行 收发数据包,如果两 台交换机之间没有有线链路,他们便不能无视距离进行通信。更重 要的是,SDN网络通过控 制器进行控制,这使得交换机只能遵守控制器安装的流表项, 而不能执行超出它们能力的 4 CN 111556054 A 说 明 书 2/6 页 功能,从而使得传统虫洞攻击检测方法无法应用于SDN中。
技术实现要素:
发明目的:本发明针对现有技术存在的问题,提供一种针对SDN的虫洞攻击的检 测方法,该方法可以有效地检测出SDN中恶意链路和恶意交换机。 技术方案:本发明所述的针对SDN的虫洞攻击的检测方法包括: (1)当有新链路请求加入时,控制器判断SDN是否处于初始化状态,若是,则执 行 步骤(2),若否,则执行步骤(4); (2)判断新链路的起点交换机和终点交换机之间是否只有一条路径,若是,则判 定新链路为正常链路,若否,则执行步骤(3); (3)控制器获取起点交换机和终点交换机之间的最短路径,并通过报文时间戳和 心跳包时间计算该最短路径的路径延迟,执行步骤(5); (4)控制器根据已保存的链路延迟,计算新链路的起点交换机和终点交换机之间 最短路径的路径延迟,执行步骤(5); (5)控制器获取所有流经新链路的数据流,并提取出每个数据流中新链路的链路 延迟,执行步骤(6); (6)根据新链路的链路延迟和最短路径的路径延迟计算该新链路的可疑程度,若 可疑程度小于预设阈值,则判定该新链路为正常链路,否则判定该新链路为恶意链路, 判 定起点交换机和终点交换机为恶意交换机。 进一步的,步骤(3)具体包括: (3-1)控制器获取起点交换机和终点交换机之间的最短路径; (3-2)控制器获取下发往给起点交换机的Packet-Out报文时间戳; (3-3)当控制器接收到第二交换机返回的对应Packet-In报文时,获取该Packet- In 报文时间戳,其中所述第二交换机为最短路径中与起点交换机直接相连的交换机; (3-4)控制器分别向起点交换机和第二交换机发送心跳包,并记录发送与接收心 跳 包的时间戳; (3-5)根据获取的时间戳计算起点交换机和第二交换机之间链路的链路延迟为: 其中,T12为起点交换机和第二交换机之间链路延迟,t1为Packet-Out报文时间戳, t2为Packet-In报文时间戳;t1r、t1s分别为控制器向起点交换机发送与接收心跳包的时 间 戳;t2r、t2s分别为控制器向第二交换机发送与接收心跳包的时间戳; (3-6)按照步骤(3-2)到(3-5)计算最短路径中所有相邻两个交换机之间链路的 链路延迟; (3-7)将最短路径中所有直接相连的两个交换机之间链路的链路延迟相加,得到 最 短路径的路径延迟: T1n=T12 T23 ... T(n-1)n 式中,n表示最短路径中交换机数量,T1n表示最短路径的路径延迟,形如T*#表示 第*交换机和第#交换机之间链路的链路延迟。 5 CN 111556054 A 说 明 书 3/6 页 进一步的,步骤(5)中所述新链路的链路延迟的提取方法具体包括: (5-1)控制器获取下发往给起点交换机的Packet-Out报文时间戳; (5-2)当控制器接收到终点交换机返回的对应Packet-In报文时,获取该Packet- In 报文时间戳机; (5-3)控制器分别向起点交换机和终点交换机发送心跳包,并记录发送与接收心 跳 包的时间戳; (5-4)根据获取的时间戳计算新链路的链路延迟为: 其中,T1′n为新链路延迟,t1为Packet-Out报文时间戳,tn为Packet-In报文时间 戳; t1r、t1s分别为控制器向起点交换机发送与接收心跳包的时间戳;tnr、tns分别为控制器 向终点交换机发送与接收心跳包的时间戳。 进一步的,步骤(6)所述新链路的可疑程度的计算方法为: 式中,R表示可疑程度,Nsuspect表示数据流中新链路的链路延迟大于最短路径的路 径延迟T1n的150%的数据流个数,N表示流经新链路的数据流个数。 进一步的,在判定起点交换机和终点交换机为恶意交换机后,控制器通知其他交 换 机隔离该恶意交换机。 进一步的,步骤(4)中所述已保存的链路延迟为平均链路延迟,所述平均链路延 迟通过控制器周期性更新网络拓扑时获得的最新链路延迟进行更新。 进一步的,步骤(5)中所述所有流经新链路的数据流具体为:起点和终点都不是 新链路的起点交换机和终点交换机的数据流。 有益效果:本发明与现有技术相比,其显著优点是:本发明首次提出了针对SDN 网 络中的虫洞攻击的检测方法,在检测过程中所使用的检测指标仅包含链路延迟,计算 过程 所耗费的CPU和内存资源很少,不会对控制平面造成额外的负担,同时由于检测 过程轻量 级,能快速检测到攻击,因而检测效率高。 附图说明 图1是SDN网络结构图; 图2是本发明实施例提供的针对SDN的虫洞攻击的检测方法的流程示意图; 图3是三种网络拓扑图; 图4是采用本发明方法得到实验结果图。