基于机器学习的软件定义光网络入侵检测策略
2020-12-10朱嘉豪王炎豪陆煜斌沈建华
朱嘉豪,徐 凯,王炎豪,陆煜斌,宣 涵,沈建华
(南京邮电大学 通信与信息工程学院,南京 210003)
0 引 言
软件定义光网络(Software Defined Optical Networks,SDON)是将软件定义网络(Software Defined Networks,SDN)的概念和技术应用于光网络的一种新型网络结构[1-2]。SDON不仅可以提供快速定制化的服务,同时还能实现较高的资源利用率和灵活的业务供给[3]。SDON控制平面构建灵活、开放和智能的光网络体系结构,并通过南向接口(Southbound Interface,SBI)及北向接口(Northbound Interface,NBI)实现灵活的服务访问和硬件控制。但集中式的SDON控制平面在日常应用中可能会受到恶意的攻击或入侵,特别是当受到攻击者劫持时,整个光网络可能会陷入瘫痪[4]。如何在SDON控制平面中实现异常检测、消除安全隐患及保证网络的稳定运行,已成为热点问题。Chandola等对基于统计学、信息论和机器学习等手段的异常检测分析方法进行了比较,认为机器学习是一种具有发展前途的入侵检测方法[5];Sequeira等提出了一个基于主机数据收集和处理的实时入侵检测系统,可以有效识别计算机终端侧伪装者与真实用户之间的区别[6]。对于SDON控制平面而言,亟待解决的关键技术是实现网络级的异常检测,许多学者将研究重点放在利用机器学习技术分析光网络[7-10]。针对当前SDON控制平面流量异常检测存在的智能化和灵活性不足等问题,本文提出了一种基于机器学习的检测策略,分别从基于点和序列异常的角度实现了检测。
1 SDON架构
SDON控制平面架构路径计算在控制器完成,路径建立由控制器发起[11]。控制器的主要功能是通过可编程SBI管理传输平面进行数据转发,并支持使用NBI开发的应用,其还允许对资源优化进行多层控制[12]。SDON控制器是一种软件实体,负责监管传输平面资源,并通过标准接口开放网络控制能力,集成了路径计算、网络虚拟化和链路管理等一系列功能。如图1所示,通过SBI,控制器可以获取转发平面的资源信息,实现连接控制功能,然后利用NBI与应用平面连接,为应用提供服务。
图1 SDON架构
控制平面是SDON体系结构中最重要的部分,一旦受到攻击,大多数服务便无法保证。SDON控制平面可能遇到的潜在威胁主要包括[13-15]:(1) 未经授权的访问。入侵者使用特定的技术手段对控制平面进行未经授权的访问,因此造成信息泄漏。(2) 数据泄漏。在SDON的南端,OpenFlow交换机处理不同种类的信令消息。入侵者可以了解其模式和功能之后伪造此类包,以此形成大量请求,占用大量网络资源,导致拒绝服务(Denial of Service,DoS)攻击,使目标用户无法获得网络资源。(3) 数据修改。入侵者可以劫持控制器,修改网络元素中的流规则,从而改变包转发策略,导致SDON中的混乱。(4) DoS。SDON控制器需借助SBI与网元通信,入侵者可以利用其来监视具有特定流规则的数据包,然后将其泛洪到控制器,入侵者通过劫持许多分布式主机来攻击控制器,导致信道和系统资源被大量的攻击流量占据。(5) 安全策略误用。控制平面还可能受到不正确使用安全功能的影响,从而导致潜在的攻击。
总的来看,控制平面受到的威胁大部分来自于各种潜在入侵行为。特别地,当一个或多个用户的网络配置文件中的数据变得异常时,意味着SDON可能受到了潜在的攻击。因此,引入灵活、高效和准确的异常检测机制以发现控制平面面临的各种风险和威胁具有极其重要的意义。
2 基于点异常的检测策略
对于动态业务环境下的光网络,客户的行为是固定的,每个客户的网络配置参数如平均使用带宽、源和目标节点对、平均路由长度和调制格式等,一般在一定范围内波动。参数突然产生剧烈变化就表明可能存在网络入侵行为,有些变化可能是由客户自身操作引起的,但这一般是小概率事件。
假设一棵孤立树有两个子节点(Tl,Tr),其中包含特征q和分割值p。给定n个样本数据X={x1,…,xn},特征的维度为d。为了得到一棵孤立树,递归地分割数据集X,并将q
一个包含n个数据的样本集,所得孤立树的平均路径长度可表示为
式中,H(i)为调和数。c(n)用来将样本x的路径长度h(x) 标准化。
将样本x的异常得分定义为
式中,E(h(x))为求得的路径长度h(x)的期望。
基于孤立森林的异常检测包括两个步骤:训练阶段,基于训练集来建立孤立树;测试阶段,使用孤立树计算每一个测试样本的异常分数。训练阶段,通过对训练集进行递归分割建立孤立树,一直分割到所有的样本都被孤立,或者建立的树达到了设定的高度值。测试阶段,通过孤立森林中的每一棵树,得到期望路径长度E(h(x)),再由此得到每一个测试样本的异常分数。
当E(h(x))→c(n)时,s→0.5,即得出的样本x的路径平均长度和计算出的树的平均路径长度基本相等时,无法判定是否异常。
当E(h(x))→0时,s→1.0,即计算出的x的异常分数接近于1时,可以认为此点是异常的。
当E(h(x))→n-1时,s→0,被判定为正常。
3 基于序列异常的检测策略
基于时间序列的异常检测思路是,通过参考更长时间内数据的总体走势进行长期环比,在短期范围出现频繁操作则被认定为非正常现象,存在入侵行为,对其进行异常检测符合网络安全的预期。入侵者短时间内的创建、修改和删除光路操作会对走势造成干扰。大部分情况下都是使用曲线对序列进行拟合,这样可以清晰呈现变化趋势。若新出现的数据破坏了这种序列的走势,曲线因此不再平滑,即说明该部分出现了异常。
对曲线进行拟合有很多方式,比如滑动平均和回归等。本文使用指数权重移动平均(Exponentially Weighted Moving-Average , EWMA)算法来拟合曲线[17]。在EWMA算法中,下一点的平均值是由上一点的平均值和目前点的实际值修正而来。而对任意一个EWMA值来说,数据的权重是不相同的,更靠近当前值的数据有着更高的权重。得到了平均值之后,就可以基于公式判定之后出现的新数据是否在设定的阈值范围之内,即通过与实际值进行比较,判定新数据是否超出了该范围以决定是否判断为入侵。
EWMA 算法的表达式为
在t=0 时刻,初始化v0=0,对vt表达式进行标准化处理,这时t时刻的表达式为
由式(4)可知,数值的加权系数和时间呈指数关系,距离当前时刻越远,加权系数下降越快。由此得出预测值便能进行曲线拟合。
4 仿真实验及结果分析
所有训练数据测试均在国家科学基金会网络(NSFNET)中生成,如图2所示。对于基于点异常的检测方案,假设用户经常使用其中的部分光节点,业务链路在这些节点对中建立。使用节点集{0、1、2、4、5 }中的随机源—目标对生成10 000个训练数据实例。为了直观地表明结果,选择了光网络的两个特征,即所需带宽和路由长度。生成的带宽遵循高斯分布,即N(15,3),平均带宽为15 GHz,方差为3。路由长度采用Dijkstra算法计算。
图2 NSFNET拓扑图
首先利用训练数据集进行孤立森林训练。对于孤立森林算法来说,一个小子采样就足够用于从正常数据中区分异常。一般将subsample size设置在28=256即可保证在一个较大的数据范围内实现异常检测。根据经验值发现,路径长度通常在Number of trees设置为100时收敛得最好。调整Tree height会更改异常分数的粒度,本文经多次试验发现,将Tree height取为8表现比较好。为了测试本文所提方案,仿真中使用2 000个数据实例(里面包含了30个异常数据)作为测试数据集。对于异常数据,在[0,60] GHz内随机设置所需带宽,随机选择源—目标节点对。仿真结果如图3所示,红色的点声明为入侵点。从中检测出了27个异常点(27/30),检测准确率为90%。
图3 异常点检测图
图4 异常序列检测
5 结束语
SDON是光网络未来发展的主要方向,潜在的流量异常及入侵威胁着SDON核心的控制平面,并可能对网络业务的实现及性能产生严重影响。针对异常检测问题,本文提出了一种基于机器学习的SDON检测策略,采用孤立森林算法来检测点异常,采用EWMA算法检测序列异常。理论分析和仿真结果表明,本文所提检测策略可有效提高控制平面检测的性能,在点和序列异常检测中,平均检测准确率分别达到了90%和85%。