基于边缘计算的车载网络数据异常检测系统

2024-02-21 04:06邵金凤周柔李佳佳陈毛玥
电子制作 2024年3期
关键词:服务端串口车载

邵金凤,周柔,李佳佳,陈毛玥

(湖南师范大学 信息科学与工程学院,湖南长沙,410081)

0 引言

对于车载网络,目前许多研究者对可能的车内威胁进行了分析。例如Koscher 等人通过实验室和路测实验,对汽车进行了CAN 网络的窃听、模糊测试及代码逆向工程等攻击,对刹车、引擎进行了控制[1];Rouf 等人通过无线电频道对轮胎压力监测系统实施了攻击,使监测系统失效[2];Checkoway 等人展示了在没有预先物理入侵的情况下通过汽车对外接口进行攻击,证明了汽车远程控制的可行性[3]。以上研究表明网联汽车确实面临严重信息安全问题,迫切需要开展相关对策研究。

本文主要围绕车载网络数据异常检测开展研究和实现原型系统。提出并实现基于支持向量机的异常检测算法,且为减轻车载计算单元的计算负载,借助车联网中的路侧单元的边缘服务器进行异常检测,保护汽车正常行驶。

1 相关研究

基于机器学习和深度学习是当前车载网络入侵检测的常用技术;Kang 等人利用深度信念网络(DBN)初始化模型参数,再提取数据的特征向量作为深度神经网络(DNN)的训练样本,提高了异常数据检测准确率,降低了检测响应时间[4];杨远达等人通过设计新的损失函数,提出了一种基于GAN 模型的车载CAN 网络入侵检测方法,提高了GAN模型检测异常数据的能力[5]。Zarai 等人将递归神经网络和深度神经网络用于入侵检测系统中,使用了四个隐藏层、四十一层输入和两层输出,共有100 次迭代。对四种常用的缺陷检测模型架构进行比较,得出DNN3 算法性能最佳,使用了三层长短时记忆法(LSTM),最后显示三层LSTM有着较高的性能[6]。Ravi 等人提出了一种新的SDRK 机器学习算法来检测入侵[7]。SDRK 利用有监督的深层神经网络(DNN)和无监督聚类技术,较大提高了算法的准确率。

针对目前车联网背景下车载网络易受到攻击的现实,且为了减少车载网络的计算负载,我们提出了一种基于边缘计算的车载网络入侵检测算法。

2 基于边缘计算的车载网络异常检测系统

■2.1 系统总体架构

基于边缘计算的车载网络异常检测系统主要由服务端、边缘端和车辆端三部分组成,三者间采用无线通信方式传输数据,系统的架构图如图1 所示,车辆端采集数据并将数据上传至服务端,服务端构建、训练得到最优异常检测模型并部署至边缘端,边缘端接收车辆发送的数据,并对各数据进行处理,最后将数据作为模型输入进行异常检测,将检测结果下传回车辆端,车辆端根据接收到的结果做出相应反应。本系统采用多对多的星型组网结构,多对多组网结构可以满足因为车辆行驶导致的网络拓扑的动态变化,防止因单个服务器的崩溃而影响整个车联网系统无法正常工作的情况出现。

图1 系统架构图

■2.2 基于支持向量机的异常检测模型

本系统构建的异常检测模型为基于SVM 的模型。图2为异常检测模型的构建流程。

图2 异常检测模型的构建流程

(1)数据集

本文采用的数据集由韩国黑客与对策研究实验室提供,为真实车辆采集数据。这些数据集是在执行消息注入攻击时,通过真实车辆的OBD-II 端口记录CAN 流量构建的。每个数据集总共有30~40min 的CAN 流量,包含每300 个消息注入入侵,每次入侵执行3~5s。在拒绝服务攻击中,每0.3ms 注入一次“0000”CAN ID 的消息0000'是最占优势的。在模糊攻击中,每0.5ms 注入完全随机的CAN ID 和DATA值的消息。而在欺骗攻击(转速/齿轮):每1ms 注入与RPM/齿轮信息相关的某些CAN ID 的消息。

数据集的主要构成部分:(1)时间戳:记录的时间;(2)CAN ID:十六进制中CAN 报文的标识符(例如043f);(3)DLC:数据字节数,从0 到8;(4)数据[ 0~ 7 ]:数据值(字节);(5)标志:T 或R,T 表示注入消息,R 表示正常消息。

(2)特征数据提取

将数据集的内容作为基础,将攻击报文与正常报文之间的差异性作为判断根据。数据集中的时间戳、CAN ID 通常不具有合法性,无法为异常检测提供直接的判断依据,因此舍弃;直接提取数据集中每一周期数据的8 个字节数据值以及标志位,对提取的特征数据进行归一化处理后,划分4/5 作为训练集,1/5 为测试集,这样更有利于模型的训练和预测。

(3)模型构建与训练

SVM(Support Vector Machine)是一种常见的有监督学习算法,用于进行二分类或多分类任务。它的主要思想是找到最优决策面,把数据集正确分开。本系统对模型输入数据的异常检测可看作线性不可分的二分类问题,使用高斯核函数将数据映射高维空间,进而可以更加容易区分;利用交叉验证和网格搜索选择最佳参数;得到的最佳参数进行模型的构建和训练:构建模型的惩罚参数C,RBF 核的gamma,允许容错、泛化能力强,决策函数类型为OVR,即训练N个分类器,核函数为径向核函数/高斯核(RBF),使用数据预处理中分出的训练集训练模型,使用分出的测试集测试并计算模型正确率。

■2.3 服务端设计

本系统服务端通过无线通信方式与车辆端进行通信与数据传输,接收车辆端上传的数据并进行处理,使用Python 构建基于支持向量机的异常检测模型,用处理后的数据对模型进行评估优化,得到最优模型,对该最优模型进行持久化处理并保存;再使用相应模型部署软件,查询输入边缘端的IP 地址连接服务端和边缘端,将训练好的模型部署到边缘端。

■2.4 边缘端设计

边缘端分布在道路两侧,利用无线通信模块接收各车辆上传的周期性8 维行驶数据,然后打开串口并对串口进行初始化,无线通信模块初始化完成后,将接收到的数据发送至串口,串口判断是否收到数据,若未收到则重新接收数据,若收到则解码数据,拆解处理成所需要的格式,调用服务端提前部署的最优异常检测模型进行预测;若数据为标准格式即为可预测数据,将检测得出的结果即“0”或“1”以字符串形式编码后发送至串口返回给车辆端,同时打印显示,便于对异常检测算法预测结果进行监控;若数据为非标准格式即预测失败,直接打印失败信息,便于更改调试。

■2.5 车辆端设计

本系统车辆利用无线通信方式将CAN 总线数据上传至边缘端的服务器,然后接收边缘端下传至车辆的异常预测结果,对异常结果做出预警。车辆端加载实时行驶数据,并将其以字符串的形式保存在数组中,周期性地将数据发送至串口,再通过串口所连接的无线通信模块将一组8 维的数据发送至边缘端,每个维度经过归一化处理后大小在0~255之间。车辆端接收到边缘端下传的异常检测结果,通过串口读取保存起来,该结果以字符串的形式接收,对所接收结果进行判断,若为1(正常数据)则继续加载发送下一组数据,若为0(异常数据)车辆端停止发送数据且蜂鸣器工作,达到预警效果。

3 实验分析

■3.1 实验原型

实验中服务端即PC 端。使用STM32F103C8T6 系列单片机智能小车来替代真实车辆如图3 所示,使用LoRa 模块进行车辆端与服务器端的无线通信。LoRa 模块通过USB 转TTL 和杜邦线与小车进行连接,小车既可使用电池供电也可以使用USB 电源供电,实现有线和无线供电双模式。

图3 车辆端实物图

边缘端使用Jetson nano 边缘开发板实现,如图4 所示,在M2 接口接入无线网卡,用一个螺丝固定,用于连接网络;将蓝牙键盘适配器通过USB 口进行连接,LoRa 无线通信模块通过杜邦线与边缘开发板进行连接,通过HDMI连接线将显示屏与边缘端相连。

图4 服务器端实物图

■3.2 实验结果

实验中在求得模型最佳参数时列出7 个svg_C 和6 个svg_gamma,一共42 种组合,创建网格搜索,42 组参数组合,8 核,日志冗长度为1(偶尔输出训练过程),最终确定最佳参数惩罚因子C 为0.01,RBF 核的 gamma 为 1;并构建模型;使用由65536 个周期的正常数据和65536 个周期的异常数据组成的数据集,提取其中25000 个周期的正常数据和2000 个周期的异常数据组成训练样本集,得到训练模型,对1000 个周期的异常数据进行异常检测,检测率为95.30%。对于训练样本集,正常数据不变,将异常数据分别增加到4000 和7000 个周期时,得到训练模型,对1000 个周期的异常数据进行异常检测,检测率分别达到98.20%和98.60%。

在不同训练样本集下,利用本文所设计系统对车辆行驶数据进行异常检测,车辆端与服务器端的通信如图5 所示,得到的部分检测结果如图6 所示,数据异常可及时预警,引起驾驶人员注意。

图5 车辆端与服务器端通信

图6 数据异常检测结果

4 总结

本文提出了基于支持向量机的车载网络异常检测算法,并识别每个周期数据的标志作为特征来训练支持向量机,并进行异常检测验证,表明了该算法具有较高的检测概率;实现了基于边缘计算的车载网络数据异常检测系统,将本应在车内进行的异常检测转移到边缘服务器,减轻了车载网络计算单元的计算负载。

猜你喜欢
服务端串口车载
浅谈AB PLC串口跟RFID传感器的通讯应用
高速磁浮车载运行控制系统综述
云存储中基于相似性的客户-服务端双端数据去重方法
新时期《移动Web服务端开发》课程教学改革的研究
在Windows Server 2008上创建应用
智能互联势不可挡 车载存储需求爆发
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
基于ZVS-PWM的车载隔离DC-DC的研究
基于并行控制的FPGA多串口拓展实现