基于预测的自动驾驶全球导航卫星系统欺骗攻击检测

2024-04-08 01:38

本文主要是介绍基于预测的自动驾驶全球导航卫星系统欺骗攻击检测,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

全球卫星导航系统(GNSS)使用卫星和无线电通信为自动驾驶车辆(AVs)提供定位、导航和定时(PNT)服务。由于缺乏加密、粗采集(C/A)码开放访问和信号强度低,GNSS 容易受到欺骗攻击,危及 AV 的导航能力。在本研究中,我们使用长短期记忆(LSTM)模型开发了一个基于预测的欺骗攻击检测策略, LSTM 模型用于预测自动驾驶汽车在两个连续位置之间的行驶距离。为了开发 LSTM 预测模型,我们使用了一个公开的真实世界的 comma2k19 驾驶数据集。训练数据集包含从 AVs 的总线(CAN)、GNSS 和惯性测量单元(IMU)传感器提取的不同特征(如加速度、方向盘角度、速度和两个连续位置之间的移动距离)。根据当前位置和下一时刻车辆位置之间的距离预测, 利用 GNSS 设备的定位误差和预测误差(最大绝对误差)建立和当前位置与将来位置之间距离相关的阈值。我们的分析表明,基于预测的欺骗攻击检测策略能够成功地实时检测攻击。


1 GNSS 反欺骗对自动驾驶的重要性

因为 AVs 依赖 PNT 服务自行导航,通过期望的路线到达目的地,可靠的 PNT 服务对于 AVs 的安全和高效运行是必要的。而 GNSS 欺骗攻击是比干扰攻击更复杂的攻击类型,很难检测到,因为攻击者可以模仿全球导航卫星系统的信号,并将不准确的坐标传输到 AV 中,这将使攻击者能够改变 AV 的路线,将 AV 带到不安全的位置,甚至导致严重的交通事件。由于 AV 使用多个全球导航卫星系统接收器天线来连续交叉验证信号,欺骗者可以使用多个锁相欺骗器来欺骗所有天线,从而实现复杂的欺骗攻击。因此,开发一个针对复杂欺骗攻击的检测模型是一个挑战。

在这项研究中,我们开发了一种基于预测的复杂欺骗攻击检测策略,该策略使用递归神经网络模型,即长短期记忆(LSTM)模型。在不同的递归神经网络(RNN)结构中,LSTM 是最受欢迎的一种,因为它能够解释时间序列数据中的短期和长期依赖性。

2 数据集描述和数据处理

在本研究中,我们使用了来自 Comma.ai 的真实数据集,名为 Comma2k19,其中包含各种自动驾驶车辆传感器数据。车辆在加州 280 号公路上行驶了 33 个小时,行驶了 2019 个路段。就行驶时间而言,每个路段都有 1 分钟长。所有路段位于圣何塞和旧金山之间,全长 20 公里。Comma.ai 使用的视听设备有一个前置摄像头、温度计和用于收集数据的 9 轴惯性测量单元。除了这些传感器数据,Comma2k19 数据集还包含来自全球导航卫星系统和控制区域网络(CAN)的测量值(见表 1 和表 2)。数据收集使用了可跟踪全球导航卫星系统的 u-blox M8 全球导航卫星系统模块,水平位置精度为 2.5 米。位置测量使用了全球定位系统(GPS)和全球轨道导航卫星系统(GLONASS)信号。此外,使用开放存取的全球导航卫星系统处理库 Laika 来减少定位误差,定位误差降低了 40%。

                   图片

                   图片

与本研究相关的惯性测量单元(IMU)数据是车辆的加速度(如表 3 所示)。同样,相关的 CAN 数据是车速和方向盘转角数据(见表 2)。导航卫星系统数据集包含来自 u-blox 和 Qcom 的实时和原始导航卫星系统数据。每个实时部分包括纬度、经度、速度、utc 时间戳、高度和方位角数据。该数据集包含密集和多样的驾驶数据,可用于训练递归神经网络模型和预测期望的变量。用于分析的数据集包含 7200 个全球导航卫星系统观测值、35726 个总线观测值和 72148 个惯性测量单元观测值。

                   图片

为了开发基于预测的全球导航卫星系统欺骗攻击检测策略,我们使用来自 GNSS 的纬度、经度和速度数据,来自 CAN 的速度和转向角数据,以及来自 IMU 的向前、向右和向下加速度数据。图 1 显示了我们在本研究中使用的 GNSS、CAN 和 IMU 的所有观测结果。

                          图片

 图1GNSS、CAN和IMU的观测

一旦全球导航卫星系统信号被欺骗,根据伪造的数据,车辆将被导向错误的目的地。如果我们可以预测自驾车辆当前位置和下一时刻位置之间的行驶距离,那么我们可以将其与车辆从当前位置到下一时间戳所处位置的行驶距离进行比较。为了开发基于预测的检测策略,假设当前数据不是伪造的,我们将使用控制器局域网(CAN)和惯性测量单元数据(IMU)以及当前全球导航卫星系统(GNSS)数据。GNSS、CAN 和 IMU 数据的频率分别为 10、50 和 100 赫兹。全球导航卫星系统时间被用作参考时间,所有其他传感器数据被同步,以便为 LSTM 模型准备训练和测试数据集。为了在作为参考时间的准确时间获得控制器局域网和惯性测量单元的数据,在全球导航卫星系统观测存在的两个最近的观测值之间进行 CAN 和 IMU 数据的插值。

当我们计算自动车辆当前位置和前一时刻之间的行驶距离时,使用纬度和经度坐标以及以下哈弗辛大圆公式计算每个时间点与前一个时间点之间的行驶距离:

其中 d 是地球表面两点之间的距离,r 是地球的半径,、 是当前位置与近期位置的纬度弧度,、 是当前位置与近期位置的经度弧度, 函数定义为:

其中, 是角度的弧度测量值。图 2 显示了来自 comma2k19 数据集的 5987 个观测值的每个时间戳的当前位置和最近的未来位置之间的距离。该数据(作为标签)与 CAN 和 IMU 数据一起用于训练 LSTM 模型。

                   图片

 图2每个时间戳中当前位置和下一时间戳位置之间的距离

3 预测模型开发

我们使用 LSTM 模型来预测每个时间戳的当前位置和下一时刻位置之间的距离,它由一个输入层、一个具有 50 个神经元的递归隐藏层和一个输出层组成。训练 LSTM 模型的输入数据包括来自 CAN 的速度和转向角数据以及来自 IMU 的前向加速度数据,输出是每个时间戳当前位置和下一时间戳位置之间的距离。

在训练 LSTM 模型之前,所有的特征被归一化在 0 和 1 之间,然后作为输入被输入到 LSTM 模型中。我们将数据集分为由 4500 个样本组成的训练数据集和由 1487 个样本组成的验证数据集。LSTM 模型的超参数,如神经元数目、回合数目、批量大小和学习率在提高预测精度方面起着至关重要的作用。我们使用试错法来找出最优超参数,并使用 Adam 优化器作为评估指标,以确保在我们训练模型时没有过拟合和欠拟合问题。用平均绝对误差(MAE)作损失函数,定义如下:

其中,N 是总训练样本量, 和  分别是地面真实数据和预测距离数据。表 4 列出了优化的超参数值。我们在训练和验证数据集上绘制了 MAE,以评估 LSTM 模型的拟合度。图 3 显示了使用最佳超参数的损失值概况,包括训练数据集和验证数据集。对这两个数据集的 MAE 的比较表明,用了最优超参数的预测模型具有良好的拟合

                                               图片

 图3 使用最佳参数集的平均绝对误差(MAE)(损失)曲线比较

我们已经使用测试数据集测试了我们训练的预测模型。RMSE 被用作确定模型有效性的评估指标,如下所示:

其中,N 是总训练样本量, 和  分别是地面真实数据和预测距离数据。图 4 显示了每个时间戳的地面真实情况和当前位置与最近的未来位置之间的预测距离。我们发现预测行驶距离的 RMSE 为 0.0242 米,平均绝对误差为 0.0203 米。

                                                          图片

   图4 每个时间戳当前位置和下一时间戳位置之间的实际距离和预测距离

4 对自驾车辆的 GNSS 欺骗攻击

本节介绍 GNSS 欺骗攻击评估场景和攻击生成、GNSS 攻击检测策略以及欺骗攻击检测准确性分析。

4.1 欺骗攻击场景和攻击生成

在本研究中,基于来自 comma2k19 数据集的地面真实数据创建了一个欺骗攻击场景。在这次攻击中,欺骗者操纵 GNSS 信号,使自驾车辆在实际向前行驶时,感知到自己正在从高速公路出口离开。图 5 显示了欺骗场景,其中绿色圆圈代表地面真实路线的位置,红色圆圈代表自驾车辆在被欺骗后感知的路线。如图 5 所示,车辆正在 Quentin L. Kopp 高速公路上行驶。然而,自驾车辆的全球导航卫星系统接收器在高速公路出口前被欺骗,攻击者产生假的全球导航卫星系统信号,模拟自驾车辆正在离开高速。对于欺骗数据生成,欺骗路径是使用谷歌地图创建的。为了使欺骗的路线真实,使用谷歌地图的“添加行驶路线”功能添加位置,这自动确保了创建的路线代表可行的路线,欺骗路线的纬度和经度数据以 KML 格式导出。

                图片

 图5欺骗攻击场景

4.2 攻击检测策略

通过比较每个时间戳当前位置到最近时刻位置之间的 LSTM 预测距离和 GNSS 数据计算的实际距离,可以检测到欺骗攻击。在任何时间 t,该模型将根据当前的 GNSS、CAN 和 IMU 的数据,预测车辆在(t+1)时间步之前行驶的距离。由于 GNSS 接收器模块的频率是固定的,时间步长的持续时间也是固定的。通过将 GNSS 定位误差和 LSTM 预测误差相加来建立误差阈值。在(t+1)时间步,使用 t 和(t+1)时间步的纬度和经度计算车辆行驶的实际距离。如果计算出的距离与预测距离之差的绝对值大于欺骗攻击检测阈值(),那么我们的基于预测的检测模型会将其检测为 GNSS 欺骗攻击。

图 6 给出了绝对预测误差的直方图,最大、最小和平均绝对误差分别为 0.0650 米、0.000046 米和 0.0203 米。为了计算误差阈值,我们使用最大绝对误差作为预测误差。由于全球导航卫星系统接收器模块(u-blox M8)用于收集全球导航卫星系统数据,根据 GNSS 定位误差为 2.5m。考虑到使用 Laika 将整体定位误差提高 40%,GNSS 的定位误差降至 1.5 米。因此,根据我们的检测策略,误差阈值为 1.5650 米(= 1.5650 米),用于检测对 AV 的欺骗攻击。

                                                       图片

 图6绝对预测误差直方图

4.3 欺骗攻击检测策略分析

根据“全球导航卫星系统攻击检测策略”一节中描述的场景,对上一节中介绍的欺骗攻击检测策略进行了评估。图 7(a)表明,从欺骗攻击开始的点开始,地面真实位置和欺骗位置之间的距离开始大幅增加。图 7(b)显示了在每个时间步长,预测行驶距离和 GNSS 计算行驶距离之间的差异。一旦车辆的全球导航卫星系统接收器被攻击,预测行驶距离和基于假冒的 GNSS 信号计算的距离之间的差异就大于攻击检测阈值(即 1.5650 米)。因此,一旦超过攻击检测误差阈值,我们的攻击检测策略就会检测到攻击。我们还计算了基于预测的 GNSS 攻击检测策略的计算延迟,计算延迟为 5 毫秒,明显小于实时计算延迟要求,即 100 毫秒(GNSS 数据的频率,10Hz)。这表明我们的模型可以成功检测欺骗攻击。

                    图片

 图7a

                    图片

 图7b

这篇关于基于预测的自动驾驶全球导航卫星系统欺骗攻击检测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/884236

相关文章

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

MyBatis-Plus 自动赋值实体字段最佳实践指南

《MyBatis-Plus自动赋值实体字段最佳实践指南》MyBatis-Plus通过@TableField注解与填充策略,实现时间戳、用户信息、逻辑删除等字段的自动填充,减少手动赋值,提升开发效率与... 目录1. MyBATis-Plus 自动赋值概述1.1 适用场景1.2 自动填充的原理1.3 填充策略

使用Python构建一个高效的日志处理系统

《使用Python构建一个高效的日志处理系统》这篇文章主要为大家详细讲解了如何使用Python开发一个专业的日志分析工具,能够自动化处理、分析和可视化各类日志文件,大幅提升运维效率,需要的可以了解下... 目录环境准备工具功能概述完整代码实现代码深度解析1. 类设计与初始化2. 日志解析核心逻辑3. 文件处

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp