一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种车辆总线的入侵检测系统及方法与流程

2021-11-05 21:44:00 来源:中国专利 TAG:


1.本发明涉及车载网络的入侵检测技术领域,尤其涉及一种车辆总线的入侵检测系统及方法。


背景技术:

2.随着互联网技术的发展,伴随人们对工作及生活方便化、快捷化、高效化的追求,汽车产业朝着智能化、网联化发展的趋势愈发显著,智能网联车的时代已经到来。智能网联车通过与无线通信与网络技术的结合,便利了我们的生活,但是随之也带来了巨大的安全威胁。智能网联车打破了传统燃油汽车作为一个独立封闭个体的物理保护机制,为信息窃取、病毒植入等各种黑客手段提供了攻击入口和载体。
3.汽车上的各个执行机构由电子控制单元(electronic control unit,ecu)控制,各个ecu通过控制器局域网(control area network,can)总线进行通信。虽然can总线具有突出的可靠性、实时性,并且低成本,但是它也存在着广播传输、无认证机制、无加密机制、仲裁响应机制等固有的安全漏洞。
4.专利申请cn108989319a公开了一种基于can总线的车辆入侵检测方法及车辆入侵检测装置。所述方法包括:获取控制器局域网络can总线上传输的与车辆在当前第一预设时段内的状态相关联的至少一参数以及所述当前第一预设时段内所述车辆的环境信息;根据所述环境信息确定所述至少一参数在所述当前第一预设时段内对应的约束条件;根据所述至少一参数以及所述至少一参数在所述当前第一预设时段内对应的约束条件,确定所述当前第一预设时段内是否发生入侵事件。该方法的前提是必须从大量报文中提取关键参数,在实际车辆上,即便是小型轿车平均每秒也会产生三四百条报文。这些报文的内部包含着各式各样的参数信息,很难分离出关键参数。
5.专利申请cn104320295b通过调用检测函数来判断can帧的异常。检测函数包括对can帧标识符(identifier,id)的检测、对统计特性的检测、对语义范围的检测、对语义相关性的检测。该专利所述方法应用的前提是必须充分了解车辆的can通信矩阵,即了解车辆中总共有哪些can标识符,以及每个can标识符数据域里每一位代表的物理信息,但是大部分车场基于安全和自身利益的角度,并不会公开自己的can通信矩阵。
6.因此,本领域的技术人员致力于开发一种新的车辆总线的入侵检测系统及方法,无需从大量报文中提取关键参数,也无需知道车辆的通讯矩阵,在不涉及主机厂的商密信息的情况下,即可实现对车辆是否受到外部攻击的检测。


技术实现要素:

7.有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是如何在无需知道车辆的通讯矩阵,也不涉及主机厂的商密信息的情况下,实现对车辆是否受到外部攻击的检测。
8.为实现上述目的,本发明提供了一种基于对抗生成神经网络的车辆入侵检测系统及方法,用于识别具有复杂关系的攻击序列的攻击,主要通过对车载can报文的采集和分
析,识别是否存在针对车辆的攻击,从而实现异常和入侵检测。该方法通过接入车辆obdii接口,获取车辆的实时can帧并识别can帧类型,根据所属帧类型,校验该帧的格式,若帧格式错误,则丢弃该帧并报警。对帧格式正确的远程帧和数据帧进行crc码校验,若crc码错误,则丢弃该帧并报警。若crc码校验正确,则将该帧与其相邻的共64条帧依序组成can帧时序流输入到对抗生成神经网络中进行异常检测,第一个识别器检查该段时序内车辆是否遭受已在攻击库里的攻击报文攻击,第二个识别器检查车辆是否遭受不在已知攻击库里的未知攻击入侵,若受到攻击就报警。
9.为实现上述目的,本发明提供了一种车辆总线的入侵检测系统,用于识别具有复杂关系的攻击序列的攻击,包括:
10.can帧识别模块,所述can帧识别模块获取can报文并将所述can报文的can帧分成四类,分别为过载帧、错误帧、远程帧和数据帧;
11.帧格式检验模块,所述帧格式检验模块连接所述can帧识别模块,对所述过载帧、所述错误帧、所述远程帧和所述数据帧进行格式检验,若任何帧有格式错误则丢弃该帧并报警;
12.crc检验模块,所述crc检验模块连接所述帧格式检验模块,对所述远程帧和所述数据帧的crc码进行校验,若所述crc码错误则丢弃该帧并报警;
13.对抗生成神经网络检测模块,所述对抗生成神经网络检测模块连接所述crc检验模块,所述对抗生成神经网络检测模块内置对抗生成神经网络模型,所述对抗生成神经网络模型接收所述crc检验模块传递过来的所述can报文,判别车辆是否遭受异常入侵,并生成判别结果。
14.进一步地,所述对抗生成神经网络模型包括一个生成器和两个识别器,所述两个识别器分别为第一识别器和第二识别器;
15.所述第一识别器判断所述can报文是否遭受已知攻击,若遭受则将所述判别结果设置为遭受异常入侵;
16.所述第二识别器判断所述can报文是否遭受未知攻击,若遭受则将所述判别结果设置为遭受异常入侵;
17.所述已知攻击与所述未知攻击为预先设置。
18.进一步地,所述对抗生成神经网络模型在接收所述crc检验模块传递过来的所述can报文后,对所述can报文的每64条所述can帧组成的数据段进行异常检测。
19.进一步地,所述can帧识别模块是将can分析仪连接到所述车辆的obdii接口上获取车载网络上的所述所有can报文,并利用所述can分析仪对接收到的所述can帧进行分类。
20.进一步地,还包括结果输出模块,所述结果输出模块连接所述对抗生成神经网络检测模块,接收所述判别结果并输出。
21.本发明还提供了一种车辆总线的入侵检测方法,所述方法包括以下步骤:
22.步骤1、获取can报文并将所述can报文中的can帧进行分类;
23.步骤2、校验所述can帧的帧格式,若所述帧格式错误则丢弃该帧并报警;
24.步骤3、校验所述can帧的crc码,若所述crc码错误则丢弃该帧并报警;
25.步骤4、将通过所述步骤2和所述3校验的所述can帧输入对抗生成神经网络模型进行异常检测,判断所述can报文是否先后遭受已知攻击和未知攻击,若遭受已知攻击或未知
攻击则报警。
26.进一步地,所述步骤1包括:
27.步骤1.1、将can分析仪连接到车辆的obdii接口上获取车载网络上的所述所有can报文;
28.步骤1.2、利用所述can分析仪将接收到的所述can报文中的所述can帧分成四类,分别为过载帧、错误帧、远程帧和数据帧。
29.进一步地,所述步骤3仅对所述远程帧和所述数据帧进行所述crc码的校验。
30.进一步地,所述步骤4中的所述对抗生成神经网络模型的建立包括以下步骤:
31.步骤4.1、进行数据预处理,将所述can报文的每64条所述can帧组成的时序信号,通过二进制编码输入到对抗生成神经网络中;
32.步骤4.2、进行数据导入及划分,根据已知攻击库中的攻击帧类型创建攻击帧和正常帧,构建数据集;将所述数据集里的70%作为训练集数据,30%作为测试集数据;
33.步骤4.3、初始化所述对抗生成神经网络,采用一个生成器和两个识别器的神经网络结构;所述两个识别器分别为第一识别器和第二识别器;所述第一识别器包括一个深度置信神经网络;所述深度置信网络包括三层受限玻尔兹曼机和一个soft

max;所述受限玻尔兹曼机的各隐藏层的网络结点个数分别为400、200和50;所述soft

max的输出层的网络结点个数为2;所述受限玻尔兹曼机的各隐藏层的偏差初始化均为0,权重初始化为符合标准正态分布的随机数;所述生成器和所述第二识别器均由一个四层全连接网络构成,参数初始化由pytorch工具里的nn.linear()函数完成;所述生成器的各隐藏层的网络结点个数分别为400、400、200,所述生成器的输出层的网络结点个数为64;所述第二识别器的各隐藏层的网络结点个数分别为400、400、200,所述第二识别器的输出层由一个sigmoid函数构成;
34.步骤4.4、训练所述对抗生成神经网络,首先,训练所述第一识别器,将所述训练集数据输入所述第一识别器,进行网络正向传递计算,得到预测结果y_hat,计算所述y_hat和实际结果y之间的交叉熵,反向传播机制通过adam优化器来更新参数,更新迭代次数设为300次;然后,训练所述第二识别器,将所述生成器和真实时序报文输入到所述第二识别器,损失函数设为预测结果和真实结果的交叉熵加上惩罚项gp,反向传播机制通过adam优化器来更新参数,更新迭代参数为5次;每训练5次所述第二识别器,训练1次所述生成器;最后,训练所述生成器,所述生成器的损失函数设为生成报文与真实报文间的均方差,反向传播通过adam优化算法来更新所述生成器的参数;将所述第二识别器与所述生成器组成循环训练3000次,将最终训练得到的所述第二识别器作为最终的所述对抗生成神经网络模型;
35.步骤4.5、将所述车辆实时产生的所述can报文输入到训练好的所述第一识别器进行已知攻击的识别,再将没有识别出异常的所述can报文输入到所述第二识别器中进行未知攻击的识别。
36.进一步地,在所述步骤4建立所述对抗生成神经网络模型之后,先通过所述第一识别器判断该时间段内的所述can报文是否遭受已知攻击,若遭受则报警;再通过所述第二识别器判断所述can报文是否遭受未知攻击,若遭受,先通过所述对抗生成神经网络捕捉所述未知攻击的潜在特征并补充进所述已知攻击库,并报警。
37.本发明提供的一种车辆总线的入侵检测系统及方法至少具有如下技术效果:
38.现有的车载网络入侵检测技术需要检测方掌握检测车辆的can通信矩阵,涉及到主机厂的商密信息,通常不易获取,并且现有方法需根据参数与环境关联之间的约束条件来设定正常的阈值,此参数的确定和关联性的确定依靠人为推断,工作量巨大且找到的参数及其关联并不一定正确或存在片面性,且这种参数阈值的设定只适用于所设定类型车辆,其他类型车辆又要重新开始寻找参数。本发明实施例所提出的车辆总线入侵检测系统及方法,不依赖于是否获取车辆的can通信矩阵,而直接由神经网络自己来记忆并提取关键参数以及它们之间的正确关联,大大提高了异常检测效率,并且适用性广泛。
39.以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
40.图1是本发明的一个较佳实施例的车辆入侵检测系统的流程图;
41.图2是本发明的一个较佳实施例的对抗生成网络模块的结构图。
具体实施方式
42.以下参考说明书附图介绍本发明的多个优选实施例,使其技术内容更加清楚和便于理解。本发明可以通过许多不同形式的实施例来得以体现,本发明的保护范围并非仅限于文中提到的实施例。
43.现有的车载网络入侵检测技术需要检测方掌握检测车辆的can通信矩阵,涉及到主机厂的商密信息,通常不易获取,并且现有方法需根据参数与环境关联之间的约束条件来设定正常的阈值,此参数的确定和关联性的确定依靠人为推断,工作量巨大且找到的参数及其关联并不一定正确或存在片面性,且这种参数阈值的设定只适用于所设定类型车辆,其他类型车辆又要重新开始寻找参数。本发明实施例提出的一种车辆总线的入侵检测系统及方法,不依赖于是否获取车辆的can通信矩阵,而直接由神经网络自己来记忆并提取关键参数以及它们之间的正确关联,大大提高了异常检测效率,并且适用性广泛。本发明所提供的技术方案主要通过对车载can报文的采集和分析,识别是否存在针对车辆的攻击,从而实现异常和入侵检测。该方法通过接入车辆obdii接口,获取车辆的实时can帧并识别can帧类型,根据所属帧类型,校验该帧的格式,若帧格式错误,则丢弃该帧并报警。对帧格式正确的远程帧和数据帧进行crc码校验,若crc码错误,则丢弃该帧并报警。若crc码校验正确,则将该帧与其相邻的共64条帧依序组成can帧时序流输入到对抗生成神经网络中进行异常检测,第一个识别器检查该段时序内车辆是否遭受已在攻击库里的攻击报文攻击,第二个识别器检查车辆是否遭受不在已知攻击库里的未知攻击入侵,若受到攻击就报警。
44.本发明实施例所提供的一种车辆总线的入侵检测系统(如图1所示),用于识别具有复杂关系的攻击序列的攻击,包括:
45.can帧识别模块,can帧识别模块获取can报文并将can报文的can帧分成四类,分别为过载帧、错误帧、远程帧和数据帧;
46.帧格式检验模块,帧格式检验模块连接can帧识别模块,对过载帧、错误帧、远程帧和数据帧进行格式检验,若任何帧有格式错误则丢弃该帧并报警;
47.crc检验模块,crc检验模块连接帧格式检验模块,对远程帧和数据帧的crc码进行
校验,若crc码错误则丢弃该帧并报警;
48.对抗生成神经网络检测模块,对抗生成神经网络检测模块连接crc检验模块,对抗生成神经网络检测模块内置对抗生成神经网络模型,对抗生成神经网络模型接收crc检验模块传递过来的can报文,判别车辆是否遭受异常入侵,并生成判别结果。
49.其中,对抗生成神经网络模型包括一个生成器和两个识别器,两个识别器分别为第一识别器和第二识别器;
50.第一识别器判断can报文是否遭受已知攻击,若遭受则将判别结果设置为遭受异常入侵;
51.第二识别器判断can报文是否遭受未知攻击,若遭受则将判别结果设置为遭受异常入侵;
52.已知攻击与未知攻击为预先设置。
53.其中,对抗生成神经网络模型在接收crc检验模块传递过来的can报文后,对can报文的每64条can帧组成的数据段进行异常检测。
54.其中,can帧识别模块是将can分析仪连接到车辆的obdii接口上获取车载网络上的所有can报文,并利用can分析仪对接收到的can帧进行分类。
55.入侵检测系统还包括结果输出模块,结果输出模块连接对抗生成神经网络检测模块,接收判别结果并输出。
56.本发明的理论基础是:车上的每个行为都会被ecu记录并产生相应的can报文,同时通过can总线告知彼此车上部件的状态。can报文本身有一定的格式,外部注入的报文可能不符合这个正确格式,且can报文里的一些单元都有具体的物理含义,比如数据域中的某一比特位的0/1状态可能象征着故障灯的开/闭状态,can报文里的标识符是每个ecu的标识符。外部入侵产生的报文如:dos攻击会产生can id为0x000的报文,这种报文在真实的车辆中是不存在的。车企在车辆生产前会为自己某一类型的车设计专有的can通信矩阵以规定每个ecu的can id和数据域里每一位具体的物理含义,但是这个通信矩阵一般是保密的。同时,车内事件的发生顺序是有其固有规律,如:先踩刹车车速才会下降。可以先通过第一个由神经网络构成的判别器来学习车内应有的正常can报文流,来识别异常报文,再由神经网络构成的生成器通过逼近已知攻击报文来生成未知攻击,用第二识别器来识别未知攻击。如果两个识别都认为此报文正常,则认为车辆没有受到攻击。
57.本发明还提供了一种车辆总线的入侵检测方法,包括以下步骤:
58.步骤1、获取can报文并将can报文中的can帧进行分类;
59.步骤2、校验can帧的帧格式,若帧格式错误则丢弃该帧并报警;
60.步骤3、校验can帧的crc码,若crc码错误则丢弃该帧并报警;
61.步骤4、将通过步骤2和3校验的can帧输入对抗生成神经网络模型进行异常检测,判断can报文是否先后遭受已知攻击和未知攻击,若遭受已知攻击或未知攻击则报警。
62.其中,步骤1包括:
63.步骤1.1、将can分析仪连接到车辆的obdii接口上获取车载网络上的所有can报文;
64.步骤1.2、利用can分析仪将接收到的can报文中的can帧分成四类,分别为过载帧、错误帧、远程帧和数据帧。
65.不同的can帧种类具有不同的帧格式。
66.在步骤2中,根据步骤1确定的帧格式,校验该帧。对于过载帧和错误帧,只对它进行帧格式的检验,若帧格式错误则丢弃该帧并报警。对于远程帧和数据帧,先对其进行帧格式的检验,若帧格式错误则丢弃该帧并报警。
67.其中,步骤3仅对远程帧和数据帧进行crc码的校验。
68.其中,步骤4中的对抗生成神经网络模型的建立包括以下步骤:
69.步骤4.1、进行数据预处理,将can报文的每64条can帧组成的时序信号,通过二进制编码输入到对抗生成神经网络中;
70.步骤4.2、进行数据导入及划分,根据已知攻击库中的攻击帧类型创建攻击帧和正常帧,构建数据集;将数据集里的70%作为训练集数据,30%作为测试集数据;
71.步骤4.3、初始化对抗生成神经网络,采用一个生成器和两个识别器的神经网络结构;两个识别器分别为第一识别器和第二识别器;第一识别器包括一个深度置信神经网络;深度置信网络包括三层受限玻尔兹曼机和一个soft

max;受限玻尔兹曼机的各隐藏层的网络结点个数分别为400、200和50;soft

max的输出层的网络结点个数为2;受限玻尔兹曼机的各隐藏层的偏差初始化均为0,权重初始化为符合标准正态分布的随机数;生成器和第二识别器均由一个四层全连接网络构成,参数初始化由pytorch工具里的nn.linear()函数完成;生成器的各隐藏层的网络结点个数分别为400、400、200,生成器的输出层的网络结点个数为64;第二识别器的各隐藏层的网络结点个数分别为400、400、200,第二识别器的输出层由一个sigmoid函数构成;
72.步骤4.4、训练对抗生成神经网络,首先,训练第一识别器,将训练集数据输入第一识别器,进行网络正向传递计算,得到预测结果y_hat,计算y_hat和实际结果y之间的交叉熵,反向传播机制通过adam优化器来更新参数,更新迭代次数设为300次;然后,训练第二识别器,将生成器和真实时序报文输入到第二识别器,损失函数设为预测结果和真实结果的交叉熵加上惩罚项gp,反向传播机制通过adam优化器来更新参数,更新迭代参数为5次;每训练5次第二识别器,训练1次生成器;最后,训练生成器,生成器的损失函数设为生成报文与真实报文间的均方差,反向传播通过adam优化算法来更新生成器的参数;将第二识别器与生成器组成循环训练3000次,将最终训练得到的第二识别器作为最终的对抗生成神经网络模型;
73.步骤4.5、将车辆实时产生的can报文输入到训练好的第一识别器进行已知攻击的识别,再将没有识别出异常的can报文输入到第二识别器中进行未知攻击的识别。
74.其中,在步骤4建立对抗生成神经网络模型之后,先通过第一识别器判断该时间段内的can报文是否遭受已知攻击,若遭受则报警;再通过第二识别器判断can报文是否遭受未知攻击,若遭受,先通过对抗生成神经网络捕捉未知攻击的潜在特征并补充进已知攻击库,并报警(如图2所示)。
75.还包括步骤5,将车辆上实时产生的can报文输入到车辆入侵检测系统中,判别车辆是否遭受了异常入侵。
76.以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术
方案,皆应在由权利要求书所确定的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献