背景技术
软件定义网络是一种新兴的网络体系结构,近年来得到了广泛的应用,其核心思想是网络的控制和数据平面分离,将控制逻辑集中到一个称为SDNSDN控制器的实体上,从而通过软件开发应用程序来实现网络的可编程性。与传统网络相比,SDN的管理更加简单高效且通用。SDN在网络安全方面也具有优势。传统网络的安全策略必须在路由器和交换机等网络设备以及防火墙和入侵检测系统等中间盒中实现,而这些设备是通过特定于制造商的命令进行配置的,不具有通用性。相比之下,SDN的统一管理方式以及和制造商无关的特性可以有效降低配置或修改安全策略时出现人为错误的可能性。
随着全球信息化的发展,网络空间中的利益竞争愈发激烈,网络攻防成为常态。目前网络攻击和攻击导致的恶意流量仍然是互联网最大的安全威胁之一。恶意流量给系统安全、数据安全带来巨大的损失。当前,网络攻击的主要特点是攻击方法不断创新,攻击频率持续增高,攻击规模越来越大,攻击场景越来越复杂。攻击的隐蔽性和多态性加深了恶意流量检测与防御的难度。虽然SDN网络架构与传统网络不同,但是传统的网络攻击仍然能起到攻击效果。恶意流量检测一直是网络安全领域的难点问题。现有的网络异常检测方法根据算法的复杂度,可以分为轻量级的检测方法和重量级的检测方法。轻量级的检测方法包括基于参数统计的检测方法、基于信息熵的检测方法和基于标签的检测方法。重量级的检测方法主要指采用机器学习或数据挖掘等技术的方法,包括基于单分类支持向量机和主动学习的方法、基于主成分分析的方法、基于时间序列分析的方法和基于健壮多元概率校准模型的方法等。
在网络空间的攻防博弈过程中,同样遵从信息制胜的规律,知己知彼才能实现特定目标。在很长时间内,网络防御思路都是以漏洞作为中心,在还原网络攻击和预测未知攻击方面具有很大不足。网络威胁情报的出现弥补了这些缺陷。网络威胁情报是指通过对网络威胁的特征和模式进行追踪分析而构建的知识集合,主要包括威胁的场景、方式以及其他线索,并提供可供参考的操作性意见。这些信息可以帮助防御方发现可能面对的危险,在攻击的较早阶段就采取应对措施。情报信息也有助于还原已经发生的攻击事件,并预测可能发生的攻击。
CTI服务器是一台与交换机相联的计算机,是整个Call Center的核心,它将电话交换系统和计算机系统有机地结合起来,充分利用交换机话路交换功能和计算机系统数据处理功能。当前已经有相关工作利用网络安全威胁情报提升SDN网络安全。现有技术已经提出了在虚拟网络上实现主动恶意流量检测的方案。利用一个入侵检测系统(BroIDS)检测攻击和威胁,然后根据CTI提供的信息将威胁应对措施转化为流规则并下发给交换机,可以阻止恶意流量或者将恶意流量导向蜜罐进行进一步分析。同时现有技术还提出了一种基于风险分析的SDN网络威胁防御模型。该模型从CTI服务器上获取威胁信息,利用威胁信息识别来自可靠性低的服务器的流量并确定应对措施,之后对恶意流量进行过滤。该模型同样是在虚拟网络上进行验证,因此,这两种方案都没有考虑物理测试环境下系统的有效性。
公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。
发明内容
本发明的目的在于提供一种基于CTI的SDN恶意流量防御方法,其能够有效识别恶意流量并采取应对措施以保证网络的安全。
为实现上述目的,本发明提供了一种基于CTI的SDN恶意流量防御方法,包括如下步骤:收集关于SDN网络的安全威胁情报信息,并将安全威胁情报信息作为原始情报数据;对原始情报数据进行安全概念提取和数据过滤,以构建网络安全威胁情报的知识图谱;利用SDN控制器对SDN网络中的流量进行监控,并进行流量特征统计;查询知识图谱,根据流量统计特征判断流量是否是恶意流量;以及如果判断是恶意流量且有情报能够提供对应的防御措施,则SDN控制器应用程序将防御措施转化为具体的流规则,并下发到数据平面交换机中。
在本发明的一实施方式中,关于SDN网络的安全威胁情报信息收集自互联网的公开资源,公开资源包括传统资源和非传统资源,其中,传统资源包括安全漏洞数据库,非传统资源包括社交媒体、安全博客、技术论坛、代码仓库。
在本发明的一实施方式中,对原始情报数据进行安全概念提取和数据过滤,以构建网络安全威胁情报的知识图谱包括如下步骤:对原始情报数据进行数据预处理,并将预处理后的情报数据存储在网络安全语料库中;使用自然语言处理模型对存储在网络安全语料库中的情报数据进行处理,提取其中的安全概念并打上标签,安全概念将作为知识图谱中的实体,其中,标签包括:攻击的含义、攻击的结果、攻击的目标软件、攻击的目标硬件、攻击的操作系统环境、版本信息、网络相关术语和文件名,其中,具有两个或两个以上标签的情报被保留;采用统一网络安全本体来提供网络安全领域的信息,并使用DBpedia和YAGO来将知识图谱中的字符串形式的实体与真实世界中的概念联系起来;将实体用RDF元组的形式存储在知识图谱中;使用基于知识图谱的推理技术将事实推断出来并具体化为显性知识;以及构建向量化知识图谱。
在本发明的一实施方式中,构建向量化知识图谱包括如下步骤:使用神经网络语言模型将知识图谱中以文本形式存在的实体进行文本向量化;将知识图谱中的每个节点都映射到向量空间中;以及利用知识图谱进行事实推理,并在向量空间进行相似度运算或搜索操作。
在本发明的一实施方式中,根据流量统计特征判断流量是否是恶意流量包括如下步骤:SDN控制器对SDN网络中的流量特征进行统计;在知识图谱中用统计特征作为关键字进行搜索;以及查找到异常流量的统计阈值,并进行对比;其中,对恶意流量进行分析与检测的基本单元是IP数据流,并且其中,在进行关键字搜索时,将搜索任务划分为两个子任务在知识图谱和向量空间上依次进行搜索。
本发明还公开了一种基于CTI的SDN恶意流量防御系统,包括:互联网;CTI服务器,其被配置为从互联网收集关于SDN网络的安全威胁情报信息,并对网络安全威胁情报信息进行处理,以转化为网络安全威胁情报的知识图谱;SDN控制器,其与CTI服务器通信连接,SDN控制器用于实时获取SDN网络的流量特征信息,并通过查询知识图谱以检测是否存在恶意流量;以及数据平面交换机,其与SDN控制器通信连接,其用于接收由SDN控制器应用程序将威胁防御策略转换为的流规则。
在本发明的一实施方式中,关于SDN网络的安全威胁情报信息收集自互联网的公开资源,公开资源包括传统资源和非传统资源,其中,传统资源包括安全漏洞数据库,非传统资源包括社交媒体、安全博客、技术论坛、代码仓库。
在本发明的一实施方式中,收集安全威胁情报信息是利用网络爬虫或者网站API进行的,在收集安全威胁情报信息时根据关键字进行筛选,从而忽略掉不相关的情报信息,其中,所选择的关键字是网络安全相关概念和系统信息,收集到原始情报数据之后进行数据预处理,预处理后的情报数据被存储在网络安全语料库中。
本发明还公开了一种基于CTI的SDN恶意流量防御系统的测试系统,其包括:互联网;CTI服务器,其被配置为从互联网收集关于SDN网络的安全威胁情报信息,并对网络安全威胁情报信息进行处理,以转化为网络安全威胁情报的知识图谱;SDN控制器,其与CTI服务器通信连接,SDN控制器用于实时获取SDN网络的流量特征信息,并通过查询知识图谱以检测是否存在恶意流量;以及多台数据平面交换机,其分别与SDN控制器通信连接,其用于接收通过SDN控制器应用程序将威胁防御策略转换为的流规则,其中,第一数据平面交换机作为防火墙,其余每台数据平面交换机分别连接有主机。
在本发明的一实施方式中,控制器应用程序从CTI服务器获取威胁信息并生成流规则,并通过FLOW_MOD消息下发给第一数据平面交换机,第一数据平面交换机与攻击机群通信连接,其中,攻击机群用于生成恶意流量。
与现有技术相比,根据本发明的基于CTI的SDN恶意流量防御方法及系统具有如下优点:本发明提出了一种利用网络安全威胁情报进行SDN恶意流量防御的系统及方法,通过统计网络中的流量特征并与安全威胁情报提供的信息进行对比来检测恶意流量,然后将对应的应对措施转化为流规则来对恶意流量进行针对性防御。本发明的SDN恶意流量防御方法能够从互联网上收集网络安全威胁情报并转化为便于计算机处理的知识图谱。SDN控制器监控网络中流量特征并使用知识图谱进行恶意流量识别,然后通过应用程序将CTI提供的威胁应对措施转换为流规则并安装到交换机的流表中,从而实现了对恶意流量的检测和处理。本发明通过在硬件环境中对系统进行了实际测试,实验结果表明本发明的方法可以有效识别恶意流量并采取应对措施以保证网络的安全。
具体实施方式
下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。
除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。
如图1所示,根据本发明优选实施方式的基于CTI的SDN恶意流量防御方法,包括如下步骤:步骤101:收集关于SDN网络的安全威胁情报信息,并将安全威胁情报信息作为原始情报数据;步骤102:对原始情报数据进行安全概念提取和数据过滤,以构建网络安全威胁情报的知识图谱;步骤103:利用SDN控制器对SDN网络中的流量进行监控,并进行流量特征统计;步骤104:查询知识图谱,根据流量统计特征判断流量是否是恶意流量;以及步骤105:如果判断是恶意流量且有情报能够提供对应的防御措施,则SDN控制器应用程序将防御措施转化为具体的流规则,并下发到数据平面交换机中。进行流量特征统计所选取的流量特征需要能够检测尽可能多的恶意流量类型,而且能够达到较高的准确度。
在步骤101中,关于SDN网络的安全威胁情报信息收集自互联网的公开资源,公开资源包括传统资源和非传统资源,其中,传统资源包括安全漏洞数据库,非传统资源包括社交媒体、安全博客、技术论坛、代码仓库。
本发明使用知识图谱存储网络安全情报,可以利用知识图谱推理各个情报之间的关系,便于对网络威胁进行全面和细致的分析并制定应对策略。收集安全威胁情报信息包括以下步骤:首先,从公开漏洞库、博客、安全社区等收集网络安全相关信息,然后按类别提取有价值的部分构成安全信息语料库,之后进一步构建网络威胁情报知识图谱。
具体的,如图2所示,网络安全威胁情报知识图谱构建过程如下:
(1)网络威胁情报资源:
本发明使用的网络威胁情报主要收集自公开资源,例如安全漏洞数据库、社交媒体、博客、代码仓库等。这些资源可以分为两部分——传统的资源和非传统的资源。传统资源包括国家漏洞库等专业的网络安全信息发布中心以及入侵检测系统等网络监管系统。非传统的资源包括一些非正式的网络安全信息源,例如安全博客、技术论坛、社交媒体、代码仓库等。非传统的信息源是对传统信息源的有益补充,因为许多安全分析人员会通过这些渠道发布自己发现的安全漏洞信息,而且这些信息源更加具有时效性和灵活性。
收集情报资源的主要方法就是利用网络爬虫或者网站API。在收集情报的时候需要根据一定关键字进行筛选,从而忽略掉不相关的情报信息。选择的关键字主要是网络安全相关概念和系统信息。收集到原始信息之后需要进行数据预处理,例如删除停止词、执行词干分析、名词组块分析等,然后将预处理后的情报数据存储在网络安全语料库中。
(2)安全概念提取和数据过滤:
收集的原始情报信息以文本文件形式存在,需要将这些文本文件转化为格式化数据。对于收集到的每一条原始情报信息,使用自然语言处理组件Stanford CoreNLP等自然语言处理模型进行处理,提取其中的安全概念并打上标签,这些概念将作为知识图谱中的实体。使用的标签有:攻击的含义,攻击的结果、攻击的目标软件、攻击的目标硬件、攻击的操作系统环境、版本信息、网络相关术语、文件名和其他技术术语。为了提高知识图谱中网络威胁情报的有效性,只保留有两个或两个以上标签的情报。例如,对于原始情报语句“FloodLight are vulnerable to a DoS Attack”,进行安全概念提取和打标签之后的结果为:
(3)知识图谱的构建:
在构建知识图谱过程中,术语所包含意义的唯一性很重要。然而,在自然语言中,相同的词语可能包含不同的意义或代表不同的概念,这种语义的混淆在知识图谱中是需要杜绝的。为了解决这一问题,本文采用统一网络安全本体(Unified CybersecurityOntology,UCO)来提供网络安全领域的信息,并使用DBpedia和YAGO来将知识图谱中的字符串形式的实体与真实世界中的概念联系起来。例如,使用YAGO将字符串“FloodLight”映射为yago:SDNController。之后,将这些实体用RDF元组的形式存储进知识图谱之中,RDF元组可以很方便进行图形化表示。需要说明的是,情报都是具有时间维度的,一条信息在给定的时间可以被认为是重要的信息,而在其他时间则是无用的。为了进行恶意流量特征识别,还需要包含攻击流量的特征描述。为了整合这些信息,在本体中包含了数量、时间、流量特征属性:
hasCounter:表示具有相同情报信息的原始情报数量。可以作为情报的可信程度指标以及记录情报的聚合情况。
hasBeginTime:表示收集到第一条包含此情报的原始情报的时间。
hasLastTime:表示收集到最后一条包含此情报的原始情报的时间,指示情报的时效性。
hasVulnerability:情报中包含的漏洞类型。
hasTrafficFeature:针对漏洞的攻击流量所具有的统计特征。
isCurrentlyValid:表示此情报是否仍然具有利用价值。
最终得到图形化表示的情报,如图6A所示的情报的知识图谱。如图6A显示了情报“Int1242611341”的图形化表示。这条情报是关于“Vul1426796181”漏洞的,该漏洞是由影响“FloodLight”控制器的“DoS”造成的。该情报由251条原始情报支持,系统接收到具有此智能的第一条原始情报时间是1457668500,接收到最后一条原始情报的时间是1457669700。
将构建威胁情报以RDF方式存储在知识图谱之后,可以使用基于知识图谱的推理技术来将事实推断出来并具体化为显性知识。例如,基于描述的逻辑表示框架(如OWL),可以利用图中隐含的公理来计算一致性、概念可满足性、不相容性和包容性等逻辑关系。但是仍然存在的缺点就是在处理诸如本体对齐、实例匹配和语义搜索时候速度比较慢。为了解决这一问题,将知识图谱之中的节点进行向量化,每一个节点都映射到向量空间之中。这样就可以利用知识图谱进行事实推理,在向量空间进行快速的相似度运算或搜索操作。
在本发明的一实施方式中,构建向量化知识图谱包括如下步骤:使用神经网络语言模型(neural network language model,NNLM)将知识图谱中以文本形式存在的实体进行文本向量化;将知识图谱中的每个节点都映射到向量空间中;以及利用知识图谱进行事实推理,并在向量空间进行相似度运算或搜索操作。向量化之后的知识图谱如图6B所示。构建的知识图谱还可以进行扩充,形成更加全面的知识库。
在本发明的一实施方式中,为了提高恶意流量检测效率,本文采用轻量级的恶意流量检测方法,根据流量统计特征判断是否是恶意流量。对恶意流量进行分析与检测的基本单元是IP数据流。对于IP数据流,统计信息pkt_size,pkts,bytes,duration,tcp flag等在流量分类中拥有区分度。本文选择的统计特征如表1所示。
表1流特征属性
根据流量统计特征判断流量是否是恶意流量包括如下步骤:首先,SDN控制器对SDN网络中的流量特征进行统计。然后在知识图谱中用统计特征作为关键字进行搜索。查找到异常流量的统计阈值,并进行对比就可以判断是否是恶意流量。然后根据知识图谱中提供的相关应对措施进行恶意流量的防御。进行关键字搜索的时候,可以结合知识图谱和向量的优势提升搜索效率。对于一个搜索任务QVKG,可以划分为两个子任务在知识图谱和向量空间上依次进行。即:
QVKG→QV∩QKG
例如搜索“FloodLight”,可以首先使用知识图谱确定“FloodLight”属于“Controller”,这样可以有效缩小搜索范围,之后在向量空间使用向量比对的方式搜索到“FloodLight”。再例如,搜索“denial of service”,可以首先推断出这个实体属于“Vulnerability”,然后在向量空间执行进一步的搜索。
本发明的一实施方式中,在检测到恶意流量之后,需要将知识图谱提供的恶意流量防御措施转化为流规则。例如,如果知识图谱提供的应对措施是阻碍来自某一IP地址为SRC_IP的流量,那么应用就需要生成“srcIP=SRC_IP,action=DROP”的流规则并安装到数据平面交换机中。可编程性是SDN的重要特性,主要体现在可以通过编写应用程序来实现各种网络功能,可以极大提高网络管理的灵活性。本文开发应用程序来实现将情报转换为流规则并安装在交换机流表中的目标,应用程序的核心是流规则转换引擎。有两种SDN应用程序开发方法,第一种是使用SDN控制器公开的REST API接口进行开发,这种方式可以使用与控制器开发语言不同的编程语言。第二种是通过实现内部服务模块MD-SAL进行开发,需要调用SDN控制器的库和函数,因此开发语言需要与控制器一致。本文采用的控制器是使用Java语言开发的OpenDayLight OxygenSR2版本控制器。在发明中使用REST API接口进行应用程序的开发。然而该方法仅是示例性的而非限制性的。
如图3所示,本发明还公开了一种基于CTI的SDN恶意流量防御系统,包括:互联网301、CTI服务器302、SDN控制器303以及数据平面交换机304。CTI服务器302被配置为从互联网301收集关于SDN网络的安全威胁情报信息,并对网络安全威胁情报信息进行处理,以转化为网络安全威胁情报的知识图谱305。SDN控制器303与CTI服务器302通信连接,SDN控制器303用于实时获取SDN网络的流量特征信息,并通过查询知识图谱305以检测是否存在恶意流量。数据平面交换机304与SDN控制器303通信连接,其用于接收通过SDN控制器应用程序将威胁防御策略转换为的流规则。
在本发明的一实施方式中,关于SDN网络的安全威胁情报信息收集自互联网的公开资源,公开资源包括传统资源和非传统资源,其中,传统资源包括安全漏洞数据库,非传统资源包括社交媒体、安全博客、技术论坛、代码仓库。
如图4所示,本发明还公开了一种基于CTI的SDN恶意流量防御系统的测试系统,其包括:互联网401、CTI服务器402、SDN控制器403、多台数据平面交换机(例如本实例中设置为四台s1、s2、s3、s4)以及攻击机群404。CTI服务器402被配置为从互联网收集关于SDN网络的安全威胁情报信息,并对网络安全威胁情报信息进行处理,以转化为网络安全威胁情报的知识图谱。SDN控制器403与CTI服务器402通信连接,SDN控制器403用于实时获取SDN网络的流量特征信息,并通过查询知识图谱以检测是否存在恶意流量。数据平面交换机s1、s2、s3、s4分别与SDN控制器403通信连接,其用于接收通过SDN控制器应用程序将威胁防御策略转换为的流规则。其中,第一数据平面交换机s1作为防火墙,其余每台数据平面交换机s2、s3、s4分别连接有主机405a、405b、405c。SDN控制器应用程序从CTI服务器402获取威胁信息并生成流规则,并通过FLOW_MOD消息下发给第一数据平面交换机s1,第一数据平面交换机s1与攻击机群404通信连接,其中,攻击机群404用于生成恶意流量。
下面介绍恶意流量防御测试过程:
使用具有10台攻击主机的攻击机群生成拒绝服务攻击流量,每台攻击机以10pps的速率生成500个SYN数据包。控制器检测到SYN的数量SYNflag为4800,持续时间duration为50秒,将这些特征提交给CTI服务器进行查询之后,判断为拒绝服务攻击,给出的防御措施是丢弃来自恶意IP地址的数据包。因此,SDN控制器生成一系列的流规则。为了验证流规则有效性,生成恶意流量进行测试。首先观察交换机s1最初的流规则条目的数据包计数和字节计数都为0。然后测试位于恶意IP的攻击机到SDN网络内主机的连接。使用一台攻击机向网络内主机发送1000个ICMP数据包。测试结果表明,数据包丢失率为100%。连接建立失败说明生成的流规则有效。
本发明通过测试实验对比了没有进行恶意流量防御和进行恶意流量防御两种状态之下网络的吞吐量。一共进行了五次实验,分别向网络注入不同规模的流量并收集链路吞吐量。仍然使用10台攻击机以10pps的速率发送数据包,控制每次实验发送的数据包总量。实验结果如图5所示,横坐标为每次试验发送的数据包总量,纵坐标为网络吞吐量,线501和线502分别表示使用系统进行防御和不进行防御两种状态。可以看出,与不进行恶意流量防御相比,吞吐量降低了90%到95%。即大部分恶意流量都被丢弃,说明本发明的系统对于恶意流量的防御是十分有效的。
前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。