首页 / 专利库 / 电信 / 控制器局域网络 / 一种CAN总线风险检测方法和装置

一种CAN总线险检测方法和装置

阅读:390发布:2021-06-17

专利汇可以提供一种CAN总线险检测方法和装置专利检索,专利查询,专利分析的服务。并且本 发明 提供了一种CAN总线 风 险检测方法和装置,该方法应用于连接到目标车辆的CAN总线 接口 的装置中,包括:接收用户输入的目标车辆的车型信息,在预先存储的各类车型的私有协议中查找用户输入的车型对应的私有协议;接收用户输入的新建任务 请求 ,根据用户输入的车型对应的私有协议、新建任务请求携带的检测类型和检测目标建立新的检测任务;接收到启动所述检测任务的命令时,基于所述检测任务构造数据 帧 ,通过目标车辆的CAN总线接口发送构造的数据帧到目标车辆的CAN总线系统;接收目标车辆的CAN总线系统返回的响应信息,根据响应信息生成检测报告并输出。本发明能够检测出车辆的CAN总线系统存在的安全风险。,下面是一种CAN总线险检测方法和装置专利的具体信息内容。

1.一种控制器局域网络CAN总线险检测方法,其特征在于,该方法应用于连接到目标车辆的CAN总线接口的装置中,包括:
接收用户输入的目标车辆的车型信息,在预先存储的各类车型的私有协议中查找用户输入的车型对应的私有协议;
接收用户输入的新建任务请求,根据用户输入的车型对应的私有协议、新建任务请求携带的检测类型和检测目标建立新的检测任务;
接收到启动所述检测任务的命令时,基于所述检测任务构造数据,通过目标车辆的CAN总线接口发送构造的数据帧到目标车辆的CAN总线系统;
接收目标车辆的CAN总线系统返回的响应信息,根据响应信息生成检测报告并输出。
2.根据权利要求1所述的方法,其特征在于,
查找用户输入的车型对应的私有协议失败时,指示用户该车型的私有协议不存在,根据该用户在确定该车型的私有协议不存在时输入的该车型对应的私有协议文件路径信息,加载该车型对应的私有协议文件内容。
3.根据权利要求1所述的方法,其特征在于,
根据用户输入的车型对应的私有协议、新建任务请求携带的检测类型和检测目标建立新的检测任务的方法为:分配一任务ID,将该任务ID、用户输入的车型对应的私有协议、新建任务请求携带的检测类型和检测目标分别设置为该检测任务的任务ID、目标车型对应的私有协议、检测类型和检测目标。
4.根据权利要求1-3任一权项所述的方法,其特征在于,
所述检测类型为数据伪造攻击;
基于所述检测任务构造数据帧的方法为:从该检测任务的目标车型对应的私有协议中查找该检测任务的检测目标的标识ID以及该检测任务的检测类型对应的数据帧中各字段的长度及默认取值,根据查找到的检测目标ID、所述数据帧中各字段的长度和默认取值构造用于数据伪造攻击的数据帧。
5.根据权利要求4所述的方法,其特征在于,
所述新建任务请求还携带检测参数,所述检测参数包括数据帧发送频率
根据用户输入的车型对应的私有协议、新建任务请求携带的检测类型和检测目标建立新的检测任务时,进一步将新建任务请求携带的测试参数作为该检测任务的检测参数;
通过目标车辆的CAN总线接口发送构造的数据帧到目标车辆的CAN总线系统的方法为:
以所述检测参数中的数据帧发送频率将构造的数据帧通过目标车辆的CAN总线接口发送到目标车辆的CAN总线系统。
6.根据权利要求1-3任一权项所述的方法,其特征在于,
所述检测类型为重放攻击;
基于所述检测任务构造数据帧的方法为:在用户基于该检测任务的检测类型和检测目标执行检测操作的过程中,实时获取CAN总线上的数据,解析确定获取的数据中的所有数据帧,将解析出的数据帧写入重放文件;在预设时间后,从重放文件中逐个读取数据帧,并将读取的每一数据帧作为一个构造的数据帧。
7.根据权利要求6所述的方法,其特征在于,
解析确定获取的数据中的所有数据帧时,进一步确定相邻两个数据帧之间的发送间隔,将该相邻两个数据帧之间的发送间隔写入重放文件;
通过目标车辆的CAN总线接口发送构造的数据帧到目标车辆的CAN总线系统的方法为:
按照重放文件中相邻两个数据帧之间的发送间隔,将从重放文件中读取的每一帧数据作为构造的一个数据帧通过目标车辆的CAN总线接口发送到目标车辆的CAN总线系统。
8.根据权利要求1-3任一权项所述的方法,其特征在于,
所述检测类型为拒绝服务攻击;
基于所述检测任务构造数据帧的方法为:从该检测任务的目标车型对应的私有协议中查找该检测任务的检测目标的ID以及新建任务的检测类型对应的数据帧中各字段的长度和默认取值,选择一个优先级高于该检测目标ID的伪检测目标ID,根据伪检测目标ID、以及所述数据帧中各字段的长度和默认取值构造用于拒绝服务攻击的数据帧。
9.根据权利要求8所述的方法,其特征在于,
从该检测任务的目标车型对应的私有协议中查找该检测任务的检测目标的ID以及新建任务的检测类型对应的数据帧中各字段的长度和默认取值时,进一步查找该检测任务的检测类型对应的数据帧发送频率;
通过目标车辆的CAN总线接口发送构造的数据帧到目标车辆的CAN总线系统的方法为:
将所述数据帧发送频率乘以预设倍数,以所述乘积为数据帧发送频率将构造的数据帧通过目标车辆的CAN总线接口发送到目标车辆的CAN总线系统。
10.根据权利要求1-3任一权项所述的方法,其特征在于,
所述检测类型为模糊fuzzing攻击;
所述新建任务请求还携带检测参数,所述检测参数包括数据变化规则;
根据用户输入的车型对应的私有协议、新建任务请求携带的检测类型和检测目标建立新的检测任务时,进一步将新建任务请求携带的测试参数作为该检测任务的检测参数;
基于所述检测任务构造数据帧,通过目标车辆的CAN总线接口发送构造的数据帧到目标车辆的CAN总线系统的方法为:
从该检测任务的目标车型对应的私有协议中查找该检测任务的检测目标的ID以及该检测任务的检测类型对应的数据帧中各字段的数据长度和默认取值,基于该检测目标ID确定ID变化范围,根据该ID变化范围、该检测任务的检测参数包括的数据变化规则逐个构造用于fuzzing攻击的数据帧,并通过目标车辆的CAN总线接口发送构造的每个数据帧到目标车辆的CAN总线系统。
11.根据权利要求10所述的方法,其特征在于,
所述检测参数还包括数据帧发送频率;所述数据变化规则为数据帧中数据字段的数据变化规则;
根据该ID变化范围、该检测任务的检测参数包括的数据变化规则逐个构造用于fuzzing攻击的数据帧时,用于:针对ID变化范围的每一个ID,执行以下操作:根据数据字段的默认取值和所述数据变化规则确定数据字段取值集合,根据该ID和数据字段取值集合中的每个数据字段取值构造一个用于fuzzing攻击的数据帧;
通过目标车辆的CAN总线接口发送构造的每个数据帧到目标车辆的CAN总线系统的发送频率为所述数据帧发送频率。
12.一种控制器局域网络CAN总线风险检测装置,其特征在于,该装置连接到目标车辆的CAN总线接口,包括:存储模、用户接口模块、处理模块、总线接口模块;
所述存储模块,用于预先存储各类车型的私有协议;
所述用户接口模块,用于接收用户输入的目标车辆的车型信息,在存储模块存储的各类车型的私有协议中查找用户输入的车型对应的私有协议;用于接收用户输入的新建任务请求;用于接收到启动任一检测任务的命令;
所述处理模块,用于在用户接口模块接收到用户输入的新建任务请求时,根据用户输入的车型对应的私有协议、新建任务请求携带的检测类型和检测目标建立新的检测任务;
用于在用户接口模块接收到启动所述检测任务的命令时,基于所述检测任务构造数据帧,通知总线接口模块通过目标车辆的的CAN总线接口发送该数据帧到目标车辆的CAN总线系统;
所述总线接口模块,用于通过目标车辆的CAN总线接口发送处理模块构造的数据帧到目标车辆的CAN总线系统;用于接收目标车辆的CAN总线系统返回的响应信息,根据响应信息生成检测报告并输出。
13.根据权利要求12所述的装置,其特征在于,
所述用户接口模块,查找用户输入的车型对应的私有协议失败时,进一步指示用户该车型的私有协议不存在,根据用户在确定该车型的私有协议不存在时输入的该车型对应的私有协议文件路径信息,加载该车型对应的私有协议文件内容并存储到存储模块。
14.根据权利要求12所述的装置,其特征在于,
所述处理模块,根据用户输入的车型对应的私有协议、新建任务请求携带的检测类型和检测目标建立新的检测任务时,用于:分配一任务ID,将该任务ID、用户输入的车型对应的私有协议、新建任务请求携带的检测类型和检测目标分别设置为该检测任务的任务ID、目标车型对应的私有协议、检测类型和检测目标。
15.根据权利要求11-14任一权项所述的装置,其特征在于,
所述检测类型为数据伪造攻击;
所述处理模块,基于所述检测任务构造数据帧时,用于:从该检测任务的目标车型对应的私有协议中查找该检测任务的检测目标的标识ID以及该检测任务的检测类型对应的数据帧中各字段的长度及默认取值,根据查找到的检测目标ID、所述数据帧中各字段的长度和默认取值构造用于数据伪造攻击的数据帧。
16.根据权利要求15所述的装置,其特征在于,
所述新建任务请求还携带检测参数,所述检测参数包括数据帧发送频率;
所述处理模块,根据用户输入的车型对应的私有协议、新建任务请求携带的检测类型和检测目标建立新的检测任务时,进一步将新建任务请求携带的测试参数作为该检测任务的检测参数;
所述总线接口模块,通过目标车辆的CAN总线接口发送构造的数据帧到目标车辆的CAN总线系统时,用于:以所述检测参数中的数据帧发送频率将构造的数据帧通过目标车辆的CAN总线接口发送到目标车辆的CAN总线系统。
17.根据权利要求11-14任一权项所述的装置,其特征在于,
所述检测类型为重放攻击;
所述处理模块,基于所述检测任务构造数据帧时,用于:在用户基于该检测任务的检测类型和检测目标执行检测操作的过程中,实时获取CAN总线上的数据,解析确定获取的数据中的所有数据帧,将解析出的数据帧写入重放文件;在预设时间后,从重放文件中逐个读取数据帧,并将读取的每一数据帧作为一个构造的数据帧。
18.根据权利要求17所述的装置,其特征在于,
所述处理模块,解析确定获取的数据中的所有数据帧时,进一步确定相邻两个数据帧之间的发送间隔,将该相邻两个数据帧之间的发送间隔写入重放文件;
所述总线接口模块,通过目标车辆的CAN总线接口发送构造的数据帧到目标车辆的CAN总线系统时,用于:按照重放文件中相邻两个数据帧之间的发送间隔,将从重放文件中读取的每一帧数据作为构造的一个数据帧通过目标车辆的CAN总线接口发送到目标车辆的CAN总线系统。
19.根据权利要求11-14任一权项所述的装置,其特征在于,
所述检测类型为拒绝服务攻击;
所述处理模块,基于所述检测任务构造数据帧时,用于:从该检测任务的目标车型对应的私有协议中查找该检测任务的检测目标的ID以及新建任务的检测类型对应的数据帧中各字段的长度和默认取值,选择一个优先级高于该检测目标ID的伪检测目标ID,根据伪检测目标ID、以及所述数据帧中各字段的长度和默认取值构造用于拒绝服务攻击的数据帧。
20.根据权利要求19所述的装置,其特征在于,
所述处理模块,从该检测任务的目标车型对应的私有协议中查找该检测任务的检测目标的ID以及新建任务的检测类型对应的数据帧中各字段的长度和默认取值时,进一步查找该检测任务的检测类型对应的数据帧发送频率;
所述总线接口模块,通过目标车辆的CAN总线接口发送构造的数据帧到目标车辆的CAN总线系统时,用于:将所述数据帧发送频率乘以预设倍数,以所述乘积为数据帧发送频率将构造的数据帧通过目标车辆的CAN总线接口发送到目标车辆的CAN总线系统。
21.根据权利要求11-14任一权项所述的装置,其特征在于,
所述检测类型为模糊fuzzing攻击;
所述新建任务请求还携带检测参数,所述检测参数包括数据变化规则;
所述处理模块,根据用户输入的车型对应的私有协议、新建任务请求携带的检测类型和检测目标建立新的检测任务时,进一步将新建任务请求携带的测试参数作为该检测任务的检测参数;
所述处理模块,基于所述检测任务构造数据帧,通知总线接口模块通过目标车辆的CAN总线接口发送构造的数据帧到目标车辆的CAN总线系统时,用于:
从该检测任务的目标车型对应的私有协议中查找该检测任务的检测目标的ID以及该检测任务的检测类型对应的数据帧中各字段的数据长度和默认取值,基于该检测目标ID确定ID变化范围,根据该ID变化范围、该检测任务的检测参数包括的数据变化规则逐个构造用于fuzzing攻击的数据帧,并通知总线接口模块通过目标车辆的CAN总线接口发送构造的每个数据帧到目标车辆的CAN总线系统。
22.根据权利要求21所述的装置,其特征在于,
所述检测参数还包括数据帧发送频率;所述数据变化规则为数据帧中数据字段的数据变化规则;
所述处理模块,根据该ID变化范围、该检测任务的检测参数包括的数据变化规则逐个构造用于fuzzing攻击的数据帧时,用于:针对ID变化范围的每一个ID,执行以下操作:根据数据字段的默认取值和所述数据变化规则确定数据字段取值集合,根据该ID和数据字段取值集合中的每个数据字段取值构造一个用于fuzzing攻击的数据帧;
所述总线接口模块,通过目标车辆的CAN总线接口发送构造的每个数据帧到目标车辆的CAN总线系统的发送为所述数据帧发送频率。

说明书全文

一种CAN总线险检测方法和装置

技术领域

[0001] 本发明涉及信息安全技术领域,特别涉及一种控制器局域网络(Controller Area Network,CAN)总线风险检测方法和装置。

背景技术

[0002] 近些年,国内外黑客通过无线和有线入侵的方式先后对多款车型进行了成功破解。攻击者即可通过入侵3G/4G、Wi-Fi、蓝牙、射频等无线网络控制车载系统或电控单元,也可通过车辆的CAN总线接入等方式入侵车辆的CAN总线系统。
[0003] 无论是有线还是无线攻击,均是通过读写CAN总线上的数据,以此获取车辆信息、实现车辆远程控制甚至破坏车辆可用性,严重威胁车主的生命财产安全。

发明内容

[0004] 有鉴于此,本发明的目的在于提供一种CAN总线风险检测方法和装置,能够检测出CAN总线系统存在的安全风险。
[0005] 为了达到上述目的,本发明提供了如下技术方案:
[0006] 一种控制器局域网络CAN总线风险检测方法,应用于连接到目标车辆的CAN总线接口的装置中,包括:
[0007] 接收用户输入的目标车辆的车型信息,在预先存储的各类车型的私有协议中查找用户输入的车型对应的私有协议;
[0008] 接收用户输入的新建任务请求,根据用户输入的车型对应的私有协议、新建任务请求携带的检测类型和检测目标建立新的检测任务;
[0009] 接收到启动所述检测任务的命令时,基于所述检测任务构造数据帧,通过目标车辆的CAN总线接口发送构造的数据帧到目标车辆的CAN总线系统;
[0010] 接收目标车辆的CAN总线系统返回的响应信息,根据响应信息生成检测报告并输出。
[0011] 一种控制器局域网络CAN总线风险检测装置,连接到目标车辆的CAN总线接口,包括:存储模、用户接口模块、处理模块、总线接口模块;
[0012] 所述存储模块,用于预先存储各类车型的私有协议;
[0013] 所述用户接口模块,用于接收用户输入的目标车辆的车型信息,在存储模块存储的各类车型的私有协议中查找用户输入的车型对应的私有协议;用于接收用户输入的新建任务请求;用于接收到启动任一检测任务的命令;
[0014] 所述处理模块,用于在用户接口模块接收到用户输入的新建任务请求时,根据用户输入的车型对应的私有协议、新建任务请求携带的检测类型和检测目标建立新的检测任务;用于在用户接口模块接收到启动所述检测任务的命令时,基于所述检测任务构造数据帧,通知总线接口模块通过目标车辆的CAN总线接口发送该数据帧到目标车辆的CAN总线系统;
[0015] 所述总线接口模块,用于通过目标车辆的CAN总线接口发送处理模块构造的数据帧到目标车辆的CAN总线系统;用于接收目标车辆的CAN总线系统返回的响应信息,根据响应信息生成检测报告并输出。
[0016] 由上面的技术方案可知,本发明中,将CAN总线风险检测装置连接到目标车辆的CAN总线接口;CAN总线风险检测装置的工作过程为:先确定目标车辆的车型及其对应的私有协议,随后基于用户的新建任务请求建立检测任务,根据检测任务构造数据帧并通过CAN总线接口发送到目标车辆的CAN总线系统,从而根据目标车辆的CAN总线系统返回的响应信息生成检测报告并输出,使得用户可以根据检测报告以及风险检测过程中目标车辆自身状态的变化确定目标车辆的CAN总线系统存在的安全风险。附图说明
[0017] 图1是本发明实施例CAN总线风险监测装置的结构示意图;
[0018] 图2是本发明实施例CAN总线风险监测方法流程图

具体实施方式

[0019] 为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图并据实施例,对本发明的技术方案进行详细说明。
[0020] 本发明中,为了实现对车辆的CAN总线系统的风险检测,为车辆防护提供理论和技术指导,提供了如图1所示的CAN总线风险检测装置,该装置可以连接到车辆的CAN总线接口,通过车辆的CAN总线接口读写CAN总线系统的数据。
[0021] 在本发明的一个实施例中,CAN总线接口为OBD-II接口。
[0022] 参见图1,图1是本发明实施例CAN总线风险监测装置的结构示意图,如图1所示,包括:存储模块、用户接口模块、处理模块、总线接口模块。其中,存储模块主要用于存储各类车型的私有协议;用户接口模块主要用于处理用户的与检测任务相关的各种操作指令;处理模块主要用于基于用户的检测任务构建用于风险检测的数据帧。总线接口模块主要用于将处理模块构建的用于风险检测的数据帧通过CAN总线接口发往CAN总线系统。
[0023] 下面对基于图1所示装置实现的CAN总线风险检测方法进行详细介绍:
[0024] 参见图2,图2是本发明实施例CAN总线风险检测方法流程图,如图2所示,该方法应用于图1所示的CAN总线风险检测装置,该装置连接到目标车辆的CAN总线接口,该方法主要包括以下步骤:
[0025] 步骤201、用户接口模块接收用户输入的目标车辆的车型信息,在存储模块预先存储的所有车型的私有协议中查找用户输入的车型对应的私有协议。
[0026] 在本实施例中,用户需要对某一车辆的CAN总线系统进行风险检测时,需要先选定待检测车辆的车型,此后所有的检测任务均是针对该车型的CAN总线系统而建立。
[0027] 在具体实现中,CAN总线风险检测装置可以提供一个用户界面,用户通过对用户界面的操作触发各类操作命令和信息输入。例如,用户通过在用户界面中输入车型并点击提交按钮从而触发车型信息输入指令,用户接口模块接收到该指令后,即可将该指令中携带的车型信息确定为用户输入的车型信息。
[0028] 存储模块中可以预先存储部分或全部车型的私有协议。如果某类车型的私有协议有增加、删除、修改的需求,均可以由用户通过输入特定指令进行添加、删除和修改。例如,用户可以输入协议添加指令,当用户接口模块接收到该指令时,可以获取该指令中携带的车型及其对应的私有协议文件路径信息,从而可以根据私有协议文件路径信息加载私有协议文件内容(即协议内容)并存储到存储模块;用户还可以输入协议删除指令,当用户接口模块接收到该指令时,可以在存储模块中查找该指令中携带的车型对应的私有协议并删除;用户还可以输入协议修改指令,当用户接口模块接收到该指令时,可以重新加载该指令携带的车型的私有协议文件内容,并替换在存储模块中原来已存储的该车型的私有协议。
[0029] 本实施例中,在存储模块预先存储的所有车型的私有协议中查找用户输入的车型对应的私有协议失败时,说明存储模块中并不存在该车型的私有协议,此时可以指示用户该车型的私有协议不存在(通过输出文字或发出告警信息进行提示),从而用户可以通过触发协议添加指令来指定该车型的私有协议文件路径信息,而用户接口模块接收用户的协议添加指令后,就可以根据指令中携带的该车型的私有协议文件路径信息加载该车型对应的私有协议并存储到存储模块,以实现该车型的私有协议的添加。
[0030] 步骤202、用户接口模块接收用户输入的新建任务请求,基于用户输入的车型对应的私有协议、新建任务请求携带的检测类型和检测目标建立新的检测任务。
[0031] 新建任务请求中携带的检测信息包括检测类型和检测目标。其中检测类型包括:数据伪造攻击、重放攻击、拒绝服务攻击、和模糊攻击。检测目标则对应于CAN总线系统的某一特定功能。
[0032] 在用户确定了待检测的车型之后,就可以建立各种检测类型的检测任务,以实现对车辆的CAN总线系统的各类可能风险的风险检测。
[0033] 当需要新建一个检测任务(应具有唯一的任务ID)时,用户可以通过在用户界面中新建任务一栏输入检测类型和检测目标,从而触发新建任务请求指令,用户接口模块接收到用户的新建任务请求时,可以根据用户输入的车型对应的私有协议、新建任务请求携带的检测类型和检测目标建立新的检测任务,具体方法为:分配一任务ID,将该任务ID、用户输入的车型对应的私有协议、新建任务请求携带的检测类型和检测目标分别设置为该检测任务的任务ID、目标车型对应的私有协议、检测类型和检测目标。
[0034] 建立一个检测任务之后,用户可以选择启动、暂停、停止、或删除该检测任务,具体实现中就是通过输入特定指令对检测任务进行启动、暂停、停止、或删除。例如,用户可以输入任务启动指令,当用户接口模块接收到该指令时,可以启动该指令中携带的任务ID对应的检测任务。用户还可以输入任务暂停指令,当用户接口模块接收到该指令时,可以暂停该指令中携带的任务ID对应的检测任务(具体可以表现为暂时停止向CAN总线系统发送基于该检测任务构造的数据帧)。用户还可以输入任务停止指令,当用户接口模块接收到该指令时,可以停止该指令中携带的任务ID对应的检测任务。用户还可以输入任务删除指令,当用户接口模块接收到该指令时,可以删除该指令中携带的任务ID对应的检测任务。
[0035] 步骤203、用户接口模块接收用户启动该新的检测任务的命令,处理模块基于该新的检测任务构造数据帧,总线接口模块通过目标车辆的CAN总线接口发送处理模块构造的数据帧到目标车辆的CAN总线系统。
[0036] 当户接口模块接收用户启动该新的检测任务的命令时,处理模块可以开始基于该检测任务构建对应用户检测的数据帧,总线接口模块则将该数据帧以一定的规律(例如以特定频率)发送到目标车辆的CAN总线系统,目标车辆的CAN总线系统接收到该数据帧后可能会做出各种响应,响应信息在CAN总线上传输,可以被CAN总线风险检测装置截获。
[0037] 步骤204、总线接口模块接收目标车辆的CAN总线系统返回的响应信息,根据响应信息生成检测报告并输出。
[0038] 目标车辆的CAN总线系统接收到总线接口发模块发送的数据帧后可能会做出各种响应,而这些响应可能是正确的也可能是不正确的,而总线接口模块可以根据这些正确或不正确的响应信息生成检测报告并输出,从而用户可以根据检测报告确定目标车辆的CAN总线系统是否给出了正确的响应,从而可以确定目标车辆的CAN总线系统是否能够正确应对各种可能的风险攻击,从而准确查知目标车辆的CAN总线系统可能存在的安全风险,进而能够进行改进或提前预防
[0039] 在实际应用中,当检测类型不同时,基于检测任务构造数据帧的方法也是不相同的,下面分别进行介绍:
[0040] 数据伪造攻击:
[0041] 数据伪造攻击是指攻击者伪装成合法节点向CAN总线中发送某特定功能的数据指令或数据包/帧,欺骗目标节点使其做出响应。
[0042] 当检测任务的检测类型是数据伪造攻击时,基于检测任务构造数据帧的方法为:从该检测任务中目标车型对应的私有协议中查找该检测任务的检测目标的标识ID以及该检测任务的检测类型对应的数据帧中各字段的长度和默认取值,基于检测目标ID和所述数据帧中各字段的长度和默认取值构造用户数据伪造攻击的数据帧。
[0043] 对于数据伪造攻击的风险检测,用户可以设置一些检测参数,例如数据帧发送频率。用户设置的检测参数可以携带在用户触发的新建任务请求中。
[0044] 用户接口模块接收到用户的新建任务请求后,建立新的检测任务时可以将新建任务请求中的检测参数添加到新的检测任务中。
[0045] 总线接口模块通过目标车辆的CAN总线接口发送构造的数据帧到目标车辆的CAN总线系统时,可以以检测参数中的数据帧发送频率向目标车辆的CAN总线系统发送构造的数据帧。
[0046] 重放攻击:
[0047] 重放攻击,也即将用户执行某种操作时CAN总线上传输的所有数据帧再次在CAN总线上传输一次或多次。
[0048] 当检测任务的检测类型是重放攻击时,基于该检测任务构造数据帧的方法为:在用户基于该检测任务执行检测动作的过程中,实时获取CAN总线上的数据,解析确定获取的数据中的所有数据帧,将解析出的数据帧写入重放文件;在预设时间后,从重放文件中逐个读取数据帧,并将读取的每一数据帧作为一个构造的数据帧。
[0049] 在执行重放攻击时,需要按照原有的数据帧发送间隔进行发送,因此,在解析确定获取的数据中的所有数据帧时,需要进一步确定相邻两个数据帧之间的发送间隔,将该发送间隔写入重放文件中。从而,当通过目标车辆的CAN总线接口发送构造的数据帧到目标车辆的CAN总线系统时,可以按照重放文件中相邻两个数据帧之间的发送间隔从重放文件中逐条读取数据帧,并通过目标车辆的CAN总线接口向目标车辆的CAN总线系统发送从重放文件中读取的每个数据帧。
[0050] 拒绝服务攻击:
[0051] 拒绝服务攻击,也即通过发送一些高优先级的指令,使得低优先级的指令阻塞,对应于低优先级指令的节点丧失正常功能,从而造成拒绝服务。
[0052] 当检测任务的检测类型是拒绝服务攻击时,基于该检测任务构造数据帧的方法为:从该检测任务的目标车型对应的私有协议中查找该检测任务的检测目标的ID以及该检测任务的检测类型对应的数据帧中各字段的长度和默认取值,选择优先级高于该检测目标ID的ID,根据选择的ID、以及所述数据帧中各字段的长度和默认取值构造用于拒绝服务攻击的数据帧,由于该数据帧的优先级高于测试目标ID对应的数据帧。
[0053] 在执行拒绝服务攻击时,为了使测试目标的功能无法正常执行,需要以较快的频率发送构造的数据帧,为此,从该检测任务的目标车型对应的私有协议中查找该检测任务的检测目标的ID以及该检测任务的检测类型对应的数据帧中各字段的长度和默认取值时,还可以进一步查找该检测任务的检测类型对应的数据帧发送频率。从而在总线接口模块通过目标车辆的总线接口发送构造的数据帧到目标车辆的车辆总线网络系统时,可以将所述数据帧发送频率乘以预设倍数(预设倍数应大于1,例如取值为2,其取值越大,拒绝服务攻击的效果越好),然后以所述乘积为发送频率将构造的帧发送到目标车辆的车辆总线网络系统。
[0054] 模糊(fuzzing)攻击;
[0055] fuzzing攻击,是指根据特定规则生成并发送数据报文(数据帧)到CAN总线系统,这种生成和发送报文的方法可以发掘系统中尚未被破译的功能或系统潜在安全威胁。
[0056] 本发明中,以CAN总线上的某一节点发送的数据报文为基础,通过对该数据报文的ID字段和数据字段进行更改,从而生成多个ID或数据字段内容不同的数据帧,并发送到CAN总线系统,以此来检测CAN总线系统存在的潜在安全风险。
[0057] 对于模糊攻击,由于需要构造多个不同内容的数据帧,需要预先针对数据帧中部分内容可变化字段,如数据内容字段,设置对应的数据变化规则。用户可以新建一个检测任务时设置一些检测参数,数据变化规则作为其中的一个测试参数。用户设置的检测参数可以携带在用户触发的新建任务请求中。
[0058] 用户接口模块接收到用户的新建任务请求后,建立新的检测任务时可以将新建任务请求中的检测参数添加到新的检测任务中。
[0059] 当检测任务的检测类型是模糊攻击时,基于该检测任务构造数据帧的方法为:从新建任务中所述车型对应的私有协议中查找新建任务的检测目标的ID以及该检测任务的检测类型对应的数据帧中各字段的长度与默认取值,基于该检测目标ID确定ID变化范围,根据该ID变化范围、该检测任务的检测参数包括的数据变化规则逐个构造用于fuzzing攻击的数据帧,并通知总线接口模块通过目标车辆的CAN总线接口发送构造的每个数据帧到目标车辆的CAN总线系统。
[0060] 其中,根据该ID变化范围、该检测任务的检测参数包括的数据变化规则逐个构造用于fuzzing攻击的数据帧时,用于:针对ID变化范围的每一个ID,执行以下操作:根据数据字段的默认取值和所述数据变化规则确定数据字段取值集合,根据该ID和数据字段取值集合中的每个数据字段取值构造一个用于fuzzing攻击的数据帧。
[0061] 另外,所述检测参数还包括数据帧发送频率;总线接口模块通过目标车辆的CAN总线接口发送构造的每个数据帧到目标车辆的CAN总线系统时,可以采用该数据帧发送频率。
[0062] 以上对本发明CAN总线风险检测的方法进行了详细说明,下面对本发明提供的CAN总线风险检测装置进行详细说明。
[0063] 如图1所示的CAN总线风险检测装置,该装置连接到目标车辆的车辆总线网络系统的CAN总线接口,包括:具体包括:存储模块、用户接口模块、处理模块、总线接口模块;其中,[0064] 存储模块,用于预先存储各类车型的私有协议;
[0065] 用户接口模块,用于接收用户输入的目标车辆的车型信息,在存储模块存储的各类车型的私有协议中查找用户输入的车型对应的私有协议;用于接收用户输入的新建任务请求;用于接收到启动任一检测任务的命令;
[0066] 处理模块,用于在用户接口模块接收到用户输入的新建任务请求时,根据用户输入的车型对应的私有协议、新建任务请求携带的检测类型和检测目标建立新的检测任务;用于在用户接口模块接收到启动所述检测任务的命令时,基于所述检测任务构造数据帧,通知总线接口模块通过目标车辆的的CAN总线接口发送该数据帧到目标车辆的CAN总线系统;
[0067] 总线接口模块,用于通过目标车辆的CAN总线接口发送处理模块构造的数据帧到目标车辆的CAN总线系统;用于接收目标车辆的CAN总线系统返回的响应信息,根据响应信息生成检测报告并输出。
[0068] 图1所示装置中,
[0069] 所述用户接口模块,查找用户输入的车型对应的私有协议失败时,进一步指示用户该车型的私有协议不存在,根据用户在确定该车型的私有协议不存在时输入的该车型对应的私有协议文件路径信息,加载该车型对应的私有协议文件内容并存储到存储模块。
[0070] 图1所示装置中,
[0071] 所述处理模块,根据用户输入的车型对应的私有协议、新建任务请求携带的检测类型和检测目标建立新的检测任务时,用于:分配一任务ID,将该任务ID、用户输入的车型对应的私有协议、新建任务请求携带的检测类型和检测目标分别设置为该检测任务的任务ID、目标车型对应的私有协议、检测类型和检测目标。
[0072] 图1所示装置中,
[0073] 所述检测类型为数据伪造攻击;
[0074] 所述处理模块,基于所述检测任务构造数据帧时,用于:从该检测任务的目标车型对应的私有协议中查找该检测任务的检测目标的标识ID以及该检测任务的检测类型对应的数据帧中各字段的长度及默认取值,根据查找到的检测目标ID、所述数据帧中各字段的长度和默认取值构造用于数据伪造攻击的数据帧。
[0075] 图1所示装置中,
[0076] 所述新建任务请求还携带检测参数,所述检测参数包括数据帧发送频率;
[0077] 所述处理模块,根据用户输入的车型对应的私有协议、新建任务请求携带的检测类型和检测目标建立新的检测任务时,进一步将新建任务请求携带的测试参数作为该检测任务的检测参数;
[0078] 所述总线接口模块,通过目标车辆的CAN总线接口发送构造的数据帧到目标车辆的CAN总线系统时,用于:以所述检测参数中的数据帧发送频率将构造的数据帧通过目标车辆的CAN总线接口发送到目标车辆的CAN总线系统。
[0079] 图1所示装置中,
[0080] 所述检测类型为重放攻击;
[0081] 所述处理模块,基于所述检测任务构造数据帧时,用于:在用户基于该检测任务的检测类型和检测目标执行检测操作的过程中,实时获取CAN总线上的数据,解析确定获取的数据中的所有数据帧,将解析出的数据帧写入重放文件;在预设时间后,从重放文件中逐个读取数据帧,并将读取的每一数据帧作为一个构造的数据帧。
[0082] 图1所示装置中,
[0083] 所述处理模块,解析确定获取的数据中的所有数据帧时,进一步确定相邻两个数据帧之间的发送间隔,将该相邻两个数据帧之间的发送间隔写入重放文件;
[0084] 所述总线接口模块,通过目标车辆的CAN总线接口发送构造的数据帧到目标车辆的CAN总线系统时,用于:按照重放文件中相邻两个数据帧之间的发送间隔,将从重放文件中读取的每一帧数据作为构造的一个数据帧通过目标车辆的CAN总线接口发送到目标车辆的CAN总线系统。
[0085] 图1所示装置中,
[0086] 所述检测类型为拒绝服务攻击;
[0087] 所述处理模块,基于所述检测任务构造数据帧时,用于:从该检测任务的目标车型对应的私有协议中查找该检测任务的检测目标的ID以及新建任务的检测类型对应的数据帧中各字段的长度和默认取值,选择一个优先级高于该检测目标ID的伪检测目标ID,根据伪检测目标ID、以及所述数据帧中各字段的长度和默认取值构造用于拒绝服务攻击的数据帧。
[0088] 图1所示装置中,
[0089] 所述处理模块,从该检测任务的目标车型对应的私有协议中查找该检测任务的检测目标的ID以及新建任务的检测类型对应的数据帧中各字段的长度和默认取值时,进一步查找该检测任务的检测类型对应的数据帧发送频率;
[0090] 所述总线接口模块,通过目标车辆的CAN总线接口发送构造的数据帧到目标车辆的CAN总线系统时,用于:将所述数据帧发送频率乘以预设倍数,以所述乘积为数据帧发送频率将构造的数据帧通过目标车辆的CAN总线接口发送到目标车辆的CAN总线系统。
[0091] 图1所示装置中,
[0092] 所述检测类型为模糊fuzzing攻击;
[0093] 所述新建任务请求还携带检测参数,所述检测参数包括数据变化规则;
[0094] 所述处理模块,根据用户输入的车型对应的私有协议、新建任务请求携带的检测类型和检测目标建立新的检测任务时,进一步将新建任务请求携带的测试参数作为该检测任务的检测参数;
[0095] 所述处理模块,基于所述检测任务构造数据帧,通知总线接口模块通过目标车辆的CAN总线接口发送构造的数据帧到目标车辆的CAN总线系统时,用于:
[0096] 从该检测任务的目标车型对应的私有协议中查找该检测任务的检测目标的ID以及该检测任务的检测类型对应的数据帧中各字段的数据长度和默认取值,基于该检测目标ID确定ID变化范围,根据该ID变化范围、该检测任务的检测参数包括的数据变化规则逐个构造用于fuzzing攻击的数据帧,并通知总线接口模块通过目标车辆的CAN总线接口发送构造的每个数据帧到目标车辆的CAN总线系统。
[0097] 图1所示装置中,
[0098] 所述检测参数还包括数据帧发送频率;所述数据变化规则为数据帧中数据字段的数据变化规则;
[0099] 所述处理模块,根据该ID变化范围、该检测任务的检测参数包括的数据变化规则逐个构造用于fuzzing攻击的数据帧时,用于:针对ID变化范围的每一个ID,执行以下操作:根据数据字段的默认取值和所述数据变化规则确定数据字段取值集合,根据该ID和数据字段取值集合中的每个数据字段取值构造一个用于fuzzing攻击的数据帧;
[0100] 所述总线接口模块,通过目标车辆的CAN总线接口发送构造的每个数据帧到目标车辆的CAN总线系统的发送为所述数据帧发送频率。
[0101] 所述循环执行数据帧构造和发送操作的频率为所述数据帧发送频率。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈