一种拓扑污染攻击防御方法和系统技术方案

技术编号:19126219 阅读:36 留言:0更新日期:2018-10-10 07:40
一种拓扑污染攻击防御方法和系统,用于SDN网络,该方法包括:1)通过监听SDN控制器收到的Packet‑In消息,记录网络中主机,判断该主机是否是真实的主机,所述真实主机是指该主机使用本机的IP和MAC地址发送主机流量;2)通过监听SDN控制器下发流表项信号和SDN交换机上传的流表项删除消息,维护每个交换机端口流表项的记录表,并且通过该表判断某个端口的主机是否离开了网络,以防止流量劫持攻击;3)通过给SDN控制器下发的LLDP包加上随机字符串作为校验字段,并对SDN控制器收到的LLDP包进行检查,以防止利用LLDP包来伪造链路的攻击。本发明专利技术可同时用于防御流量劫持攻击和链路伪造攻击,适用范围较广且开销小。

【技术实现步骤摘要】
一种拓扑污染攻击防御方法和系统
本专利技术涉及网络控制领域,特别是涉及一种网络拓扑污染攻击防御方法和系统。
技术介绍
SDN(SoftwareDefinedNetwork,软件定义网络)起源于2006年斯坦福大学的CleanSlate研究课题,2009年SDN的概念正式被提出。此后SDN相关技术迅速开展起来,成为近年来的研究热点,并且越来越多的公司部署了SDN相关技术,例如,谷歌采用SDN技术优化其数据中心互连。随着相关技术研究增多,SDN安全性也越来越引起人们的重视。与传统网络不同,SDN是逻辑上集中的网络。在SDN中,控制器负责计算网络路由,实现网络路由选择;交换机通过查找流表项并执行其操作,实现数据包的转发。为了实现网络管理和可编程性,控制器需要维护网络拓扑信息,并且向上层应用和服务(例如负载均衡和最短路径路由服务等)提供拓扑信息。在SDN中,通常是由控制器中的拓扑管理服务维护拓扑信息,拓扑管理服务包含三个部分功能:1)发现交换机;2)发现主机;3)发现链路。主机发现原理:当交换机收到由新接入网络的主机发送的网络包时,会向控制器报告这个网络包。控制器通过该消息获取主机的信息(主机的物理地址、IP地址、位置信息等),然后下发相关的流表项。当再次收到交换机询问规则的消息时,控制器根据该消息查询是否存储过该主机,如果查到主机,但是位置信息不匹配,就认为主机位置发生了改变,然后更新控制器存储的该主机的位置信息。然而整个过程缺少认证步骤,攻击者通过发送伪装主机的消息,就可以伪装网络中的某台主机。链路发现原理:控制器使用开放流量发现协议(OFDP)动态检查SDN交换机之间的有效链路,该协议通过发送链路层发现协议(LLDP)包来实现。如图1所示,控制器每隔一段时间向SDN交换机发送LLDP消息,SDN交换机X转发该LLDP包,下一跳交换机Y收到来自交换机X的LLDP包后转发给控制器,控制器通过该消息就可以学习到一条从交换机X到交换机Y的单向链路。目前已知的拓扑管理服务漏洞存在于主机发现和链路发现这两个部分,存在的攻击主要分为两类:流量劫持攻击和链路伪造攻击。流量劫持攻击:如图2所示,攻击者使用网络服务器的物理地址、IP地址向直连SDN交换机发送数据包。按照主机发现服务流程,由于攻击者发送的数据包是新流的数据包,SDN交换机会报告给控制器,而控制器无法验证数据包发送者是否为合法的用户,会依据该消息的内容认定网络服务器的位置已经发生的移动。在完成转发流表项下发更新后,后续如果有其他正常主机试图访问该网络服务器时,由于拓扑管理信息中该服务器的位置已变更为攻击者所在的位置,所以正常用户的访问流量都会被转发到攻击者处,导致用户无法访问该服务器。链路伪造攻击:分为两种,一种是注入伪造LLDP包,即攻击者给直连的交换机发送伪造的LLDP包发起攻击。如图3a所示,通过监控来自SDN交换机的流量,攻击者能够获得真实的LLDP包,并且很容易破解LLDP包里每个字段的语义。攻击者按照LLDP包格式,根据攻击需求伪造相应的LLDP包,或者直接修改真实的LLDP包,例如,将LLDP包中DPID、端口号进行修改,再将其发送给直连SDN交换机A。当交换机A收到LLDP包后,便会给控制器发送该LLDP包。于是,控制器就会学习到一条攻击者伪造的链路。另一种是重复LLDP包,即攻击者将一台目标交换机发来的LLDP包重放给另一台目标交换机,这样就在两台交换机之间构造出一条虚假链路。攻击场景如图3b所示,攻击者控制多台主机,预先找好适合重放的主机,攻击者通过与交换机Y直连的重放主机控制其他被攻陷的主机。图3b中,虚线是控制器视角下两个主机之间的通信信道(该信道是由攻击者构造),实线表示的是实际的通信信道。当主机A收到来自X的LLDP包时,攻击者让主机A通过隧道等方式将LLDP包发给重放主机。攻击者根据攻击需求让重放主机将LLDP包也以同样方式发送给主机B,主机B将LLDP包发给与之直连的SDN交换机Z。当交换机Z收到LLDP包时候,按照正常的处理步骤发送给控制器,控制器便学习到一条由攻击者伪造的不存在的链路。存在这两类攻击的主要原因是,目前控制器缺少对网络拓扑消息的验证,无法保证拓扑信息的真实性。因此对于网络链路信息,控制器无法辨别消息的真伪,故攻击者篡改其内容并不会被发现。当控制器收到LLDP包时候,是默认它为真实的LLDP包。攻击者利用这样的漏洞可以在网络中伪造出虚假的主机和链路,进而可以导致网络中信息传输的混乱、网络崩溃甚至是网络被攻击者完全控制。目前存在的拓扑污染防御方案中比较典型的是TopoGuard,该方案是通过验证主机迁移的前置和后置条件,来判断是否存在主机位置劫持攻击。主机迁移的前置条件是控制器收到端口的Port_Down信号;后置条件是迁移结束以后,控制器给该主机原来的位置发送ICMP探测的结果是不可达的,确保在原来的位置上不能再访问该主机。只有满足这两个条件才能确定该主机位置移动是真实的。针对篡改LLDP包的攻击行为,该模型提出的防御措施是计算LLDP中DPID和端口号的HMAC值,通过在LLDP包中放置HMAC值来验证。针对重放,该模型使用检查发出端口的设备类型的方式来防御。该方案认为攻击主机会发送只有主机才能产生的流量,例如ARP流量。控制器根据Packet-In消息来决定该属性的值(主机或交换机)。但是该方案存在如下缺陷:1)SDN网络的原则就是将网络的控制层和数据层分离。控制层不应该执行数据层包含的功能,控制器虽然能构造LLDP等网络包,但是ICMP是数据层的数据包,由控制器来构造就违背了SDN的设计原则,会造成控制器功能和执行的混乱。2)在LLDP包中加入HMAC值验证LLDP包的真实性的方案是很容易绕过的。攻击者使用两台主机分别连接到不同的SDN交换机,一台用于监听LLDP包,提取出HMAC、DPID和端口号,另一台根据提取的信息,再向网络中注入伪造LLDP包,即可绕开防御。因为每个端口每次发送的LLDP包中HMAC值都是固定不变的,所以只要分析出HMAC值,该防御方案就会失效。所以,仅仅是使用不变的HMAC值是无法进行有效防御攻击的。3)控制器存储每个端口所连接的设备类型,这种方式所需的存储空间有些部分可能会存在浪费,因为在很多情况下,每台交换机的每个端口上在不同时间可能会连接多个网络设备。以上
技术介绍
内容的公开仅用于辅助理解本专利技术的专利技术构思及技术方案,其并不必然属于本专利申请的现有技术,在没有明确的证据表明上述内容在本专利申请的申请日已经公开的情况下,上述
技术介绍
不应当用于评价本申请的新颖性和创造性。
技术实现思路
本专利技术所要解决的技术问题是:针对现有防御机制的不足,提出一种拓扑污染攻击的防御机制,可同时用于防御流量劫持攻击和链路伪造攻击,适用范围较广且开销小。为实现上述目的,本专利技术采用以下技术方案:一种拓扑污染攻击防御方法,用于SDN网络,包括:1)通过监听SDN控制器收到的Packet-In消息,记录网络中主机,判断该主机是否是真实的主机,所述真实主机是指该主机使用本机的IP和MAC地址发送主机流量;2)通过监听SDN控制器下发流表项信号和SDN交换机上传的流表项删除消息,维护每个交换机端口流表项的记录本文档来自技高网
...
一种拓扑污染攻击防御方法和系统

【技术保护点】
1.一种拓扑污染攻击防御方法,用于SDN网络,其特征在于,包括:1)通过监听SDN控制器收到的Packet‑In消息,记录网络中主机,判断该主机是否是真实的主机,所述真实主机是指该主机使用本机的IP和MAC地址发送主机流量;2)通过监听SDN控制器下发流表项信号和SDN交换机上传的流表项删除消息,维护每个交换机端口流表项的记录表,并且通过该表判断某个端口的主机是否离开了网络,以防止流量劫持攻击;3)通过给SDN控制器下发的LLDP包加上随机字符串作为校验字段,并对SDN控制器收到的LLDP包进行检查,以防止利用LLDP包来伪造链路的攻击。

【技术特征摘要】
1.一种拓扑污染攻击防御方法,用于SDN网络,其特征在于,包括:1)通过监听SDN控制器收到的Packet-In消息,记录网络中主机,判断该主机是否是真实的主机,所述真实主机是指该主机使用本机的IP和MAC地址发送主机流量;2)通过监听SDN控制器下发流表项信号和SDN交换机上传的流表项删除消息,维护每个交换机端口流表项的记录表,并且通过该表判断某个端口的主机是否离开了网络,以防止流量劫持攻击;3)通过给SDN控制器下发的LLDP包加上随机字符串作为校验字段,并对SDN控制器收到的LLDP包进行检查,以防止利用LLDP包来伪造链路的攻击。2.如权利要求1所述的拓扑污染攻击防御方法,其特征在于,通过在SDN控制器拓扑管理服务中添加网络拓扑信息的验证功能来实现所述方法。3.如权利要求1所述的拓扑污染攻击防御方法,其特征在于,步骤2)中,通过监听SDN控制器下发的Flow-Mod消息和Flow-Delete消息来判断某个端口的主机是否离开网络。4.如权利要求1至3任一项所述的拓扑污染攻击防御方法,其特征在于,步骤1)通过监听SDN交换机向SDN控制器发送的含有主机ARP消息的Packet-In消息来学习主机的信息,并在主机信息表中记录下来;当一台主机在预定时间内没有发送流量,该主机直连的SDN交换机上关于该主机的流表项全部过期后,该主机又开始发送流量时,在主机列表中并不存在该主机的信息,SDN控制器收到关于该主机的Packet-In消息后,将该主机的信息重新加入主机列表。5.如权利要求1至4任一项所述的拓扑污染攻击防御方法,其特征在于,步骤2)中,当检测到主机直连的SDN交换机上所有关于该主机的流表项全部过期时,判断该主机离开了网络;如果主机达到预定长时间没有发送流量,SDN控制器通过分析由SDN交换机向SDN控制器发送的Packet-in消息,将该主机的信息再次加入主机列表;流表项的记录表记录每个端口直连主机流入网络的流的有效的流表项条数,通过对每个...

【专利技术属性】
技术研发人员:李琦张云徐明伟王骞江勇
申请(专利权)人:清华大学深圳研究生院
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1