CN115801303A - 基于uds协议的入侵检测方法、装置、电子设备及存储介质 - Google Patents
基于uds协议的入侵检测方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115801303A CN115801303A CN202211073769.7A CN202211073769A CN115801303A CN 115801303 A CN115801303 A CN 115801303A CN 202211073769 A CN202211073769 A CN 202211073769A CN 115801303 A CN115801303 A CN 115801303A
- Authority
- CN
- China
- Prior art keywords
- message
- uds
- detected
- preset detection
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Small-Scale Networks (AREA)
Abstract
本公开提供了一种基于UDS协议的入侵检测方法、装置、电子设备及存储介质,涉及车联网技术领域。该方法包括:获取待检测报文;所述待检测报文为基于控制器域网CAN报文解析获取的统一诊断服务UDS报文;根据预设检测策略对所述待检测报文进行检测,获取检测结果;所述预设检测策略包括:第一预设检测策略、第二预设检测策略、以及第三预设检测策略;所述第一预设检测策略用于异常会话控制检测,所述第二预设检测策略用于异常安全访问检测,所述第三预设检测策略用于UDS报文的异常上下文检测。采用本方法能够及时发现攻击者通过注入UDS报文达到攻击目的,保障车辆和驾驶员的安全。
Description
技术领域
本公开涉及车联网技术领域,尤其涉及一种基于UDS协议的入侵检测方法、装置、电子设备及存储介质。
背景技术
UDS(Unified Diagnostic Services,统一诊断服务)协议是ISO 15765和ISO14229定义的一种汽车通用诊断协议,主要对车载电子控制单元提供统一的诊断功能,例如一些电子控制单元的安全访问、程序刷写、读取诊断故障代码等都是由UDS协议完成。UDS作为容易与外界产生联系的协议,安全问题逐渐凸显,利用UDS修改车内安全级别高的标定信息或者干扰车内电子控制单元工作,都会对汽车的安全性造成极大的影响。
现有技术中,主要根据CAN(Controller Area Network,控制器局域网)报文的协议格式进行异常检测分析。但是现有技术的检测范围只局限于CAN报文格式规范,不能针对UDS协议自身的协议特性进行安全检测。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种基于UDS协议的入侵检测方法、装置、电子设备及存储介质,解决了现有技术的检测范围只局限于CAN报文格式规范,不能针对UDS协议自身的协议特性进行安全检测的问题。
为了实现上述目的,本公开实施例提供技术方案如下:
第一方面,本公开的实施例提供一种基于UDS协议的入侵检测方法,所述方法包括:
获取待检测报文;所述待检测报文为基于控制器域网CAN报文解析获取的统一诊断服务UDS报文;
根据预设检测策略对所述待检测报文进行检测,获取检测结果;所述预设检测策略包括:第一预设检测策略、第二预设检测策略、以及第三预设检测策略;所述第一预设检测策略用于异常会话控制检测,所述第二预设检测策略用于异常安全访问检测,所述第三预设检测策略用于UDS报文的异常上下文检测。
作为本公开实施例一种可选的实施方式,所述获取待检测报文,包括:
接收目标电子控制单元广播的CAN报文;
对所述目标电子控制单元广播的CAN报文进行解析,获取对应的UDS报文;所述UDS报文携带有诊断请求报文;所述诊断请求报文包括:第一诊断请求报文、第二诊断请求报文;所述第一诊断请求报文包括:诊断服务ID、诊断服务的操作类型、以及诊断参数;所述第二诊断请求报文包括:诊断服务ID、以及诊断参数;
根据所述UDS报文携带的诊断请求报文的类型,获取待检测报文。
作为本公开实施例一种可选的实施方式,当所述预设检测策略为第一预设检测策略时,所述根据预设检测策略对所述待检测报文进行检测,获取检测结果,包括:
当所述UDS报文携带的诊断请求报文为第一诊断请求报文时,根据所述待检测报文,获取目标诊断服务ID和目标诊断服务操作类型;
当检测到所述目标诊断服务ID为第一诊断服务ID时,检测所述目标诊断服务操作类型是否属于第一诊断服务操作类型、第二诊断服务操作类型、第三诊断服务操作类型中的任一个;
若所述目标诊断服务操作类型属于第一诊断服务操作类型、第二诊断服务操作类型、第三诊断服务操作类型中的任一个,则确定所述目标电子控制单元的会话控制正常;
否则,通过计数器记录异常行为次数,当所述异常行为次数大于预设行为次数时,确定目标电子控制单元遭到攻击。
作为本公开实施例一种可选的实施方式,所述当所述预设检测策略为第二预设检测策略时,所述根据预设检测策略对所述待检测报文进行检测,获取检测结果,包括:
当所述UDS报文携带的诊断请求报文为第一诊断请求报文时,根据所述待检测报文,获取目标诊断服务ID和目标诊断服务操作类型;
当所述待检测报文携带的目标诊断服务ID为第二诊断服务ID,且目标诊断服务操作类型为第一诊断服务操作类型时,检测目标电子控制单元的响应是否为负响应;
在预设时间段内,若检测到所述目标电子控制单元向测试设备返回的负响应次数超过阈值次数时,确定所述目标电子控制单元的安全访问异常。
作为本公开实施例一种可选的实施方式,所述检测目标电子控制单元的响应是否为负响应,包括:
接收测试设备发送的待检测报文;所述待检测报文携带有目标诊断服务ID、目标诊断服务操作类型、以及第一请求种子;
根据随机数生成算法对所述第一请求种子进行加密,生成第二请求种子;
将所述第二请求种子发送给所述测试设备,以使所述测试设备根据随机数生成算法对所述第二请求种子进行加密,生成第一密钥,并将所述目标诊断服务ID、所述目标诊断服务操作类型、以及所述第一密钥发送给目标电子控制单元;
接收所述目标诊断服务ID、所述目标诊断服务操作类型、以及所述第一密钥,根据本地密钥对所述第一密钥进行验证;
若所述本地密钥与所述第一密钥一致,则向所述测试设备发送正响应;
若所述本地密钥与所述第一密钥不一致,则向所述测试设备发送负响应。
作为本公开实施例一种可选的实施方式,当所述预设检测策略为第三预设检测策略时,所述根据预设检测策略对所述待检测报文进行检测,获取检测结果,包括:
根据所述待检测报文,获取所述待检测报文对应的CAN报文;所述CAN报文携带有CAN报文ID、以及第一信号值;所述第一信号值表示所述CAN报文中可配置的信号值;
根据所述CAN报文ID、以及所述第一信号值,判断是否有UDS报文注入操作。
作为本公开实施例一种可选的实施方式,在获取待检测报文之前,所述方法还包括:
设置配置文件的参数;所述配置文件的参数包括:预设行为次数、阈值次数、CAN报文ID、第一信号值、以及UDS报文的ID范围。
第二方面,本公开实施例提供一种基于UDS协议的入侵检测装置,包括:
获取模块,用于获取待检测报文;所述待检测报文为基于控制器域网CAN报文解析获取的统一诊断服务UDS报文;
分析模块,用于根据预设检测策略对所述待检测报文进行检测,获取检测结果;所述预设检测策略包括:第一预设检测策略、第二预设检测策略、以及第三预设检测策略;所述第一预设检测策略用于异常会话控制检测,所述第二预设检测策略用于异常安全访问检测,所述第三预设检测策略用于UDS报文上下文检测。
作为本公开实施例一种可选的实施方式,所述获取模块具体用于:
接收目标电子控制单元广播的CAN报文;
对所述目标电子控制单元广播的CAN报文进行解析,获取对应的UDS报文;所述UDS报文携带有诊断请求报文;所述诊断请求报文包括:第一诊断请求报文、第二诊断请求报文;所述第一诊断请求报文包括:诊断服务ID、诊断服务的操作类型、以及诊断参数;所述第二诊断请求报文包括:诊断服务ID、以及诊断参数;
根据所述UDS报文携带的诊断请求报文的类型,获取待检测报文。
作为本公开实施例一种可选的实施方式,当所述预设检测策略为第一预设检测策略时,所述分析模块,具体用于:
当所述UDS报文携带的诊断请求报文为第一诊断请求报文时,根据所述待检测报文,获取目标诊断服务ID和目标诊断服务操作类型;
当检测到所述目标诊断服务ID为第一诊断服务ID时,检测所述目标诊断服务操作类型是否属于第一诊断服务操作类型、第二诊断服务操作类型、第三诊断服务操作类型中的任一个;
若所述目标诊断服务操作类型属于第一诊断服务操作类型、第二诊断服务操作类型、第三诊断服务操作类型中的任一个,则确定所述目标电子控制单元的会话控制正常;
否则,通过计数器记录异常行为次数,当所述异常行为次数大于预设行为次数时,确定目标电子控制单元遭到攻击。
作为本公开实施例一种可选的实施方式,当所述预设检测策略为第二预设检测策略时,所述分析模块,包括:
获取单元,用于当所述UDS报文携带的诊断请求报文为第一诊断请求报文时,根据所述待检测报文,获取目标诊断服务ID和目标诊断服务操作类型;
检测单元,用于当所述待检测报文携带的目标诊断服务ID为第二诊断服务ID,且目标诊断服务操作类型为第一诊断服务操作类型时,检测目标电子控制单元的响应是否为负响应;
确定单元,用于在预设时间段内,若检测到所述目标电子控制单元向测试设备返回的负响应次数超过阈值次数时,确定所述目标电子控制单元的安全访问异常。
作为本公开实施例一种可选的实施方式,所述检测单元,具体用于:
接收测试设备发送的待检测报文;所述待检测报文携带有目标诊断服务ID、目标诊断服务操作类型、以及第一请求种子;
根据随机数生成算法对所述第一请求种子进行加密,生成第二请求种子;
将所述第二请求种子发送给所述测试设备,以使所述测试设备根据随机数生成算法对所述第二请求种子进行加密,生成第一密钥,并将所述目标诊断服务ID、所述目标诊断服务操作类型、以及所述第一密钥发送给目标电子控制单元;
接收所述目标诊断服务ID、所述目标诊断服务操作类型、以及所述第一密钥,根据本地密钥对所述第一密钥进行验证;
若所述本地密钥与所述第一密钥一致,则向所述测试设备发送正响应;
若所述本地密钥与所述第一密钥不一致,则向所述测试设备发送负响应。
作为本公开实施例一种可选的实施方式,当所述预设检测策略为第三预设检测策略时,所述分析模块用于:
根据所述待检测报文,获取所述待检测报文对应的CAN报文;所述CAN报文携带有CAN报文ID、以及第一信号值;所述第一信号值表示所述CAN报文中可配置的信号值;
根据所述CAN报文ID、以及所述第一信号值,判断是否有UDS报文注入操作。
作为本公开实施例一种可选的实施方式,所述装置还包括:
参数设置模块,用于设置配置文件的参数;所述配置文件的参数包括:预设行为次数、阈值次数、CAN报文ID、第一信号值、以及UDS报文的ID范围。
第三方面,本公开实施例提供一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面或第一方面的任一实施方式所述的基于UDS协议的入侵检测方法。
第四方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面或第一方面的任一实施方式所述的基于UDS协议的入侵检测方法。
本公开提供的基于UDS协议的入侵检测方法,首先获取待检测报文,然后根据预设检测策略对待检测报文进行检测,获取检测结果。由于待检测报文是基于CAN报文解析获取的UDS报文,且预设检测策略包括用于检测异常会话控制的策略、用于检测异常安全访问的策略、以及用于检测UDS报文的上下文异常的策略,所以能够根据UDS报文的协议特性和三种不同的使用场景对UDS报文进行检测,扩充了检测范围,弥补了现有技术无法针对UDS协议特性进行异常检测的缺陷,从而能够及时发现攻击者通过注入UDS报文达到攻击目的,保障车辆和驾驶员的安全。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中CAN协议的格式示意图;
图2为一个实施例中基于UDS协议的入侵检测方法的流程示意图;
图3a为一个实施例中诊断请求报文的格式示意图之一;
图3b为一个实施例中诊断请求报文的格式示意图之二;
图4为一个实施例中基于UDS协议的入侵检测装置的结构示意图;
图5为本公开实施例所述的电子设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
本公开的说明书和权利要求书中的术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
在本公开实施例中,“示例性的”或者“例如”等词是用于表示作例子、例证或说明。本公开实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。此外,在本公开实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。
CAN(Controller Area Network,控制器局域网)是一种基于消息广播模式的串行通信总线。用于实现汽车内ECU(Electronic Control Unit,电子控制单元)之间可靠的通信。CAN协议格式参照图1所示,一般主要关注Identifier、DLC、Data Field。其中,Identifier用来标识不同的CAN报文,可以表示为CAN ID,DLC用来标识数据域的长度,DataField表示数据域,承载至少一个信号。需要说明的是,UDS报文具体的协议格式表现在CAN报文的数据域上(也就是,图1中的Data Field中)。UDS一般在诊断设备和ECU之间通过一问一答的形式进行通信,因此,UDS一般分为诊断请求报文和诊断响应报文。
为了弥补现有技术只能针对CAN报文规范进行异常检测,而无法针对UDS协议特性进行异常检测的缺陷,本公开根据UDS报文的协议特性和三种不同的使用场景对UDS报文进行检测,扩充了检测范围,能够及时发现攻击者通过注入UDS报文达到攻击目的,保障车辆和驾驶员的安全。
在一个实施例中,如图2所示,提供一种基于UDS协议的入侵检测方法,包括如下步骤:
S21、获取待检测报文。
其中,待检测报文为基于控制器域网CAN报文解析获取的统一诊断服务UDS报文。
在一些实施例中,步骤S21(获取待检测报文)的实现方式可以包括:
接收目标电子控制单元广播的CAN报文。
对所述目标电子控制单元广播的CAN报文进行解析,获取对应的UDS报文。
其中,UDS报文携带有诊断请求报文;所述诊断请求报文包括:第一诊断请求报文、第二诊断请求报文;所述第一诊断请求报文包括:诊断服务ID、诊断服务的操作类型、以及诊断参数;所述第二诊断请求报文包括:诊断服务ID、以及诊断参数。
根据所述UDS报文携带的诊断请求报文的类型,获取待检测报文。
具体的,对ECU广播的CAN报文进行解析,获取对应的UDS报文,UDS报文可以理解为待检测报文。UDS报文携带有诊断请求报文。UDS请求报文可以分为两类:一类是拥有sub-function的,参照图3a所示,其中,311表示诊断服务ID,Service ID的长度固定为1个字节,诊断服务ID用于指示诊断命令执行的功能。例如,当诊断ID为10,指示该条诊断命令执行的是切换会话的功能;当诊断ID为27,指示该条诊断命令执行的是安全模式切换的功能。312表示诊断服务的操作类型,诊断服务的操作类型包括但不限于:启动诊断服务、停止诊断服务、查询诊断服务等。313表示诊断参数,诊断参数用于限定诊断服务执行的条件,它是根据各个诊断服务的不同以确定不同的内容,长度和格式没有统一规格,例如,某个诊断服务执行的时间。还有一类是没有sub-function的诊断请求,参照图3b所示,其中,321表示诊断服务ID,Service ID的长度固定为1个字节,诊断服务ID用于指示诊断命令执行的功能。322表示诊断参数,诊断参数用于限定诊断服务执行的条件,它是根据各个诊断服务的不同以确定不同的内容,长度和格式没有统一规格。其中,字节是二进制数据的单位。一个字节是一个8位长的数据单位。
S22、根据预设检测策略对所述待检测报文进行检测,获取检测结果。
其中,预设检测策略包括:第一预设检测策略、第二预设检测策略、以及第三预设检测策略;第一预设检测策略用于异常会话控制检测,第二预设检测策略用于异常安全访问检测,第三预设检测策略用于UDS报文的异常上下文检测。
本公开提供的基于UDS协议的入侵检测方法,首先获取待检测报文,然后根据预设检测策略对待检测报文进行检测,获取检测结果。由于待检测报文是基于CAN报文解析获取的UDS报文,且预设检测策略包括用于检测异常会话控制的策略、用于检测异常安全访问的策略、以及用于检测UDS报文的上下文异常的策略,所以能够根据UDS报文的协议特性和三种不同的使用场景对UDS报文进行检测,扩充了检测范围,弥补了现有技术无法针对UDS协议特性进行异常检测的缺陷,从而能够及时发现攻击者通过注入UDS报文达到攻击目的,保障车辆和驾驶员的安全。
在一些实施例中,当预设检测策略为第一预设检测策略时,根据预设检测策略对待检测报文进行检测,获取检测结果,可以通过如下步骤a-d实现:
a、当所述UDS报文携带的诊断请求报文为第一诊断请求报文时,根据所述待检测报文,获取目标诊断服务ID和目标诊断服务操作类型。
具体的,当待检测报文为第一诊断请求报文时,获取目标诊断服务ID和目标诊断服务操作类型。
b、当检测到所述目标诊断服务ID为第一诊断服务ID时,检测所述目标诊断服务操作类型是否属于第一诊断服务操作类型、第二诊断服务操作类型、第三诊断服务操作类型中的任一个。
在本实施例中,第一诊断服务ID为0x10,0x10对应的诊断服务名为诊断会话控制。
具体的,根据ISO(International Organization for Standardization,国际标准化组织)规范,ECU支持三种会话控制模式分别是默认会话Default Session、编程会话Program Session、扩展会话Extend Session。各种会话模式支持的功能是不一样的。比如,默认会话下,ECU支持一些简单的UDS功能,如ECU复位、清除诊断信息等;相较之下,编程会话和扩展会话支持的UDS功能更加丰富,还支持一些高权限的操作如ECU数据刷写操作等。ECU上电启动后自动进入默认会话。ISO允许车厂在ECU生产过程中定义其它会话来实现ECU功能测试,比如使用UDS协议控制车窗开启关闭等。
c、若所述目标诊断服务操作类型属于第一诊断服务操作类型、第二诊断服务操作类型、第三诊断服务操作类型中的任一个,则确定所述目标电子控制单元的会话控制正常。
示例性的,参照图3a所示,Sub-Function字段标识三种不同的会话。第一诊断服务操作类型对应的会话字段为0x01,第二诊断服务操作类型对应的会话字段为0x02,第三诊断服务操作类型对应的会话字段为0x03。在本实施例中,当检测到Service ID为0x10时,检测Sub-Function值是否属于0x01、0x02和0x03中的任意一个,若属于,则说明该电子控制单元的会话控制正常。
d、否则,通过计数器记录异常行为次数,当所述异常行为次数大于预设行为次数时,确定所述目标电子控制单元遭到攻击。
具体的,假若出现频繁发送切换会话指令,且切换会话指令中要求切换的会话不是以上三种会话,则有可能是攻击者企图寻找目标电子控制单元中车厂自定义会话来达到攻击的目的。
示例性的,当检测到Service ID为0x10时,检测到Sub-Function值不属于0x01、0x02和0x03中的任意一个,则通过计数器记录异常行为次数,当异常行为次数大于预设行为次数时,确定该电子控制单元遭到攻击。需要说明的是,预设行为次数可以是3次或4次,还可以是其他合理数值,此处不做具体限制。
在一些实施例中,当预设检测策略为第二预设检测策略时,根据预设检测策略对待检测报文进行检测,获取检测结果,可以通过如下步骤A-C实现:
A、当所述UDS报文携带的诊断请求报文为第一诊断请求报文时,根据所述待检测报文,获取目标诊断服务ID和目标诊断服务操作类型。
具体的,当待检测报文为第一诊断请求报文时,获取目标诊断服务ID和目标诊断服务操作类型。
B、当所述待检测报文携带的目标诊断服务ID为第二诊断服务ID,且目标诊断服务操作类型为第一诊断服务操作类型时,检测目标电子控制单元的响应是否为负响应。
在本实施例中,第二诊断服务ID为0x27,0x27对应的诊断服务名为安全访问。
在一些实施例中,当所述待检测报文携带的目标诊断服务ID为第二诊断服务ID,且目标诊断服务操作类型为第一诊断服务操作类型时,检测目标电子控制单元的响应是否为负响应,可以通过如下方式实现:
B1、接收测试设备发送的待检测报文。
其中,待检测报文携带有目标诊断服务ID、目标诊断服务操作类型、以及第一请求种子。
B2、根据随机数生成算法对所述第一请求种子进行加密,生成第二请求种子。
B3、将所述第二请求种子发送给所述测试设备,以使所述测试设备根据随机数生成算法对所述第二请求种子进行加密,生成第一密钥,并将所述目标诊断服务ID、所述目标诊断服务操作类型、以及所述第一密钥发送给目标电子控制单元。
B4、接收所述目标诊断服务ID、所述目标诊断服务操作类型、以及所述第一密钥,根据本地密钥对所述第一密钥进行验证。
B5、若所述本地密钥与所述第一密钥一致,则向所述测试设备发送正响应。
B6、若所述本地密钥与所述第一密钥不一致,则向所述测试设备发送负响应。
示例性的,根据ISO规范所示,安全访问服务(Service ID为0x27)一般用于数据上传、下载等重要信息传递的过程中。测试设备作为客户端,目标电子控制单元作为服务端,两者之间的安全访问流程如下:首先,测试设备发送携带有目标诊断服务ID、目标诊断服务操作类型、以及第一请求种子的待检测报文,例如,目标诊断服务ID为0x27,目标诊断服务操作类型为0x01。目标电子控制单元根据随机数生成算法对第一请求种子加密,生成第二请求种子,然后将第二请求种子发送给测试设备,以使测试设备根据随机数生成算法对第二请求种子进行加密,生成第一密钥,并将目标诊断服务ID、目标诊断服务操作类型、以及第一密钥发送给目标电子控制单元,目标电子控制单元将本地密钥与第一密钥进行对比,得到验证结果,如果本地密钥与第一密钥一样,则向测试设备发送正响应,如果本地密钥与第一密钥不一样,则向测试设备发送负响应。
C、在预设时间段内,若检测到所述目标电子控制单元向测试设备返回的负响应次数超过阈值次数时,确定所述目标电子控制单元的安全访问异常。
针对此场景,如果服务端,也就是,目标电子控制单元没有对第一密钥的验证做限制,例如,超时失效机制或者单次使用限制,那么攻击者可能会对第一密钥尝试破解,即,攻击者根据服务端发送给客户端的第二请求种子使用不同的算法,生成各种第一密钥,并发送给服务端,尝试通过服务端的安全验证,当验证通过时,攻击者则可以获取到安全算法为当前计算的第一密钥的算法,从而达到攻击目的。
因此,当检测到待测试报文为0x27 0x02时,检测服务端的响应是否为负响应。如果在一段时间内,频繁检测到客户端发送0x27 0x02请求,服务端返回给客户端的负响应次数超过阈值次数,则确定目标电子控制单元的安全访问异常,也就是,此时可能有攻击者通过注入方式企图破解目标电子控制单元的安全算法。
在一些实施例中,当预设检测策略为第三预设检测策略时,根据预设检测策略对待检测报文进行检测,获取检测结果,可以通过如下方式实现:
根据所述待检测报文,获取所述待检测报文对应的CAN报文。
其中,CAN报文携带有CAN报文ID、以及第一信号值;所述第一信号值表示所述CAN报文中可配置的信号值;
根据所述CAN报文ID、以及所述第一信号值,判断是否有UDS报文注入操作。
UDS协议设计的诊断报文权限较高,能够对ECU进行重启、功能刷写等操作,因此,一般UDS报文出现的场景为修理车厂、4S店等车辆静止的状态下,而车辆在行驶过程中出现UDS报文是比较危险的行为,比如车辆在高速行驶过程中,通过ECU复位操作,让某个ECU重启可能会对驾驶人员造成安全风险。
示例性的,用户可以配置UDS报文出现的前提,比如,用户指定车速为0的情况下才能出现UDS报文,速度是CAN报文中携带的一个信号值,那么需要配置速度信号所在的CAN报文ID、以及车速。
在本实施例中,通过监控速度所在CAN ID的CAN报文,并从数据域中提取出速度信号实施记录,当检测到UDS报文时,根据速度是否为0来判断是否有UDS报文的注入操作。
在一些实施例中,在获取待检测报文之前,还可以设置配置文件的参数。
其中,配置文件的参数包括:预设行为次数、阈值次数、CAN报文ID、第一信号值、以及UDS报文的ID范围。
具体的,配置文件主要包含三种检测场景的配置,包含会话控制异常检测的预设行为次数、异常安全访问检测的阈值次数、UDS报文上下文检测中上下文信号的提取规则(包括CAN ID和信号值)。除此之外,还可以包括UDS报文的ID范围,由于UDS报文的载体是CAN报文,因此配置文件中需要指定UDS报文的CAN ID范围,检测引擎才能识别出待检测报文是否为UDS报文。
本公开提供的基于UDS协议的入侵检测方法,首先获取待检测报文,然后根据预设检测策略对待检测报文进行检测,获取检测结果。由于待检测报文是基于CAN报文解析获取的UDS报文,且预设检测策略包括用于检测异常会话控制的策略、用于检测异常安全访问的策略、以及用于检测UDS报文的上下文异常的策略,所以能够根据UDS报文的协议特性和三种不同的使用场景对UDS报文进行检测,扩充了检测范围,弥补了现有技术无法针对UDS协议特性进行异常检测的缺陷,从而能够及时发现攻击者通过注入UDS报文达到攻击目的,保障车辆和驾驶员的安全。
在一个实施例中,如图4所示,提供了一种基于UDS协议的入侵检测装置400,包括:
获取模块410,用于获取待检测报文;所述待检测报文为基于控制器域网CAN报文解析获取的统一诊断服务UDS报文;
分析模块420,用于根据预设检测策略对所述待检测报文进行检测,获取检测结果;所述预设检测策略包括:第一预设检测策略、第二预设检测策略、以及第三预设检测策略;所述第一预设检测策略用于异常会话控制检测,所述第二预设检测策略用于异常安全访问检测,所述第三预设检测策略用于UDS报文上下文检测。
作为本公开实施例一种可选的实施方式,所述获取模块410具体用于:
接收目标电子控制单元广播的CAN报文;
对所述目标电子控制单元广播的CAN报文进行解析,获取对应的UDS报文;所述UDS报文携带有诊断请求报文;所述诊断请求报文包括:第一诊断请求报文、第二诊断请求报文;所述第一诊断请求报文包括:诊断服务ID、诊断服务的操作类型、以及诊断参数;所述第二诊断请求报文包括:诊断服务ID、以及诊断参数;
根据所述UDS报文携带的诊断请求报文的类型,获取待检测报文。
作为本公开实施例一种可选的实施方式,当所述预设检测策略为第一预设检测策略时,所述分析模块420,具体用于:
当所述UDS报文携带的诊断请求报文为第一诊断请求报文时,根据所述待检测报文,获取目标诊断服务ID和目标诊断服务操作类型;
当检测到所述目标诊断服务ID为第一诊断服务ID时,检测所述目标诊断服务操作类型是否属于第一诊断服务操作类型、第二诊断服务操作类型、第三诊断服务操作类型中的任一个;
若所述目标诊断服务操作类型属于第一诊断服务操作类型、第二诊断服务操作类型、第三诊断服务操作类型中的任一个,则确定所述目标电子控制单元的会话控制正常;
否则,通过计数器记录异常行为次数,当所述异常行为次数大于预设行为次数时,确定目标电子控制单元遭到攻击。
作为本公开实施例一种可选的实施方式,当所述预设检测策略为第二预设检测策略时,所述分析模块420,包括:
获取单元,用于当所述UDS报文携带的诊断请求报文为第一诊断请求报文时,根据所述待检测报文,获取目标诊断服务ID和目标诊断服务操作类型;
检测单元,用于当所述待检测报文携带的目标诊断服务ID为第二诊断服务ID,且目标诊断服务操作类型为第一诊断服务操作类型时,检测目标电子控制单元的响应是否为负响应;
确定单元,用于在预设时间段内,若检测到所述目标电子控制单元向测试设备返回的负响应次数超过阈值次数时,确定所述目标电子控制单元的安全访问异常。
作为本公开实施例一种可选的实施方式,所述检测单元,具体用于:
接收测试设备发送的待检测报文;所述待检测报文携带有目标诊断服务ID、目标诊断服务操作类型、以及第一请求种子;
根据随机数生成算法对所述第一请求种子进行加密,生成第二请求种子;
将所述第二请求种子发送给所述测试设备,以使所述测试设备根据随机数生成算法对所述第二请求种子进行加密,生成第一密钥,并将所述目标诊断服务ID、所述目标诊断服务操作类型、以及所述第一密钥发送给目标电子控制单元;
接收所述目标诊断服务ID、所述目标诊断服务操作类型、以及所述第一密钥,根据本地密钥对所述第一密钥进行验证;
若所述本地密钥与所述第一密钥一致,则向所述测试设备发送正响应;
若所述本地密钥与所述第一密钥不一致,则向所述测试设备发送负响应。
作为本公开实施例一种可选的实施方式,当所述预设检测策略为第三预设检测策略时,所述分析模块420用于:
根据所述待检测报文,获取所述待检测报文对应的CAN报文;所述CAN报文携带有CAN报文ID、以及第一信号值;所述第一信号值表示所述CAN报文中可配置的信号值;
根据所述CAN报文ID、以及所述第一信号值,判断是否有UDS报文注入操作。
作为本公开实施例一种可选的实施方式,所述装置还包括:
参数设置模块,用于设置配置文件的参数;所述配置文件的参数包括:预设行为次数、阈值次数、CAN报文ID、第一信号值、以及UDS报文的ID范围。
应用本公开实施例提供的基于UDS协议的入侵检测装置,首先获取待检测报文,然后根据预设检测策略对待检测报文进行检测,获取检测结果。由于待检测报文是基于CAN报文解析获取的UDS报文,且预设检测策略包括用于检测异常会话控制的策略、用于检测异常安全访问的策略、以及用于检测UDS报文的上下文异常的策略,所以能够根据UDS报文的协议特性和三种不同的使用场景对UDS报文进行检测,扩充了检测范围,弥补了现有技术无法针对UDS协议特性进行异常检测的缺陷,从而能够及时发现攻击者通过注入UDS报文达到攻击目的,保障车辆和驾驶员的安全。
关于基于UDS协议的入侵检测装置的具体限定可以参见上文中对于基于UDS协议的入侵检测方法的限定,在此不再赘述。上述基于UDS协议的入侵检测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于电子设备的处理器中,也可以软件形式存储于电子设备的处理器中,以便于处理器调用执行以上各个模块对应的操作。
本公开实施例还提供了一种电子设备,图5为本公开实施例提供的电子设备的结构示意图。如图5所示,本实施例提供的电子设备包括:存储器51和处理器52,存储器51用于存储计算机程序;处理器52用于调用计算机程序时执行上述方法实施例提供的基于UDS协议的入侵检测方法中任一实施例所执行的步骤。所述电子设备包括通过***总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,所述电子设备的处理器用于提供计算和控制能力。所述电子设备的存储器包括非易失性存储介质、内存储器。所述非易失性存储介质存储有操作***和计算机程序。所述内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。所述计算机程序被处理器执行时以实现一种基于UDS协议的入侵检测方法。所述电子设备的显示屏可以是液晶显示屏或者电子墨水显示屏,所述电子设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本公开方案相关的部分结构的框图,并不构成对本公开方案所应用于其上的计算机设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本公开提供的基于UDS协议的入侵检测装置可以实现为一种计算机的形式,计算机程序可以在如图5所示的电子设备上运行。电子设备的存储器中可存储组成该电子设备的基于UDS协议的入侵检测装置的各个程序模块,比如,图4中所示的获取模块410、以及分析模块420。各个程序模块构成的计算机程序使得处理器执行本说明书描述的本公开各个实施例的电子设备的基于UDS协议的入侵检测方法中的步骤。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例提供的基于UDS协议的入侵检测方法。
本领域技术人员应明白,本公开的实施例可提供为方法、***、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。
处理器可以是中央判断单元(CentralProcessingUnit,CPU),还可以是其他通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动存储介质。存储介质可以由任何方法或技术来实现信息存储,信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。根据本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种基于UDS协议的入侵检测方法,其特征在于,包括:
获取待检测报文;所述待检测报文为基于控制器域网CAN报文解析获取的统一诊断服务UDS报文;
根据预设检测策略对所述待检测报文进行检测,获取检测结果;所述预设检测策略包括:第一预设检测策略、第二预设检测策略、以及第三预设检测策略;所述第一预设检测策略用于异常会话控制检测,所述第二预设检测策略用于异常安全访问检测,所述第三预设检测策略用于UDS报文的异常上下文检测。
2.根据权利要求1所述的方法,其特征在于,所述获取待检测报文,包括:
接收目标电子控制单元广播的CAN报文;
对所述目标电子控制单元广播的CAN报文进行解析,获取对应的UDS报文;所述UDS报文携带有诊断请求报文;所述诊断请求报文包括:第一诊断请求报文、第二诊断请求报文;所述第一诊断请求报文包括:诊断服务ID、诊断服务的操作类型、以及诊断参数;所述第二诊断请求报文包括:诊断服务ID、以及诊断参数;
根据所述UDS报文携带的诊断请求报文的类型,获取待检测报文。
3.根据权利要求2所述的方法,其特征在于,当所述预设检测策略为第一预设检测策略时,所述根据预设检测策略对所述待检测报文进行检测,获取检测结果,包括:
当所述UDS报文携带的诊断请求报文为第一诊断请求报文时,根据所述待检测报文,获取目标诊断服务ID和目标诊断服务操作类型;
当检测到所述目标诊断服务ID为第一诊断服务ID时,检测所述目标诊断服务操作类型是否属于第一诊断服务操作类型、第二诊断服务操作类型、第三诊断服务操作类型中的任一个;
若所述目标诊断服务操作类型属于第一诊断服务操作类型、第二诊断服务操作类型、第三诊断服务操作类型中的任一个,则确定所述目标电子控制单元的会话控制正常;
否则,通过计数器记录异常行为次数,当所述异常行为次数大于预设行为次数时,确定目标电子控制单元遭到攻击。
4.根据权利要求2所述的方法,其特征在于,当所述预设检测策略为第二预设检测策略时,所述根据预设检测策略对所述待检测报文进行检测,获取检测结果,包括:
当所述UDS报文携带的诊断请求报文为第一诊断请求报文时,根据所述待检测报文,获取目标诊断服务ID和目标诊断服务操作类型;
当所述待检测报文携带的目标诊断服务ID为第二诊断服务ID,且目标诊断服务操作类型为第一诊断服务操作类型时,检测目标电子控制单元的响应是否为负响应;
在预设时间段内,若检测到所述目标电子控制单元向测试设备返回的负响应次数超过阈值次数时,确定所述目标电子控制单元的安全访问异常。
5.根据权利要求4所述的方法,其特征在于,所述检测目标电子控制单元的响应是否为负响应,包括:
接收测试设备发送的待检测报文;所述待检测报文携带有目标诊断服务ID、目标诊断服务操作类型、以及第一请求种子;
根据随机数生成算法对所述第一请求种子进行加密,生成第二请求种子;
将所述第二请求种子发送给所述测试设备,以使所述测试设备根据随机数生成算法对所述第二请求种子进行加密,生成第一密钥,并将所述目标诊断服务ID、所述目标诊断服务操作类型、以及所述第一密钥发送给目标电子控制单元;
接收所述目标诊断服务ID、所述目标诊断服务操作类型、以及所述第一密钥,根据本地密钥对所述第一密钥进行验证;
若所述本地密钥与所述第一密钥一致,则向所述测试设备发送正响应;
若所述本地密钥与所述第一密钥不一致,则向所述测试设备发送负响应。
6.根据权利要求1所述的方法,其特征在于,当所述预设检测策略为第三预设检测策略时,所述根据预设检测策略对所述待检测报文进行检测,获取检测结果,包括:
根据所述待检测报文,获取所述待检测报文对应的CAN报文;所述CAN报文携带有CAN报文ID、以及第一信号值;所述第一信号值表示所述CAN报文中可配置的信号值;
根据所述CAN报文ID、以及所述第一信号值,判断是否有UDS报文注入操作。
7.根据权利要求1所述的方法,其特征在于,在获取待检测报文之前,所述方法还包括:
设置配置文件的参数;所述配置文件的参数包括:预设行为次数、阈值次数、CAN报文ID、第一信号值、以及UDS报文的ID范围。
8.一种基于UDS协议的入侵检测装置,其特征在于,包括:
获取模块,用于获取待检测报文;所述待检测报文为基于控制器域网CAN报文解析获取的统一诊断服务UDS报文;
分析模块,用于根据预设检测策略对所述待检测报文进行检测,获取检测结果;所述预设检测策略包括:第一预设检测策略、第二预设检测策略、以及第三预设检测策略;所述第一预设检测策略用于异常会话控制检测,所述第二预设检测策略用于异常安全访问检测,所述第三预设检测策略用于UDS报文上下文检测。
9.一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的基于UDS协议的入侵检测方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7中任一项所述的基于UDS协议的入侵检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211073769.7A CN115801303A (zh) | 2022-09-02 | 2022-09-02 | 基于uds协议的入侵检测方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211073769.7A CN115801303A (zh) | 2022-09-02 | 2022-09-02 | 基于uds协议的入侵检测方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115801303A true CN115801303A (zh) | 2023-03-14 |
Family
ID=85431680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211073769.7A Pending CN115801303A (zh) | 2022-09-02 | 2022-09-02 | 基于uds协议的入侵检测方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115801303A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117250943A (zh) * | 2023-11-20 | 2023-12-19 | 常州星宇车灯股份有限公司 | 一种车辆uds服务报文异常检测方法及检测*** |
-
2022
- 2022-09-02 CN CN202211073769.7A patent/CN115801303A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117250943A (zh) * | 2023-11-20 | 2023-12-19 | 常州星宇车灯股份有限公司 | 一种车辆uds服务报文异常检测方法及检测*** |
CN117250943B (zh) * | 2023-11-20 | 2024-02-06 | 常州星宇车灯股份有限公司 | 一种车辆uds服务报文异常检测方法及检测*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7247089B2 (ja) | 車両異常検知サーバ、車両異常検知システム及び車両異常検知方法 | |
US11755713B2 (en) | System and method for controlling access to an in-vehicle communication network | |
US11277427B2 (en) | System and method for time based anomaly detection in an in-vehicle communication | |
US10708293B2 (en) | System and method for time based anomaly detection in an in-vehicle communication network | |
US11165851B2 (en) | System and method for providing security to a communication network | |
CN111142500B (zh) | 车辆诊断数据的权限设置方法、装置及车载网关控制器 | |
KR101907011B1 (ko) | 차량 네트워크 통신보안성 평가 및 모니터링 장치 | |
US20170155679A1 (en) | Method of preventing drive-by hacking, and apparatus and system therefor | |
CN110989564B (zh) | 一种汽车数据诊断方法及装置 | |
KR101781135B1 (ko) | 차량 네트워크 통신보안성 평가 및 모니터링 장치 | |
CN113114659B (zh) | 诊断设备检测方法、装置、终端设备及存储介质 | |
CN111314386A (zh) | 一种智能网联汽车的入侵检测方法和装置 | |
CN115801303A (zh) | 基于uds协议的入侵检测方法、装置、电子设备及存储介质 | |
US7801652B2 (en) | Method for storing data concerning an operating fault of a device | |
CN115603975B (zh) | 报文的入侵检测方法、装置、电子设备及存储介质 | |
WO2023048185A1 (ja) | 車両セキュリティ分析装置、方法およびそのプログラム | |
CN112217799B (zh) | 一种车辆诊断方法、车辆诊断装置及终端设备 | |
CN113341914B (zh) | 一种发动机的计时处理方法、***及装置 | |
KR101902823B1 (ko) | 차량 네트워크 통신보안성 평가 및 모니터링 장치 | |
CN111145386A (zh) | 一种基于区块链管理行车电脑数据的方法、设备及介质 | |
WO2023048187A1 (ja) | 車両セキュリティ分析装置、方法およびそのプログラム | |
US20240021028A1 (en) | Method of preventing vehicle controller from being hacked and system thereof | |
CN115499201A (zh) | 车辆的网关安全测试方法、装置、电子设备及存储介质 | |
CN118215609A (zh) | 侵入检测*** | |
CN115150187A (zh) | 车载总线报文安全检测方法、装置、车载终端及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |