CN108833430A - 一种软件定义网络的拓扑保护方法 - Google Patents
一种软件定义网络的拓扑保护方法 Download PDFInfo
- Publication number
- CN108833430A CN108833430A CN201810700201.0A CN201810700201A CN108833430A CN 108833430 A CN108833430 A CN 108833430A CN 201810700201 A CN201810700201 A CN 201810700201A CN 108833430 A CN108833430 A CN 108833430A
- Authority
- CN
- China
- Prior art keywords
- message
- port
- link
- attack
- lldp
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种软件定义网络的拓扑保护方法,包括:初始化并维护每一个存活交换机端口的端口信息;根据收集到的Packet‑in消息,进行主机状态检测,然后根据主机状态检测结果及所维护的端口信息对LLDP报文进行分类;针对不同类型的LLDP报文,采用相应的攻击检测方法进行攻击检测;若检测到攻击报文,则将攻击报文的报文规则实时记录在控制器的过滤规则中,从而通过报文规则过滤的方式实现攻击防御;持续收集数据平面的Packet‑in消息并根据收集到的Packet‑in消息更新所维护的端口信息,同时重复执行攻击检测和防御的步骤。本发明能够有效并全面地实现对四类拓扑污染攻击都进行有效的检测与防御,同时保障SDN网络的性能。
Description
技术领域
本发明属于软件定义网络安全领域,更具体地,涉及一种软件定义网络的拓扑保护方法。
背景技术
软件定义网络(Software Defined Network,SDN)通过解耦网络控制和数据转发功能,能够实现集中式网络管理和流量调度,因而获得了广泛的应用。网络拓扑发现是软件定义网络集中式管理的基础,在多租户的云数据中心网络中,接入终端和交换机等网络单元逐渐虚拟化,云平台内部潜在的恶意节点容易通过漏洞利用、身份伪造等手段控制接入终端和交换机等资源,进而发动网络拓扑污染攻击,瘫痪整个网络。
当前所有的SDN控制器链路发现均采用OFDP(OpenFlow Discovery Protocol,OpenFlow拓扑发现协议)协议,OFDP底层是基于链路层发现协议报文实现数据交换。根据OFDP的原理可知,SDN控制器一旦接收到LLDP(Link Layer Discovery Protocol,链路层发现协议)报文就会更新链路信息,而没有任何机制确保LLDP的合法性与完整性。因此,攻击者可以很容易地注入伪造的LLDP报文进入网络,或者直接将发往某一交换机的LLDP包重放到另一个目标交换机造成LLDP报文重放攻击,从而破坏SDN控制器链路信息的正确性,造成网络拓扑的错乱,对整个网络用户带来巨大的安全隐患。
现有的SDN拓扑保护方法主要包括:通过改进当前LLDP协议,增加协议安全性;提出新的拓扑发现机制来提升安全性;设计并实现相应的拓扑保护应用,弥补当前控制器拓扑发现机制的安全漏洞。其中,改进当前LLDP协议,添加HMAC(Hash-based MessageAuthentication Code)验证LLDP报文完整性可以检测出数据包伪造攻击,但是无法检测数据包重放攻击,检测对象过于单一,存在一定局限性;提出的新协议类型如sOFTDP能够在设计上规避拓扑发现机制的安全漏洞,但其代价是改动了SDN拓扑发现约定的标准,不论控制器还是交换机都需针对新协议做出相应改变,兼容性较差;设计并实现相应的拓扑保护应用只需修改控制平面,具有较好的兼容性,也无需修改协议类型,但当前研究提出的两种方案中,一种在实现中利用控制器向数据平面主机发送了数据探测包,违背了SDN转发与控制分离的设计初衷,另一种则针对主机休眠后的链路缺少相应安全机制,存在较大安全漏洞,而且这两种方案针对交换机发起攻击并无任何防范措施。
发明内容
针对现有技术的缺陷和改进需求,本发明提供了一种软件定义网络的拓扑保护方法,其目的在于,结合SDN全局视图,对LLDP报文进行分析与类型划分,并基于当前存在的拓扑污染攻击特征利用相应的攻击检测算法,从而防御多种拓扑污染攻击,保障SDN网络拓扑的安全。
为实现上述目的,本发明提供了一种软件定义网络的拓扑保护方法,包括如下步骤:
(1)初始化并维护每一个存活交换机端口的端口信息,端口信息包括端口类型、所连接主机的MAC地址、所连接主机的状态以及消息时间戳;
(2)根据收集到的Packet-in消息,进行主机状态检测,得到与交换机端口相连的主机的状态,然后根据主机状态检测结果及所维护的端口信息对LLDP报文进行分类;
(3)针对不同类型的LLDP报文,采用相应的攻击检测方法进行攻击检测;若检测到攻击报文,则将攻击报文的报文规则实时记录在控制器的过滤规则中,从而通过报文规则过滤的方式实现攻击防御;
(4)持续收集数据平面的Packet-in消息并根据收集到的Packet-in消息更新所维护的端口信息,同时重复执行步骤(2)~(3),以实现对软件定义网络拓扑的保护。
进一步地,步骤(1)中,初始化并维护每一个存活端口的端口信息,包括如下步骤:
(11)收集数据平面的Packet-in消息;
(12)对于其中一条Packet-in消息,从其中解析出消息的上发交换机端口;
(13)若该Packet-in消息封装了LLDP报文,且其上发交换机端口的端口信息未被初始化,则将该交换机端口的端口类型设置为第一端口类型,用于表示该交换机端口与交换机内部链路相连,从而初始化该交换机端口的端口信息;
若该Packet-in消息封装了主机流表项请求数据包,且其上发交换机端口的端口信息未被初始化,则将该交换机端口的端口类型设置为第二端口类型,用于表示该交换机端口与主机相连,同时从主机流表项请求数据包中解析出数据包的源MAC地址,并获取请求时间,然后分别记录在该交换机端口所连接主机的MAC地址和消息时间戳中,从而初始化该交换机端口的端口信息;
(14)对于收集到的每一条Packet-in消息,分别执行步骤(12)~(13),以初始化每一个存活端口的端口信息。
进一步地,步骤(2)中,根据收集到的Packet-in消息,进行主机状态检测,包括如下步骤:
(21)若Packet-in消息封装了主机流表项请求数据包,则从该Packet-in消息中解析出消息的上发交换机端口,并进一步获得该交换机端口的端口信息中记录的消息时间戳time_stamp,并转入步骤(22);否则,检测结束;
(22)从该Packet-in消息所封装的主机流表项请求数据包中解析出源MAC地址,从而定位与该交换机端口相连的主机;
(23)根据当前时刻time_now、交换机主机流表项最大存活时间max_time_out以及消息时间戳time_stamp,计算该主机的超时时间time_out,计算公式如下:
time_out=max_time_out-(time_now-time_stamp);
(24)若time_out>0,则判定该主机的状态为存活;否则,判定该主机的状态为休眠。
进一步地,步骤(2)中,根据主机状态检测结果及所维护的端口信息对LLDP报文进行分类,包括:
若Packet-in消息没有封装LLDP报文,则不做处理;
若Packet-in消息封装了LLDP报文,则根据所维护的端口信息获得该Packet-in消息的上发交换机端口的类型;若该Packet-in消息的上发交换机端口类型为第一端口类型,则将其中封装的LLDP报文的类型划分为第一报文类型;若该Packet-in消息的上发交换机端口类型为第二端口类型,且该交换机端口所连接主机的状态为存活,则将其中封装的LLDP报文的类型划分为第二报文类型;若该Packet-in消息的上发交换机端口类型为第二端口类型,且该交换机端口所连接主机的状态为休眠,则将其中封装的LLDP报文的类型划分为第三报文类型;
其中,第一端口类型的交换机端口与交换机内部链路相连,第二端口类型的交换机端口与主机相连。
进一步地,步骤(5)中,针对不同类型的LLDP报文,采用相应的攻击检测方法进行攻击检测,包括:若LLDP报文的类型为第一报文类型,则采用基于链路端口重用的攻击检测方法进行攻击检测;若LLDP报文的类型为第二报文类型,则判定该LLDP报文为攻击报文;若LLDP报文的类型为第三报文类型,则采用基于链路流量特征的攻击检测方法进行攻击检测。
进一步地,基于链路端口重用的攻击检测方法包括如下步骤:
(51)解析得到封装LLDP报文的Packet-in消息的上发交换机端口,并从LLDP报文中解析得到发送该LLDP报文的交换机ID和端口ID;
(52)对于当前拓扑中的一条链路,若其目的端口与上发交换机端口一致,则转入步骤(53);否则,转入步骤(54);
(53)若该链路的源端口所对应的交换机ID和端口ID与发送该LLDP报文的交换机ID和端口ID均一致,则转入步骤(55);否则转入步骤(56);
(54)若当前拓扑中还有链路未处理,则选择下一条未处理的链路,并转入步骤(52);否则,转入步骤(55);
(55)判定该LLDP报文为正常的LLDP探测报文,检测结束;
(56)判定该LLDP报文为攻击报文,检测结束。
进一步地,基于链路流量特征的攻击检测方法包括:
利用LLDP报文通过SDN的链路发现机制生成待检测链路,并根据交换机端口统计信息计算待检测链路的流量信息,然后将待检测链路的流量信息作为已训练好的链路检测模型的输入,从而判断待检测链路为正常链路或异常链路;若待检测链路为正常链路,则判定该LLDP报文为正常报文;若待检测链路为异常链路,则判定该LLDP报文为攻击报文;
其中,链路检测模型基于逻辑回归模型建立,用于根据链路的流量信息判断链路为正常链路或异常链路;链路检测模型的训练方法包括:根据交换机端口统计信息分别计算M1条正常链路和M2条异常链路的流量信息,从而构成训练集;利用训练集训练链路检测模型,使得链路检测模型学习到正常链路和异常链路的流量特征;M1和M2均为整整数;
链路的流量信息包括:丢包率、拥塞度以及链路传输数据量。
进一步地,步骤(4)中,若检测到攻击报文,则将攻击报文的报文规则实时记录在控制器的过滤规则中,包括:
若检测到的攻击报文类型为第一报文类型或第二报文类型,则在检测到该攻击报文时,就将攻击报文的报文规则记录在控制器的过滤规则中;若检测到的攻击报文类型为第三报文类型,且该LLDP报文连续N次都被检测为攻击报文,则将攻击报文的报文规则记录在控制器的过滤规则中,以提高检测结果的准确性;
报文规则包括封装该LLDP报文的Packet-in消息的上发端口,以及发送该LLDP报文的交换机ID和端口ID;
其中,N为正整数。
进一步地,步骤(4)中,更新所维护的端口信息包括如下步骤:
(41)若Packet-in消息中封装了主机流表项请求数据包,则解析得到该消息的上发交换机端口以及该消息所封装的主机流表项请求数据包的源MAC地址A1,并转入步骤(42);否则,更新结束;
(42)从该上发交换机端口的端口信息中提取所连接主机的MAC地址A2;
(43)若MAC地址A1和MAC地址A2相同,则用当前时刻更新该上发交换机端口的消息时间戳,以更新该上发端口的端口信息;若MAC地址A1和MAC地址A2不相同,且该上发交换机端口所连接主机的状态为休眠,则分别用MAC地址A1和当前时刻更新该上发端口所连接主机的MAC地址和消息时间戳,以更新该上发端口的端口信息。
总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
(1)本发明所提供的软件定义网络拓扑保护方法,首先对存活的交换机端口进行分类,然后根据LLDP报文的上发交换机端口的类型对LLDP报文进行分类,并对不同类型的报文采用不同的方法进行攻击检测,在检测到攻击报文时还会将攻击报文的报文规则实时记录在控制器的过滤规则中以通过LLDP报文规则过滤的方式实现攻击防御,因此能够有效并全面地实现对主机LLDP伪造/重放和交换机LLDP伪造/重放这四类拓扑污染攻击都进行有效的检测与防御,从而保护软件定义网络的拓扑安全。
(2)本发明所提供的软件定义网络拓扑保护方法,在LLDP报文的上发交换机端口于主机相连时,会根据所连接端口的状态将LLDP报文划分为不同的类型,并会采用基于链路流量特征的攻击检测方法进一步判断LLDP报文为正常探测报文还是攻击报文,相比于传统的直接将经与主机相连的交换机端口上发的LLDP报文视为攻击包进行过滤的方法,本发明所提供的方法能够准确判断由于主机迁移而新增的链路的安全性,在进行安全防御的同时也能保障SDN网络的性能。
(3)本发明所提供的软件定义网络拓扑保护方法,会维护每一个上发交换机端口的端口信息,并且在进行攻击报文的监测与防御的同时,会定期更新端口信息,因而能够实现主机的动态迁移而不用手动配置,在主机频繁迁移的情况下也能有效实现安全监测和防御。
(4)本发明所提供的软件定义网络拓扑保护方法,无需修改原有的OFDP协议,具有较好的兼容性。
附图说明
图1为本发明实施例提供的SDN网络拓扑示例;
图2为本发明实施例提供的软件定义网络拓扑保护方法的流程图;
图3为本发明实施例提供的初始化端口信息的流程图;
图4为本发明实施例提供的主机状态检测的流程图;
图5为本发明实施例提供的基于链路端口重用的攻击检测方法流程图;
图6为本发明实施例提供的更新端口信息的方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
在详细解释本发明的技术方案之前,先对LLDP协议的工作原理进行介绍。图1所示为一个简单的SDN网络拓扑示意图,其中包括一个SDN控制器以及两台交换机S1和S2,交换机S1包括两个端口P1和P2,交换机S2也包括两个端口P1和P2,且交换机S1的端口P2与交换机S2的端口P1相连。通过LLDP协议发现两个交换机之间的链路的过程如下:
第一步:控制器与交换机S1建立连接,获取交换机的位置、所有端口信息。
第二步:控制器针对交换机S1的每个端口,创建一个LLDP包;每个LLDP包都预先写入了发往的交换机ID、端口ID;图1中控制器向交换机S1通过Packet-out发出两个LLDP包,分别发往S1的两个端口,两个LLDP包的(交换机ID:端口ID)分别为(S1:P1)和(S1:P2);
第三步:交换机S1的两个端口分别接收到控制器发来的包含LLDP报文的Packet-out消息,并向对应端口转发该LLDP报文;发往端口P1的LLDP报文由于缺少对应链路而没有下文;发往端口P2的LLDP包通过物理链路到达交换机S2的端口P1;
第四步:交换机S2依据判断接收到的是LLDP报文;Openflow交换机内有一条默认匹配流表项,其含义是:当接收到没有任何流表项匹配的数据包时,将该数据包填充在Packet-in消息内上发给控制器处理,因此,S2会将该LLDP报文封装在Packet-in消息中上发给控制器,该LLDP报文里记录的(交换机ID:端口ID)是(S1:P2)。
第五步:控制器收到携带该LLDP报文的Packet-in消息;生成链路过程如下:获取Packet-in消息上发携带的(S2:P1)作为目的(目的交换机ID:目的端口ID);获取LLDP报文的(S1:P2)作为(源交换机ID:源端口ID);这样一条链路的两个交换机端口得到确定,继而生成或更新链路[(S1:P2),(S2:P1)]。
SDN控制器每隔一个探测周期,会主动向网络所有交换机存活端口发送LLDP探测数据包,每条通畅的链路通过上述流程被控制器发现并记录在拓扑管理相关模块中,SDN网络中所有链路的发现都通过上述过程实现。
本发明所提供的软件定义网络拓扑保护方法,如图2所示,包括如下步骤:
(1)初始化并维护每一个存活交换机端口的端口信息,端口信息包括端口类型、所连接主机的MAC地址、所连接主机的状态以及消息时间戳;
如图3所示,初始化每一个存活交换机端口的端口信息,包括:
(11)收集数据平面的Packet-in消息;
(12)对于其中一条Packet-in消息,从其中解析出消息的上发交换机端口;
(13)若该Packet-in消息封装了LLDP报文,且其上发交换机端口的端口信息未被初始化,则将该交换机端口的端口类型设置为L,用于表示该交换机端口与交换机内部链路相连,从而初始化该交换机端口的端口信息;
若该Packet-in消息封装了主机流表项请求数据包,且其上发交换机端口的端口信息未被初始化,则将该交换机端口的端口类型设置为H,用于表示该交换机端口与主机相连,同时从主机流表项请求数据包中解析出数据包的源MAC地址,并获取请求时间,然后分别记录在该交换机端口所连接主机的MAC地址和消息时间戳中,从而初始化该交换机端口的端口信息;
(14)对于收集到的每一条Packet-in消息,分别执行步骤(12)~(13),以初始化每一个存活端口的端口信息;
(2)根据收集到的Packet-in消息,进行主机状态检测,得到与交换机端口相连的主机的状态,然后根据主机状态检测结果及所维护的端口信息对LLDP报文进行分类;
如图4所示,主机状态检测包括:
(21)若Packet-in消息封装了主机流表项请求数据包,则从该Packet-in消息中解析出消息的上发交换机端口,并进一步获得该交换机端口的端口信息中记录的消息时间戳time_stamp,并转入步骤(22);否则,检测结束;
(22)从该Packet-in消息所封装的主机流表项请求数据包中解析出源MAC地址,从而定位与该交换机端口相连的主机;
(23)根据当前时刻time_now、交换机主机流表项最大存活时间max_time_out以及消息时间戳time_stamp,计算该主机的超时时间time_out,计算公式如下:
time_out=max_time_out-(time_now-time_stamp);
(24)若time_out>0,则判定该主机的状态为存活;否则,判定该主机的状态为休眠;
检测到每一台与交换机端口相连的主机的状态后,对LLDP报文进行分类的方法包括:根据所维护的端口信息获得每一条Packet-in消息的上发交换机端口的类型;若封装了LLDP报文的Packet-in消息的上发交换机端口类型为L,则将该LLDP报文的类型划分为LINK;若封装了LLDP报文的Packet-in消息的上发交换机端口类型为H,且该交换机端口所连接主机的状态为存活,则将该LLDP报文的类型划分为HOST存活;若封装了LLDP数据包的Packet-in消息的上发交换机端口类型为H,且该交换机端口所连接主机的状态为休眠,则将该LLDP报文的类型划分为HOST休眠;
分析各类型LLDP报文存在的攻击威胁方式可知:LINK类型数据包可能为正常LLDP探测数据包,但存在交换机LLDP攻击(交换机LLDP伪造/重放)的可能性;HOST存活类型LLDP报文由一台主机设备发出,不是正常LLDP探测数据包,而是主机LLDP(主机伪造/重放)攻击报文;HOST休眠类型LLDP报文由未知设备发出,可能是正常LLDP探测数据包,但存在主机LLDP攻击(主机伪造/重放)的可能性;
(3)针对不同类型的LLDP报文,采用相应的攻击检测方法进行攻击检测;若检测到攻击报文,则将攻击报文的报文规则实时记录在控制器的过滤规则中,从而通过报文规则过滤的方式实现攻击防御;
具体地,若LLDP报文的类型为LINK,则采用基于链路端口重用的攻击检测方法进行攻击检测;若LLDP报文的类型为HOST存活,则判定该LLDP报文为攻击报文;若LLDP报文的类型为HOST休眠,则采用基于链路流量特征的攻击检测方法进行攻击检测;
如图5所示,基于链路端口重用的攻击检测方法包括如下步骤:
(51)解析得到封装LLDP报文的Packet-in消息的上发交换机端口,并从LLDP报文中解析得到发送该LLDP报文的交换机ID和端口ID;
(52)对于当前拓扑中的一条链路,若其目的端口与上发交换机端口一致,则转入步骤(53);否则,转入步骤(54);
(53)若该链路的源端口所对应的交换机ID和端口ID与发送该LLDP报文的交换机ID和端口ID均一致,则转入步骤(55);否则转入步骤(56);
(54)若当前拓扑中还有链路未处理,则选择下一条未处理的链路,并转入步骤(52);否则,转入步骤(55);
(55)判定该LLDP报文为正常的LLDP探测报文,检测结束;
(56)判定该LLDP报文为攻击报文,检测结束;
根据交换机LLDP报文伪造/重放攻击原理,由于攻击者利用了真实链路作为攻击通道,因此攻击LLDP报文上发控制器的交换机ID、端口ID必定为当前网络中某条链路的一端,并且新增伪造链路不同于当前拓扑中任何一条链路;
基于链路流量特征的攻击检测方法包括:
利用LLDP报文通过SDN的链路发现机制生成待检测链路,并根据交换机端口统计信息计算待检测链路的流量信息,然后将待检测链路的流量信息作为已训练好的链路检测模型的输入,从而判断待检测链路为正常链路或异常链路;若待检测链路为正常链路,则判定该LLDP报文为正常报文;若待检测链路为异常链路,则判定该LLDP报文为攻击报文;
其中,链路检测模型基于逻辑回归模型建立,用于根据链路的流量信息判断链路为正常链路或异常链路;链路检测模型的训练方法包括:根据交换机端口统计信息分别计算1000条正常链路和200条异常链路的流量信息,从而构成训练集;利用训练集训练链路检测模型,使得链路检测模型学习到正常链路和异常链路的流量特征;
根据主机LLDP报文伪造/重放攻击原理,伪造的链路流量特征区别于正常链路,分析发现伪造链路端口呈现流量不对称性,链路丢包率和链路拥塞度是诊断链路故障常用的两个指标;但是,在正常情况下,链路传输数据量过大超过链路负载时,丢包率与拥塞度的值也会异常,为区分正常链路可能出现的因为拥塞导致的异常,增加链路传输数据量作为诊断链路故障的第三个指标;基于上述分析,链路的流量信息包括:丢包率、拥塞度以及链路传输数据量;链路丢包率RL和链路拥塞度RC的计算公式分别如下:
其中,out_packets和out_bytes分别为链路源端口发出的包数和字节数,in_packets和in_bytes分别为链路目的端口接收的包数和字节数;链路数据量可直接根据交换机端口统计信息获得;
由于拓扑伪造攻击的连续性,需要对后续攻击报文进行拦截,采用控制器LLDP报文规则过滤的方式实现攻击防御;
检测到攻击报文时,若检测到的攻击报文类型为LINK或HOST存活,则在检测到该攻击报文时,就将封装该LLDP报文的Packet-in消息的上发端口,以及发送该LLDP报文的交换机ID和端口ID记录在控制器的过滤规则中;若检测到的攻击报文类型为HOST休眠,且该LLDP报文连续3次都被检测为攻击报文,则将封装该LLDP报文的Packet-in消息的上发端口,以及发送该LLDP报文的交换机ID和端口ID记录在控制器的过滤规则中;
对于LINK类型的LLDP报文,其攻击检测方法为基于特征的检测方法,能够准确地检测出报文是攻击报文还是正常报文;对于HOST休眠类型的LLDP报文,其攻击检测方法为基于分类算法的检测方法,存在误报的可能性,因此需要进行连续多次检测,以提高检测结果的准确性;
(4)持续收集数据平面的Packet-in消息并根据收集到的Packet-in消息更新所维护的端口信息,同时重复执行步骤(2)~(3),以实现对软件定义网络拓扑的保护;
如图6所示,更新所维护的端口信息包括如下步骤:
(41)若Packet-in消息中封装了主机流表项请求数据包,则解析得到该消息的上发交换机端口以及该消息所封装的主机流表项请求数据包的源MAC地址A1,并转入步骤(42);否则,更新结束;
(42)从该上发交换机端口的端口信息中提取所连接主机的MAC地址A2;
(43)若MAC地址A1和MAC地址A2相同,则用当前时刻更新该上发交换机端口的消息时间戳,以更新该上发端口的端口信息;若MAC地址A1和MAC地址A2不相同,且该上发交换机端口所连接主机的状态为休眠,则分别用MAC地址A1和当前时刻更新该上发端口所连接主机的MAC地址和消息时间戳,以更新该上发端口的端口信息。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种软件定义网络的拓扑保护方法,其特征在于,包括:
(1)初始化并维护每一个存活交换机端口的端口信息,所述端口信息包括端口类型、所连接主机的MAC地址、所连接主机的状态以及消息时间戳;
(2)根据收集到的Packet-in消息,进行主机状态检测,得到与交换机端口相连的主机的状态,然后根据主机状态检测结果及所维护的端口信息对LLDP报文进行分类;
(3)针对不同类型的LLDP报文,采用相应的攻击检测方法进行攻击检测;若检测到攻击报文,则将攻击报文的报文规则实时记录在控制器的过滤规则中,从而通过报文规则过滤的方式实现攻击防御;
(4)持续收集数据平面的Packet-in消息并根据收集到的Packet-in消息更新所维护的端口信息,同时重复执行步骤(2)~(3),以实现对软件定义网络拓扑的保护。
2.如权利要求1所述的软件定义网络拓扑保护方法,其特征在于,所述步骤(1)中,初始化并维护每一个存活端口的端口信息,包括如下步骤:
(11)收集数据平面的Packet-in消息;
(12)对于其中一条Packet-in消息,从其中解析出消息的上发交换机端口;
(13)若该Packet-in消息封装了LLDP报文,且其上发交换机端口的端口信息未被初始化,则将该交换机端口的端口类型设置为第一端口类型,用于表示该交换机端口与交换机内部链路相连,从而初始化该交换机端口的端口信息;
若该Packet-in消息封装了主机流表项请求数据包,且其上发交换机端口的端口信息未被初始化,则将该交换机端口的端口类型设置为第二端口类型,用于表示该交换机端口与主机相连,同时从主机流表项请求数据包中解析出数据包的源MAC地址,并获取请求时间,然后分别记录在该交换机端口所连接主机的MAC地址和消息时间戳中,从而初始化该交换机端口的端口信息;
(14)对于收集到的每一条Packet-in消息,分别执行步骤(12)~(13),以初始化每一个存活端口的端口信息。
3.如权利要求1所述的软件定义网络拓扑保护方法,其特征在于,所述步骤(2)中,根据收集到的Packet-in消息,进行主机状态检测,包括如下步骤:
(21)若Packet-in消息封装了主机流表项请求数据包,则从该Packet-in消息中解析出消息的上发交换机端口,并进一步获得该交换机端口的端口信息中记录的消息时间戳time_stamp,并转入步骤(22);否则,检测结束;
(22)从该Packet-in消息所封装的主机流表项请求数据包中解析出源MAC地址,从而定位与该交换机端口相连的主机;
(23)根据当前时刻time_now、交换机主机流表项最大存活时间max_time_out以及所述消息时间戳time_stamp,计算该主机的超时时间time_out,计算公式如下:
time_out=max_time_out-(time_now-time_stamp);
(24)若time_out>0,则判定该主机的状态为存活;否则,判定该主机的状态为休眠。
4.如权利要求1所述的软件定义网络拓扑保护方法,其特征在于,所述步骤(2)中,根据主机状态检测结果及所维护的端口信息对LLDP报文进行分类,包括:
若Packet-in消息没有封装LLDP报文,则不做处理;
若Packet-in消息封装了LLDP报文,则根据所维护的端口信息获得该Packet-in消息的上发交换机端口的类型;若该Packet-in消息的上发交换机端口类型为第一端口类型,则将其中封装的LLDP报文的类型划分为第一报文类型;若该Packet-in消息的上发交换机端口类型为第二端口类型,且该交换机端口所连接主机的状态为存活,则将其中封装的LLDP报文的类型划分为第二报文类型;若该Packet-in消息的上发交换机端口类型为第二端口类型,且该交换机端口所连接主机的状态为休眠,则将其中封装的LLDP报文的类型划分为第三报文类型;
其中,第一端口类型的交换机端口与交换机内部链路相连,第二端口类型的交换机端口与主机相连。
5.如权利要求4所述的软件定义网络拓扑保护方法,其特征在于,所述步骤(5)中,针对不同类型的LLDP报文,采用相应的攻击检测方法进行攻击检测,包括:
若LLDP报文的类型为第一报文类型,则采用基于链路端口重用的攻击检测方法进行攻击检测;若LLDP报文的类型为第二报文类型,则判定该LLDP报文为攻击报文;若LLDP报文的类型为第三报文类型,则采用基于链路流量特征的攻击检测方法进行攻击检测。
6.如权利要求5所述的软件定义网络拓扑保护方法,其特征在于,基于链路端口重用的攻击检测方法包括如下步骤:
(51)解析得到封装LLDP报文的Packet-in消息的上发交换机端口,并从LLDP报文中解析得到发送该LLDP报文的交换机ID和端口ID;
(52)对于当前拓扑中的一条链路,若其目的端口与所述上发交换机端口一致,则转入步骤(53);否则,转入步骤(54);
(53)若该链路的源端口所对应的交换机ID和端口ID与发送该LLDP报文的交换机ID和端口ID均一致,则转入步骤(55);否则转入步骤(56);
(54)若当前拓扑中还有链路未处理,则选择下一条未处理的链路,并转入步骤(52);否则,转入步骤(55);
(55)判定该LLDP报文为正常的LLDP探测报文,检测结束;
(56)判定该LLDP报文为攻击报文,检测结束。
7.如权利要求5所述的软件定义网络拓扑保护方法,其特征在于,基于链路流量特征的攻击检测方法包括:
利用LLDP报文通过SDN的链路发现机制生成待检测链路,并根据交换机端口统计信息计算所述待检测链路的流量信息,然后将所述待检测链路的流量信息作为已训练好的链路检测模型的输入,从而判断所述待检测链路为正常链路或异常链路;若所述待检测链路为正常链路,则判定该LLDP报文为正常报文;若所述待检测链路为异常链路,则判定该LLDP报文为攻击报文;
其中,所述链路检测模型基于逻辑回归模型建立,用于根据链路的流量信息判断链路为正常链路或异常链路;所述链路检测模型的训练方法包括:根据交换机端口统计信息分别计算M1条正常链路和M2条异常链路的流量信息,从而构成训练集;利用所述训练集训练所述链路检测模型,使得所述链路检测模型学习到正常链路和异常链路的流量特征;M1和M2均为正整数;
链路的流量信息包括:丢包率、拥塞度以及链路传输数据量。
8.如权利要求5所述的软件定义网络拓扑保护方法,其特征在于,所述步骤(4)中,若检测到攻击报文,则将攻击报文的报文规则实时记录在控制器的过滤规则中,包括:
若检测到的攻击报文类型为第一报文类型或第二报文类型,则在检测到该攻击报文时,就将攻击报文的报文规则记录在控制器的过滤规则中;若检测到的攻击报文类型为第三报文类型,且该LLDP报文连续N次都被检测为攻击报文,则将攻击报文的报文规则记录在控制器的过滤规则中;
所述报文规则包括封装该LLDP报文的Packet-in消息的上发端口,以及发送该LLDP报文的交换机ID和端口ID;
其中,N为正整数。
9.如权利要求1所述的软件定义网络拓扑保护方法,其特征在于,所述步骤(4)中,更新所维护的端口信息包括如下步骤:
(41)若Packet-in消息中封装了主机流表项请求数据包,则解析得到该消息的上发交换机端口以及该消息所封装的主机流表项请求数据包的源MAC地址A1,并转入步骤(42);否则,更新结束;
(42)从该上发交换机端口的端口信息中提取所连接主机的MAC地址A2;
(43)若所述MAC地址A1和所述MAC地址A2相同,则用当前时刻更新该上发交换机端口的消息时间戳,以更新该上发端口的端口信息;若所述MAC地址A1和所述MAC地址A2不相同,且该上发交换机端口所连接主机的状态为休眠,则分别用所述MAC地址A1和当前时刻更新该上发端口所连接主机的MAC地址和消息时间戳,以更新该上发端口的端口信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810700201.0A CN108833430B (zh) | 2018-06-29 | 2018-06-29 | 一种软件定义网络的拓扑保护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810700201.0A CN108833430B (zh) | 2018-06-29 | 2018-06-29 | 一种软件定义网络的拓扑保护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108833430A true CN108833430A (zh) | 2018-11-16 |
CN108833430B CN108833430B (zh) | 2020-05-19 |
Family
ID=64134913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810700201.0A Active CN108833430B (zh) | 2018-06-29 | 2018-06-29 | 一种软件定义网络的拓扑保护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108833430B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109768981A (zh) * | 2019-01-20 | 2019-05-17 | 北京工业大学 | 一种在sdn架构下基于机器学习的网络攻击防御方法和系统 |
CN111131429A (zh) * | 2019-12-19 | 2020-05-08 | 北京安华金和科技有限公司 | 一种高效精准的数据库服务发现方法 |
CN111585965A (zh) * | 2020-04-10 | 2020-08-25 | 华南理工大学 | 一种防御软件定义网络中lldp中继攻击的方法 |
CN111698168A (zh) * | 2020-05-20 | 2020-09-22 | 北京吉安金芯信息技术有限公司 | 消息处理方法、装置、存储介质及处理器 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104158753A (zh) * | 2014-06-12 | 2014-11-19 | 南京工程学院 | 基于软件定义网络的动态流调度方法及系统 |
CN104253711A (zh) * | 2014-09-25 | 2014-12-31 | 杭州华三通信技术有限公司 | 一种SDN网络中Openflow的Group表的管理方法和设备 |
CN105871772A (zh) * | 2015-01-18 | 2016-08-17 | 吴正明 | 一种针对网络攻击的sdn网络架构的工作方法 |
CN106341330A (zh) * | 2016-08-30 | 2017-01-18 | 广州西麦科技股份有限公司 | 一种sdn控制器的拓扑发现方法及系统 |
CN106341337A (zh) * | 2016-08-31 | 2017-01-18 | 上海交通大学 | 一种sdn下可实现应用感知的流量检测与控制机构及方法 |
CN106559407A (zh) * | 2015-11-19 | 2017-04-05 | 国网智能电网研究院 | 一种基于sdn的网络流量异常监测系统 |
US20170331842A1 (en) * | 2016-05-11 | 2017-11-16 | Allied Telesis Holdings K.K. | Sdn controller |
-
2018
- 2018-06-29 CN CN201810700201.0A patent/CN108833430B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104158753A (zh) * | 2014-06-12 | 2014-11-19 | 南京工程学院 | 基于软件定义网络的动态流调度方法及系统 |
CN104253711A (zh) * | 2014-09-25 | 2014-12-31 | 杭州华三通信技术有限公司 | 一种SDN网络中Openflow的Group表的管理方法和设备 |
CN105871772A (zh) * | 2015-01-18 | 2016-08-17 | 吴正明 | 一种针对网络攻击的sdn网络架构的工作方法 |
CN106559407A (zh) * | 2015-11-19 | 2017-04-05 | 国网智能电网研究院 | 一种基于sdn的网络流量异常监测系统 |
US20170331842A1 (en) * | 2016-05-11 | 2017-11-16 | Allied Telesis Holdings K.K. | Sdn controller |
CN106341330A (zh) * | 2016-08-30 | 2017-01-18 | 广州西麦科技股份有限公司 | 一种sdn控制器的拓扑发现方法及系统 |
CN106341337A (zh) * | 2016-08-31 | 2017-01-18 | 上海交通大学 | 一种sdn下可实现应用感知的流量检测与控制机构及方法 |
Non-Patent Citations (2)
Title |
---|
徐雷: "《基于OpenFlow的分布式防火墙系统的设计与实现》", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
陈伯胜: "《基于SDN控制器的恶意数据流控制技术研究》", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109768981A (zh) * | 2019-01-20 | 2019-05-17 | 北京工业大学 | 一种在sdn架构下基于机器学习的网络攻击防御方法和系统 |
CN111131429A (zh) * | 2019-12-19 | 2020-05-08 | 北京安华金和科技有限公司 | 一种高效精准的数据库服务发现方法 |
CN111131429B (zh) * | 2019-12-19 | 2022-03-08 | 北京安华金和科技有限公司 | 一种高效精准的数据库服务发现方法 |
CN111585965A (zh) * | 2020-04-10 | 2020-08-25 | 华南理工大学 | 一种防御软件定义网络中lldp中继攻击的方法 |
CN111585965B (zh) * | 2020-04-10 | 2021-05-14 | 华南理工大学 | 一种防御软件定义网络中lldp中继攻击的方法 |
CN111698168A (zh) * | 2020-05-20 | 2020-09-22 | 北京吉安金芯信息技术有限公司 | 消息处理方法、装置、存储介质及处理器 |
Also Published As
Publication number | Publication date |
---|---|
CN108833430B (zh) | 2020-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104539594B (zh) | 融合DDoS威胁过滤与路由优化的SDN架构、系统及工作方法 | |
CN104660582B (zh) | DDoS识别、防护和路径优化的软件定义的网络架构 | |
CN108833430A (zh) | 一种软件定义网络的拓扑保护方法 | |
CN104539625B (zh) | 一种基于软件定义的网络安全防御系统及其工作方法 | |
CN104539595B (zh) | 一种集威胁处理和路由优化于一体的sdn架构及工作方法 | |
CN105450442B (zh) | 一种网络拓扑排查方法及其系统 | |
Patil et al. | DoS attack prevention technique in wireless sensor networks | |
CN108289088A (zh) | 基于业务模型的异常流量检测系统及方法 | |
CN101286896B (zh) | 基于流的IPSec VPN协议深度检测方法 | |
KR100882809B1 (ko) | 플로우 기반 패킷 처리방식의 분산 서비스 거부 공격 방어시스템 및 방법 | |
CN101296227B (zh) | 基于报文偏移量匹配的IPSec VPN协议深度检测方法 | |
CN104767752A (zh) | 一种分布式网络隔离系统及方法 | |
CN106561016A (zh) | 一种基于熵的SDN控制器DDoS攻击检测装置和方法 | |
CN106357641A (zh) | 一种内容中心网络中兴趣包洪泛攻击的防御方法以及装置 | |
CN108965248A (zh) | 一种基于流量分析的p2p僵尸网络检测系统及方法 | |
CN104468636A (zh) | DDoS威胁过滤与链路重配的SDN架构及工作方法 | |
CN105871773A (zh) | 一种基于SDN网络架构的DDoS过滤方法 | |
Jiang et al. | Bsd-guard: a collaborative blockchain-based approach for detection and mitigation of sdn-targeted ddos attacks | |
CN106899978A (zh) | 一种无线网络攻击定位方法 | |
CN107864110A (zh) | 僵尸网络主控端检测方法和装置 | |
Das et al. | Flood control: Tcp-syn flood detection for software-defined networks using openflow port statistics | |
CN105871772A (zh) | 一种针对网络攻击的sdn网络架构的工作方法 | |
CN105871771A (zh) | 一种针对ddos网络攻击的sdn网络架构 | |
CN108667804A (zh) | 一种基于SDN架构的DDoS攻击检测及防护方法和系统 | |
CN104579832B (zh) | 一种OpenFlow网络安全检测方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |