一种基于孤立森林的汽车CAN总线网络数据异常检测方法技术

技术编号:21917242 阅读:39 留言:0更新日期:2019-08-21 13:26
本申请提供一种汽车CAN总线网络数据异常检测方法,属于信息安全领域。首先基于训练集的子样本来建立孤立树,即对采集到的CAN数据集进行预处理,再对其进行抽样,采用随机超平面切割的方法构建包含有限个孤立树的随机森林,然后利用得到的孤立森林计算待检测数据的异常分数,来判定CAN数据有无异常。本发明专利技术所提出的基于孤立森林算法的汽车CAN数据异常检测模型,是一种无监督的数据异常检测模型,不仅能够快速地处理大量数据,而且能够适应汽车的各种运行工况,更好地满足汽车行驶稳定和安全的实际需求。

A Data Anomaly Detection Method for Automotive CAN Bus Network Based on Isolated Forest

【技术实现步骤摘要】
一种基于孤立森林的汽车CAN总线网络数据异常检测方法
本专利技术涉及网络入侵检测技术,具体涉及一种基于孤立森林的汽车CAN总线网络数据异常检测方法。
技术介绍
随着汽车技术的迅猛发展,未来汽车车载CAN总线安全逐渐成为信息安全领域关注的焦点。车联网的高速发展为用户带来了极大的舒适和便捷,但与此同时,信息安全问题也逐渐潜伏和集聚,各类汽车信息安全事件频发。传统汽车的CAN总线容易受到攻击,导致驾驶员失去对汽车的控制权,而汽车由于其驾驶环境的特殊性,在受到网络攻击时更易造成较大的生命和财产损失。攻击者往往通过无线或有线入侵取得车载系统或ECU的控制权,再通过车载系统和CAN总线通信,读取车辆信息,发送恶意报文。CAN总线安全成为车联网安全的最后也是最重要的一道防线。因此,需要有效的方法检测CAN总线数据是否异常。在之前对于传统汽车的CAN总线数据进行异常检测的机器学习方法主要是监督学习算法,对大量数据进行学习并给出正常或异常的标签,然后对正常的数据构建一个模型,检测时不符合这个模型的数据就认为是异常数据,比如常用的统计方法,基于分类的方法和基于聚类的方法,这些传统算法通常致力于优化正常的样本模型,而忽略更新异常样本的描述,这样就有可能造成大量的误报,或者不能检测到所有的异常。在异常检测过程中,异常的数据往往只占很少的比例,目前大量使用的基于白名单的异常检测方法主要是建立合法的ID列表,但对正常数据的学习会消耗大量的精力和成本,而且对于实时变化和新产生的入侵行为,不具有较好的检测性能,造成漏报和误报。此外,基于周期的异常检测方法针对CAN总线系统中的周期数据设置一个发送周期的阈值T。如果发送周期小于T,则总线可能遭注入攻击。该方法中的T为经验值,该值过大或过小分别可能产生漏报或误报。该方案实时性好,并且对部分攻击的检测非常有效。然而,该方案无法检测周期数据阻塞或丢弃,对于非周期数据也不具备任何检测能力。另外,一种基于车辆状态的异常检测方法通过判断总线上传输的数据是否符合汽车当前状态来判断是否有数据异常,但是该方法实时性不强,容易受到内存大小和CAN总线的数据节点复杂度影响。
技术实现思路
本专利技术提出了一种基于孤立森林的汽车CAN总线网络数据异常检测方法。该方法首先对采集到的CAN数据进行预处理,将具有相同ID的数据分类,然后基于训练集的子样本建立孤立树,即对按ID分类好的CAN数据训练集进行子采样,采用随机超平面切割的方法构建包含t棵孤立树的孤立森林,然后利用得到的孤立森林计算待检测数据的异常分数,来判定CAN数据有无异常。本方法提出的是一种无监督的数据异常检测模型,具有快速处理大量数据的优点,能够适应训练样本较少的情况。本专利技术采用的方法主要是针对于汽车CAN总线网络数据的异常检测,包含以下步骤:步骤1:对采集到的CAN数据进行预处理,将具有相同ID的数据分类,然后基于训练集的子样本建立孤立树,即对按ID分类好的CAN数据训练集进行子采样,采用随机超平面切割的方法构建包含t棵孤立树的孤立森林;步骤2:对于一个待测数据,令其遍历每一棵孤立树,然后计算该数据最终的平均路径长度,并计算待检测数据的异常分数;步骤3:设置异常分数阈值,根据异常分数大小判定CAN数据有无异常。上述步骤1中构建孤立森林的方法包括以下步骤:S11,对采集到的CAN数据进行预处理,将具有相同ID的数据分类;S12,从训练集中进行采样,并根据算法构建孤立树,孤立树的建立过程如下:S121,从训练数据点随机抽取ψ个子样本,放入树的根节点;S122,随机指定一个特征维度,并在当前特征的所有范围内随机生成一个值p,p是在该特征范围的最大值和最小值之间随机产生的;S123,根据值p对样本进行二叉划分,指定维度中小于p的数据被放在当前节点的左侧子树(子节点)中,大于或等于p的数据被放在当前节点的右侧子树(子节点)中;S124,在生成的左右两侧子树(子节点)中,重复步骤S122和步骤S123对子节点进行更新,直到达到终止条件。终止条件有两个,一个是数据本身不可再分(只包含一个样本,或者全部样本相同);另一个是树的高度达到所限定的高度h。S13,构建t棵孤立树,搭建孤立森林模型。S124中树的限定高度h和子样本数量ψ的关系是h=ceiling(log2ψ)。上述步骤2中计算待检测数据的异常分数的方法是:S21,遍历孤立森林中的每颗孤立树,记录路径长度;S22,计算待测CAN数据每个样本的异常分数。异常分数需要规范化,其计算式是其中E(h(i))是待判断点i在孤立森林中的经过的平均路径长度,c(n)是孤立森林的平均路径长度。E(h(i))的值有三种情况:(a)E(h(i))→0时,s→1,此时被判定为异常;(b)E(h(i))→n-1时,s→0,此时被判定为正常;(c)E(h(i))→c(n)时,s→0.5,此时无法判定是否异常。其中,c(n)是平均路径长度,其取值由下式决定:其中,H(·)是调和数,可以被估计为ln(·)+ξ,ξ是欧拉常数,取为0.5772156649。异常分数的阈值根据得到的异常分数值进行选定。大于阈值则判定该数据为异常数据。相比其他已有的异常检测方法,本专利技术所采用的算法有以下特点:(1)具有线性时间复杂度,所以可以用在含有海量数据的数据集中。通常情况下,孤立树的数量越多,算法越稳定。而且由于每棵树都是互相独立生成的,因此可以部署在大规模分布式系统上来加速运算。但是树的深度不宜过大。(2)本方法适合应用于异常值“少且不同”的情况,即异常点的数目较少,且明显区别于正常数据,使切割孤立进程更加有效。过多的异常值会相应拉长孤立所需要的路径长度。(3)本方法适用于维度不太高的数据。由于每次切割数据空间都是随机选取一个维度,建完孤立树后仍然有大量的维度信息没有被使用,导致算法可靠性降低。另外,高维空间还可能存在大量噪音维度或无关维度,影响孤立树的构建。本专利技术提出的方法是无监督学习算法,不需要特定的数学模型,也不需要大量的样本学习进行标记,效率更高。附图说明图1为基于孤立森林的汽车CAN总线网络数据异常检测方法的流程图。图2为正常点和异常点在孤立过程中的示意图;其中,a图为正常点在孤立划分后的示意图,b图为异常点在孤立划分后的示意图。图3为采集到的CAN数据表示意图,包括帧ID和8个字节的CAN报文数据。图4为异常得分s和待检测点x在孤立森林中的经过的平均路径长度E(h(i))的关系图。图5是一个设置异常分数阈值的实例图。具体实施方式下面将结合附图和实施例对本专利技术作进一步的详细说明。如图2所示,为正常点和异常点在孤立过程中的示意图,b图为异常点在孤立划分后的示意图,可以看到由于异常点与正常点有明显区别,因此在较小的孤立次数后,就可以被找到,与正常数据分开;而a图正常点由于分布密集,在较多次的孤立后才可被分出,或者在达到高度限制时仍未被分出。一般情况下,正常点的平均分割次数远多于异常点。图1所示为本专利技术采用算法的流程图。基于孤立森林的汽车CAN总线网络数据异常检测方法有以下步骤:步骤1:对采集到的CAN数据进行预处理,将具有相同ID的数据分类,然后基于训练集的子样本建立孤立树,即对按ID分类好的CAN数据训练集进行子采样,采用随机超平面切割的方法本文档来自技高网
...

【技术保护点】
1.一种基于孤立森林的汽车CAN总线网络数据异常检测方法,其特征在于,包含以下步骤:步骤1:对采集到的CAN数据进行预处理,将具有相同ID的数据分类,然后基于训练集的子样本建立孤立树,即对按ID分类好的CAN数据训练集进行子采样,采用随机超平面切割的方法构建包含t棵孤立树的孤立森林;步骤2:对于一个待测数据,令其遍历每一棵孤立树,然后计算该数据最终的平均路径长度,并计算待检测数据的异常分数;步骤3:设置异常分数阈值,根据异常分数大小判定CAN数据有无异常。

【技术特征摘要】
1.一种基于孤立森林的汽车CAN总线网络数据异常检测方法,其特征在于,包含以下步骤:步骤1:对采集到的CAN数据进行预处理,将具有相同ID的数据分类,然后基于训练集的子样本建立孤立树,即对按ID分类好的CAN数据训练集进行子采样,采用随机超平面切割的方法构建包含t棵孤立树的孤立森林;步骤2:对于一个待测数据,令其遍历每一棵孤立树,然后计算该数据最终的平均路径长度,并计算待检测数据的异常分数;步骤3:设置异常分数阈值,根据异常分数大小判定CAN数据有无异常。2.根据权利要求1所述的方法,其特征在于,所述的步骤1中构建孤立森林的方法包括以下步骤:S11,对采集到的CAN数据进行预处理,将具有相同ID的数据分类;S12,从训练集中进行采样,并根据算法构建孤立树,孤立树的建立过程如下:S121,从训练数据点随机抽取ψ个子样本,放入树的根节点;S122,随机指定一个特征维度,并在当前特征的所有范围内随机生成一个值p,p是在该特征范围的最大值和最小值之间随机产生的;S123,根据值p对样本进行二叉划分,指定维度中小于p的数据被放在当前节点的左侧子树即子节点中,大于或等于p的数据被放在当前节点的右侧子树即子节点中;S124,在生成的左右两侧子树中,重复步骤S122和步骤S123对子节点进行更新,直到达到终止条件,终止条件有两个,一个是只包含一个样本,或者全部样本相同时数据本身不可再分;另一个是树的高度达...

【专利技术属性】
技术研发人员:田大新闫慧文段续庭王丛毓周建山刘赫拱印生
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1