APP下载

基于深度学习的ADS-B异常数据检测模型

2019-12-27丁建立邹云开王静王怀超

航空学报 2019年12期
关键词:报文向量维度

丁建立,邹云开,王静,王怀超

1. 中国民航大学 计算机学院,天津 300300 2. 中国民航大学 中欧航空工程师学院,天津 300300

广播式自动相关监视(ADS-B)通过全球卫星导航系统(GNSS)以及相关机载设备获取参数,并向其他飞机或地面基站广播飞机的位置、速度、航向、识别号等信息,相比于现行的雷达系统,ADS-B无需使用询问/应答方式即可获取航空器目标信息数据,并且更精确、更高效、更全面和更可靠。然而ADS-B协议开放共享式的特点使得位于相关频段的任何接收端都可以获取由飞机发出的ADS-B报文信息。另外,随着软件定义无线电(SDR)的发展,进一步降低了攻击ADS-B系统的难度。例如,Schäfer等[1]详细描述了如何以较为简单的技术手段成功对ADS-B系统进行欺骗干扰。此外,随着空中交通输运量的增加和ADS-B系统的进一步推广应用,对其安全问题的担忧也将不断增加。

针对ADS-B系统的安全问题,国内外已经开展了很多研究。首先为基于密码学的方法[2-3],此类方法通常需要改变现有的ADS-B协议,并且与目前的ADS-B系统不兼容,因此实施难度较大,附加成本很高。Strohmeier和Martinovic[4]提出了一种位于数据链路层的特征识别方法,该方法通过ADS-B应答机类型的不同以及它们在飞机上实现方式的不同来识别报文的合法性,但对于掌握应答机传输特点的高级攻击者,该方法并不能提供相关安全保障。第2类为基于位置验证的方法[5-7],这类方法通常是利用到达时间差/到达时间和(TDOA/TSOA)对飞行器或其他ADS-B报文发送者所宣称的位置进行二次校验,但此类方法对接收基站的安装位置有一定的要求,还容易受到多径效应的影响。Kacem等[8]提出了一种ADS-B系统的入侵检测框架,将位置信息验证与安全加密相结合,但作者并没有从安全指标(如攻击检测率)的角度来评估该框架的性能。Strohmeier等[9]提出了一种基于k-NN算法的飞机位置验证方法,虽然该方法克服了多点定位技术的一些缺点,但它仍然需要多个地面接收装置之间的同步,因而复杂度很高。第3类为基于阵列天线验证波达方向(DOA)的方法[10-11],虽然这类方法不需要多个地面基站之间的协同,只采用单一数据源,但通常需要空间搜索测向,计算复杂度较高。Wang等[12]使用阵列天线来直接抑制欺骗干扰,该方法虽然降低了计算复杂度,但受阵列误差影响较大。

在各个研究与应用领域,异常数据检测都是一个十分重要的问题。目前常见的异常数据主要分为两种,分别为数据点异常和上下文异常。前者又称为离群点,即异常数据的特征值与正常数据的特征值距离较远,如飞机在某个时刻的速度、海拔、经纬度等离群距离和超过阈值,即为异常点。后者又称时间序列异常,即该数据本身是正常数据,在对应的上下文出现时即为异常,如飞机在爬升阶段速度信息显示为300节,虽然该数字处于飞机机动性能的正常约束范围内,但其超过了飞机爬升阶段的正常速度范围(160~200节),由此仍为异常数据。近年来,各个领域提出了多种基于机器学习的异常检测方法,包括无监督方法[13-15]和监督方法[16-17],其中无监督学习方法因为不需要标签数据因而可以处理大量数据,然而这些方法的性能都很低[18]。而监督学习方法相比无监督方法虽然具有更高的精度,但存在标签标注成本过高,缺乏异常数据,位于异常边界的数据难以划分等问题。目前常用的异常检测方法主要有4类,分别为基于线性模型的方法、基于距离的方法、基于集群的方法以及基于神经网络的方法,值得注意的是,基于深度学习的异常检测方法越来越流行,并被应用于各种不同的任务。Peng和Marculescn[19]以及Javaid等[20]研究表明,基于深度学习的方法已完全超越了传统方法。

本文针对ADS-B系统欺骗干扰检测方法所存在的成本、性能以及适应性方面的问题,利用ADS-B报文更新快、时间关联性强等特点,从数据角度出发,采用深度学习的seq2seq模型[21],用于检测异常ADS-B时间序列,并在此基础上,通过对序列特征扩展,即增加序列特征维度,来提升检测效果。该方法不需要改变现有的ADS-B协议,也不需要额外的节点或传感器参与,只需要来自ADS-B系统的报文序列以及将异常检测的结果通过可视化系统分类输出即可。在实际应用中,可根据该方法开发相关软件并集成在ADS-B可视化系统中,安装于飞机(例如,以认证软件的形式应用于电子飞行包)或地面基站。

1 ADS-B风险分析

ADS-B系统所面临的风险本质上来源于射频通信的广播特性[22]。表1从可能性及影响程度列出了几种对ADS-B系统潜在的攻击类型。本文所使用的异常ADS-B序列即在此基础上模拟生成。

窃听(Eavesdropped):由于ADS-B传输系统没有进行加密,因此其数据交换很容易被窃听,但窃听不会(直接)对空中交通管制系统造成危害,因此影响最小,但它是其他攻击手段的基础。

干扰(Jamming):通过靠近地面基站并在相关频段拥有足够高的发射功率即可实现对ADS-B系统的干扰,此类攻击虽然会给监视系统带来较大影响,但可以根据干扰信号的功率对攻击者进行快速定位,因此认为干扰攻击具有中等影响。

报文注入(Injection):通过构建一个能够产生正确调制和符合ADS-B报文格式的发送器即可实现。攻击者如果向系统中注入大量的虚假飞机,将严重扰乱空中交通,混淆防撞系统,甚至引起碰撞。其发生可能性为中,影响较高。

报文删除(Deletion):可以通过构造性(Constructive)干扰或破坏性(Destructive)干扰手段在物理层实现报文删除[23]。实施此类攻击在某种程度上需要时间同步,因而实施难度较高。另外,这种攻击虽然会对监视系统造成一定影响,使飞机从空管地图中暂时消失,但监视系统还会由多点定位等备用系统支持,这在一定程度上降低了它的危害性,因此具有中等影响。

报文篡改(Modification): 可以在系统物理层通过掩盖(Overshadowing)和位反转(bit flipping)实现报文篡改(也可以通过结合报文注入与报文删除这两种攻击方式来实现)[23]。虽然实施起来需要严格的时间同步和精度,具有较高的复杂性,但它对空管系统具有很大的影响。例如,攻击者如果对ADS-B报文中的飞机位置信息进行不断的小幅度修改,即“温水煮青蛙”[24]式的欺骗式干扰,其他监视技术(如雷达监视系统)或定位技术会因精度问题将很难检测到这些细微的差异,从而造成对空管人员的错误指引,或造成防撞系统的反应延迟。

2 ADS-B异常检测模型构建

2.1 问题定义

定义n维时间序列表示ADS-B序列窗口,即

S={S1,S2,…,SC}

式中:C为时间序列的长度;Si=[s1,s2,…,sn](1≤i≤C)是一个n维的向量,其每一个维度对应一种特征。具体来说,S表示连续的C条ADS-B报文信息组成的窗口,而每一个向量Si又包含了从对应ADS-B报文中获取的特征信息,即位置、海拔高度、速度等。

在训练阶段,使用正确的ADS-B时间序列作为训练样本输入到异常检测模型中,该模型会强制重构该序列。训练完成后,输入正确的ADS-B时间序列,其重构误差将在一定范围内,而当使用包含异常的序列作为输入时,其重构误差将会被放大,从而达到异常检测的效果。图1为本文总体流程(以包含特征维度扩展步骤为例)。

图1 总体流程图
Fig.1 Overall process

2.2 特征提取与维度扩展

将ADS-B报文中所包含的飞机速度、经度、维度、海拔高度与航向信息作为数据的基本特征。又因为时间序列中的向量通常不是相互独立的,由此可以使用滑动窗口来计算依赖关系,而后再计算每个窗口中的统计特征来获得特征更为丰富的时间序列。特征维度扩展主要分为3步,具体方法如下:

首先,定义窗口

Ti=〈Si,Si+1,…,Si+c-1〉

表示区间在[ti,ti+c-1]上的时间序列。

考虑一个步长为[b]的滑动窗口(b>1),其中两个连续的窗口重叠步长为[b/2],由此,通过一个长度为C的时间序列,可以得到一个长度为C′=(2C-b)/b的新序列。如图2所示,时间序列的长度C=14,窗口长度b=4,则第1个窗口包含的向量区间为[t1,t4],第2个窗口包含的向量区间为[t3,t6],第3个窗口为[t5,t8],以此类推,共计产生了6个窗口。

图2 特征维度扩展的3个步骤
Fig.2 Three steps of feature expansion

对于每个窗口来说,可以从时间序列的每个特征中计算出两个派生特征,分别称为模(Norm,记作NOR)与模差(Difference of Norm,DON)。计算方法定义为

NORj(Ti)=

(1)

DONj(Ti)=NORj(Ti)-NORj(Ti-1)

(2)

式中:i表示第i个窗口。

NOR捕获的为窗口序列中特征的大小信息,而DON捕获的为两个连续窗口中特征大小的变化信息,即时间依赖性。

经过计算之后,可以得到一个新的时间序列

T′=〈G1,G2,…,GC′〉

式中:Gi∈Rd×n为矩阵。

在此之后,考虑大小为[f]的滑动窗口来进行第2步转换。定义连续两个窗口之间的重叠长度为[f/2],对于每个窗口,分别计算序列T′中两个派生特征(NOR,DON)的一系列统计特征,其目的是为了进一步捕获派生特征随时间的变化程度。由文献[25-26]推荐,可计算派生特征对应的8个统计特征,分别为平均值、最小值、最大值、四分位数(25Q,50Q,75Q)、标准差以及峰峰值,由此得到又一个时间序列

T″=〈H1,H2,…,HC″〉

式中:Hi∈R(e×d)×n为矩阵。

最后,再将时间序列T″中所包含的矩阵Hi展开,并进行向量化,得到最终的时间序列

T′″=〈H′1,H′2,…,H′C″〉

如图3所示,对于包含5维(n=5)特征(经度、维度、海拔高度、速度、航向)的ADS-B时间序列T,经过第1步转换后得到时间序列T′,再经过第2步部转换后得到序列T′,两次转换的滑动窗口大小分别为b=4,f=2,最后再经过向量化,得到最终的时间序列T′″,序列的特征维度由5扩展为80,时间序列的总长度变为原来的一半。

图3 特征维度扩展的一个具体例子(n=5,b=4,f=2)
Fig.3 A specific example of feature expansion wheren=5,b=4, andf=2

2.3 异常检测模型

本文以深度学习的seq2seq模型为基础来重构该序列。seq2seq是一种通用的编码器-解码器框架,是指一般的序列到序列的转换任务,常用于自动文摘、机器翻译等。它包含了编码器、解码器以及连接两者的中间状态向量共3个部分。其中编码器与解码器部分为循环神经网络(RNN)单元结构,编码器通过学习输入,并将其编码为一个固定大小的状态向量,进而再将该向量传给解码器部分,最后解码器再通过对状态向量的学习来进行相关输出。

由于RNN具有一定的短期记忆优势,因此常常将它作为对时序数据训练的首选神经网络。不过当序列数据的长度超过一定范围后,利用RNN所训练的数据将会出现严重的梯度消失问题,进而导致训练停止,也就是说,RNN仅能学到一定间隔的时间序列信息。飞机所发送的ADS-B数据可以看作是一系列具有前后联系的时间序列,因其长度较长,所以在这种条件下,RNN将很难有效利用这些长序列的历史信息,即无法学习到长期依赖的特征。为了解决该问题,Hochreiter和Schmidhuber[27]首次引入了长短期记忆机制(LSTM)。此后,研究者们也提出了许多LSTM的变体,其中最为流行的为Graves和Schmidhuber[28]于2005年所描述的。

LSTM可以使用其内部存储单元状态来捕获长期模式和依赖关系。因此,编解码结构与LSTM网络的结合可以作为一个有效的时间序列预测模型。

图4 模型核心图
Fig.4 Core model diagram

2.4 异常评估指标

(3)

式中:n为向量的特征维数。

在此基础上,可定义时间序列的重构异常分数为

(4)

通过实验可以确定异常分数的阈值,作为异常序列判定的标准。具体来说,计算训练集的异常分数,并定义阈值为97%的异常分数值小于该值。

3 实验与结果分析

3.1 数据获取

实验所使用的数据来自Flightradar24,该网站提供了从全球数千个地面ADS-B站收集的数据。虚假报文数据由模拟生成,方法描述如下:

随机噪声(干扰):将原始ADS-B报文中获取的飞行信息数值乘一个0~2之间的随机浮点数。

航路替换(报文注入):给定某条航路信息,对于选定的ADS-B序列段,注入另一条正确的航路信息来代替该段序列。

网络延迟(报文删除):在选定的ADS-B序列段,对于每10条连续的报文信息,只保留第1条,删除后9条。这种情况模拟了现实情况中,只有在足够大时间间隔的条件下,接收端才能接收到有效报文信息。

高度偏移(报文篡改):以400 ft(1 ft=0.304 8 m)尺为倍数,逐渐改变ADS-B报文中所包含的高度特征信息,具体来说,在选定的ADS-B序列段,将第1个向量所包含的高度特征增加400 ft,第2个增加800 ft,以此类推。

速度偏移(报文篡改):以5节为倍数,逐渐改变ADS-B报文中所包含的速度特征信息,具体来说,在选定的ADS-B序列段,将第1个向量所包含的速度特征增加5节,第2个增加10节,以此类推。

3.2 实验策略

实验过程中,选取100趟航班连续7天从起飞到降落的完整数据作为训练样本,每趟航班数据在1 500~2 000之间。另选取10趟单独的航班作为测试样本。在测试样本中,分别在飞机飞行的不同阶段(起飞、爬升、巡航、下降)选定长度为100的序列为异常序列段,按照前文描述的5种虚假报文类型进行修改。

用特征维度扩展后的时间序列与未扩展时间序列分别进行训练,即进行相同过程的平行实验。两个模型训练完成后,分别计算两个训练集的异常分数,并定义阈值为97%的异常分数值小于该值。在实验过程中,输入LSTM单元的原始时间序列长度为10,特征维度扩展过程中,两个滑动窗口的大小分别为b=4,f=2。LSTM单元数为128,批尺寸(batch_size)为64,dropout比率为0.2,训练所采用的损失函数为均方误差(MSE)。

3.3 实验结果

图5为某条测试航班的实验结果图,其中横坐标为序列号,纵坐标为异常分数,方框内为异常序列段(序号为199~299),横线为异常阈值。其中图5(a)~图5(e)对应的是特征未扩展时间序列作为训练样本,图5(f)~图5(j)对应的特征维度扩展后的时间序列作为训练样本。

图5(a)~图5(c)表明,该模型对随机噪声、航路替换与网络延迟这3种类型的异常序列检测结果的可视化效果显著。需要注意,将异常序列段按网络延迟异常模拟方法修改后,其长度变为10。

图5(d)和图5(e)表明,模型在对高度偏移与速度偏移的异常检测中,表现出延时检测的结果。这是因为在异常变化的初期,数据变化幅度较小,特征变化并不明显。在对特征维度扩展后的序列进行测试时,由于数据特征的时间依赖性被更好捕捉,因此这种现象得到了明显的改善,具体表现为,在异常序列进入的初期,即可迅速触发阈值,如图5(i)和图5(j)所示。

在对数据进行特征维度扩展后,数据的总量变为原来的一半,表现在实验结果上,其对应的异常序号也变为原来的一半。图5(f)~图5 (h)为特征维度扩展后,模型对另外3种异常序列的检测结果图。

图5 实验结果图
Fig.5 Experimental results figure

本文采用精确率(Precision),召回率(Recall)和F1分数来衡量该模型。其中精确率是指正确检测出的异常ADS-B样本数占所有实际被检测出的异常样本数的比例,召回率是指正确检测出的ADS-B异常样本数占所有应该检测出的异常样本数的比例,F1分数为精确率和召回率的调和均值。表2和表3为完整实验结果,其中LSTM表示样本为特征未扩展的时间序列,LSTM-EN表示样本为特征维度扩展后时间序列。

可以看出,模型精确率较低,尤其是针对网络延迟这种异常模式,这是因为异常序列段长度相对于整个测试航班所占比例较小。为提升模型精确率,在实验过程中,设置模型使其只有在连续检测到足够多的异常点时,才触发报警(现实情况中,ADS-B报文更新快,因此一些单独的异常点可以忽略,在此将异常目标锁定为序列)。对应现实情况,即给与一定的报警时间延迟(飞机平均每0.5 s 通过ADS-B报文广播一次它的速度、位置等信息)。表4和表5为连续检测到超过10个异常点再触发异常报警的情况,可以发现模型检测精确率大大提高。

表2 精确率、召回率与F1分数Table 2 Precision, recall, and F1 scores

表3 平均精确率、召回率与F1分数Table 3 Average precision, recall, and F1 scores

表4 精确率、召回率与F1分数(检测目标为序列)

表5 平均精确率、召回率与F1分数(检测目标为序列)

另外,本文还从4类不同的异常检测方法中分别选取一种对5种类型的异常数据分别进行测试作为对比,这4种方法分别为基于线性模型方法的一类支持向量机 (OCSVM),基于集群方法的孤立森林(IF),基于距离方法的局部异常因子算法(LOF)以及由LSTM组成的神经网络(SeqLSTM)。

在对比实验中,从上述实验样本中选取约20 000条数据,再从中选取10趟航班对5种异常类型分别模拟2 000条数据组成5个新的数据子集,训练集与测试集划分比例为4∶1。其中OCSVM的核函数为径向核函数(rbf),IF中树的棵数为150,LOF中参数K为25,神经网络由3层LSTM单元以及一个全连接层组成,损失函数为二元交叉熵(binary_crossentropy),输入模型的时间序列长度为10,输出为表示异常或正常的标签。

前3种方法由于只使用了当前检测点的特征信息,没有考虑到当前点相邻时间内的目标变化信息,因而检测性能较低,且不能通过将目标锁定为序列的方式来提高。其中LOF召回率较高,能检测到更多真实的异常点,但其精确率较低。而由LSTM单元构成的神经网络对ADS-B时间序列虽然具有较好的异常检测效果,但因为在训练之前需要对所有数据进行人为标注,因而具有一定的局限性。具体实验结果如表6和表7所示,其中SeqLSTM表示由LSTM单元构成的神经网络。

表6 各个方法精确率、召回率与F1分数

以上各类方法中,基于LSTM的seq2seq模型对异常ADS-B时序序列检测效果最好,检测能力更为全面。在对时间序列进行特征维度扩展后,该模型的各项检测指标全面提升。

表7 各个方法平均精确率、召回率与F1分数

4 结 论

1) 该模型通过ADS-B报文数据的变化特点可以检测针对系统的欺骗式干扰,检测性能优于一类支持向量机,孤立森林,局部异常因子算法,以及由LSTM组成的神经网络,且实施难度低于现有的欺骗干扰检测方法。

2) 该模型在将异常目标锁定为序列时可实现优异的检测性能,具体表现为,针对连续超过10条的异常ADS-B数据,5种异常序列的平均检测精确率为0.913,平均召回率为0.845。

3) 对序列进行特征维度扩展后,模型检测性能提高,在保持高精确率的同时,平均召回率提高14%,由0.845提高为0.963。

后续工作将考虑添加环境因素以及飞机机动状态改变所带来的数据变化,并将时间序列中重要的数据点(起飞点、降落点、巡航开始点、巡航结束点等)作为编码器和解码器的附加特征和处理后的数据一起放入模型中进行训练以应对更为复杂的异常数据类型。

猜你喜欢

报文向量维度
基于J1939 协议多包报文的时序研究及应用
以太网QoS技术研究及实践
向量的分解
理解“第三次理论飞跃”的三个维度
聚焦“向量与三角”创新题
认识党性的五个重要维度
浅论诗中“史”识的四个维度
浅析反驳类报文要点
一种基于FPGA的网络串口管理系统的设计
向量垂直在解析几何中的应用