基于卷积神经网络的车载网络入侵检测方法 [PDF全文]
(浙江科技学院 a.机械与能源工程学院; b.信息与电子工程学院,杭州 310023)
汽车控制器局域网(controller area network,CAN)由于缺乏安全保护机制,容易受到外部恶意网络攻击。针对该问题,通过分析拒绝服务(denial of service,DoS)攻击数据集和模糊(fuzzy)攻击数据集,提出一种基于卷积神经网络(convolutional neural networks,CNN)的CAN总线网络入侵检测算法。本算法利用CAN总线正常状态下与受攻击状态下帧的标识符(identifier,ID)序列之间稳定性差异,首先将CAN ID序列通过格拉姆和角场(gramian angular summation field,GASF)转换为图片,然后采用简化的VGG(visual geometry group,视觉几何团队)网络对这些图片进行特征提取并分类,对含有入侵行为的帧序列进行检测。试验结果显示,本研究提出的CAN入侵检测方法在拒绝服务攻击数据集上的精准率为100%,在模糊攻击数据集上的精准率为99.90%,表明本方法具有很好的检测性能,能够满足实际工程的需求。本研究可为网联车辆的网络安全防护提供参考。
In-vehicle network intrusion detection method based on convolutional neural networks
CHEN Lia, WANG Haijiangb, WU Kaia
(a.School of Mechanical and Energy Engineering; b.School of Information and Electronic Engineering, Zhejiang University of Science and Technology, Hangzhou 310023, Zhejiang, China)
The automotive controller area network(CAN)is vulnerable to external malicious network attacks due to lack of security protection mechanisms. In response to this problem, a CAN bus network intrusion detection algorithm was proposed on the basis of convolutional neural networks(CNN)by analyzing the denial of service(DoS)attack and fuzzy attack datasets. This algorithm capitalized on the differences of stability between the identifier(ID)sequence of the frames under normal state and attacked state on the CAN bus. First, the CAN ID sequences were converted into pictures through gramian angular summation field(GASF)transformation, and then the reduced visual geometry group(VGG)network was used to extract the features and make classification on these pictures, so as to detect the frame sequences containing intrusion behavior. Experimental results show that the proposed CAN intrusion detection method has a precision rate of 100% against DoS attacks and a precision rate of 99.90% against fuzzy attacks, which shows that the method boasts good detection performance, capable of meeting the needs of actual engineering and providing a reference for connected car network security defendants.
引言

汽车电子控制单元(electronic control units,ECU)的应用增加了汽车驾驶的舒适性、安全性和经济性,汽车内部ECU之间通过控制器局域网(controller area network,CAN)总线进行交互。近年来,汽车ECU数量明显增多,汽车ECU占汽车价值的比重逐年增加[1]。但ECU的增加也会造成汽车在面对网络攻击时的脆弱性升高,而CAN网络中缺乏认证和加密等技术来保护其通信安全[2]。此外,CAN是基于广播的总线网络,任何ECU节点都能连接到该网络,接收和发送数据帧[3],这使得汽车CAN网络容易成为攻击目标,危害驾驶安全。目前车载网络的保护机制主要有网络隔离、加密、认证及入侵检测的方法。但网络隔离的方法对ECU的保护能力有限,加密算法会受到ECU计算资源的限制,认证则会增加网络流量,可能会延迟ECU消息发送时间。这些机制在资源受限的环境下难以灵活应用[4]

入侵检测系统(intrusion detection system,IDS)能够很好地解决这些问题,IDS不需要修改当前汽车的各个ECU控制器,也不会增加网络流量,只需要在CAN总线上增加一个能够满足运算能力和存储要求的检测节点,通过对经过总线的数据帧进行分析,即可检测出恶意攻击行为。近年来,各种智能检测方法被用于IDS中,其中卷积神经网络(convolution neural network,CNN)因在图像、语音等领域的出色表现得到了广泛的应用[5],与深度神经网络(deep neural network,DNN)[6]和长短时记忆(long short-term memory,LSTM)网络[7]相比,CNN采用权值共享、子采样等策略,能够显著减少模型参数的数量,更能满足实时性要求,对未知攻击具有更强的鲁棒性。针对汽车IDS缺乏可靠数据集问题,Seo等[8]通过在实际车辆上进行攻击得到四个数据集,并使用了DNN和生成对抗网络(generative adversarial networks,GAN)结合的方法在该数据集上训练入侵检测模型,但该方法中DNN模型参数数量过多。Alshammaril等[9]提出了K近邻(K nearest neighbors,KNN)和支持向量机(support vector machine,SVM)算法对汽车CAN总线拒绝服务(denial of service,DoS)攻击和模糊(fuzzy)攻击两种攻击行为进行检测,但对入侵行为的检测性能提升有限。Song等[10]提出简化的深度残差CNN[11]模型对CAN总线中的异常数据帧进行检测,取得了较好的结果。但该方法未考虑总线中数据帧传输的周期性特征,且网络结构过于复杂,导致参数数量过多,不利于在汽车环境中部署。

基于上述研究,本研究使用一种格拉姆角场(gramian angular field,GAF)的时间序列编码方式,将CAN ID按照周期序列转换为二维(2 dimensional,2D)图片,使用简化的VGG(visual geometry group)网络[12]对图片进行分类,并在针对汽车的DoS攻击和fuzzy攻击两个数据集上进行评估。

1 预备知识1.1 GAF图像转换

GAF能够将时间序列转换为图片的形式[13]。给定一个时间序列X=(x1,x2,…,xn),首先根据式(1)将序列X内所有值缩放到[-1,1]区间内,得到X'。然后根据式(2)将该X'内的值转换为极坐标来表示,其中x'i 转换为角度θi(用弧度来表示),对应的时间步转换为半径ri,n为序列X'的总时间步数。

这种编码方式不仅是双射的,即可以利用θ和r对原始时间序列进行重构,而且通过r的坐标保存了原始序列中的时间依赖性[14]。GAF可以通过两种方程生成两种不同的图像,即格拉姆和角场(gramian angular summation field,GASF)和格拉姆差角场(gramian angular difference field,GADF)。式(3)定义了GASF,式(4)定义了GADF。

式(3)~(4)中:E为单位向量。通过式(3)或式(4)的变换,可以将原始的一维时间序列转换为矩阵形式的二维特征图。同时,GASF为对称矩阵,而GADF不是对称矩阵,因此本研究使用GASF。

为了进一步说明本方法的优点,以DoS攻击为例,从DoS攻击数据集[10]中截取两段CAN ID序列,为了使图片观察更加清晰,设定步长均为36。第一段为正常序列,第二段为含有DoS攻击的序列。将序列的十六进制的ID字段转换为十进制,根据上面的步骤将其转换为GASF图片形式,如图1图2所示。其中图1(a)和图1(b)为正常序列的时序图及其对应的GASF特征图,图2(a)和图2(b)为攻击序列的时序图及其对应的GASF图像。从图1(b)和图2(b)中可以观察到GASF形成的矩阵是对称的,且在每个时序图的波峰处,特征图上对应位置的行和列交叉处均出现颜色较深的特征,而波谷处对应位置的颜色较浅。由此可见,原始ID序列的时序特征能够通过转换后的特征图的空间特征表达出来。因此,可以通过GASF编码的方式将CAN ID的信号特征与特征图中相应位置的颜色、点、线等特征进行完整的映射。

图1 正常状态下的CAN ID序列及其对应的GASF特征图<br/>Fig.1 CAN ID sequences in normal state and corresponding GASF feature map

图1 正常状态下的CAN ID序列及其对应的GASF特征图
Fig.1 CAN ID sequences in normal state and corresponding GASF feature map

图2 DoS攻击时的CAN ID序列及其对应的GASF特征图<br/>Fig.2 CAN ID sequences during DoS attack and corresponding GASF feature map

图2 DoS攻击时的CAN ID序列及其对应的GASF特征图
Fig.2 CAN ID sequences during DoS attack and corresponding GASF feature map

1.2 卷积神经网络

CNN主要由卷积层、池化层和全连接层组成。卷积层和池化层在一起作为特征提取器,提取图片中的显著特征。全连接层作为分类器,对特征提取器提取到的特征进行解释和分类。

1.2.1 卷积层

卷积层利用不同大小的卷积核,通过滑动窗口的方式对输入的图像进行卷积操作,通过激活函数提取出图像中的纹理、色彩等重要特征。卷积层越深,提取到的特征越抽象。卷积运算公式为

式(5)中:xlj为位于第l个卷积层的第j个特征图; f为非线性激活函数; n为输入特征图的个数; klij为卷积核的权值矩阵;(·)为点积运算; blj为当前输出特征图对应的偏置值。

1.2.2 池化层

图3 最大池化和平均池化<br/>Fig.3 Max pooling and average pooling

图3 最大池化和平均池化
Fig.3 Max pooling and average pooling

池化层一般位于卷积层之后,用于对卷积得到的特征图进行子采样,从而丢掉冗余特征,将重要特征保存下来,同时能够减少卷积神经网络的运算参数。池化操作可分为最大池化(max pooling)和平均池化(average pooling)两种方式,其计算方式如图3所示。

1.2.3 全连接层

全连接层对经过卷积和池化操作得到的特征图进行解释和分类,其计算公式为

y(x)=f(WX+b)。(6)

图4 简化的VGG网络架构<br/>Fig.4 Reduced VGG network architecture

图4 简化的VGG网络架构
Fig.4 Reduced VGG network architecture

式(6)中:W为权值矩阵; X为输入向量; b为偏置向量; f为激活函数。

2 GASF-CNN入侵检测的架构2.1 CNN模型架构

本研究采用的CNN架构为简化的VGG网络模型,网络架构如图4所示,输入图片为185×185像素,中间用于特征提取的每个卷积块包含两个卷积层,如2×卷积3-16,其中2表示卷积层数量,3表示卷积层的卷积核大小,16表示卷积层过滤器数量。每个卷积块之后为最大池化层和Dropout层,Dropout层用于随机丢弃一定比例的神经元,其参数从0.2按层递增,用于降低过拟合[15]。最后三层分别为100个神经元的全连接层、Dropout层和单个神经元的输出层,其中输出层采用sigmoid分类函数。

2.2 激活函数和分类器

激活函数就是神经网络中神经元运行的函数,如果没有激活函数,神经元的输入端到输出端的映射只能是线性映射,激活函数的使用使得神经元具有非线性映射能力,这对神经网络学习、理解复杂的非线性函数具有十分重要的意义。通过使用不同类型的激活函数,模型能够学习到不同的分类和回归方法。

2.2.1 Relu激活函数

在梯度反向传播过程中,由于使用链式法则进行求导,会产生一系列连乘运算,如果使用饱和激活函数,则在训练深度神经网络时会导致梯度消失或梯度爆炸等问题。为了避免这些问题的发生,本研究使用的算法在所有的隐藏层均使用Relu激活函数修正线性单元。Relu函数计算复杂度低,梯度不会饱和,使用该函数的模型收敛速度快。Relu函数公式为

2.2.2 sigmoid分类器

sigmoid分类器常用于输出层,其取值范围为(0,1),它可以将一个实数映射到(0,1)区间内,可以用来做二分类,其函数公式为:

σ(t)=1/(1+exp(-t))。(8)

式(8)中:t为一个标量。在输出层使用sigmoid函数时,其分类函数如下:

式(9)~(10)中:p为输出的概率值; x为输入向量; θ为权值向量; y为输出的类别。当概率p>0.5时,分类为正样本; 当p≤0.5时,分类为负样本。

2.3 入侵检测框架

本研究提出的CAN入侵检测方法为:首先提取出数据集中的ID字段并转换为十进制,组成数据子集; 然后将该子集分割为多个具有指定时间步长的ID序列,利用GASF将这些序列转换为二维特征图,并划分训练集和测试集; 将特征图输入构建好的CNN模型并进行参数调优,由卷积层将提取到的特征输入全连接层进行解释并利用sigmoid函数进行分类,最后输出结果。CAN入侵检测模型架构如图5所示。

图5 CAN入侵检测模型架构<br/>Fig.5 Architecture of CAN intrusion detection model

图5 CAN入侵检测模型架构
Fig.5 Architecture of CAN intrusion detection model

3 试验与分析3.1 数据集描述

本研究使用韩国攻击与对策研究实验室(Hacking and Countermeasure Research Lab,HCRL)提供的两个分别针对汽车的DoS攻击和fuzzy攻击的数据集[16]。两个数据集均为二分类数据集,包含正常数据帧和注入的攻击数据帧,其分布见表1。这两个数据集通过对运转状态下的真实汽车进行攻击,同时对CAN总线上的每条帧进行记录而得到。该数据集有12个属性,分别为Timestamp、CAN ID、DLC、DATA[0]、DATA[1]、DATA[2]、DATA[3]、DATA[4]、DATA[5]、DATA[6]、DATA[7]、flag。每个属性的含义见表2

表1 原始数据集中数据分布<br/>Table 1 Data distribution in original dataset

表1 原始数据集中数据分布
Table 1 Data distribution in original dataset

表2 原始数据集属性及其含义<br/>Table 2 Attributes and implications of original dataset

表2 原始数据集属性及其含义
Table 2 Attributes and implications of original dataset

3.2 数据预处理

本研究选取CAN ID属性列作为训练和测试数据,转换为十进制并归一化之后的DoS攻击和fuzzy攻击数据集中正常帧的ID时序分布如图6图7所示,从图中可知,DoS攻击数据集中ID的周期为185,fuzzy攻击数据集中ID的周期为195,因此分别设定两个数据集的ID序列步长为185和195。

图6 DoS攻击数据集中正常帧ID的时序分布<br/>Fig.6 ID timing distribution for normal frame in DoS attack dataset

图6 DoS攻击数据集中正常帧ID的时序分布
Fig.6 ID timing distribution for normal frame in DoS attack dataset

图7 fuzzy攻击数据集中正常帧ID的时序分布<br/>Fig.7 ID timing distribution for normal frame in fuzzy attack dataset

图7 fuzzy攻击数据集中正常帧ID的时序分布
Fig.7 ID timing distribution for normal frame in fuzzy attack dataset

数据的预处理步骤如下:

1)数据集提取。分别从DoS攻击和fuzzy攻击数据集中提取出CAN ID和flag列作为本试验的数据集,形成DoS ID和fuzzy ID数据子集。

2)数据类型转换和编码。将两个数据子集中原本由十六进制表示的ID转换为十进制表示,并进行归一化,同时将flag中所有的“R”标签编码为0,所有的“T”标签编码为1。

3)数据分割和标注。将数据集分割为序列,DoS ID的步长为185,fuzzy ID的步长为195。同时,为每个序列设置标签,若序列中至少有一个ID对应的flag为1,则将该序列标注为1(攻击序列),否则标注为0(正常序列),经过分割后得到的ID序列数据集及数据分布见表3。由表3可知,分割后的数据集中正负样本比例相对表1中的原始数据集更加合理,能够有效降低过拟合风险。

表3 分割后的数据集中数据分布<br/>Table 3 Data distribution in segmented dataset

表3 分割后的数据集中数据分布
Table 3 Data distribution in segmented dataset

4)数据编码。对每个序列应用GASF将其编码为图片形式,最后形成DoS攻击和fuzzy攻击图片数据集,其灰度图如图8图9所示,其中图8(a)和图9(a)为正常状态下CAN ID序列经编码后的图片,图8(b)和图9(b)为面对攻击时CAN ID序列经编码后的图片。由图8图9可知,DoS攻击图片数据集中正负样本图片主要为像素灰度值上的差异,而fuzzy攻击图片数据集中正负样图片主要为线条纹理特征分布上的差异。

5)分离训练集和测试集。分别从DoS攻击和fuzzy攻击图片数据集中分离出对应的训练样本和测试样本,测试样本所占的比例为30%。

图8 DoS攻击图片数据集中的正常样本和异常样本<br/>Fig.8 Normal and abnormal samples in DoS attack image dataset

图8 DoS攻击图片数据集中的正常样本和异常样本
Fig.8 Normal and abnormal samples in DoS attack image dataset

图9 fuzzy攻击图片数据集中的正常样本和异常样本<br/>Fig.9 Normal and abnormal samples in fuzzy attack image dataset

图9 fuzzy攻击图片数据集中的正常样本和异常样本
Fig.9 Normal and abnormal samples in fuzzy attack image dataset

3.3 评价指标

由于入侵检测的目的是尽量多地检测出攻击行为,同时降低误报率。因此本试验采用假阴性率(false negative rate,FNR)和错误率(error rate,ER)对模型的分类性能进行评估。此外,在与其他模型进行对比过程中,也对精准率(precision)、召回率(recall)和F1值(F1-score)进行评价。

3.4 试验结果与对比分析

本研究使用目前主流的深度框架tensorflow实现模型的构建,试验硬件环境如下:处理器为Inter(R)Core(TM)i7-9750H,处理器主频为2.60 GHz,内存为8.00 GB,显卡为NVIDIA GeForce GTX 1650 4GB,操作系统为Windows10。软件环境为python 3.6.5,tensorflow 2.2.0,pyts 0.11.0。此外,本研究设计的模型在训练集上共迭代100次,批次大小设为64,优化器为自适应矩估计,损失函数为交叉熵。

3.4.1 试验结果

本研究提出的入侵检测模型为二分类模型,模型在DoS攻击和fuzzy攻击图片数据集上的训练和测试曲线如图 10所示,由图中数据分析可见,模型在DoS攻击和fuzzy攻击图片数据集上均未出现过拟合现象。表4列出了CNN入侵检测模型的性能评估结果。

表4 CNN入侵检测模型的性能评估结果<br/>Table 4 Performance evaluation results for CNN intrusion detection model%

表4 CNN入侵检测模型的性能评估结果
Table 4 Performance evaluation results for CNN intrusion detection model%

图 10 模型在DoS攻击和fuzzy攻击图片数据集上的训练及验证曲线<br/>Fig.10 Training and validation curve of proposed model on image dataset for DoS attack and fuzzy attack

图 10 模型在DoS攻击和fuzzy攻击图片数据集上的训练及验证曲线
Fig.10 Training and validation curve of proposed model on image dataset for DoS attack and fuzzy attack

3.4.2 模型对比

文献[10]利用简化的深度残差网络分别对DoS攻击数据集和fuzzy攻击数据集进行检测。为了更进一步评估模型对入侵行为的检测性能,将本文与文献[10]中的模型评估结果进行对比,结果见表5表6,从表中可以看出,GASF结合简化的VGG网络在检测车辆DoS攻击时达到100%的准确率,在fuzzy攻击方面检测精度也有所提高。

表5 模型在DoS攻击数据集上的准确度对比结果<br/>Table 5 Accuracy comparison of each model on DoS attack dataset%

表5 模型在DoS攻击数据集上的准确度对比结果
Table 5 Accuracy comparison of each model on DoS attack dataset%

表6 模型在fuzzy攻击数据集上的准确度对比结果<br/>Table 6 Accuracy comparison of each model on fuzzy attack dataset%

表6 模型在fuzzy攻击数据集上的准确度对比结果
Table 6 Accuracy comparison of each model on fuzzy attack dataset%

4 结 语

本研究分析了汽车CAN总线网络中存在的安全威胁,以及针对这些威胁提出的防御方法。通过对针对汽车攻击的数据集——HCRL数据集的研究,进一步分析了CAN ID的周期特征,将CAN ID序列利用GASF转换为图片,并设计简化的VGG网络模型对图片进行分类,进而检测出含有攻击帧的序列。试验结果表明,本研究提出的特征提取与转换及卷积神经网络模型对汽车的DoS攻击和fuzzy攻击具有较好的检测性能,能够有效降低误报率,提高检测精度,且与Song等[10]使用的模型相比,本研究提出的模型结构更加简单,参数更少。在接下来的研究中,我们将考虑重新设计数据集,使得连续两个样本之间有重叠的部分,以增加训练样本的数量,同时设计更优的网络架构,进一步提高模型的检测性能。

参考文献