CN111585965B - 一种防御软件定义网络中lldp中继攻击的方法 - Google Patents
一种防御软件定义网络中lldp中继攻击的方法 Download PDFInfo
- Publication number
- CN111585965B CN111585965B CN202010277208.3A CN202010277208A CN111585965B CN 111585965 B CN111585965 B CN 111585965B CN 202010277208 A CN202010277208 A CN 202010277208A CN 111585965 B CN111585965 B CN 111585965B
- Authority
- CN
- China
- Prior art keywords
- delay
- lldp
- port
- link
- current
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 230000008569 process Effects 0.000 claims description 18
- BCGWQEUPMDMJNV-UHFFFAOYSA-N imipramine Chemical compound C1CC2=CC=CC=C2N(CCCN(C)C)C2=CC=CC=C21 BCGWQEUPMDMJNV-UHFFFAOYSA-N 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 claims description 4
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 230000007123 defense Effects 0.000 description 11
- 238000001514 detection method Methods 0.000 description 6
- 238000012549 training Methods 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000005242 forging Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
Images
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
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- 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
-
- 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 Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种防御软件定义网络中LLDP中继攻击的方法,该方法包括以下步骤:记录每个端口和其连接的设备类型以及链路信息;记录LLDP帧延时并根据延时计算出当前的网络拥塞状态以及延时阈值;判断网络中新增链路的两个端口的设备类型是否都是HOST‑REMOVED,如果是则认为满足LLDP中继攻击条件,需要进一步判断,如果不是则认为不满足LLDP中继攻击条件,将该LLDP判定为正常;若满足LLDP中继攻击的条件,此时结合网络拥塞状态判断该LLDP延时是否大于延时阈值,若大于延时阈值则判定为攻击并丢弃当前LLDP帧。该发明用以防御攻击者使用两台主机进行LLDP中继攻击,提高SDN控制器的安全性。
Description
技术领域
本发明涉及计算机网络技术领域,特别是软件定义网络(Software DefinedNetwork,SDN)新式网络技术领域,具体涉及一种防御软件定义网络中LLDP中继攻击的方法。
背景技术
软件定义网络(SDN)是一种新型的网络范式,它赋予控制器及其应用以全局的网络可视性和灵活的网络可编程性,实现了网络协议和应用的创新。SDN的核心优势之一就是SDN控制器提供了许多SDN应用所依赖的整个网络可视性。
SDN控制器使用链路层发现协议(Link Layer Discovery Protocol,LLDP)发现所有交换机之间的链路,当交换机的端口开启时,交换机会首先发送该端口的Port_up消息至控制器,控制器收到Port_up消息后为该端口生成LLDP并将生成的LLDP通过交换机相应的端口发送出去,若控制器从另外一台交换机收到了该LLDP,那么控制器就会认为这两台交换机之间存在一条链路。
由上述过程可以看出,即使是主机也可以收到控制器所发的LLDP,因此攻击者可以通过两台主机中继各自收到LLDP在网络中伪造一条虚假链路。
目前防御LLDP中继攻击的方法有:1、一种软件定义网络的拓扑保护方法;2、一种拓扑污染攻击防御方法和系统;3、TopoGuard+。简单介绍如下:
现有技术一:一种软件定义网络的拓扑保护方法
原理:初始化并维护每一个存活交换机端口的端口信息;根据收集到的Packet-in消息,进行主机状态检测,然后根据主机状态检测结果及所维护的端口信息对LLDP报文进行分类;针对不同类型的LLDP报文,采用相应的攻击检测方法进行攻击检测;若检测到攻击报文,则将攻击报文的报文规则实时记录在控制器的过滤规则中,从而通过报文规则过滤的方式实现攻击防御;持续收集数据平面的Packet-in消息并根据收集到的Packet-in消息更新所维护的端口信息,同时重复执行攻击检测和防御的步骤。
缺点:该方法需要训练链路模型,使得所述链路检测模型学习到正常链路和异常链路的流量特征,以此判断链路是正常链路还是异常链路,因此当攻击者通过LLDP中继攻击伪造了一条链路后,只需要在这条链路上伪造出类似正常链路的流量特征即可绕过该防御方法。
现有技术二:一种拓扑污染攻击防御方法和系统
原理:1)通过监听SDN控制器收到的Packet-In消息,记录网络中主机,判断该主机是否是真实的主机,所述真实主机是指该主机使用本机的IP和MAC地址发送主机流量;2)通过监听SDN控制器下发流表项信号和SDN交换机上传的流表项删除消息,维护每个交换机端口流表项的记录表,并且通过该表判断某个端口的主机是否离开了网络,以防止流量劫持攻击;3)通过给SDN控制器下发的LLDP帧加上随机字符串作为校验字段,并对SDN控制器收到的LLDP帧进行检查,以防止利用LLDP帧来伪造链路的攻击。
缺点:该方法在防御LLDP中继攻击时,攻击者只需要重启相应主机的网卡再发起LLDP中继攻击即可绕过该方法成功伪造链路,因此无法完全防御LLDP中继攻击。
现有技术三:TopoGuard+
原理:记录所有LLDP的延时,通过四分位法计算出延时阈值,再将每个LLDP延时与延时阈值进行比较,若LLDP延时大于阈值,则该LLDP是通过LLDP中继的,若LLDP延时小于阈值则该LLDP代表的链路是真实的。
缺点:由于TopoGuard+的延时阈值是通过所有LLDP的延时阈值计算的,所以攻击者只要想网络中注入数据包,缓慢增加链路延时即可导致控制器计算的LLDP延时阈值变大,最终使得该延时阈值无法用来区分当前的LLDP是否是攻击这中继的。
综上所述现有的防御方法,要么依赖额外的训练数据,要么无法完全防御LLDP中继攻击,要么本身存在逻辑漏洞导致攻击者依然可以实现LLDP中继攻击,适用场景有限。
发明内容
本发明的目的是为了解决现有技术中的上述缺陷,提供一种防御软件定义网络中LLDP中继攻击的方法,用以防御攻击者使用两台主机进行LLDP中继攻击,提高SDN控制器的安全性。
本发明的目的可以通过采取如下技术方案达到:
一种防御软件定义网络中LLDP中继攻击的方法,所述方法包括下列步骤:
S1、在SDN控制器中记录每个端口和其连接的设备类型,记录链路信息;
S2、在SDN控制器中记录LLDP帧延时,并根据延时计算出当前的网络拥塞状态以及延时阈值;
S3、判断网络中新增链路的两个端口的设备类型是否都是HOST-REMOVED,如果不是则认为不满足LLDP中继攻击条件,将该LLDP帧判定为正常,如果是则认为该链路满足LLDP中继攻击条件,转入下一步骤对该LLDP帧进一步判断;
S4、若满足LLDP中继攻击的条件,此时结合网络拥塞状态判断该LLDP帧延时是否大于延时阈值,若大于延时阈值则判定为攻击并丢弃当前LLDP帧。
进一步地,所述步骤S1过程如下:
在SDN控制器中维护一张DeviceType表,以记录每个端口和其接连的设备类型;其中,所述DeviceType表由PortID和Device组成,PortID使用数据路径DPID和端口号Port唯一标识网络中交换机的端口,Device表示该端口连接的设备类型,该字段的值共有四种类型:HOST、SWITCH、HOST-REMOVED、SWITCH-REMOVED,分别表示相应端口当前所连的设备为主机、交换机、空、空,HOST-REMOVED代表上一次连接的设备为主机;SWITCH-REMOVED代表上一次连接的设备为交换机;
在SDN控制器中维护一张Link表,以记录链路信息;其中,所述Link表由SrcPort和DestPort组成,SrcPort使用DPID和Port标识链路的源端口,DestPort使用DPID和Port标识链路的目的端口;
当SDN控制器收到代表某个端口关闭的Port_down消息时,需要同时更新DeviceType表和Link表,当该端口存在于DeviceType表中时,若相应的Device字段为HOST则修改为HOST-REMOVED,若该字段为SWITCH则修改为SWITCH-REMOVED,当该端口存在于Link表中时,则需要删除SrcPort等于该端口的所有记录以及DestPort等于该端口的所有记录。
进一步地,所述LLDP帧延时的计算方法如下:
修改SDN控制器生成的LLDP帧,在LLDP帧中的Optional TLV字段添加发送时间戳TLV,其值为每个LLDP帧的发送时间,当SDN控制器收到LLDP帧时,用当前收到的时间减去发送时间得到每个LLDP帧的传输延时。
进一步地,所述步骤S2过程如下:
在SDN控制器中设置大小为50的延时队列,用以记录最新的50个LLDP帧的延时时间;
在SDN控制器中设置初始值为0的Entropy_before、Entropy_current、NetState、Threshold,分别表示上一组延时队列的信息熵、当前延时队列的信息熵、当前网络的拥塞状态、延时阈值;
每当延时队列满时,首先将Entropy_current赋值给Entropy_before,接着统计当前延时队列中每个延时值出现的概率Pi,若延时值重复则只统计一次,因此i=1,2,……,m,0<m≤50,其中Pi=Ni/50,Ni为第i个延时在当前延时队列中出现的次数,再根据Pi计算出延时队列的信息熵H,其中Pi为第i个延时在当前延时队列中出现的概率,最后将H值赋值给Entropy_current;
当Entropy_current更新后,比较Entropy_before与Entropy_current的大小,若出现熵增,即Entropy_before<Entropy_current则NetState值+1,若没有出现熵增,即Entropy_before≥Entropy_current则NetState值-1;
当NetState更新后,若此时Entropy_before≥Entropy_current且NetState≤0,则计算当前延时队列的平均值,并将该值乘以3后赋值给延时阈值Threshold,否则不更新延时阈值Threshold。
进一步地,所述步骤S3过程如下:
当SDN控制器收到一个Packet_in消息时,首先检查该Packet_in消息封装的消息类型,若封装的不是LLDP帧则根据Packet_in消息解析出交换机的接收端口Port,此时在DeviceType表中查找LLDP帧记录,若在DeviceType表中未查找到相应的记录则根据Port创建该记录,并将相应的Device字段设为HOST,若在DeviceType表中找到相应的记录,则无需更新DeviceType表;
若Packet_in消息封装的是LLDP帧时,则从Packet_in消息中取出链路信息,即链路源端口SrcPort和目的端口DestPort,然后判断该链路信息是否已存在于Link表中,若存在则代表该链路不是新增链路,此时计算得到该LLDP帧的延时值,并将该延时值交付延时队列,若该链路信息在Link表中不存在,那么判定该链路是一条新增链路,继续判断链路源端口SrcPort和目的端口DestPort在DeviceType表中的记录;
若链路源端口SrcPort和目的端口DestPort在DeviceType表中都有记录,且相应的Device字段都为HOST,那么直接丢弃该包并发出警报:“该链路是通过LLDP中继攻击伪造的”;若链路源端口SrcPort和目的端口DestPort在DeviceType表中都有记录,且都是HOST-REMOVED,此时该新增链路满足了LLDP中继攻击发起的条件,需要结合网络拥塞状态判断该LLDP延时是否正常;
若链路源端口SrcPort和目的端口DestPort不满足上述的两种情况,此时判断该链路不是LLDP中继攻击伪造的,使用该LLDP帧的延时更新延时队列,在Link表中添加源端口为SrcPort、目的端口为DestPort的链路,将DeviceType表中PortID分别为SrcPort和DestPort的两条记录的Device字段值设为SWITCH,即SrcPort和DestPort两个端口所连的设备为交换机,若在DeviceType表中没有相关记录则创建相应的记录,并将Device字段值设为SWITCH。
进一步地,所述步骤S4过程如下:
首先检查NetState值,若该值大于0则丢弃当前的LLDP帧并发出警报:当前网络拥塞,不允许添加满足LLDP攻击条件的链路;
若NetState值小于等于0,比较当前LLDP帧的延时与延时阈值Threshold,若当前LLDP帧延时大于延时阈值Threshold则丢弃当前LLDP帧,并发出警报:“该链路是通过LLDP中继攻击伪造的”;若当前LLDP帧延时小于等于延时阈值Threshold,则该新增链路一定为真,使用该LLDP帧的延时更新延时队列,在Link表中添加源端口为SrcPort、目的端口为DestPort的链路,同时将DeviceType表中PortID分别为SrcPort和DestPort的两条记录的Device字段值设为SWITCH,即SrcPort和DestPort两个端口所连的设备为交换机。
本发明相对于现有技术具有如下的优点及效果:
1、本发明在防御LLDP中继攻击时不依赖第三方安全性,比如在现有技术“一种软件定义网络的拓扑保护方法”中其安全性依赖额外的训练集是否完善,训练集越完善则其方法越安全,但本发明不依赖第三方的安全性,而是充分利用了SDN自身的特性实现LLDP中继攻击的防御;
2、本发明防御更加全面,比如现有技术“一种拓扑污染攻击防御方法和系统”中攻击者可以通过重启网卡的方式来实现LLDP中继攻击,但在本发明中会被有效防御;
3、本发明没有引入新的安全漏洞,比如现有技术“TopoGuard+”中,TopoGuard+对每个LLDP的延时都进行了校验,攻击者可以通过向网络中恶意注入数据包提高网络延时的方式让控制器无法识别真实的链路,但本发明没有引入这种新漏洞。
附图说明
图1是本发明实施例提供的一种防御软件定义网络中LLDP中继攻击的方法组成示意图;
图2是本发明实施例提供的一种在LLDP中添加额外发送时间戳TLV的结构组成示意图;
图3是本发明实施例提供的一种防御软件定义网络中LLDP中继攻击的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
针对现有SDN网络中,控制器无法有效防御LLDP中继攻击的问题,本实施例在SDN控制器中记录每个端口和其连接的设备类型,记录链路信息;在SDN控制器中记录LLDP延时,并根据延时计算出当前的网络拥塞状态以及延时阈值;判断网络中新增链路的两个端口的设备类型是否都是HOST-REMOVED,如果是则认为该链路满足LLDP中继攻击条件,需要对该LLDP帧进一步判断,如果不是则认为不满足LLDP中继攻击条件,将该LLDP帧判定为正常;若满足LLDP中继攻击的条件,此时结合网络拥塞状态判断该LLDP延时是否大于延时阈值,若大于延时阈值则判定为攻击并丢弃当前LLDP帧;从而实现了防御LLDP中继攻击。
如图1所示,本发明提供一种防御软件定义网络中LLDP中继攻击的方法,包括以下步骤:
S1、在SDN控制器101中记录每个端口和其连接的设备类型102以及链路信息103;
S2、在SDN控制器101记录LLDP帧延时104并根据延时计算出当前的网络拥塞状态105以及延时阈值106;
S3、判断网络107中新增链路的两个端口的设备类型是否都是HOST-REMOVED,如果是则认为满足LLDP中继攻击条件,需要进一步判断,如果不是则认为不满足LLDP中继攻击条件,将该LLDP帧判定为正常;
S4、若满足LLDP中继攻击的条件,此时结合网络拥塞状态判断该LLDP帧延时是否大于延时阈值,若大于延时阈值则判定为攻击并丢弃当前LLDP帧。
在本实施例中,步骤S1、在SDN控制器中记录每个端口所连的设备类型,记录链路信息的过程如下:
在SDN控制器中维护一张DeviceType表,以记录每个端口和其接连的设备类型;
DeviceType表由PortID和Device组成,PortID使用数据路径(DPID)和端口号(Port)唯一地标识了网络中交换机的端口,Device表示该端口连接的设备类型,该字段的值共有四种类型:HOST、SWITCH、HOST-REMOVED、SWITCH-REMOVED,分别表示相应端口当前所连的设备为主机、交换机、空(上一次连接的设备为主机)、空(上一次连接的设备为交换机),具体可见下表1;
表1.DeviceType表
PortID | Deivce |
【S1】【P1】 | HOST |
【S1】【P2】 | SWITCH |
【S2】【P1】 | HOST-REMOVED |
【S2】【P2】 | SWITCH-REMOVED |
现有技术“TopoGuard+”只记录了HOST、SWITCH、ANY三种状态,因此无法判别LLDP中继攻击的条件。本发明的DeviceType表记录了更为详细的设备连接情况,可以看出LLDP中继攻击的条件。
在SDN控制器中维护一张Link表,以记录链路信息。
Link表由SrcPort和DestPort组成,SrcPort使用DPID和Port标识链路的源端口,DestPort使用DPID和Port标识了链路的目的端口,具体可见下表2;
表2.Link表
SrcPort | DestPort |
【S1】【P1】 | 【S2】【P1】 |
【S2】【P2】 | 【S3】【P1】 |
当SDN控制器收到代表某个端口关闭的Port_down消息时,需要同时更新DeviceType表和Link表,当该端口存在于DeviceType表中时,若相应的Device字段为HOST则修改为HOST-REMOVED,若该字段为SWITCH则修改为SWITCH-REMOVED,当该端口存在于Link表中时,则需要删除SrcPort等于该端口的所有记录以及DestPort等于该端口的所有记录。
现有技术如“TopoGuard+”、“一种拓扑污染攻击防御方法和系统”没有维护此类表格,因此会对所有LLDP帧都进行校验。本发明通过Link只对新增链路进行校验,在提高效率的同时也防止攻击者对已经存在的链路发起攻击。
在本实施例中,LLDP帧延时的计算方法如下:
修改SDN控制器生成的LLDP帧,在LLDP帧中添加发送时间戳TLV,其值为每个LLDP帧的发送时间,当SDN控制器收到LLDP帧时,用当前收到的时间减去发送时间得到每个LLDP帧的传输延时。修改后的LLDP帧具体可见图2。
在本实施例中,步骤S2、在控制器中记录LLDP帧延时并根据延时计算出当前的网络拥塞状态以及延时阈值的过程如下:
在SDN控制器中设置大小为50的延时队列,用以记录最新的50个LLDP帧的延时时间;
在SDN控制器中设置初始值为0的Entropy_before、Entropy_current、NetState、Threshold,分别表示上一组延时队列的信息熵、当前延时队列的信息熵、当前网络的拥塞状态、延时阈值;
每当延时队列满时,首先将Entropy_current赋值给Entropy_before,接着统计当前延时队列中每个延时值出现的概率Pi,若延时值重复则只统计一次,因此i=1,2,……,m,0<m≤50,其中Pi=Ni/50,Ni为第i个延时在当前延时队列中出现的次数,再根据Pi计算出延时队列的信息熵H,其中Pi为第i个延时在当前延时队列中出现的概率,最后将H值赋值给Entropy_current;
当Entropy_current更新后,比较Entropy_before与Entropy_current的大小,若出现熵增,即Entropy_before<Entropy_current则NetState值+1,若没有出现熵增,即Entropy_before≥Entropy_current则NetState值-1;
当NetState更新后,若此时Entropy_before≥Entropy_current且NetState≤0,则计算当前延时队列的平均值,并将该值乘以3后赋值给延时阈值Threshold,否则不更新延时阈值Threshold。
现有技术“一种软件定义网络的拓扑保护方法”的安全性依赖训练集的完善程度,训练集越完善则安全性越高。本发明不需要依赖第三方,且可以自适应调整阈值。
在本实施例中,步骤S3、判断网络中新增链路的两个端口的设备类型是否都是HOST-REMOVED,如果是则认为满足LLDP中继攻击条件,需要进一步判断,如果不是则认为不满足LLDP中继攻击条件,将该LLDP判定为正常的过程如下:
当SDN控制器收到一个Packet_in消息时,首先检查该Packet_in消息封装的消息类型,若封装的不是LLDP帧则根据Packet_in消息解析出交换机的接收端口Port,此时在DeviceType表中查找LLDP帧记录,若在DeviceType表中未查找到相应的记录则根据接收端口Port创建该记录,并将相应的Device字段设为HOST,若在DeviceType表中找到相应的记录,则无需更新DeviceType表;
若Packet_in消息封装的是LLDP帧时,则从Packet_in消息中取出链路信息,即链路源端口SrcPort和目的端口DestPort,然后判断该链路信息是否已存在于Link表中,若存在则代表该链路不是新增链路,此时计算得到该LLDP帧的延时值,并将该延时值交付延时队列,若该链路信息在Link表中不存在,那么判定该链路是一条新增链路,继续判断链路源端口SrcPort和目的端口DestPort在DeviceType表中的记录;
若链路源端口SrcPort和目的端口DestPort在DeviceType表中都有记录,且相应的Device字段都为HOST,那么直接丢弃该包并发出警报:“该链路是通过LLDP中继攻击伪造的”;若链路源端口SrcPort和目的端口DestPort在DeviceType表中都有记录,且都是HOST-REMOVED,此时该新增链路满足了LLDP中继攻击发起的条件,需要结合网络拥塞状态判断该LLDP延时是否正常;
若链路源端口SrcPort和目的端口DestPort不满足上述的两种情况,此时判断该链路不是LLDP中继攻击伪造的,使用该LLDP帧的延时更新延时队列,在Link表中添加源端口为SrcPort、目的端口为DestPort的链路,将DeviceType表中PortID分别为SrcPort和DestPort的两条记录的Device字段值设为SWITCH,若在DeviceType表中没有相关记录则创建相应的记录,并将Device字段值设为SWITCH。
在本实施例中,步骤S4、若满足LLDP中继攻击的条件,此时结合网络拥塞状态判断该LLDP帧延时是否大于延时阈值,若大于延时阈值则判定为攻击并丢弃当前LLDP帧的过程如下:
首先检查NetState值,若该值大于0则丢弃当前的LLDP帧并发出警报:当前网络拥塞,不允许添加满足LLDP攻击条件的链路;
若NetState值小于等于0,比较当前LLDP帧的延时与延时阈值Threshold,若当前LLDP帧延时大于延时阈值Threshold则丢弃当前LLDP帧,并发出警报:“该链路是通过LLDP中继攻击伪造的”;若当前LLDP帧延时小于等于延时阈值Threshold,则该新增链路一定为真,因此使用该LLDP帧的延时更新延时队列,在Link表中添加源端口为SrcPort、目的端口为DestPort的链路,同时将DeviceType表中PortID分别为SrcPort和DestPort的两条记录的Device字段值设为SWITCH,即SrcPort和DestPort两个端口所连的设备为交换机。
现有技术如“TopoGuard+”直接比较LLDP帧延时与阈值的大小,而不考虑网络的拥塞程度,因此会引入新的安全问题。本发明则将该问题考虑在内,在判断LLDP帧延时的判断了当前网络拥塞程度。
实施例二
如图3所示,本实施例公开了一种防御软件定义网络中LLDP中继攻击的方法,根据流程图,该方法包括下列步骤:
S301、当SDN控制器收到一个Packet_in消息时,首先判断该消息封装的是LLDP帧还是非LLDP帧,若是LLDP帧则转到步骤S302,若不是LLDP帧则转到步骤S315;
S302、通过Link表判断当前LLDP帧代表的链路是否是新增链路,若是新增链路则转到步骤S303,若不是则转到步骤S308;
S303、通过DeviceType表判断该链路的两个端口的Device字段是否包含HOST,若包含则转到步骤S317,否则转到步骤S304;
S304、通过DeviceType表判断该链路的两个端口的Device字段是否都HOST-REMOVED,若都是则转到步骤S305,否则转到步骤S309;
S305、判断当前NetState值是否小于等于0,若NetState≤0则转到步骤S306,否则转到步骤S318;
S306、判断当前LLDP延时是否大于Threshold,若大于则转到步骤S307,否则转到步骤S309;
S307、丢弃当前LLDP帧并发出警报:“该新增链路是通过LLDP中继攻击伪造的”,此流程结束。
S308、将当前LLDP帧延时直接添加进延时队列;
S309、当前新增链路为真,将该链路的源端口SrcPort与目的端口DestPort添加进DeviceType表中,相应的Device字段都设置为SWITCH,同时在Link表中添加源端口为SrcPort、目的端口为DestPort的链路,最后将该LLDP帧延时添加到延时队列;
S310、当延时队列更新后,判断此时队列是否已满,若队列已满则转到步骤S311,否则转到步骤S314;
S311、将当前的Entropy_current赋值给Entropy_before,计算当前延时队列的信息熵并将熵值赋给Entropy_current,然后比较Entropy_current与Entropy_before的大小,若出现熵增则转到步骤312,否则转到步骤S313;
S312、此时不更新Threshold值,将NetState值加1,并清空延时队列,此流程结束。
S313、计算当前延时队列的平均值,并将该值乘以3后赋给延时阈值Threshold,同时NetState值减1,并清空延时队列,此流程结束。
S314、此时不需要更新延时阈值Threshold与NetState值,此流程结束。
S315、从Packet_in消息中取出端口Port信息,并在DeviceType表中查找是否存在PortID为Port的记录,若有记录则此流程结束,若无记录则转到步骤S316;
S316、在DeviceType表中添加PortID为Port的记录,同时将Device字段设为HOST,此流程结束。
S317、丢弃当前LLDP帧并发出警报:“该新增链路是通过LLDP中继攻击伪造的”,此流程结束。
S318、当前网络出于拥塞状态,丢弃当前LLDP帧并发出提示:“在网络拥塞时不允许添加满足LLDP中继攻击条件的链路”,此流程结束。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (5)
1.一种防御软件定义网络中LLDP中继攻击的方法,其特征在于,所述方法包括下列步骤:
S1、在SDN控制器中记录每个端口和其连接的设备类型,记录链路信息;其中,在SDN控制器中维护一张DeviceType表,以记录每个端口和其接连的设备类型;其中,所述DeviceType表由PortID和Device组成,PortID使用数据路径DPID和端口号Port唯一标识网络中交换机的端口,Device表示该端口连接的设备类型;
S2、在SDN控制器中记录LLDP帧延时,并根据延时计算出当前的网络拥塞状态以及延时阈值;所述步骤S2过程如下:
在SDN控制器中设置大小为50的延时队列,用以记录最新的50个LLDP帧的延时时间;
在SDN控制器中设置初始值为0的Entropy_before、Entropy_current、NetState、Threshold,分别表示上一组延时队列的信息熵、当前延时队列的信息熵、当前网络的拥塞状态、延时阈值;
每当延时队列满时,首先将Entropy_current赋值给Entropy_before,接着统计当前延时队列中每个延时值出现的概率Pi,若延时值重复则只统计一次,因此i=1,2,……,m,0<m≤50,其中Pi=Ni/50,Ni为第i个延时在当前延时队列中出现的次数,再根据Pi计算出延时队列的信息熵H,其中Pi为第i个延时在当前延时队列中出现的概率,n为延时队列大小,最后将H值赋值给Entropy_current;
当Entropy_current更新后,比较Entropy_before与Entropy_current的大小,若出现熵增,即Entropy_before<Entropy_current则NetState值+1,若没有出现熵增,即Entropy_before≥Entropy_current则NetState值-1;
当NetState更新后,若此时Entropy_before≥Entropy_current且NetState≤0,则计算当前延时队列的平均值,并将该值乘以3后赋值给延时阈值Threshold,否则不更新延时阈值Threshold;
S3、判断网络中新增链路的两个端口的设备类型是否都是HOST-REMOVED,其中,HOST-REMOVED为Device字段的类型取值中的一种,当取值为HOST-REMOVED时代表上一次连接的设备为主机,如果不是则认为不满足LLDP中继攻击条件,将该LLDP帧判定为正常,如果是则认为该链路满足LLDP中继攻击条件,转入下一步骤对该LLDP帧进一步判断;
S4、若满足LLDP中继攻击的条件,此时结合网络拥塞状态判断该LLDP帧延时是否大于延时阈值,若大于延时阈值则判定为攻击并丢弃当前LLDP帧。
2.根据权利要求1所述的一种防御软件定义网络中LLDP中继攻击的方法,其特征在于,所述步骤S1过程如下:
在SDN控制器中维护一张DeviceType表,以记录每个端口和其接连的设备类型;其中,所述DeviceType表由PortID和Device组成,PortID使用数据路径DPID和端口号Port唯一标识网络中交换机的端口,Device表示该端口连接的设备类型,该Device字段的值共有四种类型:HOST、SWITCH、HOST-REMOVED、SWITCH-REMOVED,分别表示相应端口当前所连的设备为主机、交换机、空、空,HOST-REMOVED代表上一次连接的设备为主机;SWITCH-REMOVED代表上一次连接的设备为交换机;
在SDN控制器中维护一张Link表,以记录链路信息;其中,所述Link表由SrcPort和DestPort组成,SrcPort使用DPID和Port标识链路的源端口,DestPort使用DPID和Port标识链路的目的端口;
当SDN控制器收到代表某个端口关闭的Port_down消息时,需要同时更新DeviceType表和Link表,当该端口存在于DeviceType表中时,若相应的Device字段为HOST则修改为HOST-REMOVED,若该字段为SWITCH则修改为SWITCH-REMOVED,当该端口存在于Link表中时,则需要删除SrcPort等于该端口的所有记录以及DestPort等于该端口的所有记录。
3.根据权利要求1所述的一种防御软件定义网络中LLDP中继攻击的方法,其特征在于,所述LLDP帧延时的计算方法如下:
修改SDN控制器生成的LLDP帧,在LLDP帧中的Optional TLV字段添加发送时间戳TLV,其值为每个LLDP帧的发送时间,当SDN控制器收到LLDP帧时,用当前收到的时间减去发送时间得到每个LLDP帧的传输延时。
4.根据权利要求2所述的一种防御软件定义网络中LLDP中继攻击的方法,其特征在于,所述步骤S3过程如下:
当SDN控制器收到一个Packet_in消息时,首先检查该Packet_in消息封装的消息类型,若封装的不是LLDP帧则根据Packet_in消息解析出交换机的接收端口Port,此时在DeviceType表中查找LLDP帧记录,若在DeviceType表中未查找到相应的记录则根据Port创建该记录,并将相应的Device字段设为HOST,若在DeviceType表中找到相应的记录,则无需更新DeviceType表;
若Packet_in消息封装的是LLDP帧时,则从Packet_in消息中取出链路信息,即链路源端口SrcPort和目的端口DestPort,然后判断该链路信息是否已存在于Link表中,若存在则代表该链路不是新增链路,此时计算得到该LLDP帧的延时值,并将该延时值交付延时队列,若该链路信息在Link表中不存在,那么判定该链路是一条新增链路,继续判断链路源端口SrcPort和目的端口DestPort在DeviceType表中的记录;
若链路源端口SrcPort和目的端口DestPort在DeviceType表中都有记录,且相应的Device字段都为HOST,那么直接丢弃该包并发出警报:“该链路是通过LLDP中继攻击伪造的”;若链路源端口SrcPort和目的端口DestPort在DeviceType表中都有记录,且都是HOST-REMOVED,此时该新增链路满足了LLDP中继攻击发起的条件,需要结合网络拥塞状态判断该LLDP延时是否正常;
若链路源端口SrcPort和目的端口DestPort不满足上述的两种情况,此时判断该链路不是LLDP中继攻击伪造的,使用该LLDP帧的延时更新延时队列,在Link表中添加源端口为SrcPort、目的端口为DestPort的链路,将DeviceType表中PortID分别为SrcPort和DestPort的两条记录的Device字段值设为SWITCH,即SrcPort和DestPort两个端口所连的设备为交换机,若在DeviceType表中没有相关记录则创建相应的记录,并将Device字段值设为SWITCH。
5.根据权利要求2所述的一种防御软件定义网络中LLDP中继攻击的方法,其特征在于,所述步骤S4过程如下:
首先检查NetState值,若该值大于0则丢弃当前的LLDP帧并发出警报:当前网络拥塞,不允许添加满足LLDP攻击条件的链路;
若NetState值小于等于0,比较当前LLDP帧的延时与延时阈值Threshold,若当前LLDP帧延时大于延时阈值Threshold则丢弃当前LLDP帧,并发出警报:“该链路是通过LLDP中继攻击伪造的”;若当前LLDP帧延时小于等于延时阈值Threshold,则该新增链路一定为真,使用该LLDP帧的延时更新延时队列,在Link表中添加源端口为SrcPort、目的端口为DestPort的链路,同时将DeviceType表中PortID分别为SrcPort和DestPort的两条记录的Device字段值设为SWITCH,即SrcPort和DestPort两个端口所连的设备为交换机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010277208.3A CN111585965B (zh) | 2020-04-10 | 2020-04-10 | 一种防御软件定义网络中lldp中继攻击的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010277208.3A CN111585965B (zh) | 2020-04-10 | 2020-04-10 | 一种防御软件定义网络中lldp中继攻击的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111585965A CN111585965A (zh) | 2020-08-25 |
CN111585965B true CN111585965B (zh) | 2021-05-14 |
Family
ID=72124320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010277208.3A Active CN111585965B (zh) | 2020-04-10 | 2020-04-10 | 一种防御软件定义网络中lldp中继攻击的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111585965B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103491076A (zh) * | 2013-09-09 | 2014-01-01 | 杭州华三通信技术有限公司 | 一种网络攻击的防范方法和系统 |
CN105933184A (zh) * | 2016-06-17 | 2016-09-07 | 中国人民解放军国防科学技术大学 | 基于lldp的sdn网络链路延迟测量方法 |
CN108632267A (zh) * | 2018-04-28 | 2018-10-09 | 清华大学深圳研究生院 | 一种拓扑污染攻击防御方法和系统 |
CN108833430A (zh) * | 2018-06-29 | 2018-11-16 | 华中科技大学 | 一种软件定义网络的拓扑保护方法 |
CN109347889A (zh) * | 2018-12-24 | 2019-02-15 | 沈阳航空航天大学 | 一种针对软件定义网络的混合型DDoS攻击检测的方法 |
WO2019035634A1 (ko) * | 2017-08-16 | 2019-02-21 | 삼성전자주식회사 | 소프트웨어 정의 네트워크에서 네트워크 공격을 처리하기 위한 장치 및 방법 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103236941B (zh) * | 2013-04-03 | 2015-09-30 | 华为技术有限公司 | 一种链路发现方法和装置 |
CN108833285A (zh) * | 2018-06-08 | 2018-11-16 | 浙江捷尚人工智能研究发展有限公司 | 网络移动目标防御方法、电子设备、存储介质及系统 |
KR102170311B1 (ko) * | 2018-09-17 | 2020-10-26 | 숭실대학교산학협력단 | Sdn 컨트롤러, sdn 환경에서의 보안 강화 시스템 및 sdn 환경에서의 보안 강화 방법 |
-
2020
- 2020-04-10 CN CN202010277208.3A patent/CN111585965B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103491076A (zh) * | 2013-09-09 | 2014-01-01 | 杭州华三通信技术有限公司 | 一种网络攻击的防范方法和系统 |
CN105933184A (zh) * | 2016-06-17 | 2016-09-07 | 中国人民解放军国防科学技术大学 | 基于lldp的sdn网络链路延迟测量方法 |
WO2019035634A1 (ko) * | 2017-08-16 | 2019-02-21 | 삼성전자주식회사 | 소프트웨어 정의 네트워크에서 네트워크 공격을 처리하기 위한 장치 및 방법 |
CN108632267A (zh) * | 2018-04-28 | 2018-10-09 | 清华大学深圳研究生院 | 一种拓扑污染攻击防御方法和系统 |
CN108833430A (zh) * | 2018-06-29 | 2018-11-16 | 华中科技大学 | 一种软件定义网络的拓扑保护方法 |
CN109347889A (zh) * | 2018-12-24 | 2019-02-15 | 沈阳航空航天大学 | 一种针对软件定义网络的混合型DDoS攻击检测的方法 |
Non-Patent Citations (3)
Title |
---|
Analysis of link discovery service attacks in SDN controller;Nguyen etal;;《IEEE》;20170111;第259-261页 * |
SDN控制平面安全防御研究;赵汉佳;《中国优秀硕士学位论文全文数据库信息科技辑(月刊)》;20180815;第I139-4页 * |
The (in) security of topology discovery in software defined networks;Alharbi etal;;《IEEE》;20151026;第502-505页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111585965A (zh) | 2020-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104539594B (zh) | 融合DDoS威胁过滤与路由优化的SDN架构、系统及工作方法 | |
CN101083563B (zh) | 一种防分布式拒绝服务攻击的方法及设备 | |
CN109617931B (zh) | 一种SDN控制器的DDoS攻击防御方法及防御系统 | |
CN104660582B (zh) | DDoS识别、防护和路径优化的软件定义的网络架构 | |
CN100558089C (zh) | 一种基于网络过滤器的内容过滤网关实现方法 | |
CN109768955B (zh) | 基于软件定义网络防御分布式拒绝服务攻击的系统及方法 | |
US20050111460A1 (en) | State-transition based network intrusion detection | |
CN109818970B (zh) | 一种数据处理方法及装置 | |
CN101465855B (zh) | 一种同步泛洪攻击的过滤方法及系统 | |
CN201563132U (zh) | 网络带宽控制装置与路由器 | |
CN104539595B (zh) | 一种集威胁处理和路由优化于一体的sdn架构及工作方法 | |
CN110198293A (zh) | 服务器的攻击防护方法、装置、存储介质和电子装置 | |
WO2015192319A1 (zh) | 软件定义网络中识别攻击流的方法、装置以及设备 | |
CN108810008B (zh) | 传输控制协议流量过滤方法、装置、服务器及存储介质 | |
CN108833430B (zh) | 一种软件定义网络的拓扑保护方法 | |
CN105207997A (zh) | 一种防攻击的报文转发方法和系统 | |
CN110995586B (zh) | 一种bgp报文的处理方法、装置、电子设备及存储介质 | |
CN106487790A (zh) | 一种ack flood攻击的清洗方法及系统 | |
CN108667804B (zh) | 一种基于SDN架构的DDoS攻击检测及防护方法和系统 | |
CN111585965B (zh) | 一种防御软件定义网络中lldp中继攻击的方法 | |
CN112751801B (zh) | 一种基于ip白名单的拒绝服务攻击过滤方法、装置及设备 | |
CN113765849A (zh) | 一种异常网络流量检测方法和装置 | |
CN106357661A (zh) | 一种基于交换机轮换的分布式拒绝服务攻击防御方法 | |
CN113032782B (zh) | 一种病毒传播抑制方法 | |
CN108521413A (zh) | 一种未来信息战争的网络抵抗和防御方法及系统 |
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 | ||
OL01 | Intention to license declared | ||
OL01 | Intention to license declared |