基于LSTM的CAN总线入侵检测

2021-08-09 10:27黄迪陈凌珊
智能计算机与应用 2021年3期
关键词:入侵检测CAN总线车联网

黄迪 陈凌珊

摘 要: 提出结合CAN矩阵对报文数据场信号的具体定义提取特征,训练LSTM网络在多个时间步长上,对一些重要的信号进行预测,引入观测值得到预测误差矩阵。使用多元高斯分布对误差矩阵建立异常概率模型,根据误报率、漏报率调整阈值大小。得到完整模型后,模拟总线攻击,并实验验证了模型的精度。

关键词: CAN总线;LSTM;异常检测;入侵检测;车联网

文章编号: 2095-2163(2021)03-0038-06 中图分类号:U463.6 文献标志码:A

【Abstract】Combining with the specific definition of message data field signal in CAN matrix, the paper extracts features, trains LSTM network to predict some important signals in multiple time steps, and introduces observation value to forecast error matrix. According to the probability of false positive rate and false negative rate, the threshold value is adjusted by using the probability distribution of multiple variables. After getting the completed model, the bus attack is simulated and the accuracy of the model is verified by experiments.

【Key words】 CAN bus; LSTM; anomaly detection; intrusion detection; intelligent connected vehicle

0 引 言

随着智能网联概念和自动驾驶技术的发展,当代汽车的发展重心已经从传统的动力系统、传动总成和汽车轻量化转移到汽车电子上。汽车电子系统越发地庞大,一些传统的机械部件也由电子电气所取代,且在不断地增加汽车对外界的接口,使汽车变得更加地智能化、电动化、共享化、网联化[1]。

在80年代,就已开发出CAN总线用来解决当时分布式控制的行业要求,甫一问世,就因其优秀的数据传输稳定性,多主机的总线结构,灵活的总线扩展性能以及较高的性价比赢得了汽车市场的认可和青睐,直至如今国内外的大部分车型依然使用的是CAN总线。而当时的控制器并未对外界的智能设备提供接口,所以CAN总线设计上在网络安全方面就存在明显的不足。时下,若要发展和普及汽车网联技术和自动驾驶技术,CAN总线的网络安全则亟待获得保障。于赫[2]即分析了CAN总线的入侵形式,并基于信息熵和决策树的方法设计了入侵检测系统,但基于信息熵的方法只能识别总线上有大量异常报文的情况。Miller等人[3]根据CAN总线上报文的固定周期特性,识别异常报文,研究中不仅某ID的发送周期不变,且不同ID报文之间的发送周期都是一个固定值,然而近年来,为了减轻总线负载,提高报文信息量,在发送报文策略方面引入事件的概念,即不同的条件触发不同的发送周期。Kang等人[4]把报文数据场按字节作为特征使用RBM(restricted Boltzman machine)算法训练模型,估计异常的可能性,并标记超过阈值的报文为异常报文。Cortes等人[5]根据总线上一段时间窗里数据流的统计数据使用OCSVM支持向量机来识别异常总线上的异常行为。Song等人[6]研究基于CAN总线广播的特征,分析总线上的时间间隙、报文的序列来识别异常。Weber等人[7]结合CAN的定义,使用机器学习算法从总线流的角度部署了入侵检测系统。Tomlinson等人[8]用预先定义CAN总线广播的平均时间间隙值并结合ARIMA方法来检测总线上的时间变化。Marchetti等人[9]提出基于总线上不同ID报文之间的传输序列的入侵检测算法。

综上论述可知,现有研究主要分析了CAN总线的入侵形式,以及基于报文ID或数据场对周期性的报文做出检测,在机器学习领域把数据场里的数据按照单个字节作为特征输入,并未考虑总线数据时间上的关联性。基于此,本文使用多层LSTM神经网络,并充分考虑CAN通信矩阵对数据场里信号的定义,把CAN数据场里不同的信号作为特征提取,以此提高算法的精度,减少计算代价。

1 CAN总线概述

1.1 报文格式和CAN通信矩阵

1.1.1 报文格式

CAN总线有2种协議单元格式,区别主要在于仲裁场的大小,对于分析CAN总线的传输特性影响不大,因此这里将基于行业内广泛应用的ISO11898的报文格式展开论述。

CAN总线在设计初期的目的是为了减少车辆线束、给分布在汽车不同位置的多个ECU提供通信服务。因此CAN总线是以报文为基础,在总线上多个ECU以广播的形式通信,在网络上的所有节点都可以自由地收发报文。当多个ECU同时发送报文时,防止报文冲突多是取决于发送报文的仲裁场,也就是ID大小,越小的ID则有越高的优先权占用总线。CAN总线共有4种不同的报文帧,分别为:数据帧、错误帧、远程帧、超载帧。文中将重点关注正常通信时使用的数据帧。研究可知,数据帧的基本结构如图1所示。由图1可知,对其中涉及的每一位的功能含义拟做分述如下。

(1)SoF。为帧起始,在总线上以一个显性位表示一个报文的开始。

(2)ID,场定义报文的标识以及优先级。ID的值越小,优先级越高。

(3)RTR。当报文为远程帧的时候置为显性。

(4)IDE。在使用拓展帧的时候置为显性。

(5)R0。为保留位。

(6)DLC。定义数据场的大小,最大为8个字节。

(7)DATA,数据场用来传输实际的数据。一个报文最大传输8个字节的数据。

(8)CRC,循环冗余校验码。通过对数据场数据计算出一个CRC码来确保发送端和接收端收到正确的数据。

(9)ACK。接收端收到报文后的应答场。

(10)EoF。帧结束7比特隐性位,标识一帧报文结束。

1.1.2 CAN通信矩阵

通常,CAN通信矩阵是由主机厂和供应商共同定义确定的,用于描述整车电子系统上各个网段下不同节点需要在总线上收发什么ID的报文,以及收发的方式,数据场里比特位与信号的映射关系,信号的原始值与物理值的映射关系等。

一个ID为0x121的报文内容见表1。由ESP发送,周期为20 ms,数据场长度DLC为8个字节,在第一个字节的第0位至第二个字节的第3位长度12比特的数据场为车速信号,此信号的解析方式为原始整形值乘上0.068 75,得到精度为0.068 75的车速物理值,第二个字节的第7位长度1比特的数据场为车速状态位,表征此报文的车速信号是否有效,0x0为有效,0x1为无效。还有一些空的数据场没有被使用到。

其他报文也以类似的方式在CAN矩阵里被定义。在CAN总线上接收到报文后,可以使用Vector公司的工具,载入带有CAN矩阵信息的dbc文件,在线解析每个报文里的每个信号。

1.2 CAN总线缺陷分析

由1.1节研究可知,CAN总线是基于报文设计的通信方式,所有节点在总线上接收与自己有关的报文ID获取数据,而不会涉及到发送端和接收端的任何信息,因此就并不能判断接收到的报文的源头。进一步地,也将无法判断这一条是不是入侵报文。同时在CAN通信里,所有报文数据场中的数据都没有经过加密。另外,在CAN总线增加或减少节点是非常便利的,只是在物理上接入总线,并不需要对新接入的节点进行验证就能在总线上正常收发报文。

综上CAN总线的不足,加上各种ECU对外界的无线接口,使得车载网络的网络安全面临严峻的挑战。

1.3 入侵方式分析

根据CAN总线的易接入性,在车上的自带的诊断接口OBD可以轻易地接入整车车载网络,监听总线上的报文,由CAN总线的仲裁机制可知,ID越小有越高的优先级,攻击者就可以向总线上以高频率的方式发送高优先级的报文,即使没有任何节点接收此报文,总线也会由于超负载而陷入瘫痪,这种攻击模式即称为洪泛攻击。

除了车上的OBD口可以入侵车载网络,现在越来越多的远程接入方式带来更大的隐患,比如4G、5G、WiFi、蓝牙等。

另外在接入总线、监听了总线上正常的通信后,将其记录下来再重放到总线上去,每个ID和数据都是正常的,但接收端接收到的数据并不符合当前的工况,造成安全威胁。这种攻击模式被称为回放攻击。

更隐秘的攻击方式是先入侵总线上的节点,解析CAN 矩阵,使节点发送合法ID的报文,而改变数据场中的内容。比如入侵整车上的一个网关,通过网关在总线上发送正确的车速报文ID和错误的车速信息,这时如果车辆上有主动安全功能,就有可能会引起误报,或者触发刹车信号及转向信号。这种攻击模式被称为伪装攻击,是一种很难准确检测出来的攻击方式,因为除了数据场里的数据不符合当时的工况以外,其他特征均与正常报文一致,而且与回放攻击比起来,则几乎不会在总线流的角度上产生异常,从而躲过监控总线统计数据的入侵檢测系统。

2 异常检测

2.1 异常检测

异常检测是指分析数据在正常情况下的行为特征,并能识别不具备这些特征的数据点,这些点被称为异常。

要识别出异常首先需要分析数据的分布情况,得到数据的可能性分布,如图2所示。由图2可知,数据有2种分布模式:蓝色点和红色点,在最密集的地方可能性的值最高,在边缘的点可能性更低。在低于某个阈值之后被异常检测算法标识为一个异常,比如图2中在边缘线外的点。

2.2 多元高斯分布

对于本文分析的问题,CAN总线上的信号通常有较强的关联性,比如挡位信号、车速信号和发动机转速信号等。因此采用多元高斯分布来分析数据的可能性分布。

研究中,假设一个d维的矢量x∈d服从多元高斯分布,其概率密度为:

3 长短期记忆LSTM

长短期记忆网络LSTM是recurrent neural network(RNN)中的一种,其特点是对数据有长期记忆性,对一些对历史状态有依赖性的数据预测有较好的表现。长短期记忆网络的单元结构如图4所示。

为了使网络记忆历史数据里的重要信息,对未来的预测以历史条件和输入作为限制,做出质量更高的预测。LSTM中要处理的数据除了当前的外部输入x(t)以外,还有前一时刻的反馈h(t-1),记新输入为:

图4中,C(t)是LSTM的长期记忆单元,包含了t时段的状态信息,C(t-1)为上一个时间步的长期记忆单元,h(t-1)为上一个时间步的短期记忆单元,X(t)为当前时间步的输入,σ为sigmoid层,输出0~1之间的值,控制遗忘、记忆及输出的大小,3个门都是与h(t-1)及当前输入X(t)相关的。对其内容原理及定义公式可解析分述如下。

4 实验

4.1 数据处理

本文搭建了一个基于LSTM的以汽车系统时间上的相关性为基础的总线入侵检测模型,图5中数据为国内某款汽车正常行驶状态下的实车总线数据形式。包括时间戳、收发信息、数据长度、数据场、ID场。

通过vector公司的上位机软件CANoe加载DBC后可以从图5的数据中解析出每帧报文的具体信号的物理值,车辆航向角信号物理值如图6所示。

由于总线上信号太多,为了确保准确率的同时减少计算量,文中人工选取了多个重要且不冗余的信号作为LSTM的输入,分别为:图6中的车速信号、方向盘转角信号、加速度信号、加速踏板信号、制动踏板信号、挡位信号、发动机扭矩7个特征。选取的特征如图7所示。数据集为200个正常行驶工况下的车辆数据,由于在总线上的报文发送周期不同,取100 Hz的采樣数据,共有200*7维度的时间序列数据集。

4.2 LSTM建模及预测

将实录的正常数据分为85%训练集和15%验证集,用训练集对LSTM模型进行训练,并用验证集验证模型的性能,最后用测试集得到一个误差矩阵。计算误差矩阵的多元高斯分布特征。

将数据集定义为X={x(1),x(2),...,x(t),...,x(n)},t时刻的数据点在时间序列上是m维{x(t)1,x(t)2,...,x(t)m}为LSTM训练模型的m维输入。LSTM在t时刻对所有输入特征里的d个特征在l个时间步长里做出预测。

本文选取7个特征,因此LSTM的输入层为7个单元,d为6,因此LSTM的输出层应为6个单元,隐藏层设为15和30个单元,预测时间长度定为100个周期,因此LSTM在50个周期后的每个时刻输出为6*100的矩阵。

研究后可得,训练30次后模型对其中一个特征的表现见图8。

由此得到形状为e(6,100,t)的误差张量,其中e[0]=6表示预测的6个特征,e[1]=100表示时间序列上的预测长度,e[2]=t表示时间维度。其中,3个误差在t时刻分布的可视化如图9所示。

4.3 异常检测

4.3.1 异常数据仿真

考虑到实车入侵的危险性和成本,本文的异常数据为仿真数据,分别对车速ID_0x121,发动机转速ID_0x10D,方向盘转角ID_11F做仿真伪装报文入侵报文攻击整车总线,对3个不同ID的报文数据场注入一个突变的异常,如图10所示。

4.3.2 异常检测

经过上述步骤得到通过正常行驶的数据集训练好的LSTM预测模型和通过仿真得到的异常数据集,把异常数据集输入到LSTM预测模型,得到异常数据集的误差张量后使其符合多元高斯分布,求得其分布均值向量、协方差矩阵和每个误差点对应的可能性p(e)。

当p(t)<τ时对应的输入特征x(t)将会被归为‘异常。通过尽可能地最大化Fβ-score来确定阈值τ。

本文选用β=0.1的评价方法来评估模型的性能,因为本文讨论的异常检测其正常数据的样本数远大于异常样本,入侵检测的准确率要比查全率重要得多。F0.1-score在不同单元数隐藏层下的评估结果见表2。

5 结束语

本文通过先对CAN总线上原始数据解析处理后再输入到多层LSTM模型,对多个特征在多时间步上做预测,把得到的误差张量服从多元高斯分布,求得其均值向量、协方差向量和可能性p(t)。通过F0.1-score评价指标,确定阈值τ,得到一个较高的准确率。

参考文献

[1] 宋昊辰,杨林,徐华伟,等. 智能网联汽车信息安全综述[J]. 信息安全与通信保密,2020(7):106-114.

[2] 于赫. 网联汽车信息安全问题及CAN总线异常检测技术研究[D]. 长春:吉林大学,2016.

[3] MILLER C, VALASEK C. Adventures in automotive networks and control units[C]// DEFCON 21 Hacking Conference. Las Vegas:DEF CON Communications, Inc.,2013:260-264.

[4] KANG M J, KANG J W. Intrusion detection system using deep neural network for in-vehicle network security[J]. PLoS One, 2016, 11(6): e0155781.

[5] CORTES C, VAPNIK V. Support-vector networks[J]. Machine Learning, 1995,20(3):273-297.

[6] SONG H M, KIM H R, KIM H K. Intrusion detection system based on the analysis of time intervals of CAN messages for in-vehicle network[C]// 2016 international conference on information networking (ICOIN). Kota Kinabalu, Malaysia:IEEE,2016: 63-68.

[7] WEBER M, KLUG S, ZIMMER B, et al. Embedded hybrid anomaly detection for automotive CAN communication[C]//9th European Congress on Embedded Real Time Software and Systems. Toulouse, France:Pierre Baudis Congress Center,2018:1-11.

[8] TOMLINSON A, BRYANS J, SHAIKH S A, et al. Detection of automotive CAN cyber-Attacks by identifying packet timing anomalies in time Windows[C]// 2018 48th Annual IEEE/IFIP International Conference on Dependable Systems and Networks Workshops (DSN-W). Luxembourg City:IEEE, 2018: 231-238.

[9] MARCHETTI M, STABILI D. Anomaly detection of CAN bus messages through analysis of ID sequences (Los Angeles, 2017)[C]//2017 IEEE Intelligent Vehicles Symposium (IV). Los Angeles, CA:IEEE, 2017:1577–1583.

猜你喜欢
入侵检测CAN总线车联网
基于入侵检测的数据流挖掘和识别技术应用
艺术类院校高效存储系统的设计
论网络通信技术
基于嵌入式的汽车辅助制动系统研究
CAN总线通信技术在电梯监控系统中的应用
整合广播资源,凝聚声音优势
汽车生产企业发展车联网的优势与劣势
基于CANoe的J1939协议在ECU通信中的应用
基于关联规则的计算机入侵检测方法
中国车联网产业链与商业模式研究