1.一种基于两阶段LSTM的汽车传感器攻击检测与修复方法,其特征在于,所述方法包括以下步骤:
步骤1:通过Carsim与Simulink仿真软件联合仿真采集数据,采集汽车在不同转向情况下的多个传感器数据形成数据集,多个传感器选择为横摆角速度AVz、侧向加速度Ay和方向盘转角Steer_SW,并对数据集进行预处理;
步骤2:数据集的选择与分割;
步骤3:通过两阶段LSTM进行训练;
步骤4:训练阶段CLSTM使用CrossEntropyLoss作为损失函数,优化算法选用adam,RLSTM使用mse作为损失函数,优化算法选用rmsprop;
步骤5:当损失函数满足最优情况时分别保存CLSTM与RLSTM,按汽车转向程度不同将RLSTM分别命名为0、1、2…n;
步骤6:设计两阶段LSTM选择算法;
步骤7:模型预测完之后,计算观测值 与当前时刻实际值 的误差et,利用窗口误差累计法来判断是否为受攻击后的汽车传感器数据;
步骤8:人工设定一个阈值W0,选取一个时间滑动窗口m,计算当前窗口下预测值与观测值的误差累计 将W0与 进行比较,若大于阈值W0则将t时刻的观测值判定为异常值,若判定为异常则将当前时刻的预测值代替观测值进入下一窗口序列中输入到RLSTM中参与计算;
步骤9:在汽车传感器数值受到攻击处的时刻,将RLSTM的预测值代替观测值进入汽车控制单元中进行闭环运算,达到消除攻击的目的。
2.如权利要求1所述的一种基于两阶段LSTM的汽车传感器攻击检测与修复方法,其特征在于,所述步骤1中,数据集进行预处理,过程如下:步骤1‑1:检查数据集中有无缺失值,有缺失值时则补上;
步骤1‑2:数据集中涉及到复杂的汽车转向情况,通过方向盘转角Steer_SW的不同,对三个汽车传感器数据:横摆角速度AVz、侧向加速度Ay和方向盘转角Steer_SW按汽车转向情况的不同分别将“蛇形”标记为0,换道标记为1,直角转弯标记为2,将标签和其他特征属性分开存放;
步骤1‑3:对数据进行归一化,对数据集中的数据按如下公式进行归一化处理:*
式中,X 代表归一化后的数据,X代表归一化之前的数据,Xmin代表汽车某一传感器在当前数据序列中的最小值,Xmax代表汽车某一传感器在当前数据序列中的最大值。
3.如权利要求2所述的一种基于两阶段LSTM的汽车传感器攻击检测与修复方法,其特征在于,所述步骤2的过程如下:
步骤2‑1:将步骤1中所采集到的多种转向情况下汽车行驶开始时设定极短时间的传感器数据的作为分类样本;
步骤2‑2:引入数据分割算法,对数据集进行等间距分割处理,扩充数据集样本容积;
步骤2‑3:重复步骤2‑2,将所有分割的数据合并为一个大样本,命名为分类样本数据集Classify_data;
步骤2‑4:将步骤1中所采集到的横摆角速度AVz的全部数据集单独保存,命名为检测样本数据集Detection_data。
4.如权利要求3所述的一种基于两阶段LSTM的汽车传感器攻击检测与修复方法,其特征在于,所述步骤3中,通过两阶段LSTM进行训练的过程如下:步骤3‑1:两阶段LSTM包括CLSTM与RLSTM,选取步骤2‑3中的数据集Classify_data的
70%作为训练集导入到CLSTM中进行训练,使用步骤2‑3中的数据集Classify_data中的
30%作为测试集,使用softmax函数作为激活函数;
步骤3‑2:LSTM相比RNN的不同之处在于其隐藏层加入了门机制和一个细胞状态的更新,门机制包括遗忘门、记忆门、输出门,门控函数ft根据上一时刻细胞单元的状态值来控制上一时刻那些信息需要被遗忘,其中状态值0表示遗忘,状态值1表示保留;记忆门it用于控制输入信息,判断是否需要记忆,输出门ot基于细胞状态确认输出信息,其中0表示不允许信息通过,1表示运行通过;
步骤3‑3:通过sigmoid函数进行分类,分类精度的评价指标使用Accuracy与Error_rate表示:
式中,TP表示真实类别为正例,预测类别为正例;FP表示真实类别为负例,预测类别为正例;FN表示真实类别为正例,预测类别为负例;TN表示真实类别为负例,预测类别为负例,P代表正例总数、N代表负例总数;
步骤3‑4:选取步骤2‑4中的数据集Detection_data的70%作为训练集导入到RLSTM中进行训练,使用步骤2‑4中的数据集Detection_data中的30%作为测试集,使用linear函数作为激活函数;
步骤3‑5:RLSTM采用滑动时间窗口的方式,将下一个时间点的数值作为上一个时间点样本的训练标签,给定步骤2‑4中Detection_data中的前一小段序列预测模型可得知下一时刻即t时刻的预测值 即将前t‑1个数据作为输入数据被依次送入模型的输入层,根据窗口内序列的最后一个数据作为期望标签用于优化模型的预测误差;形式上,一个预测模型表示为函数f的近似模拟:式中, 映射满足时序约束,下一个时刻的预测值只与前面时刻的观测值有关,即 只依赖于
5.如权利要求3或4所述的一种基于两阶段LSTM的汽车传感器攻击检测与修复方法,其特征在于,所述步骤6中,两阶段LSTM选择算法的过程如下;
步骤6‑1:将步骤2‑3中Classify_data的测试集作为CLSTM的输入;
步骤6‑2:按照步骤5中模型命名的不同选择不同的RLSTM,对步骤2‑4中Detection_data的测试集数据进行预测。
6.如权利要求4所述的一种基于两阶段LSTM的汽车传感器攻击检测与修复方法,其特征在于,所述步骤3‑1中,分类模型CLSTM中输入层为3个神经元,输出为2个神经元,隐藏层
32个神经元。
7.如权利要求4所述的一种基于两阶段LSTM的汽车传感器攻击检测与修复方法,其特征在于,所述步骤3‑4中,回归模型RLSTM中有4层网络,输入为10个神经元,即滑动窗口为
10,输出为1个神经元,设置了2个隐藏层,第一层50个神经元,第二层100个神经元。
8.如权利要求1~4之一所述的一种基于两阶段LSTM的汽车传感器攻击检测与修复方法,其特征在于,所述步骤7中,提到的攻击类型为高振幅声波攻击,具体为通过高振福声波与MEMS陀螺仪产生的谐振效果使得MEMS陀螺仪产生异常输出并导致汽车传感器产生异常数据。
9.如权利要求1~4之一所述的一种基于两阶段LSTM的汽车传感器攻击检测与修复方法,其特征在于,所述步骤9中,将预测值替换观测值进行修复的效果既可以从汽车传感器数值上体现,还能通过汽车闭环控制算法在汽车实际转向中得以体现。