一种基于SDN的网络协同异常检测方法与流程

文档序号:11064807阅读:721来源:国知局
本发明涉及网络
技术领域
:,更具体地,涉及一种基于软件定义网络(SoftwareDefinedNetwork,简称SDN)的网络协同异常检测方法。
背景技术
::随着计算机网络技术的迅猛发展,网络已经深深地融入政治、经济、文化等领域,给人们的工作生活带来了极大的便利。然而,层出不穷的网络安全问题不仅影响互联网的正常运行,还严重威胁国家的安全,从而引起了全球的关注。根据资料报道,全球的网络每天都在遭受不同程度的威胁,包括:针对个人用户的木马攻击、面向政府与企业的以政治、经济为目的的攻击行为。这些攻击往往造成大面积的网络瘫痪,并导致巨大的经济损失,例如:大规模分布式拒绝服务(DistributedDenialofService,简称DDoS)攻击、蠕虫传播等。中国国家互联网应急中心CNCERT监测发现,2015年针对我国域名系统的DDoS攻击流量进一步增大,2015年8月,我国顶级域名系统先后遭受2次大流量DDoS攻击,峰值流量超过10Gbit/s。2016年10月,美国网络服务供应商迪恩公司的服务器遭到DDoS攻击,造成美国大规模的互联网瘫痪。为了应对各种纷繁复杂的网络威胁,提高网络应对分布式攻击的能力,学术界与工业界提出了许多用于异常检测的方案,包括:在骨干网上部署异常检测策略和相应的杀毒工具、在重要的网络节点设置防火墙等防御加固措施。这些措施在一定程度上减缓网络所受到的攻击与威胁、提高网络运行的稳定性与可靠性。但是,这些方案也存在不足:传统的单点异常检测方法仅通过对网络边界或受保护对象的监控实现防御,没有充分利用网络的互连性以及网络侧分布式节点与链路的信息,从而限制了检测系统的性能。另外,在这种方案中,当网络威胁到达受攻击节点时,检测系统才能检测到异常信号,从而使应急响应的实施非常困难。为了应对单点异常检测方法的不足,需要利用全局网络的信息,采集分布式节点数据,实现网络侧异常检测,提高检测系统的性能。研究人员提出协同异常检测的方案,该方案利用分布式节点的数据,从全局上检测异常行为,但是在实现上受限于传统的TCP/IP网络架构缺乏节点之间的协同机制。SDN是一种新型的网络管理模式,分离了控制平面与数据转发平面,集中化的控制方式可以实现在数据平面设备上采集流量数据,经过分析计算能够应用于网络协同异常检测。从收集到的资料看,目前基于SDN的异常检测方案有以下几种:Braga提出一种轻量级的方法,通过使用NOX控制器实现对DDoS洪水攻击的检测。在这个方案中,利用NOX控制器的可编程接口收集交换机的统计信息,包括:流表的数据包数、字节数、时间间隔等,采用自组织映射(Self-OrganizingMaps,简称SOM)人工神经网络的方法进行分析,进而检测DDoS洪水攻击的特征信号。陈晓帆提出另一种SDN异常检测与拦截方法与系统,该方法在交换机端口对数据流进行随机采样,得到采样数据,提取采样数据的多个特征字段,构造各个特征字段对应的哈希表值,在预设的时间窗口间隔处,计算各个特征字段对应的哈希表的熵值,依据设定的异常判定阈值,检测出异常网络行为。左青云设计了一种基于SDN的轻量级在线流量异常检测方法,该方法中控制器实时获取交换机的流量统计信息,构建基于OpenFlow网络的源、目的结点对(OriginandDestinationPairs,简称OD对)流量矩阵,对常见异常流量特征,构建OD对样本熵矩阵,对不同特征,合并成流量组合熵矩阵,利用主成分分析方法构建异常子空间,实现在线的异常流量检测。上述异常检测方法的优点是利用分布式方法采集网络流量信息进行异常检测。但是在实现协同异常检测中仍然存在局限:它们没有考虑相邻网络节点之间的关联性,这种关联性源自网络自身的互连,即相邻网络节点存在相互作用、相邻节点的异常流量特征存在相似性。由于节点间的这种关联性被忽略,网络节点的上下文信息没有被充分用于异常检测,导致传统的技术难以实现有效的早期检测与早期响应。为此,提出一种新的基于SDN的网络协同异常检测方法是非常有必要的。技术实现要素:本发明为克服上述现有技术所述的至少一种缺陷(不足),提供一种基于SDN的网络协同异常检测方法。该方法通过网络互连节点之间的上下文信息,实时估计局部网络节点及全局网络的行为状态,由此实现分布式网络的协同异常检测。为了实现发明目的,采用的技术方案如下:一种基于SDN的网络协同异常检测方法,本方法属于SDN的上层网络应用,通过控制器编程实现,该方法步骤如下:1)利用分布式网络的流量数据构建网络行为模型;2)基于已有的网络行为模型以及实时流量数据,实现局部及全局状态的估计;3)通过实时测量数据与给定模型的拟合度,实现分布式网络的异常行为检测;4)利用通过异常检测的测量数据实现模型的自动更新。所述步骤1)的实现方式:10)采用隐马尔科夫随机场(HiddenMarkovRandomField,简称HMRF)模型对分布式网络的动态变化过程建模;11)采集历史流量数据,包括在SDN中对网络拓扑信息的获取以及对网络流量信息的采集;12)利用采集的历史流量数据训练HMRF模型,得到模型参数。所述步骤2)的实现方式:20)采集实时流量数据;21)基于给定的HMRF模型,利用最大后验(MaximumAPosteriori,简称MAP)估计算法实现局部及全局状态的估计。所述步骤3)的实现方式:利用似然函数,依据实时测量数据与给定的HMRF模型的偏离程度实现异常网络行为检测。所述步骤4)的实现方式:利用通过给定的HMRF模型检测的实时流量数据,实现模型的在线更新。与现有技术相比,本发明技术方案的有益效果是:一种基于SDN的网络协同异常检测方法,在新型的网络架构中,不局限于各个网络节点独立测量得到的数据,还充分利用网络节点间的相互作用,实现分布式网络行为及检测异常的早期感知。附图说明图1为本方法的总体框架示意图;图2为本方法SDN中网络协同异常检测网络框架;图3为SDN中的控制器应用开发示意图;图4为SDN控制器链路发现过程;图5为控制器获取交换机端口信息消息交互过程;图6为控制器请求交换机端口信息报文格式;图7为交换机响应控制器请求端口信息报文格式;图8为模型训练过程流程图。具体实施方式附图仅用于示例性说明,不能理解为对本专利的限制;为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。下面结合附图和实施例对本发明的技术方案做进一步的说明。总体框架一种基于SDN的网络协同异常检测方法,本方法是属于上层网络应用,本方法的总体框架如图1所示,包括七个部分:HMRF模型、历史流量数据、模型训练、实时流量数据、局部及全局状态估计、异常网络行为检测、模型更新。其中,HMRF用于对分布式网络的动态变化过程进行建模;历史流量数据包括网络拓扑信息以及网络流量信息,用于HMRF模型的训练;模型训练利用历史流量数据训练HMRF模型,得到模型参数;实时流量数据是指在实际应用中采集到的待检测的网络流量信息。局部及全局状态估计是指基于给定的HMRF模型,利用MAP估计算法实现网络状态的估计;异常网络行为检测是利用似然函数,依据实时测量得到的网络流量相对于给定的HMRF行为模型的偏离程度评估是否存在异常网络行为;模型更新是利用通过检测的实时流量数据更新已有模型的参数,有利于增加模型的鲁棒性,使其能够适应网络行为的迁移与演变。本发明的执行方法如下:在SDN中采集历史流量数据,将其作为模型训练数据集输入模型训练过程,经过训练得到相应的HMRF模型。在实际应用中,将采集到的待检测的实时流量数据输入已有的HMRF模型,利用MAP算法估计出局部及全局网络状态,由此进一步实现异常网络行为的检测。最后,把通过模型检测的实时流量反馈回模型,利用高效的算法实现模型的在线更新。下面结合图1对本方法各个部分内容进行详细说明。一、HMRF模型采用HMRF模型对分布式网络的动态变化过程进行建模。如图2所示,本发明把网络节点的行为检测信息分为两部分:可观测部分与不可观测部分。其中,可观测部分指那些通过测量工具可以直接获取的物理量,包括:数据包到达率、数据包排队时延、数据包丢包率等。在本实施例中,用随机变量On,t表示节点n在时间t的观测值,用O表示从时间1到t网络中所有节点的观测值集合,记为测量场(MeasuringField,简称MF)。不可观测部分指驱动节点行为的内部机制、原因或状态。这类变量无法通过测量工具直接获得,只能根据节点的可观测物理量进行估计。下文中用随机变量Xn,t表示节点n在时间t的内部状态,用X表示从时间1到t网络中所有节点的状态集合,记为隐状态场(StateField,简称SF)。本发明假设节点的观测值On,t由其隐状态Xn,t所控制,不同节点之间的隐状态相互影响。因此,由{O,X}构成的双层随机场构成了一个给定网络在特定时间内的完整检测信息。通过比较HMRF的模型结构与由{O,X}构成的双层随机场,可见HMRF非常适合描述分布式网络的行为检测信息及其上下文随时间的演变关系。在SF中利用一阶空间马尔科夫性表示网络节点的相互作用,即当前节点的状态直接受其相邻一跳节点状态的影响,与一跳之外的节点状态无关。因此SF的联合概率可以通过Hammersley-Clifford定理计算得出,特别地,假设每一个网络节点仅存在两种状态,可以使用Ising模型来描述网络的状态场模型。在邻居节点状态已知的条件下,节点n可以通过下面的公式计算它在t时刻处于状态x的条件概率:其中,表示t时刻邻居节点状态,Nn表示节点n的邻居节点,表示能量函数,参数α,β分别表示单点基团和双点基团的势参数,这里的物理意义分别表示整个网络环境对当前节点状态的影响程度以及当前节点与周围节点的相互作用程度。当前节点的状态以及邻居节点的状态,均影响能量函数,进而影响节点选择状态x的概率。关于参数α,β的确定,采用以下两种方式来确定1、根据实际的网络环境以及网络管理员的需求,直接确定参数。2、基于非监督方法,利用观测值,通过EM算法估计参数。当前节点与邻居节点的状态相同时,能量减β,状态不同时,则能量加β,α反应整个网络环境对当前节点的影响。通过比较当前节点与邻居节点的状态,计算出能量函数,得到节点选择状态x的概率。在t时刻,节点n在状态为x的条件下输出为观测值概率表示为:为了方便计算,将观测值On,t进行离散化,使用频率来近似代替概率,即使用观测值在状态x下的频率来近似条件概率。采用最大后验概率MAP估计节点状态,即:节点状态由两部分模型乘积的最大值确定:一部分为状态模型ξn,t(x),即在已知邻居节点状态下节点选择状态x的概率;一部分为输出模型φn,t(x),即在状态x下输出为观测值的概率。二、历史流量数据本内容包括三个部分,首先介绍SDN控制器网络应用的开发,其次介绍网络应用对网络拓扑信息的获取以及对网络流量信息的采集。如图3所示是SDN控制器网络应用开发示意图。以Floodlight开源控制器为例,利用控制器的可编程北向接口,调用网络资源,开发网络应用。RESTAPI是控制器对外提供的北向接口之一,用户可以使用任意的编程语言基于REST接口开发应用,首先确定应用所需的网络服务信息,其次从RESTAPI列表中选择能够满足服务需求的RESTAPI,最后利用可用的RESTAPI调用,设计、实现、测试应用。本方法利用RESTAPI获取网络拓扑信息以及采集网络流量信息。网络应用利用可编程北向接口RESTAPI获取网络拓扑信息。所使用的RESTAPI接口信息如下:/wm/topology/links/json调用示例如下:http://<controller-ip>:port/wm/topology/links/json<controller-ip>为远程控制器的ip地址,port为控制器端口,调用返回json格式的数据,编程语言解析得到调用后数据。控制器利用南向接口的上行通道对底层交换设备上报的信息进行统计处理。使用链路层发现协议(LinkLayerDiscoveryProtocol,简称LLDP)实现链路发现,链路发现过程如图4所示。控制器通过Packet_out消息向所有与之相连的交换机发送LLDP数据包,交换机接收到消息后将LLDP数据包从其他端口转发出去,相邻交换机接收到LLDP数据包,通过Packet_in消息将数据包发送至控制器,控制器分析并保存两台交换机之间的连接记录。网络应用通过上述API获取SDN中交换机之间的连接列表,得到网络节点相互连接关系,由此获取网络拓扑信息。网络应用利用网络拓扑构建网络节点连接关系矩阵:矩阵中横轴与纵轴均表示交换机(S1,S2,S3,S4…Sn),连接关系矩阵中1表示有连接,0表示无连接,此矩阵是一个对称阵。上述矩阵表示的是S1—S2,S1—S3,S2—S4,S3—S4……这些节点对具有连接关系,由此得到节点的相邻关系。网络应用利用可编程北向接口RESTAPI采集网络流量信息。以采集交换机端口统计信息为例,所使用RESTAPI接口信息如下:/wm/core/switch/all/port/json调用方法同上述。控制器与交换机之间消息交互过程如图5所示。网络应用调用RESTAPI,控制器下发OFPT_MULTIPART_REQUEST消息至交换机(对应子消息为OFPMP_PORT_STATS),交换机解析该消息,将端口统计信息封装到OFPT_MULTIPART_REPLY消息报文尾部(对应子消息为OFPMP_PORT_STATS),将其返回至控制器。由此网络应用采集到交换机端口统计信息。控制器请求交换机端口信息报文格式如图6所示,报文格式定义了请求的消息类型以及端口。交换机响应控制器请求端口信息报文格式如图7所示,报文格式定义了交换机端口发送、接收到的数据包数量以及字节数等内容,交换机将端口统计信息封装在OFPT_MULTIPART_REPLY消息报文尾部,将该消息返回至控制器。采集其他网络流量信息使用到的RESTAPI接口信息如下:/wm/core/switch/all/<statType>/json/wm/core/switch/<switchId>/<statType>/json/wm/core/counter/<counterTitle>/json/wm/core/counter/<switchId>/<counterName>/jsonstatType可选port,queue,flow,aggregate,desc,table,festures。switchId为合法的交换机DPID。counterTitle可选all或<DPID>_<COUNTER_NAME>_<SUB_CATEGORY>形式,如00:00:00:00:00:00:00:01_OFPacketIn_L3_ARP。counterName可选OFPacketIn,OFPacketOut等。网络应用通过上述API采集网络流量信息,包括交换流表中的计数信息、流中的数据包数以及流中的字节数信息、端口发送接收到的数据包数量以及字节数等信息。本方法取节点数据包到达率作为观测值On,t。三、模型训练在SDN中采集历史流量数据,将其作为训练数据集输入模型训练过程,经过训练得到相应的HMRF模型。本方法取节点数据包到达率作为观测值。实际中可以根据网络环境以及网络管理员的目的选择其他观测值,也可以选择多个测量指标,利用多属性分析方法得到观测值。网络节点的度对观测值有影响,需要依据节点的度对节点流量数据进行平均,本方法依据节点的链路数进行平均。实际中可按照目的做出相应处理。为方便计算,将观测值On,t进行离散化。模型的训练算法流程图如图8所示。训练的算法步骤如下:1、采集所有节点的历史流量数据O作为观测值;2、使用K-means聚类算法初始化,将观测数据分为两种状态,得到初始状态场;3、计算每一种状态下观测值的频数分布;4、基于MAP算法,重新估计每一个节点状态;5、判断是否满足收敛条件,如果满足则训练结束;否则,转步骤3。训练的收敛条件可以设置为迭代次数,也可以设置为两次迭代的差值。当迭代次数满,或者迭代差值小于某预先设定数值,即可停止迭代。训练得到模型参数,这里是不同状态下输出观测值的频数分布,即φn,t(x)。四、实时流量数据实时流量数据是指在实际应用中采集到的待检测的网络流量信息。网络应用通过上述RESTAPI采集实时流量数据,将所有交换机的流量数据作为模型的输入数据Ot,输入已有的HMRF模型。应用在预设的时间窗口t,采集所有交换机流量信息,得到数据包到达率,经离散化之后得到观测值Ot,输入HMRF模型,用于进一步估计网络行为状态以及检测异常网络行为。五、局部及全局状态估计在预设的时间窗口,对于每一个节点,收集到当前流量统计信息,将其进行离散化,得到观测值On,t,该节点的邻居节点状态使用上一个时刻的节点状态表示,依据上述提到的MAP算法实现网络状态的估计。全局状态通过遍历所有节点获取。通过此过程,得到实时更新的刻画分布式网络状态的全局图。六、异常网络行为检测利用似然函数,依据实时测量得到的网络流量相对于给定的HMRF行为模型的偏离程度评估是否存在异常网络行为。节点n的似然函数计算如下:上述似然函数表征节点中观测值出现的概率。全局网络的似然函数计算如下:上述似然函数表征整个网络中观测值出现的概率。使用对数似然函数来检测异常网络行为,通过比较实时测量数据与给定模型的拟合度,也即比较实时观测数据与正常的网络场景,较大的偏离意味着出现异常可能性较大。七、模型更新利用通过模型检测的实时流量数据,实现模型的在线更新。本方法中的状态模型描述节点状态的相互作用关系,参数相对稳定。输出模型表征节点在状态x下输出观测值的概率,参数随着网络行为的演变而改变,因此固定的模型参数会导致模型的误差。模型更新是为了适应网络行为的迁移与演变。在更新的周期中,利用通过模型检测的实时流量数据反馈回模型,依据上述的训练过程,更新模型参数,避免了对旧流量数据的重新训练而引起计算复杂性的提高,同时也使模型能够适应网络行为的演变,增加模型的鲁棒性。显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1