对基于机器学习的汽车CAN总线异常检测方法展开具体介绍

最新更新时间:2023-02-03来源: elecfans关键字:机器学习  汽车CAN总线  异常检测 手机看文章 扫描二维码
随时随地手机看文章

目前机器学习是研究车辆网络入侵检测技术的热门方向,通过引入机器学习算法来识别车载总线上的网络报文,可实现对车辆已知/未知威胁的入侵检测。这种基于机器学习的异常检测技术普适性较强,无需对适配车型进行定制化开发,但存在异常样本采集数量大和训练难度高的问题。本文将结合个人经验对基于机器学习的汽车CAN总线异常检测方法展开具体介绍。


01

车载异常检测流程

基于机器学习的车载异常检测的整体流程如图1所示,其中关键环节包括输入数据、数据预处理、训练及测试算法、评估及优化。

df9db586-a327-11ed-bfe3-dac502259ad0.png

图1 基于机器学习的车载异常检测整体流程


02

数据源

针对特定车型进行数据的采集,形成有特点的定制化数据集,并用此数据集进行智能算法的训练与验证。在实际应用中,工程师可以直接采用公开数据集作为模型训练的数据,也可以通过实际采集车辆真实数据来获取数据集。


公开数据集:公开数据集CAR-HACKING DATASET[1]中提供了汽车黑客数据,如图2所示,其中包括 DoS 攻击、模糊攻击、驱动齿轮欺骗攻击和RPM仪表欺骗攻击四种类别的数据。该数据集是通过在执行消息注入攻击时利用真实车辆的OBD-II端口记录CAN流量来构建的。

其数据集特征包括TImestamp,CAN ID,DLC(数据长度码),data(CAN数据字段),Flag(T或R,T代表注入信息,R代表正常信息)。公开数据集一般是经过公开验证的,更具有通用性和代表性,便于进行不同算法异常检测效果的比对。

dfadcb74-a327-11ed-bfe3-dac502259ad0.png

图2  CAR-HACKING DATASET[1]

实车数据集:数据源还可以通过实车采集的方式获取,通过向车内注入特定的攻击,并使用CAN采集工具对实车数据中的报文数据进行采集,采集时需要注意采集时间要尽可能平均。由此得到的实车数据集更加真实,其中可能包含一些公开数据集无法覆盖的异常场景。此外,实车数据采集得到的数据集通常还需要进行预处理工作。


2.1 数据预处理

机器学习算法模型的质量很大程度取决于数据的质量。原始数据往往不利于模型的训练,因此需要进行数据预处理以提高数据的质量,使其更好地适用模型。数据预处理过程一般包括特征选取、数据标准化及特征编码,如图3所示。在实际车载异常检测应用中,最终选用的数据预处理方法通常会根据智能算法的不同而有所差异。

dfc5708a-a327-11ed-bfe3-dac502259ad0.png

图3 数据处理过程


2.2 特征选取
CAN报文的特征及描述如表1所示。记录每一条数据的时间标识TIme,每一条报文的序号为CAN ID,相同CAN ID报文出现的时间间隔为period。Payload部分通常将十六进制的信息转换为十进制,根据CAN报文的特点,将payload划分为8个特征位(byte0,byte1, byte2, byte3, byte4, byte5, byte6, byte7),它们全部分布在0~255之间。 一般输入数据格式为Dataframe格式,对应的特征是Dataframe的列名称。在进行不同算法的训练时,选取包含指定特征值(某些列)的Dataframe进行后续数据标准化的操作。

dfd7c5a0-a327-11ed-bfe3-dac502259ad0.png

表1 CAN报文特征


2.3 数据标准化
车载网络报文的数据信号(数据payload部分)具有不同的量纲和取值范围,通过标准化,在不改变样本数据分布的同时,使得这些数值信号能够进行比较。对于利用梯度下降的模型,数值型数据进行标准化可以削弱不同特征对模型的影响差异,使得梯度下降能更快地找到最优解,同时结果更可靠。对于决策树这类不通过梯度下降而利用信息增益比的算法,则不需要进行数据标准化,整体流程如图4所示。

标准化对样本的payload特征分别进行计算使其满足正态分布,Z=  (x- μ)/σ。一般情况下,标准化与数据分布相关,具有更强的统计意义,在车载入侵检测数据的处理上更加通用合适。对于需要数据标准化的算法,使用Scikit-learn中preprocessing.StandardScaler(df)函数,df为需要标准化的数据(只含有payload部分的Dataframe),得到标准化后的数据特征编码或直接进行训练。

dfed63ec-a327-11ed-bfe3-dac502259ad0.png

图4 数据标准化流程


2.4 特征编码

车载网络报文中,数据场以外还存在一部分报文内容,如CAN ID。对于很多机器学习算法,分类器往往默认数据是连续的,并且是有序的,因此需要对此类特征进行编码。对于维度较低的特征可以直接使用独热编码。对于维度较高的特征,可以使用二进制编码。 独热编码是用等同于状态数量的维度进行编码,每种状态下的独热编码只有其中一位为1,其余均为0。编码后的特征互斥,每次只有一个激活,有利于模型处理数据。 输入数据集,如CAN ID经过one_hot(df)函数,将输入数据进行one-hot编码。一个CAN ID将变为16*3的向量,如图5所示。该向量将作为训练模型的输入,进行后续的模型训练工作。

e002668e-a327-11ed-bfe3-dac502259ad0.png

图5 CAN ID 特征编码[1]


03

算法训练及测试

3.1 数据集划分

输入数据集以71.5的比例划分成训练集、验证集和测试集。训练集数据只用来训练模型,其数据不出现在算法测试中。验证集主要是用来反映训练得到模型的相关效果,也会在其上进行算法模型的优化与调试,反复验证直到达到最佳效果。测试集主要表现模型的最终效果,测试集数据也是用来评价模型的数据,测试集数据不出现在算法训练中。

数据集划分流程如图6所示,首先输入数据采用Scikit-learn中model_selecTIon.train_test_split()函数,此函数可以将数据集先划分成7:3的训练集和测试数据,然后再将测试数据集划分成5:5的验证集与测试集。

e010ee52-a327-11ed-bfe3-dac502259ad0.png

图6 数据集划分流程


3.2 SMOTE采样

对于采集到的车载网络数据,攻击报文数量远少于正常报文,造成了样本类别不平衡。机器学习中往往假定训练样本各类别是同等数量,即各类样本数目是均衡的。一般来说,不平衡样本会导致训练模型侧重样本数目较多的类别,而“轻视”样本数目较少类别,这样模型在测试数据上的泛化能力就会受到影响。通过SMOTE[2](合成少数类过采样技术),在少数类别样本之间进行插值生成新的样本,如图7。相比随机过采样,SMOTE大大降低了过拟合的可能。

e02b385c-a327-11ed-bfe3-dac502259ad0.png

图7 SMOTE采样原理 [2]

在训练模型前对各类别的训练数据进行SMOTE过采样的操作,SMOTE过采样流程如图8。使用imblearn.over_sampling中的SMOTE().fit_resample(X,Y)函数,其中X为输入需要训练的报文集合,Y为X中每一条报文的类别。经过SMOTE处理,各类别的报文数量会变得一样多,可以进行下一步的操作。

e0456fe2-a327-11ed-bfe3-dac502259ad0.png

图8 SMOTE采样流程

3.3 模型训练

模型训练是从标签化训练数据集中推断出函数的机器学习任务。常用的模型训练算法包括RNN(Recurrent Neural Network,循环神经网络)、LSTM(Long Short-Term Memory,长短期记忆网络)、GRU(Gated Recurrent Units,门控循环神经网络)、DCNN(Dynamic ConvoluTIon Neural Network,深度卷积神经网络)、SVM(Support Vector Machine,支持向量机)、DT(Decision Tree,决策树)、RF(Random Forest,随机森林)、XGBoost(Extreme Gradient Boosting,极端梯度提升)、Stacking(集成学习算法)、Clustering(聚类)等。


04

评估与优化

模型的总体优化流程如图9所示,对模型测试的结果进行评估,根据评估的结果进一步优化模型。下面详细阐述评估指标和优化方式。

4.1 评估指标

方案使用平均准确率、P-R曲线、F-score对模型进行评价。平均准确率是判断入侵检测算法优劣的最直观的评价标准。P-R曲线和F-score能更加直观地反映入侵检测模型在特定数据集上的表现。本方案选择平均准确率作为模型在验证集上的评价指标,在超参数调优时,根据平均准确率选择更优超参数组合。本方案选择F-score作为模型在测试集上的评价指标,评价最终的模型效果。

e0566ee6-a327-11ed-bfe3-dac502259ad0.png

图9 模型优化流程

a)准确率 Accuracy

准确率公式为: Accuracy = (TP + TN) / (TP + TN + FP + FN) 其中,TP(true positive)是正例,代表被模型正确地预测为正类别的样本。例如,模型推断出某条报文是攻击报文,而该报文确实是攻击报文。TN(true negative)为假正例,代表被模型正确地预测为负类别的样本。例如,模型推断出某条报文不是攻击报文,而该报文确实不是攻击报文。FN (false negative)是假负例,代表被模型错误地预测为负类别的样本。例如,模型推断出某条报文不是攻击报文(负类别),但该条报文其实是攻击报文。

FP(false positive)为假正例,代表被模型错误地预测为正类别的样本。例如,模型推断出某条报文是攻击报文(正类别),但该条报文其实不是攻击报文。 准确率是指分类正确的样本占总样本个数的比例。在不同类别的样本比例非常不均衡时,占比大的类别将成为影响准确率的主要因素。导致模型整体准确率很高,但是不代表对小占比类别的分类效果很好。

因此,使用平均准确率,即每个类别下的样本准确率的算术平均作为模型评估的指标。 在超参数选择阶段,算法会根据各个超参数的准确率Accuracy,进行选择。选择准确率最高的超参数作为模型使用的超参数。

b)P-R曲线和F-score 

精确率P = TP / (TP+FP),指分类正确的正样本个数占分类器判定为正样本的样本个数的比例。召回率R = TP / (TP+FN),指分类正确的正样本个数占真正的正样本个数的比例。通过F-score进行定量分析,同时考虑了精确率和召回率。  F-score =(1+β^2 )*P*R/(β^2*P+R) 智能分析使用F1-score作为指标,评价最终模型在测试集上的表现效果。

4.2 模型优化

入侵检测使用到的机器学习和神经网络模型包含大量的超参数,超参数直接影响了模型的优劣,寻找超参数的最优取值是至关重要的问题。通过超参数优化方法和K折交叉验证,找到最优的超参数,使模型能够准确地判断报文类型。

a)K折交叉验证

K折交叉验证用于模型调优,测试模型预测未用于估计的新数据的能力,找到使得模型泛化性能最优的超参值。具体原理如图10,将训练数据分成K份,用其中的(K-1)份训练模型,剩余的1份数据用于评估模型。循环迭代K次,并对得到的K个评估结果取平均值,得到最终的结果。

e090e940-a327-11ed-bfe3-dac502259ad0.png

图10 K折交叉验证原理[3]

K值越小,模型越偏差越低、方差越高,容易出现过拟合。K值越大,则偏差提高,方差降低,且计算开销增大。在训练中我们一般选择k=5。使用下面函数进行K折交叉验证划分,sklearn.model_selection.KFold(n_splits=5,shuffle=True,random_state=999).split(df),其中n_splits为交叉验证的折数,shuffle表示是否打乱数据,random_state为随机种子,df为训练数据。

b)超参数优化 超参数优化方法主要有:网格搜索和贝叶斯优化。

网格搜索:以穷举的方式遍历所有可能的参数组合,网格搜索在1维、2维、3维的搜索空间表现相对来说不错,很容易覆盖到空间的大部分,而且耗时不大。使用sklearn.model_selection中的GridSearchCV ()进行超参数选择和交叉验证。

贝叶斯优化:网格搜索和随机搜索没有利用已搜索点的信息,使用这些信息指导搜索过程可以提高结果的质量以及搜索的速度。贝叶斯优化利用之前已搜索点的信息确定下一个搜索点,用于求解维数不高的黑盒优化问题。它的本质其实是一种回归模型,即利用回归模型预测的函数值来选择下一个搜索点。使用hyperopt中的fmin()函数进行贝叶斯优化,给出最优模型参数。 以训练集的交叉验证结果作为性能度量。根据模型的超参数数量、取值范围、性能影响等因素,选择不同的超参数优化方法,对模型进行参数优化。


05

小结

面向智能网联汽车无线通信系统、车载娱乐系统、驾驶辅助系统以及典型智能网联场景,机器学习作为车载网络入侵检测中至关重要的一项技术,可实现对已知/未知攻击行为的特征识别检测,最终助力车端和云端安全联动,保障车载网络的信息安全。


关键字:机器学习  汽车CAN总线  异常检测 编辑:什么鱼 引用地址:对基于机器学习的汽车CAN总线异常检测方法展开具体介绍

上一篇:聊聊汽车芯片功能安全的细节
下一篇:软件定义汽车趋势下智能网联汽车安全解决方案

推荐阅读

对基于机器学习汽车CAN总线异常检测方法展开具体介绍
目前机器学习是研究车辆网络入侵检测技术的热门方向,通过引入机器学习算法来识别车载总线上的网络报文,可实现对车辆已知/未知威胁的入侵检测。这种基于机器学习的异常检测技术普适性较强,无需对适配车型进行定制化开发,但存在异常样本采集数量大和训练难度高的问题。本文将结合个人经验对基于机器学习的汽车CAN总线异常检测方法展开具体介绍。01车载异常检测流程基于机器学习的车载异常检测的整体流程如图1所示,其中关键环节包括输入数据、数据预处理、训练及测试算法、评估及优化。图1 基于机器学习的车载异常检测整体流程02数据源针对特定车型进行数据的采集,形成有特点的定制化数据集,并用此数据集进行智能算法的训练与验证。在实际应用中,工程师可以直接采用公开数
发表于 2023-02-03
对基于<font color='red'>机器学习</font>的<font color='red'>汽车</font><font color='red'>CAN总线</font><font color='red'>异常</font><font color='red'>检测</font>方法展开具体介绍
应用最新的CAN总线增强功能,实现安全可靠的高速汽车通信
多年来,设计人员一直依靠控制器局域网 (CAN) 在汽车的各个子系统和电子控制单元 (ECU) 之间进行可靠的通信。然而,随着板载网络节点数量的增加,所需的数据吞吐量以及对更低延迟和更高级安全性的需求也在增加,所有这些都在严格的尺寸、重量和成本限制内完成。尽管如此,许多设计人员还是不愿意改变网络拓扑结构,而且由于CAN规范和相关IC解决方案的稳步改进,他们不必这样做。迁移到另一种网络拓扑很困难,因为会损失先前的投资,并且随着设计人员的学习曲线向上移动,可能会出现设计延迟。但是,通过再次查看CAN规范增强功能可以避免这种情况,例如用于更高吞吐量的CAN灵活数据速率(FD),使用部分网络等技术来处理泄漏和干扰,使用更严格的时序裕量来确保
发表于 2023-01-31
应用最新的<font color='red'>CAN总线</font>增强功能,实现安全可靠的高速<font color='red'>汽车</font>通信
BrainChip机器学习芯片在22nm FDSOI上成功流片
BrainChip日前在GlobalFoundries 22nm的FD-SOI工艺上成功流片AKD1500 机器学习芯片。该参考设计是一个关键里程碑,是跨不同工艺和代工厂验证BrainChip IP 的一部分。BrainChip一直在与瑞萨合作,将名为 Akida 的 IP 集成到上个月流片的芯片中。AKD1500 使用 BrainChip AI IP 的最新功能,结合超低泄漏 FDX22 工艺,适用于 AIoT、工业、消费和汽车市场中始终开启的传感器应用或其他低功耗嵌入式应用。对于传感器始终在线的 AI,Akida 可以在不使用 CPU 的情况下卸载前馈网络,从而实现极其节能的智能传感器。 对于其他低功耗嵌入式应用程序,CPU 单
发表于 2023-01-31
恩智浦借助eIQ® Model Watermarking保护机器学习IP
恩智浦借助eIQ® Model Watermarking保护机器学习IP恩智浦新推出的eIQ Model Watermarking工具是eIQ工具包的一部分,可帮助开发人员保护其机器学习模型防范IP失窃中国上海——2023年1月31日——恩智浦半导体 在eIQ工具包中增加了一款用于机器学习开发的新工具——eIQ® Model Watermarking。eIQ Model Watermarking是恩智浦首个可有效帮助开发人员保护其机器学习资产的工具。该工具可在机器学习模型中嵌入水印,为模型添加版权所有权,开发人员在无需访问该模型源码的前提下,证明该机器学习模型是自己所拥有模型IP的副本或克隆。产品重要性有人曾表示,数据是一种新型财富
发表于 2023-01-31
恩智浦借助eIQ® Model Watermarking保护<font color='red'>机器学习</font>IP
汽车CAN总线渗透测试
01CAN总线1.1 CAN总线是什么?CAN是控制器局域网络(Controller Area Network, CAN)的简称,是ISO国际标准化的串行通信协议,由以研发和生产汽车电子产品著称的德国BOSCH公司开发,并最终成为国际标准(ISO 11898)。CAN总线是国际上应用最广泛的现场总线之一。1.2 为什么要使用CAN总线?在汽车产业中,出于对安全性、舒适性、方便性、低功耗、低成本的要求,各种各样的电子控制系统被开发出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”“通过多个LAN,进行大量数据的高速通信”的需要,1986 年德国电气
发表于 2022-11-28
<font color='red'>汽车</font><font color='red'>CAN总线</font>渗透测试
意法半导体嵌入式 AI 解决方案增加简化机器学习开发的高级功能
2022 年 11 月 15 日,中国——为了扩大开发工具的功能,加快嵌入式人工智能 (AI) 和机器学习 (ML) 开发项目,意法半导体发布了NanoEdge AI Studio 和 STM32Cube.AI.的升级版本。这两个开发工具有助于把人工智能和机器学习迁移到应用边缘设备。迁移到网络边缘后,人工智能和机器学习的优势非常突出,包括原生隐私保护、确定性实时响应、更高可靠性和更低功耗。NanoEdge AI Studio 是一个自动化的机器学习开发工具,适合不需要开发神经网络的应用项目。该工具需要与STM32 微控制器 (MCU) 和内置意法半导体独有的嵌入式智能传感器处理单元 (ISPU) 的MEMS 传感器配合使用。STM3
发表于 2022-11-15
意法半导体嵌入式 AI 解决方案增加简化<font color='red'>机器学习</font>开发的高级功能
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2023 EEWORLD.com.cn, Inc. All rights reserved