一种基于神经网络的车载CAN网络入侵检测方法及系统
技术领域
本发明属于计算机、信息安全技术领域,尤其涉及一种基于神经网络的车载CAN网络入侵检测方法及系统。
背景技术
目前,业内常用的现有技术是这样的:
利用车载网络CAN数据包的关联性进行检测,没有利用遗传算法改进的神经网络进行检测,检测效果误差较多,容易误报,并且没有利用车载网络CAN数据包发送频率进行检测。
车载网络由电子控制单元(ECU)和总线组成。集自动化控制、通信、计算机等为一体。近年来车联网、智能汽车、无人驾驶、智能交通等概念的提出,使得外部网络与汽车的信息交互越来越频繁。因此车载网络信息安全需要防护来自外部的安全威胁和车载网络内部的安全问题。
综上所述,现有技术存在的问题是:
(1)现有技术适应性弱,计算量相对较大,契合车载CAN网络计算量大,同时不能适应汽车驾驶环境复杂。
(2)利用车载网络CAN数据包的关联性进行检测,普适度较差,容易产生误报。
(3)利用车载网络CAN数据包发送频率进行检测,如果不经过PCA降维,计算量很大,且容易导致非关键成分的影响度减弱,误报率较高。
(4)现有技术无法杜绝所有黑客的攻击行为。
解决上述技术问题的难度和意义:
通过神经网络两种检测,即CAN数据包相关度检测和基于PCA降维的CAN数据包发送率的检测,可以杜绝所有可能的黑客攻击行为,同时减少计算量,保证异常行为检测的准确率,可以适应所有的乘用车。
发明内容
针对现有技术存在的问题,本发明提供了一种基于神经网络的车载CAN网络入侵检测方法及系统。
本发明是这样实现的,一种基于神经网络的车载CAN网络入侵检测方法,包括:
以各种CAN网络数据包的发送频率作为BP神经网络的输入,使用主成分分析法PCA对数据进行降维,检测各种CAN数据包的发送频率,应对拒绝服务攻击、重放攻击、注入攻击的黑客行为;
使用遗传算法优化BP神经网络,如发动机转速、进气量、车速、节气门具有相关性的数据作为BP神经网络的输入;实时检测发动机转速、进气量、车速、节气门具有相关性数据的正确性;应对篡改攻击、中间人攻击黑客行为;
当检测各种CAN数据包发送频率或者检测如发动机转速、进气量、车速、节气门等具有相关性数据中,只要有一个输出为异常结果(发动机转速、进气量、车速、节气门中的一个数据输出为异常结果),就判定当前网络存在异常并给予报警提示。
进一步说明,主成分分析法PCA对所检测的数据包进行降维,然后在此基础上进行数据包发送频率的检测;
(1)PCA降维具体方法包括:
①假设原始数据集X有M个样本,每个样本的维度为n;
X={X1,…,XM}
Xi=(xi1,…,xin)∈Rn i=1,…,M;
将这些样本,构成矩阵形式,每一行表示一个样本,每一列表示一个维度,得到一个M×n的样本矩阵S,S∈RM×n;
②将样本中心化,将矩阵S的每一行进行零均值化,减去这行的均值,如第i行的均值为:
③求矩阵S的协方差:
④通过
的公式计算协方差矩阵Y的各特征值λ和对应的特征向量α
ii=1,...,n;其中λ从小到大顺序排列;
λ(I-Y)α=0;
⑤计算主成分贡献率及累计贡献率:
主成分计算公式为:
Zi=α×SM×ni=(1,...,n);
Zi的共享率为:
主成分的累计贡献率为:
其中K为所选取的维度;
⑥选取参数k得到降维后的主成分Z1,Z2,...,Zk,为分析对象由n维降为k维;其中k≤n;
利用PCA算法根据需求提取关键性的主元,忽略去次要的信息,达到降维和简化基于车载CAN网络数据包发送频率检测的神经网络入侵检测模型的同时,保持数据的完整性;
(2)经过PCA算法降维后,利用BP神经网络检测算法对发送数据包频率检测,具体包括:
BP神经网络采用梯度下降算法,包括正向传播和反向传播,在正向传播过程中,当前神经元的输出只受上层神经元的输出的影响;反向传播过程发生在实际输出与期望输出不相等时,将误差信号沿原路径返回并对网络权值和阈值进行梯度修正,直到误差信号最小;
在正向传递过程中各神经元的输出为:
其中
为节点i和节点
之间的权值,b
j为节点
的阀值,
为节点
的输出;h为激活函数,选取S型函数或者线性函数;
在反向传递过程中误差函数为:
其中
为实际输出,
为目标输出,w为网络权重矩阵,b为阀值矩阵;
权重和阀值更新函数为:
其中η1和η2为学习效率η1>0,η2>0。
传统的BP神经网络可以理解为是一种简单的静态寻优算法,因而在网络权重修正并不会考虑以前的经验,而只是考虑当前的网络误差梯度。因此在网络训练时容易陷入局部最小值、存在网络收敛速度慢、难以确定隐藏数和隐藏层节点数等问题。
为了解决这些问题在传统BP神经网络中的权值修正时引入附加动量因子,这是为了让网络在考虑误差梯度的同时考虑误差曲面上变化趋势的所造成影响。这样可以有效的避免网络陷入局部最优解当中,带有动量因子的阈值和权值调节公式为:
w(k+1)=w(k)+a[(1-η)D(k)+ηD(k-1)],
其中w(k)表示权值或权值向量;D(k)为k时刻的负梯度;a为学习效率,a>0;η为动量因子,0≤η≤1;
当动量因子η为0时,BP神经网络权值的变化为传统反向传播算法产生的变化;当动量因子η为1时,BP神经网络的权值变化等于上一次权值的变化;
进一步,检测的各种CAN数据包发送频率的方法,进一步包括:
在CAN网络协议中,各种类型的CAN数据包通过CAN ID区分;将所采集的CAN数据包以1秒为单位统计在当前发动机转速下各种CAN数据包的出现频率,得到数据集M,M中包含发动转速和各种CAN数据包的发送频率;
将数据M分成数据集L、U,其中L作为神经网络的训练数据集,U作为神经网络的测试数据集;
由于CAN网络数据包类型众多,将所有数据作为神经网络的输入将影响网络的收敛速度。利用PCA算法将数据集L、U降维至某个确定特征维数K得到处理后的数据集得到L’和U’;
将数据集L’输入到改进的神经算法BP神经网络中进行BP模型训练;
使用数据集U’对检测模型进行验证。
进一步,使用遗传算法优化后的RBF神经网络进行车载CAN数据关联性检测方法为:
(1)种群初始化,对种群中个体采用实数编码,每个个体均表示为一个实数串,搜索实数串由RBF网络的输入层与输出层的连接权值、隐藏层阈值、隐藏层与输出层的连接权值以及输出层的权值和阈值组成;确定的个体为RBF网络的全部初始权值和阈值;
(2)适应度函数,当个体得到RBF网络的全部初始权值和阈值,用训练样本训练RBF网络后再预测输出;把预测输出与期望输出间的误差绝对值和作为个体适应度值;
(3)选择操作,遗传算法中的选择轮盘赌法,每个个体i的选择概率为
Fi表示个体i的适应度值,在个体选择前对适应度值Fi为求倒数;k为系数,N为种群规模。
交叉操作。这里的交叉操作也是采用实数交叉法。例如第k个染色体αk和第l个染色体αl在j位置上的交叉操作:
b是[0.1]间的任意数。
变异操作。对个体i的第j个基因αij进行变异,变异操作:
其中αmax与αmin分别为基因的上下界;r2为一个常数;Gmax是最大进化次数;r是[0-1]间的任意数。
车载网络数据关联性检测算法进一步说明,具体包括:
设车载网相关数据集U包含n个特征向量即:
X=(x1,x2,...,xn)X∈U;
计算X的各个特征向量的协方差矩阵,获取正相关参数组成新向量X′=(x1,x2,...,xm)由X′组成新数据集U′,m≤n;
将Y输入GA-RBF神经网络得到xi’i=(1,2,...,m);
Y={X′-xi};
计算所有参数误差和:
当ΔE>δ时当前检测数据为异常数据,ΔE≤δ时当前检测数据为正常数据;其中δ为自定义异常因子。
本发明另一目的在于提供一种实现所述基于神经网络的车载CAN网络入侵检测方法的计算机程序。
本发明另一目的在于提供一种实现所述基于神经网络的车载CAN网络入侵检测方法的信息数据处理终端。
本发明另一目的在于提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行所述的基于神经网络的车载CAN网络入侵检测方法。
本发明另一目的在于提供一种实现所述基于神经网络的车载CAN网络入侵检测方法的基于神经网络的车载CAN网络入侵检测系统,包括:
车载CAN网络数据包发送频率检测模块,以各种CAN网络数据包的发送频率作为BP神经网络的输入;使用主成分分析法PCA对数据进行降维,检测各种CAN数据包的发送频率;应对拒绝服务攻击、重放攻击、注入攻击黑客行为;
车载CAN数据包相关性检测模块,使用遗传算法优化BP神经网络,以发动机转速、进气量、车速、节气门具有一定相关性的数据作为神经网络的输入;实时检测这些数据的正确性;应对篡改攻击、中间人攻击黑客行为。
综上所述,本发明的优点及积极效果为:
利用实验室仿真,表1、2、3、4列出了在相同实验数据下PAC-BP神经网络算法、经典BP神经网络算法针对重放攻击、注入攻击、拒绝服务攻击的检测情况。其中经典BP神经网络和PCA-BP神经网络算法隐藏神经元数目取60,隐藏层层数为3。而表4则列出了在相同实验数据下GA-RBF神经网络算法和经典RBF神经网络算法针对篡改攻击检测率情况。其中自定义异常因子δ为(-0.03,0.03)
表1重放攻击检测比较
通过对表1的数据进行分析可以知道传统BP神经网络耗时为3270秒,学习次数为8000,准确率为0.8969,而PCA-BP网络耗时为2134秒,学习次数为5000,准确率为0.9387。因而PCA-BP神经网络相对于传统的BP神经网络其网络收敛速度更快算法评价耗时更短准确率更高,具有明显的优势。
表2注入攻击检测比较
通过对表2的数据进行分析可以知道注入攻击检测过程中PCA-BP神经网络和PB神经网络的准确率分别为0.9571和0.9683差别不是很大。但在算法耗时和网络收敛速度上则PCA-BP神经网络明显优于BP神经网络。
表3拒绝服务攻击检测比较
通过对表3的数据进行分析可以知道相对于攻击模式较为简单的拒绝服务攻击,PCA-BP神经网络、BP神经网络都表现出较为满意的检测效果达到了百分之97以上。但在算法耗时上则PCA-BP神经网络则优于BP神经网络
表4篡改攻击检测比较
通过表4可以知道利用RBF神经网络对样本数据进行学习训练的时间为3270秒,算法迭代次数为8000次,预测准确率为89.69%,误差为10.31%.而经过遗传算法优化后的RBF神经网络,算法耗时为3134秒,学习次数为5000次,准确率为92.87%,误差为7.13%。可以看出本发明所提出的GA-RBF神经网与传统RBF网络神经网络在学习训练时间、收敛性和误差上都有明显改进。
本发明基于CAN数据包发送频率检测算法和CAN数据关联性检测算法,在车载网络检测重放攻击、注入攻击、拒绝服务攻击和篡改攻击方面具有明显的优势和应用价值。
本发明提供的基于神经网络的车载CAN网络入侵检测系统适应性强,计算量相对较小,契合车载CAN网络计算资源小,又同时能适应汽车驾驶环境复杂。
本发明BP神经网络权值的变化就是传统反向传播算法产生的变化。当动量因子η为1时,BP神经网络的权值变化等于上一次权值的变化,这样就忽略了梯度下降算法所产生的权值变化。这就类似于在权值修正时引入一个阻尼项,从而达到减少网络震荡,提升网络收敛速度的效果。
附图说明
图1是本发明实施例提供的基于神经网络的车载CAN网络入侵检测系统示意图。
图2是本发明实施例提供的PCA-BP神经网络结构图。
图3是本发明实施例提供的PB神经网络训练流程图。
图4是本发明实施例提供的数据包相关性检测流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
现有技术适应性弱,计算量相对较大,契合车载CAN网络计算量大,同时不能适应汽车驾驶环境复杂。
本发明实施例提供的基于神经网络的车载CAN网络入侵检测方法,包括:
以各种CAN网络数据包的发送频率作为BP神经网络的输入,使用主成分分析法PCA对数据进行降维,检测各种CAN数据包的发送频率,应对拒绝服务攻击、重放攻击、注入攻击等黑客行为;
使用遗传算法优化BP神经网络,以发动机转速、进气量、车速、节气门具有相关性的数据作为BP神经网络的输入;实时检测发动机转速、进气量、车速、节气门具有相关性数据的正确性;应对篡改攻击、中间人攻击等黑客行为;
当检测的各种CAN数据包发送频率、检测的发动机转速、进气量、车速、节气门具有相关性数据中,只要有一个输出为异常结果,判定当前网络存在异常并给予报警提示。
本发明实施例提供的基于神经网络的车载CAN网络入侵检测系统,包含车载CAN网络数据包发送频率检测和车载CAN网络数据包关联性检测两个模块。这两个模块以两个独立线程的形式对车载网络中的数据进行实时检测,只要有一个输出为异常结果,则判定当前网络存在异常并给予报警提示,如图1所示。
(1)车载CAN网络数据包发送频率检测模块。以各种CAN网络数据包的发送频率作为BP神经网络的输入。使用主成分分析法PCA(Principal Component Analysis)对数据进行降维,检测各种CAN数据包的发送频率。从而应对拒绝服务攻击、重放攻击、注入攻击等黑客行为。
(2)车载CAN数据包相关性检测模块。使用遗传算法(Genetic Algorithm)优化BP神经网络,以发动机转速、进气量、车速、节气门为例等具有一定相关性的数据作为神经网络的输入。实时检测这些数据的正确性。从而应对篡改攻击、中间人攻击等黑客行为。
互联网主机之间的通信频率通常取决于当前的使用人员,有着更多的不确定因素。然而车载ECU之间的通信更多的取决与当前的车身状态。例如发动机高速运行时,进行的是高频率的数据交互,每隔几毫秒就进行一次数据传输,而在低转速运行时,进行的是低频率的数据传输,每隔几十毫秒乃至几百毫秒才进行一次数据交互。
利用该数据发送频率特性,借助神经网络的非线性逼近可以实现对不同发动机转速下各个车载CAN数据包发送频率的实时监测。从而应对注入、重放、拒绝服务等车载网络攻击手段。
下面结合具体实施例对本发明作进一步描述。
PCA-BP神经网络设计,使用PCA算法对原始数据进行处理,去除掉重叠信息,再将处理后的结果送入BP神经网络中进行训练。过程如图2所示。
PCA的目的是对数据进行降维处理,同时它是无参数限制的。因而在PCA的计算过程中不需要人为的设定参数或是根据经验对计算进行干预,最后的结果只与数据相关,与用户是独立的。
PCA具体步骤如下:
(1)假设原始数据集X有M个样本,每个样本的维度为n。即:
X={X1,...,XM}
Xi=(xi1,…,xin)∈Rn i=1,…,M (1)
将这些样本,成矩阵形式,即每一行表示一个样本,每一列表示一个维度,得到一个M×n的样本矩阵S,S∈RM×n。
(2)将样本中心化,即将矩阵S的每一行进行零均值化,也就是减去这行的均值,如第i行的均值为:
(3)求矩阵S的协方差:
(4)通过(2)的公式计算协方差矩阵Y的各特征值λ(从小到大顺序排列)和对应的特征向量aii=1,...,n。
λ(I-Y)α=0 (3)
(5)计算主成分贡献率及累计贡献率:
主成分计算公式为:
Zi=α×SM×n i=(1,...,n) (4)
Zi的贡献率为:
主成分的累计贡献率为:
其中K为所选取的维度。
(6)这里选取参数k取得主成分Z1,Z2,...,Zk(k≤n),即为分析对象由n维降为k维。
BP神经网络采用梯度下降算法,它由正向传播和反向传播两个部分组成,在正向传播过程中,当前神经元的输出只受上层神经元的输出的影响。而反向传播过程则发生在实际输出与期望输出不相等时,将误差信号沿原路径返回并对网络权值和阈值进行梯度修正,直到误差信号最小。
在正向传递过程中各神经元的输出为:
其中
为节点i和节点
之间的权值,b
j为节点
的阀值,
为节点
的输出,h为激活函数,一般选取S型函数或者线性函数。
在反向传递过程中误差函数为:
其中
为实际输出,
为目标输出,w为网络权重矩阵,b为阀值矩阵。
权重和阀值更新函数为:
其中η1和η2为学习效率η1>0,η2>0。
传统的BP神经网络可以理解为是一种简单的静态寻优算法,因而在网络权重修正并不会考虑以前的经验,而只是考虑当前的网络误差梯度。因此在网络训练时容易陷入局部最小值、存在网络收敛速度慢、难以确定隐藏数和隐藏层节点数等问题。
为了解决这些问题在传统BP神经网络中的权值修正时引入附加动量因子,这是为了让网络在考虑误差梯度的同时考虑误差曲面上变化趋势的所造成影响。这样可以有效的避免网络陷入局部最优解当中,带有动量因子的阈值和权值调节公式为:
w(k+1)=w(k)+α[(1-η)D(k)+ηD(k-1)] (12)
其中w(k)表示权值或权值向量;D(k)为k时刻的负梯度;a为学习效率,α>0;η为动量因子,0≤η≤1。当动量因子η为0时,BP神经网络权值的变化就是传统反向传播算法产生的变化。当动量因子η为1时,BP神经网络的权值变化等于上一次权值的变化,这样就忽略了梯度下降算法所产生的权值变化。这就类似于在权值修正时引入一个阻尼项,从而达到减少网络震荡,提升网络收敛速度的效果。
BP神经网络是使用降维后的数据训练,从而达到分析目的。
车载CAN数据包发送频率检测算法描述如下:
在CAN网络协议中,各种类型的CAN数据包通过CAN ID来区分。将所采集的CAN数据包以1秒为单位统计在当前发动机转速下各种CAN数据包的出现频率,得到数据集M,M中包含发动转速和各种CAN数据包的发送频率。
将数据M分成数据集L、U,其中L作为神经网络的训练数据集,U作为神经网络的测试数据集。
由于CAN网络数据包类型众多,将所有数据作为神经网络的输入将影响网络的收敛速度。可以利用PCA算法将数据集L、U降维至某个确定特征维数K得到处理后的数据集得到L’和U’。
将数据集L’输入到改进的神经算法BP神经网络中进行检测模型训练。
使用数据集U’对检测模型进行验证。
算法流程图如图3所示。
车载CAN数据关联性检测:如图4.
经过分析可以将汽车CAN总线上的所传输的数据,根据其是否具有明显关联分为两种,具有明显关联的数据如发动机转速与车速(发动机转速越快,车速越快)。不具有明确关联的数据如刹车踏板状态与加速踏板位置等。
车载CAN数据包关联性检测所用的神经网络可以使用遗传算法优化后的RBF神经网络。方式如下:
(1)种群初始化。对种群中个体采用实数编码,那么每个个体均可表示为一个实数串,该实数串由RBF网络的输入层与输出层的连接权值、隐藏层阈值、隐藏层与输出层的连接权值以及输出层的权值和阈值组成。所以,确定了个体也就确定了RBF网络的全部初始权值和阈值。
(2)适应度函数。当个体得到RBF网络的全部初始权值和阈值,用训练样本训练RBF网络后再预测输出。把预测输出与期望输出间的误差绝对值和作为个体适应度值。
(3)选择操作。遗传算法中的选择操作有锦标赛法、轮盘赌法等多种方法,本发明选择轮盘赌法,即每个个体i的选择概率为
Fi表示个体i的适应度值,在个体选择前对适应度值Fi为求倒数,理论上Fi为值越小越好。k为系数,N为种群规模。
交叉操作。这里的交叉操作也是采用实数交叉法。例如第k个染色体αk和第l个染色体αl在j位置上的交叉操作:
b是[0.1]间的任意数。
变异操作。对个体i的第j个基因αij进行变异,变异操作:
其中αmax与αmin分别为基因的上下界;r2为一个常数;Gmax是最大进化次数;r是[0.1]间的任意数。
下面结合具体分析对本发明作进一步描述。
本发明实施例提供的车载网络数据关联性检测算法具体的描述如下:
设车载网相关数据集U包含n个特征向量即:
(1)设车载网相关数据集U包含n个特征向量即:
X=(x1,x2,...,xn)X∈U。
(2)计算X的各个特征向量的协方差矩阵,获取正相关参数组成新向量X′=(x1,x2,...,xm)由X′组成新数据集U′,m≤n。
(3)将Y输入GA-RBF神经网络得到xi’i=(1,2,...,m),检测模型如图4所示。
(4)
Y={X′-xi} (17)
(4)计算所有参数误差和:
当ΔE>δ时当前检测数据为异常数据,ΔE≤δ时当前检测数据为正常数据。其中δ为自定义异常因子。
下面结合实验对本发明作进一步描述。
利用实验室仿真,表1、2、3、4列出了在相同实验数据下PAC-BP神经网络算法、经典BP神经网络算法针对重放攻击、注入攻击、拒绝服务攻击的检测情况。其中经典BP神经网络和PCA-BP神经网络算法隐藏神经元数目取60,隐藏层层数为3。而表4则列出了在相同实验数据下GA-RBF神经网络算法和经典RBF神经网络算法针对篡改攻击检测率情况。其中自定义异常因子δ为(-0.03,0.03)
表1重放攻击检测比较
通过对表1的数据进行分析可以知道传统BP神经网络耗时为3270秒,学习次数为8000,准确率为0.8969,而PCA-BP网络耗时为2134秒,学习次数为5000,准确率为0.9387。因而PCA-BP神经网络相对于传统的BP神经网络其网络收敛速度更快算法评价耗时更短准确率更高,具有明显的优势。
表2注入攻击检测比较
通过对表2的数据进行分析可以知道注入攻击检测过程中PCA-BP神经网络和PB神经网络的准确率分别为0.9571和0.9683差别不是很大。但在算法耗时和网络收敛速度上则PCA-BP神经网络明显优于BP神经网络。
表3拒绝服务攻击检测比较
通过对表3的数据进行分析可以知道相对于攻击模式较为简单的拒绝服务攻击,PCA-BP神经网络、BP神经网络都表现出较为满意的检测效果达到了百分之97以上。但在算法耗时上则PCA-BP神经网络则优于BP神经网络
表4篡改攻击检测比较
通过表4可以知道利用RBF神经网络对样本数据进行学习训练的时间为3270秒,算法迭代次数为8000次,预测准确率为89.69%,误差为10.31%.而经过遗传算法优化后的RBF神经网络,算法耗时为3134秒,学习次数为5000次,准确率为92.87%,误差为7.13%。可以看出本文所提出的GA-RBF神经网与传统RBF网络神经网络在学习训练时间、收敛性和误差上都有明显改进。
综上所述基于CAN数据包发送频率检测算法和CAN数据关联性检测算法,在车载网络检测重放攻击、注入攻击、拒绝服务攻击和篡改攻击方面具有明显的优势和应用价值。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。