使用LSTM编解码算法检测异常ADS-B消息

Posted 及时行樂_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用LSTM编解码算法检测异常ADS-B消息相关的知识,希望对你有一定的参考价值。

paper:Using LSTM Encoder-Decoder Algorithm for Detecting Anomalous ADS-B Messages

一、摘要

虽然ADS-B系统将在飞机安全导航和空中交通管制(ATC)管理方面发挥重要作用,但它也因缺乏安全机制而闻名。先前的研究已经提出了各种方法来提高ADS-B系统的安全性并降低相关风险。然而,这些解决方案通常需要使用额外的参与节点(或传感器)(例如,通过分析物理信号来验证飞机的位置)或修改当前的协议架构(例如,添加加密或认证机制)由于航空电子系统的监管程序以及ADS-B系统已经部署在大多数飞机上的事实,在现阶段将此类修改应用于当前协议是不切实际的。在本文中,我们提出了一种用于检测异常ADS-B消息的替代安全解决方案,旨在检测攻击者或受损飞机发送的伪造或操纵的ADS-B消息。该方法通过分析合法ADS-B消息序列,利用LSTM编解码算法对飞行路线进行建模。使用这些模型,飞机可以自主评估收到的ADS-B信息,并识别与合法飞行路径的偏差(即异常)。我们在六个不同的飞行路线数据集上检查了我们的方法,我们向其中注入了不同类型的异常。使用我们的方法,我们能够检测到所有注入攻击,平均误报率为所有数据集的4.3%。

二、介绍

旨在检测攻击者或受损飞机发送的伪造或操纵的ADS-B消息。所提出的方法不需要任何修改或额外的参与节点和/或传感器,并使飞机能够自动检测密集空气空间中的异常情况。我们的方法旨在通过观察一系列消息并估计其可信度来解决消息欺骗问题。由于机场之间的航班通常通过类似的路线进行,我们使用并训练基于给定路线的先前(合法)航班的LSTM(长-短记忆)编码器-解码器模型。使用这种模型,每架飞机都可以独立评估接收到的ADS-B信息,并识别与合法飞行路径的偏差。

首先,据我们所知,我们是第一个利用机器学习技术保护ADS-B协议的公司;具体地说,我们证明了ADS-B消息序列可以通过使用LSTM编码器-解码器算法来建模。其次,我们证明了LSTM编码器-解码器模型可以用于放大异常,从而有助于检测异常消息。第三,我们提出的方法可以克服ADS-B的缺点,特别是在欺骗/伪造消息的情况下,使用不需要架构更改且可由每架飞机独立应用的独立解决方案。最后,所提出的模型具有自适应性和灵活性,因此可以训练并应用于新路线。

可能有的安全漏洞:

  • 窃听
    由于缺乏信息加密和不安全的广播传输,敌方(如潜在的恐怖组织)和非敌方(如商业互联网网站)都很容易通过媒体进行窃听,从而允许外界跟踪空中交通。
  • DOS
    DOS攻击可能对ADS-B等实时系统产生重大影响。
  • 通过消息注入/删除进行欺骗
    由于ADS-B系统中没有质询响应机制,因此两个实体(发送方和接收方)都未经过身份验证。

攻击模型:

  • 外部攻击者
    外部攻击者是可以使用COTS转发器执行简单攻击的对手。为了传输信号,人们不必进行身份验证,也不必属于特定的航空公司。
  • 内部攻击者
    内部攻击者是指能够访问系统并影响其行为的对手(例如,ATC机组人员或飞机维修人员)。内部攻击者可以操纵数据处理阶段或中断系统模块。

三、相关工作

  • 加密
    加密措施已被测试用于确保无线网络中的通信安全。
  • 物理层分析与多普勒效应(都依赖于地面站或其他实体的参与)
  • 多边性与群体验证
    MLAT是一种导航技术,基于对已知位置至少两个站点之间的到达时差(TDOA)的测量。

四、模型

从每条消息中提取飞机的速度、地理位置(纬度/经度)、高度和航向。为了提供上下文相关的飞行进度,我们还提取了每个飞行的代表性特征。这是通过计算路线的平均路径(使用以前的合法飞行记录)来完成的,并为每个来源和目的地提取四个主要地理定位点(如图2所示)。

使用Vincenty距离公式的逆方法测量路线中每个点(信息接收到的纬度、经度)与上述主要点(见图2)之间的距离。

LSTM编解码器模型的训练

训练了一个LSTM编码器-解码器模型,以最小的误差重建良性序列的窗口;该模型试图输出相同的向量输入序列。

通过使用LSTM编码器实现的,该编码器通过优化隐藏层( H D H_D HD)从固定长度的消息序列(每条消息由特征向量表示)中学习。LSTM解码器使用解码器的当前隐藏状态( H D H_D HD)和前一条消息中预测的值重建窗口(如下图)。

应用LSTM编解码模型

在训练阶段,模型被训练来重建一个合法的消息序列(例如,一个窗口),我们期望模型的输入和输出看起来都是一样的。相反,当我们将模型应用于恶意窗口(即,包含伪造消息)时,我们期望模型在重建它时失败,因此输入向量(输入窗口)和输出向量(预测窗口)将显著不同。

在预测对应于目标输入窗口 W [ i , L ] W[i,L] W[iL]的输出窗口 W ^ [ i , L ] \\hat W[i,L] W^[iL]之后,我们使用余弦相似性获得表示ADS-B消息的每个向量的重构误差: C o s S i m i l a r i t y ( x , x ^ ) : ∑ i = 1 n x i x ^ i ∑ i = 1 n x i 2 ⋅ ∑ i = 1 n x ^ i 2 CosSimilarity(x,\\hat x):\\frac{\\sum_{i=1}^nx_i\\hat x_i}{\\sqrt{\\sum_{i=1}^nx_i^2}\\cdot\\sqrt{\\sum_{i=1}^n\\hat x_i^2}} CosSimilarity(x,x^):i=1nxi2 i=1nx^i2 i=1nxix^i然后计算输入窗口的总体异常分数: A n o m a l y ( W [ i , L ] ) = ∑ j = i i + L ( 1 − C o s S i m i l a r i t y ( x ( j ) , x ^ ( j ) ) ) Anomaly(W[i,L])=\\sum_{j=i}^{i+L}(1-CosSimilarity(x^{(j)},\\hat x^{(j)})) Anomaly(W[i,L])=j=ii+L(1CosSimilarity(x(j),x^(j)))

五、异常

随机噪声(RND)-通过添加随机噪声产生异常。我们将ADS-B消息的消息属性的原始值乘以随机生成的介于0和2之间的浮点数。
不同航线(ROUTE)–将测试飞行的ADS-B信息段替换为来自不同(合法)航线的信息段会产生异常。
逐渐漂移(DRIFT)–异常作为海拔特征中的逐渐漂移而产生。

前两种用来模拟出较幼稚的对手,意图是产生噪音,降低可信度。后面一种可以算作较成熟的攻击,来影响空域视图,可能导致空中碰撞。

六、结论

提出了一种灵活和自适应的时间序列异常检测方案,用于在ADS-B消息中注入虚假数据,该方案基于LSTM编码器-解码器模型。我们使用六个FlightRadar24数据集(注入了四种类型的虚假数据)验证了我们的模型。我们检测到每种注射类型的误报率都很低。基于此,我们可以推断,在不改变ADS-B协议或其底层架构的情况下,可以检测异常或估计消息的合法性。

以上是关于使用LSTM编解码算法检测异常ADS-B消息的主要内容,如果未能解决你的问题,请参考以下文章

使用LSTM编解码算法检测异常ADS-B消息

ini Logstash配置使用编解码器多线解析Scala / Java日志,以将异常和堆栈跟踪消息连接到单个事件和gro中

ini Logstash配置使用编解码器多线解析Scala / Java日志,以将异常和堆栈跟踪消息连接到单个事件和gro中

检测 RTP 流中使用的编解码器(用于动态 PT)

在 JavaScript 中检测视频的编解码器

视频的编解码-编码篇