图嵌入和LSTM自动编码器结合的BGP异常检测①

2022-05-10 02:29张树晓刘宇靖
计算机系统应用 2022年2期
关键词:编码器路由特征

张树晓,唐 勇,刘宇靖

(国防科技大学 计算机学院,长沙 410073)

1 引言

互联网是一个庞大复杂的系统,根据数据统计,其当前包含7 万多个网络自治系统(autonomous system,AS)[1],且数量一直处于不断增加之中.AS 之间通过边界网关路由协议进行通信,实现网络的互联互通[2].BGP (border gateway protocol)作为边界网关路由协议的事实标准,有效实现了AS 间乃至整个互联网通信的有效可靠运行.然而,由于原始设计本身的安全缺陷,BGP 很容易遭到恶意攻击或产生错误配置,对互联网的正常运行造成重大影响[3].

根据相关研究[4],BGP 协议本身的安全缺陷主要包括:对等体(peer)的真实性及其之间通信报文的完整性、及时性没有验证;没有安全机制对AS 宣告网络层可达信息(NLRI)的权限进行验证;没有安全机制确保AS 通告路径(AS_PATH)的真实性.此外,由于BGP协议使用TCP 传输协议进行通信,TCP 协议的安全风险在BGP 协议上同样存在.

由于上述的缺陷问题,通常可以将对BGP 协议的恶意攻击分为前缀劫持攻击和路由泄露攻击[5].其中,前缀劫持攻击一般通过伪造NLRI 信息或NLRI 信息与AS_PATH 信息来实现.进一步细化原因分类,可以分为源AS 路由修改、伪造AS_PATH 路径信息、错误配置AS、错误AS 路径前置等4 种类型[6].前缀劫持攻击很容易导致互联网的大规模异常,也是国内外众多研究人员关注的焦点.然而,现实表明,每年依然会有很多机构发表关于BGP 前缀劫持攻击事件的报告[7,8],部分事件更是由于波及范围广,影响时间久,引起了社会大众的广泛关注.数据表明[8],有超过40%的网络运营商曾是劫持攻击的受害者.此外,通过BGP前缀劫持攻击,恶意攻击者能够在用户毫无知觉的情况下窃听、操控、记录指定Internet 流量,进一步实现对网络的中间人攻击[2],对信息安全造成严重危害.路由泄露则是由于AS 没有按照规定的路由通告策略执行而产生,导致相关的网络流量重定向到非正常的AS.这在现实中很有可能导致非法路由的快速异常扩散,引发大规模乃至全球范围内的“断网”事件.

因此,对BGP 异常事件的检测研究很有必要,有助于运营商快速发现异常,及时响应处理,避免产生更大危害.

本文依托从互联网公开收集的BGP 更新报文数据,提出一种基于拓扑图特征的数据集构建方法,重点提取分析报文中的AS_PATH 属性信息,获取网络拓扑图序列,生成图嵌入特征的时间序列数据集,进一步结合LSTM 自动编码器模型架构,实现一种新的BGP异常数据检测方法,并在实际的异常事件数据中进行了验证,取得了良好效果.

2 相关研究

对BGP 攻击的研究主要从两个方面考虑:一是攻击的预防,二是攻击的检测.

对于攻击的预防,主要从前文所述的BGP 协议缺陷入手,进行相应改进,以求从根本上解决问题.包括安全域间路由(secure inter-domain routing,SIDR)工作组的安全BGP 研究[9];避免选择虚假路由的完美BGP(pretty good BGP)[10];已经被加入RFC 标准的BGPsec[11];引入加密和路由冗余机制的BGP[12]等.然而,由于多种原因,相关的改进一直未能在真正的互联网上大规模部署,BGP 协议的缺陷问题没有从根本上发生改变,各类安全异常事件也时有发生.

通过对BGP 数据进行异常检测来发现、分类以及处理攻击行为的研究同样得到了广泛开展.综合现有研究成果,按照异常检测所用的数据类型,大致可以分成3 类方法[13]:控制平面方法、数据平面方法和混合方法.控制平面方法是一种无源解决方案,其依赖于第三方监控器和收集器提供的数据进行异常行为的检测.现在常用的第三方工具框架有BGPmon[14]和BGPStream[15],二者均提供历史和实时BGP 数据的解析运行情况,记录相关的异常事件.在此基础上,文献[16]提出了前缀劫持报警系统PHAS;文献[17]提出了ARTEMIS 系统,其号称能够快速检测到前缀劫持异常,并能通过多种手段迅速灵活的缓解劫持异常.总之,此类方法都属于对异常的响应处理,以及时做出策略应对.数据平面方法则从网络中数据转发的异常入手,使用了常见的ping、traceroute 等网络工具.通过检测相应的前缀地址的可达性实现异常的检测[13].混合方法主要是考虑前面两种方法的优缺点,将二者进行结合使用,主要思路是发现控制平面数据的不一致性后,进一步通知数据平面进行精确测量[13].

近年来,随着人工智能的繁荣发展,机器学习也广泛应用于异常检测领域,对BGP 异常数据的检测也同样包含其中.大量的文献使用机器学习(包含深度学习)模型算法提高BGP 异常检测的准确性以及分类识别BGP 异常等.文献[18]对BGP 数据进行特征提取并建立数据集,提出使用支持向量机(SVM)模型来训练和测试BGP 数据集,并使用隐藏马尔可夫模型(HMM)来评估数据特征的有效性.文献[19]使用了决策树和模糊测试集方法进行特征选择,然后使用决策树和极限学习机进行异常分类,提升BGP 异常检测的准确性.文献[20]则是对常见机器学习算法进行性能评估,其使用的数据来自路由信息库(RIB),分布使用了朴素贝叶斯(NB),支持向量机(SVM)和决策树(J48)分类器进行异常检测,对比其检测效能.文献[21]同样基于支持向量机模型进行检测,其利用Fisher 线性分析算法和马尔可夫随机理论对特征选取进一步优化,提升检测性能.文献[22]提出了利用离散小波变换来体现BGP数据的时间序列信息,并与多层LSTM 模型结合,在异常数据集的检测中取得了良好效果.

3 模型与方法

本文通过图嵌入特征学习算法提取BGP 数据中的拓扑图特征,生成多维时间序列数据,并使用LSTM自动编码器模型实现异常数据的检测.

3.1 图嵌入特征

众所周知,整个互联网作为互联互通的整体,其必然存在完整的拓扑图,但由于实际网络中的海量设备及复杂的连接关系,该拓扑的绘制是无法实现的.因此我们从构成互联网的AS 角度考虑,将每个AS 看作互联网中的一个节点,也就是拓扑图中的顶点,将AS 间互相连接关系看作拓扑图的边,是可以构建出基本的连接关系的.BGP 更新报文中的AS_PATH 属性恰好包含构成拓扑图的要素,其中蕴含了网络的拓扑图特征,同时,每一条AS_PATH 都可以看作整体拓扑图中的一个子图.此外,结合报文的定时更新特性,按时间窗口累计的AS_PATH 就可以构成相对完整的拓扑图,整个网络的变化状态就演变成网络拓扑图的变化,并通过图的分布式特征表现出来.其示意图如图1所示.

图1 图嵌入特征结构

图1中,拓扑图序列表示将AS_PATH 属性按时间窗口划分聚合后的拓扑,经过图嵌入学习后,关联各时序的图特征,得到嵌入特征,每个图的特征可以用统一维度的向量表示,最终获取多维的时间序列数据进行后续处理.

具体来说,对于给定的图的集合G={G1,G2,G3,…,Gn},每个图Gi都可以用e维向量表示(e为正整数),那么所有图的集合可以使用矩阵M表示,其中M∈R|G|×e.对具体的图G={N,E,λ},N表示节点集合,E表示边的集合,函数λ表示对图中每一个节点进行唯一标记.同时,定义子图sgn(d),其表示图中某个节点n的深度为d的子图.其主要算法[23]流程如算法1.

算法1.图嵌入特征学习算法输入:图集合G={G1,G2,G3,…,Gn},对任意图Gi={Ni,Ei,λi};D:有根子图的最大深度,并产生包含所有有根子图的集合,SG={sg1,sg2,…,sgn};e:向量维度;p:周期轮数;r:学习率.输出:图向量表示矩阵M.1) 随机初始化矩阵M.2) 对所有图随机排序.3) 对每个图Gi的每个节点Ni 进行处理.4) 获取节点Ni周围所有深度为d的子图sgi(d),d∈(0,D).5) 获取子图sgi(d)出现在图G 中的概率R(M)=−lnPr(sgi(d)|M(G)).r ∂R 6) 根据上述概率不断修正更新矩阵M=M−.7) 返回步骤2),进行新一轮计算直至p 轮结束.8) 返回最终矩阵M.∂M

子图的获取主要使用了经典的威斯费勒-莱曼算法.当然,对于图来说,所有子图的规模是很大的,因此采用了负采样优化的方法计算概率.在学习率的选取上,使用经验数值进行调整.

3.2 LSTM 自动编码器模型

3.2.1 自动编码器(AutoEncoder)

自动编码器[24]是一种对称结构的人工神经网络,包括编码器和解码器两个部分,其本质上是一种数据压缩的算法,通常用于高维数据的处理.对输入的数据,其编码器部分会通过一个或多个隐藏层,形成低维向量数据,再通过解码器部分重建输入数据,其框架如图2所示.

图2 自动编码器结构

图2中,输入层M表示多维向量的集合,输出层M′表示重构向量的集合,中间为隐藏层H,输入层与隐藏层之间的组件为编码器,隐藏层与输出层之间的组件为解码器.通过自动编码器的处理,我们可以重建数据的原始输入,并学习隐藏层中的高维数据的编码表示.对于正常数据与异常数据来说,二者重构后的数据特征差异是巨大的,这样我们就可以将异常数据检测出来.

通常,编码层和解码层都可以用矩阵变换函数Φ和Ψ表示:

其中,φ、ψ表示激活函数,W1、W2为转移矩阵,b1、b2为偏差向量.具体来说,编码层的变换将输入M压缩表示为H,我们选择使用常见的激活函数ReLU,其收敛速度和计算速度相对更快;解码层的变换则是还原并输出M′的过程,同样使用ReLU 作为激活函数.

对于输入和输出之间的重构误差,则使用二阶距离度量,记为:

综上,我们可以通过寻找合适的参数使得正常数据的重构误差最小,便于将正常数据与非正常的数据区分出来.总体而言,自动编码器具备非线性的降维能力,并能通过中间的隐藏层学习更多的特征,与传统的主成分分析(PCA)算法相比,更具灵活性,也利于提高检测的正确率.

3.2.2 集成LSTM的自动编码器

LSTM (long short term memory network)全称为长短期记忆网络[25],是一种时间循环神经网络(recurrent neural network,RNN),相比普通的RNN,LSTM 在更长的时间序列中有更好的表现.

LSTM 网络由LSTM 单元构成,每个LSTM 单元会传递自身的状态和之前输入的状态,选择忘记不重要的信息,选择记忆重要的特征信息.因此,可以将LSTM 单元集成到自动编码器中[26],每个编码器和解码器部分都采用LSTM 单元,其结构示意如图3所示.

图3 LSTM 自动编码器结构

图3中,S={S1,S2,…,Sn}表示输入的时间序列数据,时刻i的序列状态记为Si,S'表示自动编码器训练过程中产生的序列.图中给出了子序列长度为4的实例流程,在编码器阶段,时刻i的状态Pien受到i–3 时刻到i时刻的状态影响,而在传递到解码器时,只需要传递i时刻的状态,也就是在此时刻编码器状态与解码器状态是一致的,解码器再进行反向的状态遍历,还原时间序列.

4 实验

4.1 实验数据

在实验过程中,使用的BGP 数据均来自开源项目RIPE RIS[27]收集的真实互联网路由信息数据.RIPE RIS 包含多个部署在全球各地的远程采集器(remote route collectors,RRC)实时记录路由表及更新报文信息,并提供MRT 格式文件供下载利用.根据已有的研究成果和最新的BGP 安全事件,我们选取了3 个事件进行分析:2003年的Slammer 蠕虫爆发、2017年谷歌劫持BGP 路由、2020年CenturyLink 网络中断事件.其中,Slammer 蠕虫爆发时间最早,且持续时间相对最长、波及范围最广,是当时的年度重大安全事件,相关的检测分析研究也较多,便于与本文提出的方法进行对比;Google 劫持事件则是一次主要集中在日本范围内的异常,且发现处理的速度较快,影响相对较小;CenturyLink 网络中断则是2020年最新发生的全球性大规模异常事件,反映了整个互联网依然存在的脆弱性问题.各事件相关情况如表1所示.

表1中的数据来自于RIPE RIS 项目位于日内瓦的采集器RRC04和东京大手町的RRC06,分别采集异常事件发生前后共计5 天的BGP 更新报文数据,并按每分钟作为间隔提取该时间范围内的AS_PATH 属性信息,按照异常的持续时间范围,对相应的信息统一标记为BGP 异常数据.

表1 数据集

4.2 拓扑图特征

利用上文提到的图嵌入特征学习算法,结合AS_PATH 属性信息,我们可以将相应时间段内的网络拓扑变化情况以向量特征表示出来.具体结果如图4.

从图4中可以看出,在发生异常事件的时间段内,网络的拓扑特征同样会发生明显变化.

图4 异常事件拓扑图部分特征

4.3 评价指标

在模型数据处理中,将数据集中的正常数据作为训练集和验证集进行模型的训练,并使用标记的全部数据集作为训练集,将模型的检测结果与实际数据集中的标记类型进行对比,对检测效果进行评价.

对正常与异常数据的二分类问题,通常采用正确率(Accuracy)、准确率(Precision)、召回率(Recall)、F值(F-measure)进行评价.具体如下所示:

其中,TP表示检测正常为真,TN表示检测异常为真,FP表示检测异常为假,FN表示检测正常为假.正确率反映了整体检测的正确水平,准确率和召回率只针对正常数据的检测情况,反映精准度和错检情况,F值则是综合衡量检测的性能.

此外,由于异常检测中的数据是不平衡的,同样需要关注对异常值的检测情况,可以使用曲线下面积AUC (area under curve)进展评估,此处的曲线指接收者操作特征曲线ROC,该曲线表示了两类预测分布间的差异性,通常认为AUC 值越接近1,分类的效果就越好.

4.4 实验结果及分析

首先,我们使用上文提到的数据及模型,对相关数据集进行检测分类,以验证方法的有效性.对于本文而言,通过实验不仅可以验证模型的检测效果,同时可以对文中提出的基于网络拓扑图嵌入特征的数据集构建方法进行有效验证.实验的具体结果如表2所示.

表2 LSTM 自动编码器检测结果(%)

从表2中可知,模型整体的正确率很高,都在90%以上,特别是在Google 事件数据集中正确率达到了99.37%,但其F值相对较低,主要是该异常事件持续时间短,在按分钟级的数据提取情况下,异常数据的量相对于正常数据所占比例是非常小的,同时个别数据特别是在异常事件起始和终止时刻的数据难以精准的识别判断,容易出现错检情况,从而对检测结果产生较大影响.相对的,对于持续时间较长的异常事件,受到的干扰影响就比较小,检测的结果就比较稳定.具体到F值上看,异常事件的持续时间越长,异常检测的准确度也越高.

同时,进一步使用AUC 对3 个异常事件的整体分类情况进行评估,得到AUC 曲线图如图5所示.

图5 ROC 曲线图

从图5中可知,在CenturyLink 事件中的异常检测效果最好,达到95.6%.这也与前表中该事件正确率与F值的水平都比较均衡有关,整体上达到了很好的异常分类效果.而在Google 事件中,可以明显观察到曲线的阶梯状上升,这就是在极少量异常数据情况下单个异常点数据影响的结果.

综合上述检测结果,我们认为构建的数据集和相应的检测模型都是有效的.特别是对于BGP 数据集的构建方法,采用的拓扑图嵌入特征能够很好的反映异常事件中的数据变化情况,相比于文献[18]中提出的基于37 种BGP 数据扩展特征构建的数据集或者从中选取部分扩展特征构建的数据集而言,更加简单易于处理,并且进一步结合检测模型能获得较为理想的检测结果.

为了进一步评估模型的效果,使用经典的支持向量机(support vector machines,SVM)模型及前文提到的原始自动编码器模型对Slammer 数据集进行了异常检测分类测试,结果如表3所示.

从表3中可知,文中提出的LSTM 自动编码器模型的异常检测效果最好,其F值和正确率都优于其他两种模型.对于原始的自动编码器模型而言,还是体现出了其作为深度学习算法在高维数据非线性处理上的优势,结合数据的时间序列特征集成LSTM 处理单元之后,模型的检测能力得到了进一步的提高.

表3 不同模型异常检测结果(%)

5 结论

本文针对BGP 数据的异常检测问题,提出了一种使用LSTM 自动编码器模型进行异常事件检测的方法.为了能够有效的检测出BGP 异常事件,从互联网中真实的历史数据入手,利用图嵌入特征算法,获取基于时间序列的网络拓扑变化情况,构建基于网络拓扑图特征的数据集,为模型处理提供高效简洁的数据.我们通过选取3 起有代表性的BGP 安全事件及相关节点采集的数据进行了模型方法的验证.实验结果表明,该数据集能够很好的反映异常事件中的网络特征变化情况,使用的模型相比于传统的检测方法有更高的准确率,能够有效检测出BGP 异常事件,便于后续及时响应处理.下一步将结合具体的应用场景,研究更大规模BGP 时间序列数据情况下的检测与响应机制.

猜你喜欢
编码器路由特征
融合CNN和Transformer编码器的变声语音鉴别与还原
离散型随机变量的分布列与数字特征
设定多圈绝对值编码器当前圈数的方法
转炉系统常用编码器选型及调试
舞台机械技术与设备系列谈(二)
——编码器
数据通信中路由策略的匹配模式
OSPF外部路由引起的环路问题
抓特征解方程组
不忠诚的四个特征
路由重分发时需要考虑的问题