罗鹏,王布宏,李腾耀
空军工程大学 信息与导航学院,西安 710077
空中交通管理(ATM)是管理空域、飞行器和航线的重要系统。它利用通信、导航、监视等技术,保障和维护空中交通安全、秩序和畅通[1]。目前,空管监视技术主要包含一次雷达(PSR)、二次雷达(SSR)、广域多点定位(Wide Area Multilateration,WAM)、广播式自动相关监视(ADS-B)等监视技术[2]。PSR通过对雷达发射信号和反射信号的分析计算,可获得探测目标的位置和速度等状态信息,但是PSR获取的状态信息误差较大。SSR通过询问、应答机制获取目标的状态信息,但在缺乏雷达保障的区域很难获取飞行器的状态信息,且SSR的监视精度不高。WAM通过到达时间差(TDOA)对目标飞行器的位置和速度完成测算,但是WAM需要部署多个地面接收站,且对地面接收站的部署位置有一定要求。ADS-B作为新一代空管监视技术,比雷达监视技术监视精度高、监视范围广;且相较于WAM,虽然ADS-B的定位精度略低,但由于ADS-B采用了广播机制,使得监视信息易在邻近飞行器和地面站之间完成信息共享,因而全球大部分商用飞机都安装了ADS-B设备[3-4]。ADS-B通过卫星导航系统(GNSS)和其他机载设备获取位置、速度和航向等信息,然后由ADS-B发射器广播这些信息,其他装配有ADS-B接收设备的飞行器和地面基站可以实时接收这些信息。但是,ADS-B以明文格式广播发送数据,协议缺少消息认证和加密机制,因而其安全性易受挑战。
文献[5-7]讨论了ADS-B易遭受的窃听、干扰、消息篡改、消息删除和消息注入等攻击,并对攻击的网络分层、难易等级和影响程度进行了分析。针对ADS-B的安全漏洞,目前已经提出了多种解决方法。第1类方案将加密技术用于ADS-B[8-10],但是此类方案不易实施,原因是与标准化的ADS-B协议不兼容。第2类方案将位置验证用于ADS-B数据的合法性判定[11-13]。文献[14]运用到达时间差(TDOA)和到达时间和(TSOA)2个量测定位飞行器位置,和ADS-B解析后的位置数据进行比较,实现ADS-B合法性判定,但是这需要多个基站协同工作;并且当多个基站接收ADS-B数据时间不同步时,会影响到 ADS-B数据合法性的判定。第3类方案将机器学习和深度学习的方案用于ADS-B数据的异常检测,异常检测是ADS-B研究的一个关键问题。文献[15-16]使用深度学习的seq2seq模型重构ADS-B数据,对ADS-B数据中存在的位置和速度等异常,利用重构误差进行检测,但这种方法没有考虑飞行器机动状态改变所带来的ADS-B数据变化,因而这种方案的适应性不高。文献[17]将机器学习的支持向量数据描述(SVDD)用于ADS-B数据的异常检测,但是此方法需要同步的SSR数据和ADS-B数据做差,数据的时间同步问题不易解决,因而难以真正化。
本文针对ADS-B易遭受的随机位置偏移攻击、高度偏差攻击、重放攻击和拒绝服务(DOS)等攻击,构建了BiGRU-SVDD异常检测模型。利用BiGRU神经网络对ADS-B数据进行预测,得到ADS-B数据预测值;为了解决ADS-B数据攻击检测阈值自适应问题,将ADS-B预测值和实际值作差,把差值输入SVDD超球体二次训练,得到的攻击检测阈值具有良好的自适应性,提升了ADS-B异常数据的检测性能。并且,选取了合适的滑动窗口长度,降低了BiGRU神经网络的训练时长。
RNN(Recurrent Neural Network)是深度学习中用于处理序列数据的神经网络,目前已经在故障预测和机器翻译等领域有所运用[18-19]。但是,RNN在参数训练时,存在梯度消失现象,因而RNN不适合处理长序列问题。GRU(Gated Recurrent Unit)是RNN的一种优化类型,它通过门控机制缓解了RNN的梯度消失问题,因而具有学习长序列中存在的长期依赖关系的能力[20]。但单向GRU只是从前往后学习序列信息,然而在有些问题中,当前时刻的输出不仅和上文序列信息相关,还和下文序列信息也有关[21]。例如,在预测一句话中缺失的单词时,就需要同时结合上文和下文内容进行预测。BiGRU就是一种能处理这类问题的神经网络。BiGRU由2个信息传递方向相反的GRU循环层构成,其中第1层按时间顺序传递信息(顺时间循环层),第2层按时间逆序传递信息(逆时间循环层)。BiGRU的基本思想是:通过顺时间循环层得到正向隐藏状态,通过逆时间循环层得到反向隐藏状态,再将正向隐藏状态和反向隐藏状态拼接,得到BiGRU最终输出的隐藏状态。
SVDD是文献[22]提出的一种基于边界数据的单分类机器学习方法。SVDD的主要思想是:通过训练目标样本,SVDD能创建一个超球体分类器,此超球体分类器几乎包含全部训练样本,并且它的体积越小越好。分类器可以表示为
(1)
式中:R为半径;a为球心;ξi为松弛因子,ξi≥0;C为惩罚系数,0 图1为SVDD超球体分类器示意图。如果测试样本离球心a的距离小于R,则测试样本是正常样本;若测试样本离球心a的距离等于R,则测试样本是支持向量;若测试样本离球心a的距离大于R,则测试样本是异常样本。 图1 SVDD分类器Fig.1 SVDD classifier 用时间序列X={X1,X2,…,XM}表示模型接收到的原始ADS-B数据,M为序列的长度。Xk的表达式为 Xk=[x1,x2,…,xd]T1≤k≤M (2) Xk为一个d维列向量,每个维度表示ADS-B数据的一个特征,数据特征包括纬度、经度、高度、识别号、航向等信息。本文要解决的问题是如何检测出ADS-B时间序列数据中的异常数据。为了解决此问题,需要建立ADS-B异常数据的检测门限。图2为异常检测门限建立的流程图。 图2 异常数据检测门限Fig.2 Detection threshold of anomaly data 在训练阶段,首先对原始ADS-B时间序列X={X1,X2,…,XM}进行特征数据提取以及数据归一化处理,得到归一化后的序列数据Y={Y1,Y2,…,YM};接着,利用BiGRU神经网络对Y进行预测,可以预测下一时刻且在正常范围内的ADS-B预测序列P={P1,P2,…,PM};然后,将预测序列和实际序列做差 Dk=Pk-Yk1≤k≤M (3) 将差值序列D={D1,D2,…,DM}放入SVDD训练,可以求出 SVDD超球体的球心a和半径R,此半径R就是异常检测的阈值。 在测试阶段,输入测试数据Xk,经过求解后,如果其差值Dk距球心a的距离小于或等于阈值R,则Xk是正常数据;如果其差值Dk距球心a的距离大于阈值R,则Xk是异常数据。 由于接收的ADS-B数据存在一定丢包率,故丢包特别多的ADS-B航班数据不能选取为训练样本,否则会降低BiGRU神经网络预测的准确性,进而降低模型的检测率。对一架次航班缺失的少量ADS-B数据,本文采用插值法进行补齐,插值法具体为:首先计算缺失值前后数据的斜率,再根据斜率补齐缺失的ADS-B数据。 ADS-B原始数据中包含了纬度、经度、高度、速度和航向等信息,也包含了24位的循环冗余校验码(CRC),但是CRC主要是校验ADS-B通信链路上数字传输过程中出现的错误,不能检测攻击者精心构造的ADS-B异常数据。 为了检测ADS-B异常数据,本文选取纬度、经度、高度、速度和航向为特征数据。用时间序列H={H1,H2,…,Hk,…,HM}表示提取的特征数据,序列H中每个元素均是一个五维列向量,5个维度表示的属性分别为纬度、经度、高度、速度和航向。为了消除奇异样本数据导致的不良影响,同时为了减短模型的训练时长、使训练过程尽快收敛,本文对ADS-B数据进行归一化处理,归一化的公式为 (4) 式中:Hk为H的第k个元素;Hk为五维列向量;上标i表示第i个维度;min(Hi)为Hi的最小值;max(Hi)为Hi的最大值。 ADS-B数据具有前后时间相关性,是基于时间的一系列数据,它任一时刻的纬度、经度、高度、速度和航向等信息是与历史时刻和未来时刻的ADS-B数据相关的。为了实现对ADS-B时序数据的预测,本文设计了一种基于BiGRU神经网络的预测结构,如图3所示。 图3 BiGRU预测结构Fig.3 Prediction structure of BiGRU 两层BiGRU本层采用2层的BiGRU网络结构。利用BiGRU能捕获ADS-B数据的时间相关性,并且能解决梯度消失问题。第1层BiGRU1的神经元个数为60;第2层BiGRU2的神经元个数为40。2层BiGRU之间设置Dropout层,Dropout层是为了避免训练的过拟合,提高预测模型的泛化能力。 全连接层全连接层能通过权重矩阵提取以前全部的局部特征,能够将网络的输出值映射成目标输出值。本文采用了3层的全连接层结构,第1层全连接层的神经元个数为20,第2层全连接层的神经元个数为10,第3层全连接层的神经元个数为5。 输出层输出层通过线性激活函数输出xk+1预测结果。 为了解决ADS-B数据攻击检测阈值的自适应问题,本文将ADS-B预测序列和实际序列做差,得到差值序列为Dk=Pk-Yk;将差值序列D输入SVDD程序求解,可以求得SVDD超球体的半径R和球心a。其中,半径R就是异常检测的阈值。为了使样本在特征空间中线性可分,需要利用核函数将样本从原始空间映射到一个更高维的特征空间[23-24]。本文采用高斯核函数,将样本从原始空间映射到一个合适的特征空间,高斯核函数的表达式为 根据监测软件接收到的数据包个数分析可知,固定周期传输网络中平均丢包率为2.5%。变周期数据传输网络中丢包率为0.43%,与固定周期传输网络对比,传输成功率高,网络稳定性更好。多个检测器节点固定周期发送数据增加了同一时刻数据传输中网络堵塞的概率。而变周期数据传输网络中,由于对采集到的环境参数前后两次求差与设定阈值作比较,当大于所设定阈值时进行数据的发送,减少了大量重复数据的传输,网络负荷变小,数据堵塞概率降低,丢包率减小,确保了网络稳定性。 (5) 式中:Di和Dj为输入SVDD的任意2个样本;s为高斯核参数。 表1描述了样本分类结果。TP指实际正常样本被正确判定为正常样本的数量,FN指实际正常样本被错误判定为异常样本的数量,FP指实际异常样本被错误判定为正常样本的数量,TN指实际异常样本被正确判定为异常样本的数量。本文采用检测率(De)、召回率(Rc)和准确率(Acc)作为评价指标。检测率De是指被模型正确判定为异常样本的数量占真实异常样本数的比例,召回率Rc是指被正确判定为正常样本的数量占真实正常样本数的比例,准确率Acc是指被正确判定的样本占总样本的比例。 表1 样本分类结果Table 1 Classification result of samples 则模型评价指标公式为 (6) (7) (8) 实验从OPENSKY中总计获取200架次航班数据用作训练样本[25],选取40架次航班作为测试样本。每架次航班的ADS-B数据在200~3 000 之间,选取的ADS-B数据包含了飞机的起飞、爬升、巡航和下降等阶段。 选取一架次包含300条ADS-B数据的示例航班,飞机处于巡航和爬升的机动状态,攻击的报文数据由模拟生成,生成方法如下: 随机位置偏移如图4所示,选取的ADS-B航班数据共300条。其中,前100条和后100条ADS-B数据不做任何篡改;中间100条数据,经度和纬度上加入均值为0、方差为0.1的高斯噪声。攻击者通过随机位置偏移攻击,使攻击航迹在实际航迹左右随机波动。 图4 随机位置偏移Fig.4 Random position offset 高度偏差如图5所示,前100条、后100条航迹不做任何篡改;中间100条航迹数据,以50 m为倍数,逐渐改变ADS-B数据中包含的高度信息。具体来说,第101条航迹的高度增加50 m,第102条 航迹高度增加100 m,往后类推。 图5 高度偏差攻击Fig.5 Height deviation attack DOS攻击如图6所示,前100条、后100条航迹不做任何篡改;中间100条航迹,攻击者发起DOS攻击,接收端不能监视到报文信息。 图6 DOS攻击Fig.6 DOS attack 重放攻击如图7所示,前100条、后100条航迹不做任何篡改;中间100条航迹数据,攻击者发起重发攻击,将第91~第100条ADS-B航迹数据连续发送了10次,接收端接收到的是延迟发送了10次的第91~第100条航迹。 图7 重放攻击Fig.7 Replay attack 航路替换如图8所示,前100条、后100条航迹不做任何篡改;对于中间的100条ADS-B报文:假设攻击者掌握了飞机正处于爬升到巡航的机动状态信息,则攻击者注入另一段同样正在爬升且含有高斯白噪声的ADS-B报文。 图8 航路替换Fig.8 Replacement of track 速度偏差前100条、后100条ADS-B数据不做篡改;中间100条数据,以5 m/s为倍数,逐渐改变ADS-B数据中包含的速度信息。具体来说,第101条数据的速度增加了5 m/s,第102条数据的速度增加了10 m/s,往后类推。 在BiGRU神经网络训练次数epochs=50、设置训练批尺度batch_size=100、Dropout比率为0.2的条件下,BiGRU神经网络的预测效果较好。为了充分利用ADS-B数据的时间相关性,需要选择一个合适长度的滑动窗口。如果滑动窗口长度太短,则BiGRU神经网络会失去大量的时间关联的有效信息,降低异常检测的检测效果。如果滑动窗口长度太长,则会导致BiGRU神经网络训练时间过长。为了获得合适的滑动窗口长度,本文比较了不同滑动窗口长度对异常检测准确率和训练时长的影响。如图9所示可以看出,当滑动窗口长度大于8后,其准确率变化不大,保持在0.95左右;但是其训练时间仍然快速增加,因而本文选择滑动窗口长度为8,能保证ADS-B异常检测的准确率和训练时间达到相对最优。 图9 滑动窗口长度选择Fig.9 Length selection of sliding window 以BiGRU-SVDD异常检测的准确率为适应度函数,经粒子群优化算法[26]求得惩罚系数C=0.25,高斯核参数s=9。图10~图15为针对以上6种攻击的异常检测实验结果。其中,图10为随机位置偏移的异常检测结果图;样本经过训练后,得到SVDD超球体半径R为0.232,R即为异常检测的阈值。第101~200个异常测试样本中,共有94个测试样本的到超球体球心的距离大于阈值R,因而随机位置偏移的检测率为94%;第1~100个和第201~300个正常测试样本中,共有195个测试样本到超球体球心的距离小于阈值R,因而随机位置偏移的召回率为97.5%;300个 测试样本中共有289个样本被正确检测出了是否存在异常,因而随机位置偏移异常检测的准确率为96.33%。 图10 随机偏移检测Fig.10 Detection of random offset 同理,如图11~图15所示,高度偏差的检测率为98%,召回率为96.5%,准确率为97%;DOS攻击的检测率为100%,召回率为96%,准确率为97.33%;重放攻击检测率为95%,召回率为95.5%,准确率为95.33%;航路替换的检测率为88%,召回率为97.5%,准确率为94.33%;速度偏差检测率为98%,召回率为97.5%,准确率为97.67%。 图11 高度偏差检测Fig.11 Detection of height deviation 图12 DOS攻击检测Fig.12 Detection of DOS attack 图13 重放攻击检测Fig.13 Detection of replay attack 图14 航路替换检测Fig.14 Detection of track replacement 图15 速度偏差检测Fig.15 Detection of speed deviation 为了验证飞机处于爬升、转向、下降等机动状态下,BiGRU-SVDD模型也具有良好的异常检测性能,实验还选取了一架次含有600条ADS-B数据的示例航班,包含了飞机的爬升、转向、巡航和下降等阶段。如图16所示,前50条和后50条ADS-B数据不做任何篡改;在中间500条数据注入随机位置偏移攻击,注入的攻击和图4的方法保持一致:在经度和纬度上加入均值为0、方差为0.1的高斯白噪声。 图16 随机位置偏移攻击(600条数据)Fig.16 Random position offset (600 data) 图17为随机位置偏移(600条数据)的攻击检测图,检测率为94.4%,召回率为95%,准确率为94.5%。600条ADS-B航迹数据包含了飞机的爬升、转向和下降等阶段,说明即使飞机处于机动状态下,BiGRU-SVDD模型异常检测的检测性能也较好。 图17 随机位置偏移检测(600条数据)Fig.17 Detection of random offset (600 data) 实验总计对40架次测试航班采用BiGRU-SVDD模型做了异常检测实验,取40次实验的检测率、召回率、准确率的均值作为异常检测的结果。表2列出了BiGRU-SVDD异常检测的结果。从表2可以看出,BiGRU-SVDD模型对航路替换的检测率为88.72%,相对较低,其他形式的攻击检测率均在93.5%以上;BiGRU-SVDD模型召回率均在95%以上,准确率均在92%以上;且BiGRU-SVDD用于DOS攻击的异常检测性能相对最优,DOS攻击检测率达到了99.08%,这是因为DOS攻击导致航迹出现了消失,客观上来说,DOS攻击也最容易被检测。高度偏差攻击的检测率为93.56%,相对较低,这是因为起始注入的高度偏差导致的高度变化还不够明显,故客观上起始注入的一小段高度偏差攻击确实难以检测。通过计算得到,针对6种形式的攻击,BiGRU-SVDD模型的平均检测率为95.26%,平均召回率为96.22%,平均准确率为95.57%。 表2 BiGRU-SVDD异常检测Table 2 Anomaly detection of BiGRU-SVDD 另外,本文选取了其他机器学习和深度学习的方法,同样用于检测以上6种类型的ADS-B数据攻击(攻击数据的构造方法和3.1节保持一致)。这些方法包括一类支持向量机(OCSVM)、孤立森林(IForest)、长短期记忆神经网络(LSTM)、门控循环单元神经网络(GRU)、双向门控循环单元神经网络(BiGRU)和seq2seq模型[16]。其中,OCSVM采用的核函数为径向基核函数,核参数Gamma取值为0.2。IForest中,树的棵数取值为默认的100,每棵树的采样大小取值为256。LSTM、GRU和BiGRU都采用和图3相似的网络结构,用余弦相似度衡量预测值和实际值的误差大小(阈值的确定方法为:将余弦相似度按照从小到大排序,将第3%小的余弦相似度选取为阈值)。seq2seq模型采用的网络结构和文献[16]保持一致,即编码器和解码器的隐藏层都采用LSTM神经网络,LSTM的单元数为128。表3给出了6种形式攻击下,各种异常检测方法的检测率、召回率和准确率的均值实验结果。可以看出: 1) OCSVM和IForest的检测率、召回率、准确率性能都较差。这是因为ADS-B数据中的纬度、经度、高度、速度和航向等信息的数值大小是随时间的变化而变化的,然而OCSVM和IForest仅考虑了当前时刻ADS-B数据的特征信息,没有考虑到ADS-B数据的时间相关性,因而这两种方法的异常检测性能较差。 2) 考虑到ADS-B数据的前后时间相关性,将单向GRU和BiGRU的检测性能作比较。实验结果表明,相比于单向GRU,BiGRU的检测率、召回率和准确率均更高,说明BiGRU的预测效果更好,异常检测性能更佳。 3) 为了解决ADS-B数据攻击检测阈值自适应问题,本文在BiGRU预测结果后加入SVDD进行二次训练。结果表明,相较于BiGRU,BiGRU-SVDD的检测率、召回率和准确率均要更高,达到95%以上。说明BiGRU-SVDD能解决ADS-B数据攻击检测阈值的自适应问题,异常检测适应性更好,效果更优。 4)相较于seq2seq模型,本文的BiGRU-SVDD模型异常检测性能更好。这是因为,BiGRU-SVDD考虑了飞机的机动状态,seq2seq模型没有考虑飞机的机动状态;并且BiGRU-SVDD利用SVDD对样本进行了二次训练,解决了ADS-B数据攻击检测阈值的自适应问题。因而,相比于seq2seq模型,本文的 BiGRU-SVDD模型异常检测性能更优。 由于BiGRU-SVDD模型在使用BiGRU对ADS-B数据进行预测的基础上,又使用了SVDD对差值样本进行了二次训练,因而需要比较BiGRU-SVDD模型和其他检测方法的复杂性。本文记录了各种异常检测方法的训练时长和检测时长。表4给出了训练一架次ADS-B航班数据的平均时长,以及检测一架次ADS-B航班数据的平均时长(平均每架次航班包含的ADS-B数据约500条)。可以看出: 表4 训练与检测时长对比Table 4 Comparison of training time and testing time 1) OCSVM和IForest作为传统的机器学习方法,训练时长较短。但是结合表3可知,OCSVM和IForest的检测率、召回率、准确率性能较差。 表3 异常检测均值Table 3 Mean value of anomaly detection 2) BiGRU比单向GRU的训练时长多了5.51 s,BiGRU-SVDD比BiGRU的训练时长仅仅多了0.67 s,这说明BiGRU-SVDD的复杂性主要来自双向机制。 3) BiGRU-SVDD模型检测一架次ADS-B航班数据(约500条)共用了0.085 s,仅比BiGRU多了0.005 s,比LSTM和GRU多了0.015 s。 4) BiGRU-SVDD模型比seq2seq的训练时长和检测时长都要短。这主要是因为文献[16]ses2seq模型的编码器和解码器的LSTM单元数为128,本文的BiGRU-SVDD模型的2层BiGRU的单元数分别是60和40。 1) 本文考虑了ADS-B数据的时间相关性,利用BiGRU神经网络对ADS-B数据进行预测,得到了ADS-B预测数据;再将预测值和实际值作差,将差值放入支持向量数据描述(SVDD)训练,可以得到能检测ADS-B异常数据的超球体分类器。并且,选择了合适的滑动窗口,在保证异常检测准确率的同时,缩短了BiGRU神经网络的训练时长。实验结果表明,BiGUR-SVDD模型可用于ADS-B异常数据的检测。 2) 在OCSVM、IForest、LSTM、GRU、BiGRU、seq2seq和BiGRU-SVDD中,本文BiGRU-SVDD模型异常检测性能均更具优势。2 异常检测模型构建
2.1 异常检测门限
2.2 数据预处理和特征提取
2.3 基于BiGRU神经网络的预测模型
2.4 利用SVDD算法求解
2.5 模型评价指标
3 实验与分析
3.1 数据获取
3.2 滑动窗口长度
3.3 异常检测实验结果
3.4 对比实验和分析
4 结 论