基于LSTM的ADS-B欺骗攻击检测方法

Posted 及时行樂_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于LSTM的ADS-B欺骗攻击检测方法相关的知识,希望对你有一定的参考价值。

paper:ADS-B spoofing attack detection method based on LSTM

paper有对应代码,跑通了,但是还需要研究一下…

一、摘要

自动相关监视广播(ADS-B)协议的开放性和共享性使得其消息极易受到各种安全威胁,如干扰、修改和注入。从数据的角度提出了一种基于长短时记忆(LSTM)的ADS-B欺骗攻击检测方法。首先,以滑动窗口的形式对消息序列进行预处理,然后使用LSTM网络对窗口进行预测训练。最后,计算预测值和真实值的残差集以设置阈值。因此,我们可以检测到欺骗攻击,并进一步确定哪个功能受到攻击。实验表明,该方法可以有效地检测10种不同类型的模拟操纵ADS-B消息,而不会进一步增加机载应用的复杂性。因此,该方法能够很好地应对ADS-B系统所面临的安全威胁。

二、相关

ADS-B数据包攻击类型

  1. 窃听
    目的:窃听飞机运行状态信息(飞机侦察)
    方法:通过设备中的ADS-B获取相应空域的ADS-B数据
  2. 干扰
    目的:干扰特定空域内ADS-B信息的传输(地面站洪水阻断、飞机洪水阻断)
    方法:通过在相关频带中使用具有足够高发射功率的ADS-B发射设备
  3. 消息注入
    目的:将假飞机注入特定飞行场景,混淆空中交通管制系统(飞机目标幽灵注入/淹没)
    方法:通过使用在相关频带内具有足够高发射功率且能够产生正确调制且符合ADS-B消息格式的发射装置
  4. 消息删除
    目的:删除消息中包含的部分或全部信息(飞机失踪)
    方法:通过构造性或破坏性干扰在物理层实现
  5. 消息修改
    目的:修改消息中包含的信息(虚拟轨迹修改)
    方法:在系统的物理层通过遮蔽和位翻转来实现,也可以通过结合两种攻击方法来实现:虚假消息注入和消息删除

窃听不会直接损害空中交通管制系统,因此影响最小。信息删除将对监控系统产生影响,导致飞机暂时从ATC地图上消失,但可以通过雷达和多边定位系统等监控系统进行识别。消息修改是一种典型的欺骗攻击。例如,如果攻击者持续少量更改ADS-B消息中的飞机位置信息,则被视为“蛙跳式”欺骗攻击。

ADS-B攻击数据模拟方法(十种异常)

  1. 干扰-随机噪声
    将原始数据中获得的飞行值相乘。ADS-B消息由介于0和2之间的随机值生成。
  2. 消息注入-路径置换
    给定某些路由信息,注入不同的正确路由信息以替换所选ADSB序列段的序列。
  3. 消息修改-固定偏移量(+)
    将ADS-B信息中获得的航班值(时间特征除外)增加10%。
  4. 消息修改-固定偏移量(-)
    将ADS-B信息中获得的航班值(时间特征除外)减少10%。
  5. 高度偏移(+)
    使用400英尺作为倍数,逐渐改变ADS-B信息的高度特征。在选定的ADS-B序列中,将第一个矢量的高度特征增加400英尺,将第二个矢量的高度特征增加800英尺,依此类推。
  6. 高度偏移(-)
    使用400英尺作为倍数,逐渐改变ADS-B信息的高度特征。在选定的ADS-B序列中,将第一个矢量的高度特性降低400英尺,将第二个矢量的高度特性降低800英尺,依此类推。
  7. 速度偏移(+)
    使用20节作为倍数,逐渐改变ADS-B消息的速度特征。在选定的ADS-B序列中,将第一个矢量的速度特性增加20节,第二个矢量的速度特性增加40节,依此类推。
  8. 速度偏移(-)
    使用20节作为倍数,逐渐改变ADS-B消息的速度特征。在选定的ADS-B序列中,将第一个矢量的速度特性降低20节,将第二个矢量的速度特性降低40节,依此类推。
  9. 航向改变
    将ADS-B消息中包含的航向信息的值更改为与原始值相反的值。
  10. 爬升率改变
    将ADS-B消息中包含的爬升速率信息的值更改为与原始值相反的值。

三、模型

考虑到输入数据的维数不高且具有明显的变化规律,可以采用浅层神经网络结构来学习数据的内部联系,该模型由keras框架构建。

该网络是一个序列模型,由一层LSTM单元和一个完全连接的层组成。LSTM单元数量为14个,全连接层单元数量为7个,这是ADS-B向量的维度(ICAO用于飞行排序,不参与模型训练)。实际上,LSTM单元是用于学习长期模式的存储单元,包括当前状态和三个非线性门:遗忘门、输入门和输出门。遗忘门负责确定要记住多少信息。它由一个非线性函数决定并输出一个介于0和1之间的数字,其中0表示忘记内存中的所有信息,1表示保留内存中的所有信息。输入门负责决定如何更新旧单元状态;也就是说,新信息被选择性地记录到单元状态中。输出门负责决定有多少内存信息被传递到下一个单元。

在训练过程中,ADS-B数据以滑动窗口的形式逐个输入到神经网络中,训练输出是输入窗口中的下一个数据。此外,还提供了用于训练的损失函数。

阈值设置

将数据集分为8:1:1,第一份用于模型训练,第二份用于阈值确定,第三份根据不同的攻击类型描述来进行修改。模型训练完输入第二组,得到阈值。

不同特征的异常阈值是不同的,是其相应标准偏差的三倍(也可以根据不同的需要进行更改,如果需要降低虚警率)。总体异常阈值是所有特征的平均异常阈值数。

首先使用所有特征的平均阈值来确定是否发生了攻击。此外,如果某个特征的预测残差超过相应的阈值,则可以确定此特定特征中出现异常。

大概这些了,其他的可以等代码理解了再详细写写…

以上是关于基于LSTM的ADS-B欺骗攻击检测方法的主要内容,如果未能解决你的问题,请参考以下文章

基于LSTM的ADS-B欺骗攻击检测方法

利用深度神经网络检测ADS-B欺骗攻击

利用深度神经网络检测ADS-B欺骗攻击

利用深度神经网络检测ADS-B欺骗攻击

利用深度神经网络检测ADS-B欺骗攻击

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