CN108011894A - 一种软件定义网络下僵尸网络检测系统及方法 - Google Patents
一种软件定义网络下僵尸网络检测系统及方法 Download PDFInfo
- Publication number
- CN108011894A CN108011894A CN201711433285.8A CN201711433285A CN108011894A CN 108011894 A CN108011894 A CN 108011894A CN 201711433285 A CN201711433285 A CN 201711433285A CN 108011894 A CN108011894 A CN 108011894A
- Authority
- CN
- China
- Prior art keywords
- botnet
- network
- vertex
- degree
- module
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 22
- 238000010586 diagram Methods 0.000 claims abstract description 54
- 238000001514 detection method Methods 0.000 claims abstract description 42
- 238000004891 communication Methods 0.000 claims abstract description 12
- 238000000605 extraction Methods 0.000 claims abstract description 10
- 238000012545 processing Methods 0.000 claims abstract description 6
- 238000007781 pre-processing Methods 0.000 claims abstract description 4
- 230000002265 prevention Effects 0.000 claims abstract description 4
- 238000012546 transfer Methods 0.000 claims abstract description 4
- 230000007704 transition Effects 0.000 claims abstract description 3
- 230000008569 process Effects 0.000 claims description 14
- 238000004458 analytical method Methods 0.000 claims description 7
- 230000004087 circulation Effects 0.000 claims description 5
- 238000010276 construction Methods 0.000 claims description 5
- 238000012360 testing method Methods 0.000 claims description 4
- 230000001419 dependent effect Effects 0.000 claims description 2
- 238000012804 iterative process Methods 0.000 claims description 2
- 235000013399 edible fruits Nutrition 0.000 claims 1
- 239000000284 extract Substances 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 15
- 238000013461 design Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 5
- 239000000203 mixture Substances 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 206010068052 Mosaicism Diseases 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 210000000481 breast Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- BCGWQEUPMDMJNV-UHFFFAOYSA-N imipramine Chemical compound C1CC2=CC=CC=C2N(CCCN(C)C)C2=CC=CC=C21 BCGWQEUPMDMJNV-UHFFFAOYSA-N 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 208000015181 infectious disease Diseases 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000010223 real-time analysis Methods 0.000 description 1
- 238000011897 real-time detection Methods 0.000 description 1
- 210000003765 sex chromosome Anatomy 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种软件定义网络下僵尸网络检测系统及方法,系统包括数据预热模块、拓扑收集模块、流图提取模块、检测引擎模块;数据预处理模块从数据层获取数据传递到上层进行分析,形成一个过渡层对数据进行第一次收集处理;拓扑收集模块通过SDN控制器收集通过流表信息从而构建得到网络拓扑结构图;流量图抽取模块实现对网络拓扑结构图作流量图抽取工作,从而得到某个时间段内实时通信的一个流量图;检测引擎模块对比实时流量图和CLI‑graph模型,从匹配的结果中判断是否存在僵尸网络,如若存在僵尸网络,则通过SDN控制器下发阻止流表,采取相应的限制措施。本发明使得SDN控制器可以单独的定位攻击,减小了僵尸网络检测的延迟,减轻网络设备的负担。
Description
技术领域
本发明属于网络信息安全技术领域,具体涉及一种软件定义网络下轻量级并且具有实时性的僵尸网络检测系统及方法。
背景技术
网络通信技术的迅猛发展导致网络中出现了一系列风险和危险。在过去的几十年间,僵尸网络已经成为最有威胁性的网络安全问题之一。许多知名的恶意软件,例如Stuxnet和Zeus都是利用了僵尸网络无限的攻击能力来获取在经济、军事、政治等方面的利益。
大部分现有的关于僵尸网络攻击检测和防御的研究大都是聚焦在基于主机的抗威胁方案。这些方案完全依赖分布式的工作模式。尽管这些分布式的检测和防御方案很容易部署,但是他们只能检测到网络中的一些受妥协的节点,由于缺乏全局视野,所以这些方案对于全局化的攻击并不敏感。
软件定义网络允许网络管理者通过分离数据层和控制层,从而抽象出高层功能,进而便于网络管理。它为网络安全问题提供了一个新的思路,可以快速的获取基本数据源。到目前为止,在SDN架构下解决网络安全问题的研究工作并不多。Haq提出了名为NetworkRadar的方案。这个方案是为网络服务提供商以及企业网络提供一种检测僵尸网络的集中化原型。在该方案中,检测任务最终是由数据层设备以及控制器合作完成的。此外,该方案仍旧是在传统网络架构下的一种实现,在每个分布式设备上实现深度包分析和配置会产生大量的负载。Wijesinghe提出一种通过分析SDN中的流量信息并结合机器学习的技术来实现的僵尸网络检测的方案。众所周知,机器学习算法在传统僵尸网络检测方案中是一种耗时且较为低效的技术。前面提到的这些技术都只能在一个僵尸网络攻击完成后才能检测到这种攻击的存在。
基于上述的分析,想要在SDN网络中实现僵尸网络的检测,仍旧面临两大挑战。
①SDN架构下没有轻量级的僵尸网络检测的方法。机器学习的算法给网络设备带来了很大的负载。为了给僵尸网络检测方案提高整个网络的性能,目前迫切需要一种轻量级的,仅仅给网络设备产生较低计算和通信开销的僵尸网络检测方案。
②一个实时的僵尸网络检测方案有助于及时采取有效的应对措施,防止攻击影响的扩大。然而,目前SDN架构下的僵尸网络检测的解决方案中并不能在僵尸网络生命周期的早些时候发现僵尸机的存在,那些方案只能给出一些缓解攻击的措施,对僵尸网络的攻击并不敏感。因此,迫切需要一个可实现实时检测的方案来解决这个时效性问题。及时的检测结果可以在大规模攻击爆发前阻止僵尸机的行为,从而有效控制僵尸网络的攻击。
发明内容
为了解决上述技术问题,本发明提出了一种软件定义网络下轻量级并且具有实时性的僵尸网络检测系统及方法。
本发明的系统所采用的技术方案是:一种软件定义网络下僵尸网络检测系统,其特征在于:包括数据预热模块、拓扑收集模块、流图提取模块、检测引擎模块;
所述数据预处理模块,从数据层获取数据传递到上层进行分析,形成一个过渡层对数据进行第一次收集处理;
所述拓扑收集模块,通过SDN控制器收集通过流表信息从而构建得到网络拓扑结构图;
所述流量图抽取模块,通过进一步解析Openflow消息实现对网络拓扑结构图作流量图抽取工作,从而得到某个时间段内实时通信的一个流量图;
所述检测引擎模块,对比实时流量图和CLI-graph模型(a convex lens imaginggraph),从匹配的结果中判断是否存在僵尸网络,如若存在僵尸网络,则通过SDN控制器下发阻止流表,采取相应的限制措施。
本发明的方法所采用的技术方案是:一种软件定义网络下僵尸网络检测方法,其特征在于:
步骤1:从数据层的交换机收集数据,做好预处理准备。
步骤2:通过SDN控制器获取当前的网络的拓扑连接情况,形成拓扑图;
步骤3:在一段时间内,检测实时数据包的情况,从拓扑图中进一步抽取当前正在实时通信的节点与互联的边的情况,构成流图;
步骤4:利用图匹配算法,比较流图和CLI-graph模型的匹配情况,一旦匹配成功,判断存在僵尸网络;如果匹配不成功,则判断目前不存在僵尸网络。
本发明利用了SDN的全网拓扑视图以及灵活可编程性的特点,为实时识别僵尸网络的存在提供了有利条件。虽然SDN作为一个新兴的网络架构,能够在僵尸网络检测过程中发挥高效的集中控制能力,但是在现有SDN环境下部署僵尸网络检测的相关方案依旧面临检测效率不高等问题。针对这些问题与挑战,本发明采用图匹配算法的思想,提出凸透镜成像的模型图描述僵尸网络的拓扑特征,通过匹配模型图来判定僵尸网络攻击的存在性。本发明提出的检测方案允许SDN的控制器实现独立定位攻击位置,同时可以减轻网络中其他设备的负载。理论分析和实验评估均表明本发明能够在SDN环境下实现实时的僵尸网络检测,更具体的说,本发明具有高于90%的检测率以及少于56ms的时延。
附图说明
图1为本发明实施例的系统架构图。
图2为本发明实施例的POX文件目录结构图。
图3为本发明实施例的Discovery组件处理流程图。
图4为本发明实施例的POX控制器网络拓扑构造流程图。
图5为本发明实施例的流量图抽取过程示意图。
图6为本发明实施例的CLI-graph模型。
具体实施方式
为了使本发明的目的、技术方案及有益效果更佳清楚明白,以下结合附图即实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不限于本发明。
本发明依赖SDN控制器对于僵尸网络特殊拓扑特性的实时分析和处理,具有轻量级和实时性的两大检测特性。通过选取软件定义网络这种新型网络架构,充分利用SDN控制器的集中控制能力,实现一种集中式的检测方法,高效且较为全面的解决僵尸网络检测问题。本发明通过实时抽取网络拓扑中的流量图来获取检测的实时性;其次通过基于拓扑图的一种匹配检测方法来减小检测过程中的通信和计算开销,从而实现轻量级的效果。
请见图1,本发明在软件定义网络(Software defined Network,SDN)环境下提出了一种轻量的实时僵尸网络检测系统,取名为BotGuard,主要包括数据预热模块、拓扑收集模块、流图提取模块、检测引擎模块四个功能模块。这四个功能模块各司其职,共同完成最终的检测功能。首先是作为预热过程的数据预处理模块。它们通过数据层获取网络上的数据,交由上层控制器做进一步分析处理。在检测阶段,Openflow消息被用于建立基于当前网络拓扑的实时流量图。然后根据基于图的分析算法,将抽取的流量图和CLI-graph进行对比,从而判断僵尸网络的存在情况。
1、基于POX的拓扑收集模块;
这部分主要介绍如何利用SDN控制器来获取网络拓扑图。拓扑收集的工作主要由POX控制器的两个重要模块来实现。
(1)POX的关键组件;
NOX是最早的SDN操作系统,最初是由Nicira公司主导开发的首款基于Openflow的开源SDN控制器。NOX主要是基于C++开发的。对于开发者而言,其庞大的代码量和极大的复杂度都会形成阻碍。因此,NOX团队又利用Python语言实现了一款全新的控制器,即POX。
请参阅图2,POX具体的目录结构图,图中的每个文件夹可以视作一个功能模块,文件名后缀为py的文件被视为POX的组件。其中,forwarding组件包主要提供数据转发的功能;host_tracker组件包主要可以实现网络主机的追踪;Openflow组件包实现了openflow消息的封装和包解析功能;message组件包负责完成控制器与外部进程的交互;topology组件包负责管理拓扑信息等,其他组件就不详细赘述了。
在这里主要介绍POX控制器中与网络相关的几个组件:
Discovery组件。该组件是Openflow组件包中的一个代表性组件,主要是通过LLDP数据包推算出网络的拓扑情况。控制器向所有的交换机接口发送LLDP数据包,从而通过接受到的LLDP数据包监测交换机链接情况,得出拓扑结构。
Topology组件。该组件是topology组件包中的一项,被用来记录当前网络环境下处于活动状态的链接相关信息,存放在控制器中,并根据链接情况变化及时更新。
Routing组件。该组件主要负责计算数据通路,同时确保选择的路径最短。它也与Topology组件关联,维护路由信息。
Monitoring组件。该组件会周期性地向所有与Controller控制器相连的交换机发送查询信息,从而得知交换机工作状态是否正常。
Authenticator组件。该组件能够在控制器内存中记录网络中所有经过认证的主机和用户信息,并利用一个三元组作为网络位置对相关信息进行索引。这个三元组由链路层地址、网络层地址和访问点(例如数据通路、端口对等)组成。
请参阅图3,Discovery组件处理流程图。网络拓扑构成的关键组件是Discovery组件,它主要是通过发送LLDP报文来发现整个网络的拓扑情况,当一个链路建立连接或是因为某种原因需要断开连接,Discovery组件都会触发相应的事件来完成相关操作。Discovery组件主要是对Packet-in消息进行处理。从图中可以看到,接收到上报分组事件后,会判断其类型是否为LLDP_TYPE或者NDO_MULTICAST,如果确定为上述类型则进一步解析LLDP数据包,否则终止流程。下一步是判断TLV的数量,如果TLV数量大于3,则进一步判断TLV前三个元素的tlv_type值,是否为CHASSIS_ID_TLV、PORT_ID_TLV、TTL_TLV;若三个值中存在不对应的情况也会停止流程。接下来的一步是寻找DPID,判断交换机的端口是否为已知交换机,如果是已知交换机,则获取其端口值,如果端口为本机的端口则结束流程,否则根据端口值建立link;在建立link的过程中还需要判断link是否为全新的链路,这时就需要构建LinkEvent事件通知相关的handler处理。若不是全新的link则只需要更新时间戳,至此就完成了操作。
(2)拓扑结构形成与表示
请参阅图4,POX控制器构造网络拓扑的完整流程图,软件定义网络中构建拓扑结构图主要依赖于POX控制器的两个重要部件是discovery.py和spanning_tree.py。图4的上半部分的虚线框详细展开了discovery.py和spanning-tree.py两个模块相关的消息机制。该图的下半部分描述了拓扑图的形成过程。
实现拓扑图的关键模块是事件触发器和事件句柄。一旦出现与交换机的新连接,正如图4最左边的矩形框所示的情况,出现新的Switch。这时,会触发ConnectionUp事件。作为连锁反应,一个LLDPSender类的实例会将端口相关的信息从其连接的交换机中传送出去。这个实例会调用add_port()函数,用于构造LLDP数据包。然后会调用_set_timer()函数来触发timer_hander(),这个函数主要负责发送LLDP数据包。
当LLDP数据包被发送至控制器时,Packet-in消息会被触发。其结果是,Discovery类的一个实例将会解析来自交换机的LLDP数据包。解析的第一个步骤是构造一个Link对象。如果某个链接不存在于现有的链接表中,则这个新链接会作为一个新的记录计入在字典中,与此同时,会触发LinkEvent事件。如果某个链接已经存在了,则会更新一次拓扑图。这个更新操作同样由LinkEvent事件完成。如果某个链接被关闭或者某个端口改变了,_calc_spanning_tree()将会被用于更新网络的拓扑结构。
为了满足BotGuard对于拓扑图的需求,本实施例将网络拓扑的最终树结构视为拓扑收集的最终结果。结果可以表示为公式1。
{switch1:([(switch2,port1),(switch3,port2)]…)
switch2:([(switch1,port1),(switch3,port1)…])…} (1)
最终这个树结构也是下一个模块流量图抽取模块的重要输入。端口和交换机之间的关系可以参照公式1。
2、实时流量图抽取模块
(1)实时流量图
请参阅图5,流量图抽取过程示意图。基于拓扑收集模块的输出以及SDN控制器的全网拓扑视图,本方案可以实现实时的流量图抽取。图中就是一个流量图抽取过程的例子。在给定的监控时间内,由相互通信关联的主机以及它们之间的连接构成的就是一个实时的流量图。具体来说,在图5中,可以发现拓扑图中存在的H3却不在右边的流量图中。这是因为H3这台主机在监控的这段时间间隔中没有和其他的任何机器进行通信,也就不存在任何相关流量。本实施例定义这个检测的时间间隔是从获取第一个数据包起计时,直到检测引擎启动检测的过程为止。这个时间参数在后续的实验环节也是一个非常重要的参数。
(2)流量图的抽取
根据Openflow协议的消息机制,本实施例根据Packet-in消息实现了一种被动检测。SDN交换机将消息发送给SDN控制器,如果在SDN交换机的流表中不存在相匹配的流表,那么SDN控制器会下发建立新连接的指令。遇到新的数据包时,SDN控制器会获取其流特征,包括端口和SDN交换机的信息,然后获取数据包的五元组,用来构建在流量图抽取模块所需要的实时流量图。这整个过程中所涉及到的SDN网络设备数据包的转发操作可以描述为一个函数T。函数T模拟了转发操作,包括接收新的数据包以及根据输出端口所进行的转发操作。这里所提到的端口是指Openflow交换机中流表特定的端口。公式2给出了函数T的一个例子,其中s代表了一个交换机,p代表了一个端口。
T:(s,p)→{(s1,p1)(s2,p1)…} (2)
例如,定义转换规则Ra→b所描述的是主机a和主机b之间的信息转换规则。具体形式如公式3,其中,Γ代表了一系列的函数T的集合。
因此,主机a到主机b的路径可以视为包含了以下转换函数和规则,可以简单地用公式4来描述。
{T1,T2,T3,…,Tn} (4)
接下来,具体分析网络流的五元组之间的关系。从Packet-in消息中获取网络五元组,从而分析出在当前网络中,哪些主机是相互通信,存在连接的。最终,一个实时的流量图就通过这样的迭代过程得到了。最终主机之间的关联关系,可以由公式5来描述,以此表现本实施例得到了主机之间的关联情况。
{(H1,H2)(H1,H3)…(Hn,Hm)} (5)
流量图是由多个端点和边组成的。其中端点就代表了各台主机设备,而关联的边就代表了主机之间存在数据包的传输。因为在软件定义网络架构下Packet-in消息是一种实时消息,所以这也为本方案的实时检测提供了可能。也就是说,本方案可以在僵尸网络攻击完成前,充分利用SDN下被动的Packet-in消息来获取网络数据,从而及时分析出网络的特殊情况。在本实施例的方案中,检测时间间隔被设定为80ms,这个数据是根据相关实验得到的一个平均测定值。实时的流量图对于检测引擎而言是一个非常重要的模块。
3、检测引擎模块
(1)基于CLI-graph的检测模块
在这个模块中,检测功能主要是通过匹配从SDN控制器中抽取的流量图与CLI-graph模型而得出结论。CLI-graph模型是本实施例针对纯中心结构这类僵尸网络模型提出的一种拓扑特性模型。通过流量图抽取模块所得到的流量图在这个检测模块中是作为一种至关重要的源数据输入。此模块需要解决的下一个问题是如何实现两个图之间的匹配。
针对匹配这个问题,第一步是考虑设计匹配的模板,第二部是考虑设计匹配的算法。
关于第一步匹配模板的设计,就是CLI-graph模型。尽管僵尸网络的架构和实现是相当复杂的,不同的僵尸网络会有不同的源码库,不同的规模、结构、复杂程度以及不同的实现方法。但是在众多不同特性下,纯中心化僵尸网络的拓扑特征可以有较为统一模板。总结特征如下:僵尸网络是由一个攻击发起点,众多攻击中间节点以及最后某一个特定受害点组成的。通常攻击发起点是攻击者通过恶意软件去感染的某台机器。中间节点受这台机器的控制,被称为僵尸机。攻击者一旦有能力控制多台僵尸机的时候,它就能利用这些僵尸机发起攻击。最终,攻击者可以强迫这些中间僵尸机同时针对一个攻击点进行攻击。
请参阅图6,CLI-graph模型。依照纯中心结构的僵尸网络拓扑特征而提出了CLI-graph这个全新的图概念。这个图就是本方案中的匹配模板。在BotGuard方案中,充分利用了CLI-graph模型来进行匹配,辨识僵尸网络。
(2)基于图的匹配算法
由于CLI-graph是二分图的一个特殊例子,因此它的匹配算法也参考了二分图相关的匹配算法。利用二分图最大匹配算法的一些特性来设计并实现本实施例所需要的僵尸网络检测方案中的图匹配。在图匹配算法中,如何存储图的数据结构是需要解决的第一个问题。网络中最常见的图存储结构是星型和链接表。对比这两种数据结构,星型的数据结构设计很巧妙,很切合网络拓扑的特性,但这种数据结构的存储空间较大,在增加和删除节点时所耗费的时间也较多。相比较之下,链接表则是一种更为高效的存储形式。因此,最后本实施例选择利用链接表来存储本方案中提到的拓扑有向图。
本实施例将CLI-graph模型的特性总结如下:
1)源端点仅有一个出度边;
2)目标节点只有一个入度边;
3)源端点和目标节点之间有多个顶点,且顶点之间的关联边各不相同。
匹配算法是基于对图中节点出入边的情况,以及上述总结的CLI-graph图特性来设计的。因此本实施例在算法1中列出了计算顶点入度的算法。关于出度的计算,就是将头指针改为head2即可,思路是类似的。
在匹配算法的设计中,使用到了广度优先算法(BFS,breadth-first-search)来遍历整个拓扑图,从而计算图中每个节点的出入度情况。前面提到的这个图是在流量图抽取模块中得到的结果。针对每个节点的出入度情况的考虑,如果节点的度正好满足CLI-graph模型中的节点情况,本方案则推测当前的网络中存在一个纯中心化的僵尸网络攻击模型。结果判断的流程思路在算法2中详细给出。其中,a是一个可根据网络当前所包含主机数量而改变的常量。
一旦僵尸网络的拓扑图被确定,本方案中的检测引擎便会向控制器发出警告信息。对于阻止攻击部分,本实施例也作出了相应的设计:在控制器中建立了有效的阻止流量的规则流表,从而阻止僵尸网络攻击的进一步扩散。
(3)算法复杂度的考虑
为了能够分析基于图分析算法的复杂度,本实施例假设当前SDN拓扑网络中有n台主机设备作为节点,他们之间通信关联构成了e条边。
根据算法2的描述,检测方案会从n个节点中选取一个节点来进行广度优先遍历。紧接着,会进行基于拓扑结构和节点之间的关联来进行节点出入度的计算。这两个步骤的时间复杂度可以作如下总结:
初始化步骤:计算每个顶点的度,所需要的时间复杂度为O(n*e);
匹配过程:基于广度优先算法的遍历,匹配过程包括两算法2中提到的两个循环遍历过程。则这个过程所需要的时间复杂度是O(n2)。
综上所述,本方案提出的基于图的匹配算法所需要的时间复杂度为O(n*e)+O(n2),最终,基于CLI-graph图匹配的检测算法所需要的时间复杂度会根据图的节点数而变化,可归纳为O(n2)。因为主机数n是一个可数整数范围的数字,所以可以将BotGuard视为一个具有轻量级计算开销的方案。
本发明专注于软件定义网络的环境下僵尸网络的检测问题,提出软件定义网络中的实时轻量级僵尸网络检测方法,利用SDN结合网络拓扑图检测算法实现对于僵尸网络攻击的识别和有效阻止。
本发明提供的一种软件定义网络下僵尸网络检测方法,包括以下步骤:
步骤1:从数据层的交换机收集数据,做好预处理准备。
步骤2:通过SDN控制器获取当前的网络的拓扑连接情况,形成拓扑图;
步骤3:在一段时间内,检测实时数据包的情况,从拓扑图中进一步抽取当前正在实时通信的节点与互联的边的情况,构成流图;
步骤4:利用图匹配算法,比较流图和CLI-graph模型的匹配情况,一旦匹配成功,判断存在僵尸网络;如果匹配不成功,则判断目前不存在僵尸网络。
本发明充分利用了软件定义网络的全局可视以及灵活编程性的特点,从而可以及时检测到僵尸网络。本发明提出了凸透镜成像模型图(CLI-graph)来描述僵尸网络的拓扑特征,这样的设计使得SDN控制器可以单独的定位攻击,并且减轻网络设备的负担。
本发明实现了SDN架构下一个轻量实时的僵尸网络检测模型。在僵尸网络的拓扑模型基础上总结归纳出了一个棱镜成像(CLI-graph)的图模型结构。此外,不同于现有SDN架构下的检测方法,本发明设计了一个计算代价小的基于图的匹配检测算法。这些解决方案减小了僵尸网络检测的延迟,为背景技术中第一个挑战提出了解决方案。
本实施例中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
Claims (8)
1.一种软件定义网络下僵尸网络检测系统,其特征在于:包括数据预热模块、拓扑收集模块、流图提取模块、检测引擎模块;
所述数据预处理模块,从数据层获取数据传递到上层进行分析,形成一个过渡层对数据进行第一次收集处理;
所述拓扑收集模块,通过SDN控制器收集通过流表信息从而构建得到网络拓扑结构图;
所述流量图抽取模块,通过进一步解析Openflow消息实现对网络拓扑结构图作流量图抽取工作,从而得到某个时间段内实时通信的一个流量图;
所述检测引擎模块,对比实时流量图和CLI-graph模型,从匹配的结果中判断是否存在僵尸网络,如若存在僵尸网络,则通过SDN控制器下发阻止流表,采取相应的限制措施。
2.根据权利要求1所述的软件定义网络下僵尸网络检测系统,其特征在于:构建网络拓扑结构图,依赖于POX控制器的discovery.py和spanning_tree.py,其具体构建过程包括以下子步骤:
(1)出现新的Switvh,触发ConnectionUp事件;
(2)LLDPSender类的实例将端口相关的信息从其连接的交换机中传送出去;该实例调用add_port()函数构造LLDP数据包,然后调用_set_timer()函数来触发timer_hander()以发送LLDP数据包;
(3)LLDP数据包被发送至POX控制器,触发Packet-in消息;
(4)Discovery类通过构造一个Link对象解析来自交换机的LLDP数据包,解析结果分为以下三种情况:
①链接不存在于现有的链接表,这个新链接会作为一个新的记录计入在字典中,并触发LinkEvent事件;
②链接已经存在,更新一次网络拓扑结构图;
③链接被关闭或者某个端口改变,_calc_spanning_tree()将会被用于更新网络的拓扑结构;
(5)将网络拓扑结构图的最终树结构看作拓扑收集的最终结果,并作为下一个模块流量图抽取模块的重要输入。
3.根据权利要求1所述的软件定义网络下僵尸网络检测系统,其特征在于,所述流量图抽取模块对网络拓扑结构图作流量图抽取,具体实现过程是:SDN交换机将消息发送给SDN控制器,如果在SDN交换机的流表中不存在相匹配的流表,那么SDN控制器会下发建立新连接的指令;遇到新的数据包时,SDN控制器会获取其流特征,包括端口和SDN交换机的信息;然后获取数据包的五元组,用来构建在流量图抽取模块所需要的实时流量图;接着,分析数据包的五元组之间的关系,从Packet-in消息中获取数据包的五元组,从而分析出在当前网络中,哪些主机是相互通信,存在连接的;最终,一个实时的流量图就通过这样的迭代过程得到了。
4.根据权利要求1所述的软件定义网络下僵尸网络检测系统,其特征在于:所述CLI-graph模型是一个有向图,表示为一个有序对G=(V,A),其中V代表顶点集合,A表示一系列顶点的顺序对,即顶点之间的关联,也称为有向边;CLI-graph模型的特性如下:
①源端点仅有一个出度边;
②目标节点只有一个入度边;
③源端点和目标节点之间有多个顶点,且顶点之间的关联边各不相同。
5.根据权利要求4所述的软件定义网络下僵尸网络检测系统,其特征在于:所述对比实时流量图和CLI-graph模型,从匹配的结果中判断是否存在僵尸网络;具体实现包括以下步骤:
(1)依照纯中心结构的僵尸网络拓扑特征构建CLI-graph模型;
(2)使用到了广度优先算法来遍历整个网络拓扑结构图,从而计算网络拓扑结构图中每个节点的出入度情况;如果节点的度正好满足CLI-graph模型中的节点情况,则推测当前的网络中存在一个纯中心化的僵尸网络攻击模型。
6.根据权利要求5所述的软件定义网络下僵尸网络检测系统,其特征在于:所述计算网络拓扑结构图中每个节点的出入度情况,其中计算顶点入度的算法包括以下步骤:
步骤A1:定义输入和输出;
输入为图的邻接表形式,用AdjGraph g(v,e)表示;输出为顶点s的入度,用inD表示;
步骤A2:遍历图中的所有顶点,初始化赋值inD的值为0,并将此时的p指针指向当前顶点adj[i]的头指针g.adj[i].head1;
步骤A3:循环判断此时的指针p是否为空,如果不为空,将inD值自加1,同时将指针p指向后移至邻接表的下一个;
步骤A4:如果指针p指向空,则循环结束,得到该顶点的入度,即最终的inD的值。
7.根据权利要求5所述的软件定义网络下僵尸网络检测系统,其特征在于:所述如果节点的度正好满足CLI-graph模型中的节点情况,则推测当前的网络中存在一个纯中心化的僵尸网络攻击模型;其具体实现包括以下步骤:
步骤B1:定义输入和输出;
输入为流图结构,用g(v,e)表示;输出为僵尸网络的检测结果;
步骤B2:遍历图中的所有顶点,得到每个顶点的入度值inDegree(vi),出度值Degree(vi),给标记赋初始值vi.mark=0,同时给两个归一标记赋值t1=0,t2=0;
步骤B3:循环判断,针对每个属于g(v,e)中的顶点vi执行循环判断,若果其标记值vi.mark为零,对该顶点进行广度优先遍历BFS(vi);
步骤B4:进入广度优先遍历的循环,对于每个循环的顶点判断其出度与入度的值,如果同时满足一个顶点只有出度,一个顶点只有入度,其他顶点的出度和入度数大于1,当三个条件同时成立时,给出警告的检测结果,判定存在CLI-graph模型;否则跳出此循环,返回步骤B3;
步骤B5:所有顶点遍历结束,如果没有满足步骤B4的情况,则给出不匹配的检测结果,即判断不存在僵尸网络。
8.一种软件定义网络下僵尸网络检测方法,其特征在于,包括以下步骤:
步骤1:从数据层的交换机收集数据,做好预处理准备;
步骤2:通过SDN控制器获取当前的网络的拓扑连接情况,形成拓扑图;
步骤3:在预定时间段内,检测实时数据包的情况,从拓扑图中进一步抽取当前正在实时通信的节点与互联的边的情况,构成流图;
步骤4:利用图匹配算法,比较流图和CLI-graph模型的匹配情况,一旦匹配成功,判断存在僵尸网络;如果匹配不成功,则判断目前不存在僵尸网络。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711433285.8A CN108011894A (zh) | 2017-12-26 | 2017-12-26 | 一种软件定义网络下僵尸网络检测系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711433285.8A CN108011894A (zh) | 2017-12-26 | 2017-12-26 | 一种软件定义网络下僵尸网络检测系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108011894A true CN108011894A (zh) | 2018-05-08 |
Family
ID=62061427
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711433285.8A Pending CN108011894A (zh) | 2017-12-26 | 2017-12-26 | 一种软件定义网络下僵尸网络检测系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108011894A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108965248A (zh) * | 2018-06-04 | 2018-12-07 | 上海交通大学 | 一种基于流量分析的p2p僵尸网络检测系统及方法 |
CN109002856A (zh) * | 2018-07-20 | 2018-12-14 | 西安交通大学 | 一种基于随机游走的流量特征自动生成方法与系统 |
CN109462597A (zh) * | 2018-12-07 | 2019-03-12 | 北京奇安信科技有限公司 | 一种流量可视化方法、系统、设备及介质 |
CN109802852A (zh) * | 2018-12-13 | 2019-05-24 | 烽台科技(北京)有限公司 | 应用于网络靶场的网络仿真拓扑的构建方法及系统 |
CN113242215A (zh) * | 2021-04-21 | 2021-08-10 | 华南理工大学 | 一种针对sdn指纹攻击的防御方法、系统、装置及介质 |
CN113556317A (zh) * | 2021-06-07 | 2021-10-26 | 中国科学院信息工程研究所 | 基于网络流结构特征融合的异常流量检测方法及装置 |
CN115174141A (zh) * | 2022-05-27 | 2022-10-11 | 贵州华谊联盛科技有限公司 | 一种基于图与链路流量分析的入侵检测与链路动态可视化方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105099799A (zh) * | 2014-05-05 | 2015-11-25 | 华为技术有限公司 | 僵尸网络检测方法和控制器 |
CN105357046A (zh) * | 2015-11-23 | 2016-02-24 | 北京邮电大学 | 一种用于软件定义网络sdn的网络信息探测的方法 |
CN105516129A (zh) * | 2015-12-04 | 2016-04-20 | 重庆邮电大学 | 基于sdn技术实现僵尸网络控制信道阻断的方法和装置 |
CN106921666A (zh) * | 2017-03-06 | 2017-07-04 | 中山大学 | 一种基于协同理论的DDoS攻击防御系统及方法 |
-
2017
- 2017-12-26 CN CN201711433285.8A patent/CN108011894A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105099799A (zh) * | 2014-05-05 | 2015-11-25 | 华为技术有限公司 | 僵尸网络检测方法和控制器 |
CN105357046A (zh) * | 2015-11-23 | 2016-02-24 | 北京邮电大学 | 一种用于软件定义网络sdn的网络信息探测的方法 |
CN105516129A (zh) * | 2015-12-04 | 2016-04-20 | 重庆邮电大学 | 基于sdn技术实现僵尸网络控制信道阻断的方法和装置 |
CN106921666A (zh) * | 2017-03-06 | 2017-07-04 | 中山大学 | 一种基于协同理论的DDoS攻击防御系统及方法 |
Non-Patent Citations (1)
Title |
---|
CHEN JING,: ""BotGuard: Lightweight Real-Time Botnet Detection in Software Defined Networks",", 《WUHAN UNIVERSITY JOURNAL OF NATURAL SCIENCES》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108965248A (zh) * | 2018-06-04 | 2018-12-07 | 上海交通大学 | 一种基于流量分析的p2p僵尸网络检测系统及方法 |
CN108965248B (zh) * | 2018-06-04 | 2021-08-20 | 上海交通大学 | 一种基于流量分析的p2p僵尸网络检测系统及方法 |
CN109002856A (zh) * | 2018-07-20 | 2018-12-14 | 西安交通大学 | 一种基于随机游走的流量特征自动生成方法与系统 |
CN109462597A (zh) * | 2018-12-07 | 2019-03-12 | 北京奇安信科技有限公司 | 一种流量可视化方法、系统、设备及介质 |
CN109462597B (zh) * | 2018-12-07 | 2021-07-06 | 奇安信科技集团股份有限公司 | 一种流量可视化方法、系统、设备及介质 |
CN109802852A (zh) * | 2018-12-13 | 2019-05-24 | 烽台科技(北京)有限公司 | 应用于网络靶场的网络仿真拓扑的构建方法及系统 |
CN113242215A (zh) * | 2021-04-21 | 2021-08-10 | 华南理工大学 | 一种针对sdn指纹攻击的防御方法、系统、装置及介质 |
CN113556317A (zh) * | 2021-06-07 | 2021-10-26 | 中国科学院信息工程研究所 | 基于网络流结构特征融合的异常流量检测方法及装置 |
CN115174141A (zh) * | 2022-05-27 | 2022-10-11 | 贵州华谊联盛科技有限公司 | 一种基于图与链路流量分析的入侵检测与链路动态可视化方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108011894A (zh) | 一种软件定义网络下僵尸网络检测系统及方法 | |
Rasool et al. | Cyberpulse: A machine learning based link flooding attack mitigation system for software defined networks | |
Rahman et al. | Block-sdotcloud: Enhancing security of cloud storage through blockchain-based sdn in iot network | |
EP3111433B1 (en) | Wireless sensor network | |
CN107690776A (zh) | 用于异常检测中的将特征分组为具有选择的箱边界的箱的方法和装置 | |
CN108900541A (zh) | 一种针对云数据中心sdn安全态势感知系统及方法 | |
CN107667505A (zh) | 用于监控和管理数据中心的系统 | |
CN109600363A (zh) | 一种物联网终端网络画像及异常网络访问行为检测方法 | |
Ma | Analysis of anomaly detection method for Internet of things based on deep learning | |
CN109274673A (zh) | 一种网络流量异常检测和防御方法 | |
CN102801738A (zh) | 基于概要矩阵的分布式拒绝服务攻击检测方法及系统 | |
CN107196930A (zh) | 计算机网络异常检测的方法、系统及移动终端 | |
CN107645472A (zh) | 一种基于OpenFlow的虚拟机流量检测系统 | |
Jiang et al. | An entropy-based DDoS defense mechanism in software defined networks | |
CN107995225A (zh) | 一种面向复杂网络的安全隐患分析方法 | |
CN114024747A (zh) | 基于软件定义nfv的安全服务链编排部署方法及系统 | |
CN108632267A (zh) | 一种拓扑污染攻击防御方法和系统 | |
Qiu et al. | Global Flow Table: A convincing mechanism for security operations in SDN | |
Wen et al. | Are the popular users always important for information dissemination in online social networks? | |
CN109150920A (zh) | 一种基于软件定义网络的攻击检测溯源方法 | |
Chen et al. | BotGuard: Lightweight real-time botnet detection in software defined networks | |
Ping et al. | An incident response decision support system based on CBR and ontology | |
CN107070681A (zh) | 基于软件定义网络sdn的网络拓扑获取方法及装置 | |
CN112491801B (zh) | 一种基于关联矩阵的面向对象网络攻击建模方法及装置 | |
Hussein et al. | Machine learning for network resiliency and consistency |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20190415 Address after: 510623 39 Floor, No. 15, Pearl River West Road, Tianhe District, Guangzhou City, Guangdong Province (Unit 05-08 compiled by the Ministry) Applicant after: Guangdong excellent joint holding group Limited by Share Ltd Address before: 430060 No. 100 Zisha Road, Wuhan City, Hubei Province Applicant before: Chen Jing |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180508 |