一种车载CAN总线的异常检测方法与流程

文档序号:18985513发布日期:2019-10-29 04:20阅读:244来源:国知局
一种车载CAN总线的异常检测方法与流程
本发明属于信息安全
技术领域
,更具体地说,本发明涉及一种车载can总线的异常检测方法。
背景技术
:随着汽车智能化、网联化的发展,智能网联汽车成为汽车信息化的发展方向。近年来针对汽车的信息安全事件频发,网联汽车信息安全问题凸显,研究网联汽车及车载网络系统信息安全问题迫在眉睫。can总线是目前使用最广泛的车载总线网络技术,随着汽车信息安全问题的出现,恶意攻击通过外部接口直接渗透到车载can总线网络,严重危害驾乘者人身和财产安全。can总线缺乏基本的信息安全机制,研究车载can总线网络的信息安全问题及适合can总线的异常检测技术具有十分重要的意义。技术实现要素:本发明的目的在于,为了解决上述can总线网络在汽车驾驶中缺乏信息安全保障的问题,提出了一种车载can总线的异常检测方法。具体地说,本发明是采用以下技术方案来实现的:一种车载can总线的异常检测方法,其检测模型包括数据报文收集、数据预处理、svm训练、数据监测、数据处理、数据响应六个模块。整个的工作过程分为两个阶段:训练阶段和检测阶段。所述的异常检测方法包括以下步骤:1)首先,收集车载can总线中的数据报文信息,其中can总线的报文数据位包含有8个字节,由于can总线报文的每一个数据位都代表着不同的功能指令,所以对于其每一个字节都要进行检测。一个总线报文分为8个特征,针对每一类canid报文都要进行异常检测,又总线当中的报文可能不是标准的数据帧格式,所以对于缺位的部分可以以00作为补充位,之后将十六进制的报文数据转换成十进制的数据。8个特征的报文数据如表1所示,转换为十进制的表示如表2所示。表1:id为0x113的报文表2:将id为0x113的十六进制的报文转换为十进制iddata(十六进制)data(十进制)00x1136d1f......ff631310931………255991910x1135c1f......ff63139231………255991920x113801f......ff631312831………255991930x1137b1f......ff631312331………25599192)其次,将数据进行预处理:按照can总线报文不同的数据标识,对报文进行分类,将同一种数据标识的报文数据,输入到svm系统中,作为输入向量xi,带入分类面方程:wxi+b=0中,得到分类面标准。其中(i=0,1,...,8),w为权重向量,其值可以调节;b为偏置。例如报文0x1136d1f881242ff6313,这是数据标识为0x113的其中一个报文,收集全部的数据标识为0x113的报文,对其数据位进行训练。3)然后,混入异常样本:在此,本发明采用随机数的方式生成异常报文。相同id的报文有8种属性,每一种属性0~255随机赋值即可得到异常的报文。选取异常样本,将其与正常样本随机混合,作为测试用例,再次输入到svm系统中进行训练,得到异常检测的指标。下表为异常报文的生成。表3:生成异常报文iddata(十进制,正常报文)data(十进制,异常报文)00x11310931………25599198825………230793010x1139231………255991912030………31526320x11312831………255991915599………253771630x11312331………25599192846………98108364)最后,通过该指标与2)中得到的检测标准进行比较,判断车载can总线是否发生异常,如果低于阈值,则判定有异常发生,如果发生异常则做出响应。然后统计出检测到的异常报文数量,计算出异常检测的检测率。进一步,训练阶段和检测阶段用到两种支持向量机的分类算法,包括线性支持向量机和非线性支持向量机;在训练阶段,根据已知的正常审计数据和异常审计数据按照公式来训练支持向量机,并根据公式和式yi(w·xi+b)=1得到支持向量和相应的参数;在检测阶段,预处理器先将未知状态的审计数据处理成数字向量的形式,然后通过支持向量机分类器,根据判决函数式对这些数字向量进行分类,并将分类结果提交给决策系统作出后的判断。上述公式中,xi为输入向量,w为每个样本的权重;b为截距;yi为第i个样本分类标识号;α为拉格朗日乘子;yj为第j个样本分类标识号;αi为第i个样本的拉格朗日乘子;αj为第j个样本的拉格朗日乘子;k(xi,xj)为核函数;sgn()为返回一个整型变量;w(a)为超平面的距离;f(x)为决策函数。进一步,训练阶段用到两种支持向量机的分类算法,包括线性支持向量机和非线性支持向量机。进一步,所述的一个总线报文中8个特征,其正常样本记作1,异常样本记作0。训练样本(xi,yi),其中xi为输入的样本(i=0,1,...,8),yi是分类标识号,可以定义为yi∈(1,0),将其带入分类面方程:wxi+b=0。进一步,所述的检测标准是通过最优分类解,得到分类阈值标准。经过大量的数据学习训练,最终找到最佳阈值作为数据检测的标准,对车载can总线报文信息进行检测。进一步,寻找最优分类解的算法步骤如下:(1)收集正常数据样本与异常数据样本,正常数据是从车载can总线上采集的真实数据,不存在异常的报文;异常数据是采用随机数的方式生成的异常报文,即对每一种数据位从0~255随机赋值得到的异常报文。并对正常报文和异常报文添加分类识别号,正常报文的分类标识号为1,异常报文的分类标识号为0;(2)将训练样本(xi,yi)作为输入,带入分类面方程:wxi+b=0中,得到最佳分类面标准,其中xi为输入的样本(i=0,1,...,8),yi是分类标识号,可以定义为yi∈(1,0);(3)对总线中的数据进行检测,根据阈值标准,将正常数据与异常数据进行分类,如果低于阈值,则判断为异常数据。(4)针对分类的结果,重复步骤1~3,更新分类阈值标准,最终近似达到最优分类解。进一步,整个系统的工作过程分为两个阶段:训练阶段和检测阶段。在训练阶段,根据已知的正常审计数据和异常审计数据按照公式(11)来训练支持向量机,并根据公式(6)和式(7)得到支持向量和相应的参数。在检测阶段,预处理器先将未知状态的审计数据处理成数字向量的形式,然后通过支持向量机分类器,根据判决函数式(12)对这些数字向量进行分类,并将分类结果提交给决策系统作出后的判断。综上所述本发明的优点和积极效果如下:采用随机数的方式生成异常报文。相同id的报文有8种属性,每一种属性0-255随机赋值即可得到异常的报文。选取正常的样本can报文相同id的数据400条作为训练的样本,得到检测标准。去异常样本200条与正常样本200随机混合作为测试用例,注入svm系统中,得到如表1所示。表1异常检测结果can报文数异常报文数检测出的异常报文数检测率40020018793.5%本发明具有以下技术效果:本发明针对车载can总线的报文数据位,提出了一种车载can总线的异常检测方法。根据数据位的特点,将车载can总线报文数据位划分为8个特征,分别代表不同的指令含义,携带着重要的控制信息,对数据位的异常检测尤其重要。can报文数据的异常检测可以看成是机器学习中二分类问题,正常数据和异常数据。支持向量机的方法可以通过有限的训练样本得到误差较小的分类,分类精确度较高。本发明采用支持向量机(svm)的方法实现车载can总线的异常检测。本发明所采用的检测方法除了精度高,泛化能力强之外;还具有以下优点:在所用算法之前将一个总线报文分为8个特征,针对每一类canid报文都要进行异常检测,又总线当中的报文可能不是标准的数据帧格式,所以对于缺位的部分可以以00作为补充位,之后将十六进制的报文数据转换成十进制的数据,提高了对异常报文的检测的全面性,且针对性更强;通过寻找最优分类解的算法提高分类精度的同时,将训练阶段和检测阶段分别使用线性支持向量机和非线性支持向量机,在判断车载can总线是否发生异常的过程中响应速度更快,实时性控制非常好,能够提高车载总线网络的安全,有力的保障了驾乘者的人身和财产安全。附图说明图1为本发明的异常检测模型示意图。图2为本发明的svm体系结构示意图。具体实施方式下面参照附图并结合实例对本发明进一步详细描述。本发明针对车载can总线的报文数据位,提出了一种车载can总线的异常检测方法。根据数据位的特点,将车载can总线报文数据位划分为8个特征,分别代表不同的指令含义,携带着重要的控制信息,对数据位的异常检测尤其重要。can报文数据的异常检测可以看成是机器学习中二分类问题,正常数据和异常数据。支持向量机的方法可以通过有限的训练样本得到误差较小的分类,分类精确度较高。本发明采用支持向量机(svm)的方法实现车载can总线的异常检测。本发明可采用以下过程进行具体实施:1、检测模型包括数据报文收集、数据预处理、svm训练、数据监测、数据处理、数据响应六个模块。整个的工作过程分为两个阶段:训练阶段和检测阶段。其检测模型如图1所示。2、异常检测模型包括以下步骤:1)首先,收集车载can总线中的数据报文信息,其中can总线的报文数据位包含有8个字节,由于can总线报文的每一个数据位都代表着不同的功能指令,所以对于其每一个字节都要进行检测。一个总线报文分为8个特征,针对每一类canid报文都要进行异常检测,又总线当中的报文可能不是标准的数据帧格式,所以对于缺位的部分可以以00作为补充位,之后将十六进制的报文数据转换成十进制的数据。8个特征的报文数据如表1所示,转换为十进制的表示如表2所示。表1:id为0x113的报文iddata00x1136d1f………ff631310x1135c1f......ff631320x113801f......ff631330x1137b1f......ff6313表2:将id为0x113的十六进制的报文转换为十进制iddata(十六进制)data(十进制)00x1136d1f......ff631310931………255991910x1135c1f......ff63139231………255991920x113801f......ff631312831………255991930x1137b1f......ff631312331………25599192)其次,将数据进行预处理:按照can总线报文不同的数据标识,对报文进行分类,将同一种数据标识的报文数据,输入到svm系统中,作为输入向量xi,带入分类面方程:wxi+b=0中,得到分类面标准。其中(i=0,1,...,8),w为权重向量,其值可以调节;b为偏置。例如报文0x1136d1f881242ff6313,这是数据标识为0x113的其中一个报文,收集全部的数据标识为0x113的报文,对其数据位进行训练。3)然后,混入异常样本:在此,本发明采用随机数的方式生成异常报文。相同id的报文有8种属性,每一种属性0~255随机赋值即可得到异常的报文。选取异常样本,将其与正常样本随机混合,作为测试用例,再次输入到svm系统中进行训练,得到异常检测的指标。下表3为异常报文的生成。表3:生成异常报文iddata(十进制,正常报文)data(十进制,异常报文)00x11310931………25599198825………230793010x1139231………255991912030………31526320x11312831………255991915599………253771630x11312331………25599192846………98108364)最后,通过该指标与2)中得到的检测标准进行比较,判断车载can总线是否发生异常,如果低于阈值,则判定有异常发生,如果发生异常则做出响应。然后统计出检测到的异常报文数量,计算出异常检测的检测率。2、根据权利要求1所述的一种车载can总线的异常检测方法,其特征在于:训练阶段和检测阶段用到两种支持向量机的分类算法,包括线性支持向量机和非线性支持向量机;在训练阶段,根据已知的正常审计数据和异常审计数据按照公式来训练支持向量机,并根据公式和式yi(w·xi+b)=1得到支持向量和相应的参数;在检测阶段,预处理器先将未知状态的审计数据处理成数字向量的形式,然后通过支持向量机分类器,根据判决函数式对这些数字向量进行分类,并将分类结果提交给决策系统作出后的判断。4、一个总线报文中8个特征,其正常样本记作1,异常样本记作0。训练样本(xi,yi),其中xi为输入的样本(i=0,1,...,8),yi是分类标识号,可以定义为yi∈(1,0),将其带入分类面方程:wxi+b=0。5、检测标准是通过最优分类解,得到分类阈值标准。经过大量的数据学习训练,最终找到最佳阈值作为数据检测的标准,对车载can总线报文信息进行检测。6、所述的线性支持向量机原理如下:样本x为k维向量,在某区域内的l个样本所属类别为(x1,y1),...,(xl,yl)∈rk×{±1}。若超平面:w·x+b=0(1)能将样本分为两类,其中·表示向量的点积。最佳的超平面应使两类样本到超平面的距离最大。显然,公式(1)中的w和b乘系数以后仍能满足方程。不失一般性,对于所有的样本xi,式|w·xi+b|的最小值为1,则样本与此最佳超平面的最小距离为|w·xi+b|/||w||=1/||w||。最佳超平面应满足约束:yi[(w·xi)+b]≥1,i=1,...l(2)w和b的优化条件应该是使两类样本到超平面最小距离之和2/||w||最大。另外,考虑到可能存在一些样本不能被超平面正确分类,因此引入松弛变量:ξi≥0,i=1,...l(3)问题变成在公式(2)和公式(3)的条件下最小化其中c为一个正常数。上市的第1项使样本到超平面的距离尽量大,从而提高泛化能力;第2项则使误差尽量小。利用lagrange乘数法,可以把公式(4)变成其对偶形式,从而有以及这是一个典型的二次优化问题,已由高效的算法求解。可以证明,在此优化问题的解中有一部分αi不为0,它们所对应的训练样本完全确定了这个超平面,因此称其为支持向量。按照优化理论的kuhn-tucker定理,在鞍点,对偶变量与约束的乘积为0,从而求得超平面的另一个参数b满足:yi(w·xi+b)=1(7)对于未知属类的向量x,可以采用线性判决函数f(x)=sgn(w·x+b)(8)来判定其所属类别,得到:7、所述的非线性支持向量机原理如下:用非线性映射把输入空间映射到某一特征空间,对于输入空间的所有xi,xj,函数k(xi,xj)满足条件k(xi,xj)=φ(xi)·φ(xj)(10)则称k(xi,xj)为核函数,φ(x)为输入空间到特征空间的映射函数。考虑到svm的对偶问题:构造非线性支持向量机的决策函数:8、寻找最优分类解的算法步骤如下:(1)收集正常数据样本与异常数据样本,正常数据是从车载can总线上采集的真实数据,不存在异常的报文;异常数据是采用随机数的方式生成的异常报文,即对每一种数据位从0~255随机赋值得到的异常报文。并对正常报文和异常报文添加分类识别号,正常报文的分类标识号为1,异常报文的分类标识号为0;(2)将训练样本(xi,yi)作为输入,带入分类面方程:wxi+b=0中,得到最佳分类面标准,其中xi为输入的样本(i=0,1,...,8),yi是分类标识号,可以定义为yi∈(1,0);(3)对总线中的数据进行检测,根据阈值标准,将正常数据与异常数据进行分类,如果低于阈值,则判断为异常数据。(4)针对分类的结果,重复步骤1~3,更新分类阈值标准,最终近似达到最优分类解。9、整个系统的工作过程分为两个阶段:训练阶段和检测阶段。在训练阶段,根据已知的正常审计数据和异常审计数据按照公式(11)来训练支持向量机,并根据公式(6)和式(7)得到支持向量和相应的参数。在检测阶段,预处理器先将未知状态的审计数据处理成数字向量的形式,然后通过支持向量机分类器,根据判决函数式(12)对这些数字向量进行分类,并将分类结果提交给决策系统做出后的判断。下面结合实验数据对本发明作进一步描述。采用随机数的方式生成异常报文。相同id的报文有8种属性,每一种属性0-255随机赋值即可得到异常的报文。选取正常的样本can报文相同id的数据400条作为训练的样本,得到检测标准。去异常样本200条与正常样本200随机混合作为测试用例,注入svm系统中,得到如表1所示。表1异常检测结果can报文数异常报文数检测出的异常报文数检测率40020018793.5%虽然本发明已以较佳实施例公开如上,但实施例并不是用来限定本发明的。在不脱离本发明的原理和宗旨的情况下,所做的任何等效变化或润饰,同样属于本发明的保护范围。因此本发明的保护范围应当以本申请的权利要求所界定的内容为标准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1