一种基于DoIP协议的入侵检测防御方法及系统转让专利

申请号 : CN202011110543.0

文献号 : CN112422506B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王建伟李华领庞旭东吉喆袁朝阳李鑫

申请人 : 郑州信大捷安信息技术股份有限公司

摘要 :

本发明提供一种基于DoIP协议的入侵检测防御方法及系统。该方法包括在外部测试设备中设置DoIP协议模块,在车内DoIP实体中设置DoIP协议模块和DoIP入侵检测模块;在所述车内DoIP实体中设置DoIP报文格式、DoIP报文场景和DoIP报文间隔的检测策略;当所述外部测试设备对所述车内DoIP实体进行诊断通讯时,所述车内DoIP实体按照所述检测策略依次进行DoIP报文格式、DoIP报文场景和DoIP报文间隔的检测。本发明通过DoIP入侵检测模块能够对DoIP报文先进行检测,识别不同工作场景下的报文头格式、报文类型、报文长度、报文请求间隔、报文传输层协议类型、报文请求响应间隔等异常,过滤异常的非法报文,提升DoIP报文的安全合法性。

权利要求 :

1.一种基于DoIP协议的入侵检测防御方法,其特征在于,包括:在外部测试设备中设置DoIP协议模块,在车内DoIP实体中设置DoIP协议模块和DoIP入侵检测模块;

在所述车内DoIP实体中设置DoIP报文格式、DoIP报文场景和DoIP报文间隔的检测策略;

当所述外部测试设备对所述车内DoIP实体进行诊断通讯时,所述车内DoIP实体按照所述检测策略依次进行DoIP报文格式、DoIP报文场景和DoIP报文间隔的检测;

所述DoIP报文格式的检测策略包括:报文头格式检测策略,以及报文类型、报文长度与报文传输层协议检测策略;所述报文头格式检测策略为报文头参数的合法值域的检测策略,所述报文头参数包括协议版本信息、协议版本按位取反信息、数据类型和数据长度;所述报文类型、报文长度与报文传输层协议检测策略为检测不同报文数据类型是否符合设定的数据长度和传输层协议类型的策略,所述报文数据类型包括发送报文数据和接收报文数据,所述传输层协议类型包括UDP协议和TCP协议;

所述DoIP报文场景的检测策略为检测不同报文数据类型是否支持设定的工作场景的策略,所述工作场景包括车辆发现、TCP连接、路由激活、车辆诊断中的至少一种;

所述DoIP报文间隔的检测策略为检测报文处理是否符合设定的时间间隔的策略;

当所述外部测试设备对所述车内DoIP实体进行诊断通讯时,所述车内DoIP实体按照所述检测策略依次进行DoIP报文格式、DoIP报文场景和DoIP报文间隔的检测,具体包括:当所述外部测试设备对所述车内DoIP实体进行诊断通讯时,所述外部测试设备通过其DoIP协议模块对诊断数据进行封装后生成DoIP报文,并发送至所述车内DoIP实体;

所述车内DoIP实体接收到封装后的所述DoIP报文后,上传至其DoIP入侵检测模块;

所述车内DoIP实体通过其DoIP入侵检测模块解析封装后的所述DoIP报文后,使用所述报文头格式检测策略检测所述DoIP报文的报文头各个参数是否在合法值域内,若不在合法值域内,则所述DoIP报文为非法报文;若在合法值域内,则开始检测报文类型;

所述车内DoIP实体通过其DoIP入侵检测模块使用所述报文类型检测策略检测所述DoIP报文是否符合接收报文数据类型,若不符合,则所述DoIP报文为非法报文;若符合,则开始检测报文长度;

所述车内DoIP实体通过其DoIP入侵检测模块使用所述报文长度检测策略检测所述DoIP报文的数据长度与设定的数据长度是否一致,若不一致,则所述DoIP报文为非法报文;

若一致,则开始检测报文传输层协议;

所述车内DoIP实体通过其DoIP入侵检测模块使用所述报文传输层协议检测策略检测所述DoIP报文的传输层协议与设定的传输层协议是否一致,若不一致,则所述DoIP报文为非法报文;若一致,则开始检测报文场景;

所述车内DoIP实体通过其DoIP入侵检测模块使用所述DoIP报文场景的检测策略检测所述DoIP报文是否支持设定的工作场景,若所述DoIP报文属于设定的工作场景以外的报文,则所述DoIP报文为非法报文;若所述DoIP报文支持设定的工作场景,则开始检测当前是否还在处理上一DoIP报文请求;

若所述车内DoIP实体通过其DoIP入侵检测模块检测获知当前正在处理上一DoIP报文请求且通过所述DoIP报文间隔的检测策略判断处理时间并未超过设定的时间间隔,则所述DoIP报文为非法报文;否则,将所述DoIP报文发送至其DoIP协议模块进行处理,并将处理的响应结果返回至所述外部测试设备。

2.根据权利要求1所述的入侵检测防御方法,其特征在于,所述车内DoIP实体通过其DoIP入侵检测模块在检测所述报文头格式、所述报文类型和所述报文长度的过程中,在检测获知DoIP报文为非法报文后,通知其DoIP协议模块进行否定响应的发送,DoIP入侵检测模块记录所述DoIP报文的错误日志并结束退出;

所述车内DoIP实体通过其DoIP入侵检测模块在检测所述报文传输层协议、所述报文场景和所述报文间隔的过程中,在检测获知DoIP报文为非法报文后,通过DoIP入侵检测模块记录所述DoIP报文的错误日志并结束退出。

3.根据权利要求1所述的入侵检测防御方法,其特征在于,所述车内DoIP实体通过其DoIP入侵检测模块在检测报文头格式之前,还包括:所述车内DoIP实体通过其DoIP入侵检测模块检测DoIP激活线状态,确保处于工作状态,若DoIP激活线状态为inactive,表明不处于工作状态,则所述DoIP报文为非法报文,记录所述DoIP报文的错误日志并结束退出;若DoIP激活线状态为active,表明处于工作状态。

4.根据权利要求1所述的入侵检测防御方法,其特征在于,所述车内DoIP实体中还设置有TCP/IP协议模块和UDS模块;所述DoIP入侵检测模块位于所述DoIP协议模块的下层,位于TCP/IP协议模块的上层。

5.根据权利要求1所述的入侵检测防御方法,其特征在于,在外部测试设备中设置DoIP入侵检测模块;在所述外部测试设备中设置DoIP报文格式、DoIP报文场景和DoIP报文间隔的检测策略;当所述外部测试设备接收所述车内DoIP实体的诊断通讯响应时,所述外部测试设备按照所述检测策略依次进行DoIP报文格式、DoIP报文场景和DoIP报文间隔的检测。

6.一种基于DoIP协议的入侵检测防御系统,其特征在于,所述入侵检测防御系统包括:DoIP设置单元、检测策略设置单元和报文检测单元;

所述DoIP设置单元,用于在外部测试设备中设置DoIP协议模块,在车内DoIP实体中设置DoIP协议模块和DoIP入侵检测模块;

所述检测策略设置单元,用于在所述车内DoIP实体中设置DoIP报文格式、DoIP报文场景和DoIP报文间隔的检测策略;

所述报文检测单元,用于当所述外部测试设备对所述车内DoIP实体进行诊断通讯时,所述车内DoIP实体按照所述检测策略依次进行DoIP报文格式、DoIP报文场景和DoIP报文间隔的检测;

所述DoIP报文格式的检测策略包括:报文头格式检测策略,以及报文类型、报文长度与报文传输层协议检测策略;所述报文头格式检测策略为报文头参数的合法值域的检测策略,所述报文头参数包括协议版本信息、协议版本按位取反信息、数据类型和数据长度;所述报文类型、报文长度与报文传输层协议检测策略为检测不同报文数据类型是否符合设定的数据长度和传输层协议类型的策略,所述报文数据类型包括发送报文数据和接收报文数据,所述传输层协议类型包括有UDP协议和TCP协议;

所述DoIP报文场景的检测策略为检测不同报文数据类型是否支持设定的工作场景的策略,所述工作场景包括车辆发现、TCP连接、路由激活、车辆诊断中的至少一种;

所述DoIP报文间隔检测策略为检测报文处理是否符合设定的时间间隔的策略;

当所述外部测试设备对所述车内DoIP实体进行诊断通讯时,所述车内DoIP实体按照所述检测策略依次进行DoIP报文格式、DoIP报文场景和DoIP报文间隔的检测,具体包括:当所述外部测试设备对所述车内DoIP实体进行诊断通讯时,所述外部测试设备通过其DoIP协议模块对诊断数据进行封装后生成DoIP报文,并发送至所述车内DoIP实体;

所述车内DoIP实体接收到封装后的所述DoIP报文后,上传至其DoIP入侵检测模块;

所述车内DoIP实体通过其DoIP入侵检测模块解析封装后的所述DoIP报文后,使用所述DoIP报文格式检测策略中的报文头格式检测策略检测该DoIP报文的报文头各个参数是否在合法值域内,若不在合法值域内,则该DoIP报文为非法报文;若在合法值域内,则开始检测报文类型;

所述车内DoIP实体通过其DoIP入侵检测模块使用所述报文类型检测策略检测所述DoIP报文是否符合接收报文数据类型,若不符合,则所述DoIP报文为非法报文;若符合,则开始检测报文长度;

所述车内DoIP实体通过其DoIP入侵检测模块使用所述报文长度检测策略检测所述DoIP报文的数据长度与设定的数据长度是否一致,若不一致,则所述DoIP报文为非法报文;

若一致,则开始检测报文传输层协议;

所述车内DoIP实体通过其DoIP入侵检测模块使用所述报文传输层协议检测策略检测所述DoIP报文的传输层协议与设定的传输层协议是否一致,若不一致,则所述DoIP报文为非法报文;若一致,则开始检测报文场景;

所述车内DoIP实体通过其DoIP入侵检测模块使用所述DoIP报文场景的检测策略检测所述DoIP报文是否支持设定的工作场景,若所述DoIP报文属于设定的工作场景以外的报文,则所述DoIP报文为非法报文;若所述DoIP报文支持设定的工作场景,则开始检测当前是否还在处理上一DoIP报文请求;

若所述车内DoIP实体通过其DoIP入侵检测模块检测获知当前正在处理上一DoIP报文请求且通过所述DoIP报文间隔的检测策略判断处理时间并未超过设定的时间间隔,则所述DoIP报文为非法报文;否则,将所述DoIP报文发送至其DoIP协议模块进行处理,并将处理的响应结果返回至所述外部测试设备。

说明书 :

一种基于DoIP协议的入侵检测防御方法及系统

技术领域

[0001] 本发明涉及车辆安全技术领域,尤其涉及一种基于DoIP协议的入侵检测防御方法及系统。

背景技术

[0002] 随着移动互联网的发展和嵌入式处理器性能的提升,智能网联汽车已经成为全球汽车、互联网等领域的研究热点和产业增长的新动力。目前远程升级(Over The Air,OTA)、
远程诊断(On Board Diagnostics,OBD/Unified Diagnostic Services,UDS)、ADAS
(Advanced Driving Assistance System)、V2X(Vehicle to everything)、自动驾驶等功
能已经开始逐步实现,基于车载以太网的通信协议的应用前景也越来越广阔,尤其是DoIP
(Diagnostic communication over Internet Protocol)协议越来越得到广泛应用,其中
涉及到的网络安全问题也越来越凸显。
[0003] 在安全领域中,常使用入侵检测防御(IDPS)技术解决信息安全问题。目前,没有专门针对DoIP协议的IDPS方案,一般的IDPS方案不能保证DoIP协议数据格式的一致性和使用
场景的合理性,无法保证DoIP报文的时序和传输层协议正确与否,通常还包含很多DoIP不
会涉及到的一些检测内容,导致检测效率低下,具有很大的局限性,不能满足车载网络对
DoIP协议通信的安全的要求。
[0004] 中国专利文献CN 111434090 A公开了一种用于向车载网络提供安全性的系统及方法,该文献是将现有的IDPS方案应用于车载网络,实质上仍存在上述的一般的IDPS方案
所存在的局限性。

发明内容

[0005] 针对现有IDPS方案不能满足车载网络对DoIP协议通信安全要求的问题,本发明提供一种基于DoIP协议的入侵检测防御方法及系统,能够在DoIP协议加入IDPS功能,以实现
对非法DoIP报文的识别、检测和阻止,保护车辆免受各种攻击。
[0006] 第一方面,本发明提供一种基于DoIP协议的入侵检测防御方法,包括:
[0007] 在外部测试设备中设置DoIP协议模块,在车内DoIP实体中设置DoIP协议模块和DoIP入侵检测模块;
[0008] 在所述车内DoIP实体中设置DoIP报文格式、DoIP报文场景和DoIP报文间隔的检测策略;
[0009] 当所述外部测试设备对所述车内DoIP实体进行诊断通讯时,所述车内DoIP实体按照所述检测策略依次进行DoIP报文格式、DoIP报文场景和DoIP报文间隔的检测。
[0010] 进一步地,所述DoIP报文格式的检测策略包括:报文头格式检测策略,以及报文类型、报文长度与报文传输层协议检测策略;所述报文头格式检测策略为报文头参数的合法
值域的检测策略,所述报文头参数包括协议版本信息、协议版本按位取反信息、数据类型和
数据长度;所述报文类型、报文长度与报文传输层协议检测策略为检测不同报文数据类型
是否符合设定的数据长度和传输层协议类型的策略,所述报文数据类型包括发送报文数据
和接收报文数据,所述传输层协议类型包括UDP协议和TCP协议;
[0011] 所述DoIP报文场景的检测策略为检测不同报文数据类型是否支持设定的工作场景的策略,所述工作场景包括车辆发现、TCP连接、路由激活、车辆诊断中的至少一种;
[0012] 所述DoIP报文间隔的检测策略为检测报文处理是否符合设定的时间间隔的策略。
[0013] 进一步地,当所述外部测试设备对所述车内DoIP实体进行诊断通讯时,所述车内DoIP实体按照所述检测策略依次进行DoIP报文格式、DoIP报文场景和DoIP报文间隔的检
测,具体包括:
[0014] 当所述外部测试设备对所述车内DoIP实体进行诊断通讯时,所述外部测试设备通过其DoIP协议模块对诊断数据进行封装后生成DoIP报文,并发送至所述车内DoIP实体;
[0015] 所述车内DoIP实体接收到封装后的所述DoIP报文后,上传至其DoIP入侵检测模块;
[0016] 所述车内DoIP实体通过其DoIP入侵检测模块解析封装后的所述DoIP报文后,使用所述报文头格式检测策略检测所述DoIP报文的报文头各个参数是否在合法值域内,若不在
合法值域内,则所述DoIP报文为非法报文;若在合法值域内,则开始检测报文类型;
[0017] 所述车内DoIP实体通过其DoIP入侵检测模块使用所述报文类型检测策略检测所述DoIP报文是否符合接收报文数据类型,若不符合,则所述DoIP报文为非法报文;若符合,
则开始检测报文长度;
[0018] 所述车内DoIP实体通过其DoIP入侵检测模块使用所述报文长度检测策略检测所述DoIP报文的数据长度与设定的数据长度是否一致,若不一致,则所述DoIP报文为非法报
文;若一致,则开始检测报文传输层协议;
[0019] 所述车内DoIP实体通过其DoIP入侵检测模块使用所述报文传输层协议检测策略检测所述DoIP报文的传输层协议与设定的传输层协议是否一致,若不一致,则所述DoIP报
文为非法报文;若一致,则开始检测报文场景;
[0020] 所述车内DoIP实体通过其DoIP入侵检测模块使用所述DoIP报文场景的检测策略检测所述DoIP报文是否支持设定的工作场景,若所述DoIP报文属于设定的工作场景以外的
报文,则所述DoIP报文为非法报文;若所述DoIP报文支持设定的工作场景,则开始检测当前
是否还在处理上一DoIP报文请求;
[0021] 若所述车内DoIP实体通过其DoIP入侵检测模块检测获知当前正在处理上一DoIP报文请求且通过所述DoIP报文间隔的检测策略判断处理时间并未超过设定的时间间隔,则
所述DoIP报文为非法报文;否则,将所述DoIP报文发送至其DoIP协议模块进行处理,并将处
理的响应结果返回至所述外部测试设备。
[0022] 进一步地,所述车内DoIP实体通过其DoIP入侵检测模块在检测所述报文头格式、所述报文类型和所述报文长度的过程中,在检测获知DoIP报文为非法报文后,通知其DoIP
协议模块进行否定响应的发送,DoIP入侵检测模块记录所述DoIP报文的错误日志并结束退
出;
[0023] 所述车内DoIP实体通过其DoIP入侵检测模块在检测所述报文传输层协议、所述报文工作场景和所述报文间隔的过程中,在检测获知DoIP报文为非法报文后,通过DoIP入侵
检测模块记录所述DoIP报文的错误日志并结束退出。
[0024] 进一步地,所述车内DoIP实体通过其DoIP入侵检测模块在检测报文头格式之前,还包括:
[0025] 所述车内DoIP实体通过其DoIP入侵检测模块检测DoIP激活线状态,确保处于工作状态,若DoIP激活线状态为inactive,表明不处于工作状态,则所述DoIP报文为非法报文,
记录所述DoIP报文的错误日志并结束退出;若DoIP激活线状态为active,表明处于工作状
态。
[0026] 进一步地,所述车内DoIP实体中还设置有TCP/IP协议模块和UDS模块;所述DoIP入侵检测模块位于所述DoIP协议模块的下层,位于TCP/IP协议模块的上层。
[0027] 进一步地,在外部测试设备中设置DoIP入侵检测模块;在所述外部测试设备中设置DoIP报文格式、DoIP报文场景和DoIP报文间隔的检测策略;当所述外部测试设备接收所
述车内DoIP实体的诊断通讯响应时,所述外部测试设备按照所述检测策略依次进行DoIP报
文格式、DoIP报文场景和DoIP报文间隔的检测。
[0028] 第二方面,本发明提供一种基于DoIP协议的入侵检测防御系统,所述入侵检测防御系统包括:DoIP设置单元、检测策略设置单元和报文检测单元;
[0029] 所述DoIP设置单元,用于在外部测试设备中设置DoIP协议模块,在车内DoIP实体中设置DoIP协议模块和DoIP入侵检测模块;
[0030] 所述检测策略设置单元,用于在所述车内DoIP实体中设置DoIP报文格式、DoIP报文场景和DoIP报文间隔的检测策略;
[0031] 所述报文检测单元,用于当所述外部测试设备对所述车内DoIP实体进行诊断通讯时,所述车内DoIP实体按照所述检测策略依次进行DoIP报文格式、DoIP报文场景和DoIP报
文间隔的检测。
[0032] 进一步地,所述DoIP报文格式的检测策略包括:报文头格式检测策略,以及报文类型、报文长度与报文传输层协议检测策略;所述报文头格式检测策略为报文头参数的合法
值域的检测策略,所述报文头参数包括协议版本信息、协议版本按位取反信息、数据类型和
数据长度;所述报文类型、报文长度与报文传输层协议检测策略为检测不同报文数据类型
是否符合设定的数据长度和传输层协议类型的策略,所述报文数据类型包括发送报文数据
和接收报文数据,所述传输层协议类型包括有UDP协议和TCP协议;
[0033] 所述DoIP报文场景的检测策略为检测不同报文数据类型是否支持设定的工作场景的策略,所述工作场景包括车辆发现、TCP连接、路由激活、车辆诊断中的至少一种;
[0034] 所述DoIP报文间隔检测策略为检测报文处理是否符合设定的时间间隔的策略。
[0035] 进一步地,当所述外部测试设备对所述车内DoIP实体进行诊断通讯时,所述车内DoIP实体按照所述检测策略依次进行DoIP报文格式、DoIP报文场景和DoIP报文间隔的检
测,具体包括:
[0036] 当所述外部测试设备对所述车内DoIP实体进行诊断通讯时,所述外部测试设备通过其DoIP协议模块对诊断数据进行封装后生成DoIP报文,并发送至所述车内DoIP实体;
[0037] 所述车内DoIP实体接收到封装后的所述DoIP报文后,上传至其DoIP入侵检测模块;
[0038] 所述车内DoIP实体通过其DoIP入侵检测模块解析封装后的所述DoIP报文后,使用所述DoIP报文格式检测策略中的报文头格式检测策略检测该DoIP报文的报文头各个参数
是否在合法值域内,若不在合法值域内,则该DoIP报文为非法报文;若在合法值域内,则开
始检测报文类型;
[0039] 所述车内DoIP实体通过其DoIP入侵检测模块使用所述报文类型检测策略检测所述DoIP报文是否符合接收报文数据类型,若不符合,则所述DoIP报文为非法报文;若符合,
则开始检测报文长度;
[0040] 所述车内DoIP实体通过其DoIP入侵检测模块使用所述报文长度检测策略检测所述DoIP报文的数据长度与设定的数据长度是否一致,若不一致,则所述DoIP报文为非法报
文;若一致,则开始检测报文传输层协议;
[0041] 所述车内DoIP实体通过其DoIP入侵检测模块使用所述报文传输层协议检测策略检测所述DoIP报文的传输层协议与设定的传输层协议是否一致,若不一致,则所述DoIP报
文为非法报文;若一致,则开始检测报文场景;
[0042] 所述车内DoIP实体通过其DoIP入侵检测模块使用所述DoIP报文场景的检测策略检测所述DoIP报文是否支持设定的工作场景,若所述DoIP报文属于设定的工作场景以外的
报文,则所述DoIP报文为非法报文;若所述DoIP报文支持设定的工作场景,则开始检测当前
是否还在处理上一DoIP报文请求;
[0043] 若所述车内DoIP实体通过其DoIP入侵检测模块检测获知当前正在处理上一DoIP报文请求且通过所述DoIP报文间隔的检测策略判断处理时间并未超过设定的时间间隔,则
所述DoIP报文为非法报文;否则,将所述DoIP报文发送至其DoIP协议模块进行处理,并将处
理的响应结果返回至所述外部测试设备。
[0044] 本发明的有益效果:
[0045] (1)本发明在车内DoIP实体中设置有DoIP入侵检测模块和DoIP协议模块,且DoIP入侵检测模块位于DoIP协议模块的下层,能够对接收的DoIP报文先进行检测,识别不同工
作场景下的报文协议版本、报文类型、报文长度、报文间隔、报文传输层协议类型、报文请求
响应的对应关系等异常,过滤异常的非法报文,保证仅有合法的报文才能传输至DoIP协议
模块进行后续的诊断通讯,有效提升了DoIP报文的安全合法性;
[0046] (2)本发明设置有DoIP报文格式、DoIP报文场景和DoIP报文间隔的检测策略,能够全方面地对DoIP报文进行检测,且检测的报文策略内容、精度和优先级支持灵活设置;
[0047] (3)本发明的入侵检测防御方法兼容外部测试设备和车内DoIP实体,通过设置能够快速部署适配;
[0048] (4)本发明DoIP入侵检测模块和DoIP协议模块在DoIP协议软件结构方面通过代码融合、缓存共用和调度同步等方法,减少报文在模块间的传输频率,保证了更少的资源占用
和更高的检测效率;
[0049] (5)本发明的入侵检测防御方法兼容不同的DoIP协议版本,可以轻松移植到各个DoIP实体节点中。

附图说明

[0050] 图1为本发明实施例提供的一种基于DoIP协议的入侵检测防御方法流程图;
[0051] 图2为本发明实施例提供的一种基于DoIP协议的入侵检测防御方法中入侵检测处理流程图;
[0052] 图3为本发明实施例提供的DoIP报文头格式示意图;
[0053] 图4为本发明实施例提供的DoIP报文类型、报文长度和报文传输层协议的示意图;
[0054] 图5为本发明实施例提供的DoIP报文场景处理流程示意图;
[0055] 图6为本发明实施例提供的车内DoIP实体中各模块示意图;
[0056] 图7为本发明实施例提供的DoIP报文封装示意图。

具体实施方式

[0057] 为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分
实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创
造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0058] 除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具
体的实施例的目的,不是旨在于限制本发明。
[0059] 实施例1
[0060] 如图1所示,本发明实施例提出一种基于DoIP协议的入侵检测防御方法,所述入侵检测防御方法包括:
[0061] S101:在外部测试设备中设置DoIP协议模块,在车内DoIP实体中设置DoIP协议模块和DoIP入侵检测模块;
[0062] S102:在所述车内DoIP实体中设置DoIP报文格式、DoIP报文场景和DoIP报文间隔的检测策略;
[0063] 具体地,所述DoIP报文格式的检测策略包括:报文头格式检测策略,以及报文类型、报文长度与报文传输层协议检测策略;
[0064] 所述报文头格式检测策略为报文头参数的合法值域的检测策略,所述报文头参数包括协议版本信息、协议版本按位取反信息、数据类型和数据长度;
[0065] 所述报文类型、报文长度与报文传输层协议检测策略为检测不同报文数据类型是否符合设定的数据长度和传输层协议类型的策略,所述报文数据类型包括发送报文数据和
接收报文数据,所述传输层协议类型包括UDP协议和TCP协议;
[0066] 所述DoIP报文场景的检测策略为检测不同报文数据类型是否支持设定的工作场景的策略,所述工作场景包括车辆发现、TCP连接、路由激活、车辆诊断中的至少一种;
[0067] 所述DoIP报文间隔的检测策略为检测报文处理是否符合设定的时间间隔的策略。
[0068] S103:当所述外部测试设备对所述车内DoIP实体进行诊断通讯时,所述车内DoIP实体按照所述检测策略依次进行DoIP报文格式、DoIP报文场景和DoIP报文间隔的检测。
[0069] 作为一种可实施方式,如图2所示,步骤S103具体包括:
[0070] 当所述外部测试设备对所述车内DoIP实体进行诊断通讯时,所述外部测试设备通过其DoIP协议模块对诊断数据进行封装后生成DoIP报文,并发送至所述车内DoIP实体;
[0071] 所述车内DoIP实体接收到封装后的所述DoIP报文后,上传至其DoIP入侵检测模块;
[0072] 所述车内DoIP实体通过其DoIP入侵检测模块解析封装后的所述DoIP报文后,使用所述报文头格式检测策略检测所述DoIP报文的报文头各个参数是否在合法值域内,若不在
合法值域内,则所述DoIP报文为非法报文;若在合法值域内,则开始检测报文类型;
[0073] 所述车内DoIP实体通过其DoIP入侵检测模块使用所述报文类型检测策略检测所述DoIP报文是否符合接收报文数据类型,若不符合,则所述DoIP报文为非法报文;若符合,
则开始检测报文长度;
[0074] 所述车内DoIP实体通过其DoIP入侵检测模块使用所述报文长度检测策略检测所述DoIP报文的数据长度与设定的数据长度是否一致,若不一致,则所述DoIP报文为非法报
文;若一致,则开始检测报文传输层协议;
[0075] 所述车内DoIP实体通过其DoIP入侵检测模块使用所述报文传输层协议检测策略检测所述DoIP报文的传输层协议与设定的传输层协议是否一致,若不一致,则所述DoIP报
文为非法报文;若一致,则开始检测报文场景;
[0076] 所述车内DoIP实体通过其DoIP入侵检测模块使用所述DoIP报文场景的检测策略检测所述DoIP报文是否支持设定的工作场景,若所述DoIP报文属于设定的工作场景以外的
报文,则所述DoIP报文为非法报文;若所述DoIP报文支持设定的工作场景,则开始检测当前
是否还在处理上一DoIP报文请求;
[0077] 若所述车内DoIP实体通过其DoIP入侵检测模块检测获知当前正在处理上一DoIP报文请求且通过所述DoIP报文间隔的检测策略判断处理时间并未超过设定的时间间隔,则
所述DoIP报文为非法报文;否则,将所述DoIP报文发送至其DoIP协议模块进行处理,并将处
理的响应结果返回至所述外部测试设备。
[0078] 在实际应用中,DoIP报文头的格式可按照图3所示进行设置,头部共包含8个字节;第一个字节是Protocol version,长度是1个字节,标明了DoIP的协议版本;第二个字节是
Inverse Protocol version,长度是1个字节,是Protocol version的按位取反,与
Protocol version共同验证DoIP数据包的协议版本;Payload Type占用2个字节,解释本条
报文所携带的数据的类型(即报文数据类型);Payload Length占用4个字节,指示DoIP有效
载荷的长度(即报文长度);Message Content即是负载内容的部分。DoIP入侵检测模块对
DoIP报文头的检测主要是对报文头部各个参数的合法值域的检测,当检测到某个参数的值
超出DoIP规范约定的范围时,即认为该报文非法。
[0079] 如图4所示,DoIP报文中定义的有负载类型(即报文数据类型)及其对应的长度和传输层协议类型。其中0x0001、0x0002、0x0003、0x0005、0x0008、0x4001、0x4003、0x8001为
车内DoIP实体(服务端DoIP实体)接收的报文,0x0000、0x0004、0x0006、0x0007、0x4002、
0x4004、0x8002、0x8003报文为车内DoIP实体(服务端DoIP实体)发送的报文,依此可以根据
负载类型、长度和传输层协议类型来判断接收的报文是否非法。例如接收一条0x0004的报
文,则认为是非法报文;例如通过UDP协议接收到一条0x8001的报文,因其规定的传输层协
议是TCP,则认为是非法报文;例如接收到一条负载长度不为0的0x0001报文则认为是非法
报文;例如接收到一条0x9000负载类型的报文时,认为是非法报文。
[0080] 外部测试设备(客户端DoIP实体)对车内DoIP实体(服务端DoIP实体)发送DoIP报文的需要有一定的时间间隔。虽然存在有些报文不需要响应的情况,但是车内DoIP实体也
需要一定的时间来处理。因此,在向同一个服务端DoIP实体发送另一个DoIP报文请求之前,
客户端DoIP实体必须至少等待一定的处理时间(一般是2s)。故依此可以认为,在服务端
DoIP实体尚未处理完毕上一DoIP报文请求,发送对应的响应时,再次接收到的DoIP请求报
文,将被视为非法报文。例如客户端DoIP实体向服务端DoIP实体发送了0x8001报文,服务端
应处理该报文并在处理时间间隔内回复响应,若服务端DoIP实体尚未向客户端DoIP实体发
送响应,但并未超时,客户端DoIP实体再次向服务端DoIP实体发送了0x8001报文,则可以认
为该0x8001报文为非法报文。
[0081] DoIP报文场景处理流程一般如图5所示,当上一流程未执行完成时,无法进行下一步骤,故可以依此,识别当前场景下接收的报文是否属于非法报文。例如负载类型为0x8001
的诊断消息报文只有在车辆诊断场景中,才有存在的合理性,因此在路由激活完成之前收
到的0x8001报文则认为是非法报文。
[0082] 实施例2
[0083] 在上述实施例1的基础上,本发明实施例中,所述方法还包括:所述车内DoIP实体通过其DoIP入侵检测模块在检测所述报文头格式、所述报文类型和所述报文长度的过程
中,在检测获知DoIP报文为非法报文后,通知其DoIP协议模块进行否定响应的发送,DoIP入
侵检测模块记录所述DoIP报文的错误日志并结束退出;所述车内DoIP实体通过其DoIP入侵
检测模块在检测所述报文传输层协议、所述报文工作场景和所述报文间隔的过程中,在检
测获知DoIP报文为非法报文后,通过DoIP入侵检测模块记录所述DoIP报文的错误日志并结
束退出。
[0084] 所述车内DoIP实体通过其DoIP入侵检测模块在检测报文头格式之前,还包括:所述车内DoIP实体通过其DoIP入侵检测模块检测DoIP激活线状态,确保处于工作状态,若
DoIP激活线状态为inactive,表明不处于工作状态,则该DoIP报文为非法报文,记录该DoIP
报文的错误日志并结束退出;若DoIP激活线状态为active,表明处于工作状态。
[0085] 所述车内DoIP实体中还设置有TCP/IP协议模块和UDS模块;所述DoIP入侵检测模块位于所述DoIP协议模块的下层,位于TCP/IP协议模块的上层。
[0086] 具体地,如图6所示,在实际应用中,车内DoIP实体相当于服务端DoIP实体,常见于有以太网诊断需求的ECU节点内,UDS模块用于节点内的统一诊断服务,DoIP协议模块实现
DoIP协议,TCP/IP是基础网络协议栈;核心模块是DoIP入侵检测模块,主要通过对接收的
DoIP报文的报文头格式、报文类型、报文长度、报文场景等的检测,来提供针对DoIP报文的
入侵检测和防御的功能。
[0087] 如图7所示的DoIP数据的封装示意,表示了数据在各层的包含关系:
[0088] 以太网帧包括以太网包头和IP数据报和以太网包尾;
[0089] IP数据报包括IP包头和TCP/UDP包;
[0090] TCP/UDP包包括TCP/UDP包头和DoIP报文;
[0091] DoIP报文包括DoIP头和应用数据;
[0092] 诊断报文作为应用数据,通过DoIP报文传输。
[0093] 本发明主要针对DoIP报文进行检测防御,因此DoIP入侵检测模块位于DoIP协议模块的下层,位于TCP/IP协议模块的上层,DoIP入侵检测模块接收到TCP/IP协议模块上传的
DoIP报文后,对报文数据进行检测,确保数据安全有效后,再上传到DoIP协议模块处理。
[0094] 实施例3
[0095] 在上述实施例1或实施例2的基础上,本发明实施例中,在外部测试设备中同样设置DoIP入侵检测模块;在所述外部测试设备中设置DoIP报文格式、DoIP报文场景和DoIP报
文间隔的检测策略;当所述外部测试设备接收所述车内DoIP实体的诊断通讯响应时,所述
外部测试设备按照所述检测策略依次进行DoIP报文格式、DoIP报文场景和DoIP报文间隔的
检测。
[0096] 实施例4
[0097] 对应上述各方法实施例,本发明实施例还提出一种基于DoIP协议的入侵检测防御系统,所述入侵检测防御系统包括:DoIP设置单元、检测策略设置单元和报文检测单元;
[0098] 所述DoIP设置单元用于在外部测试设备中设置DoIP协议模块,在车内DoIP实体中设置DoIP协议模块和DoIP入侵检测模块;所述检测策略设置单元用于在所述车内DoIP实体
中设置DoIP报文格式、DoIP报文场景和DoIP报文间隔的检测策略;所述报文检测单元用于
当所述外部测试设备对所述车内DoIP实体进行诊断通讯时,所述车内DoIP实体按照所述检
测策略依次进行DoIP报文格式、DoIP报文场景和DoIP报文间隔的检测。
[0099] 具体地,所述DoIP报文格式的检测策略包括:报文头格式检测策略,以及报文类型、报文长度与报文传输层协议检测策略;所述报文头格式检测策略为报文头参数的合法
值域的检测策略,所述报文头参数包括协议版本信息、协议版本按位取反信息、数据类型和
数据长度;所述报文类型、报文长度与报文传输层协议检测策略为检测不同报文数据类型
是否符合设定的数据长度和传输层协议类型的策略,所述报文数据类型包括发送报文数据
和接收报文数据,所述传输层协议类型包括有UDP协议和TCP协议;所述DoIP报文场景的检
测策略为检测不同报文数据类型是否支持设定的工作场景的策略,所述工作场景包括车辆
发现、TCP连接、路由激活、车辆诊断中的至少一种;所述DoIP报文间隔检测策略为检测报文
处理是否符合设定的时间间隔的策略。
[0100] 作为一种可实施方式,当所述外部测试设备对所述车内DoIP实体进行诊断通讯时,所述车内DoIP实体按照所述检测策略依次进行DoIP报文格式、DoIP报文场景和DoIP报
文间隔的检测,具体包括:
[0101] 当所述外部测试设备对所述车内DoIP实体进行诊断通讯时,所述外部测试设备通过其DoIP协议模块对诊断数据进行封装后生成DoIP报文,并发送至所述车内DoIP实体;
[0102] 所述车内DoIP实体接收到封装后的所述DoIP报文后,上传至其DoIP入侵检测模块;
[0103] 所述车内DoIP实体通过其DoIP入侵检测模块解析封装后的所述DoIP报文后,使用所述DoIP报文格式检测策略中的报文头格式检测策略检测该DoIP报文的报文头各个参数
是否在合法值域内,若不在合法值域内,则该DoIP报文为非法报文;若在合法值域内,则开
始检测报文类型;
[0104] 所述车内DoIP实体通过其DoIP入侵检测模块使用所述报文类型检测策略检测所述DoIP报文是否符合接收报文数据类型,若不符合,则所述DoIP报文为非法报文;若符合,
则开始检测报文长度;
[0105] 所述车内DoIP实体通过其DoIP入侵检测模块使用所述报文长度检测策略检测所述DoIP报文的数据长度与设定的数据长度是否一致,若不一致,则所述DoIP报文为非法报
文;若一致,则开始检测报文传输层协议;
[0106] 所述车内DoIP实体通过其DoIP入侵检测模块使用所述报文传输层协议检测策略检测所述DoIP报文的传输层协议与设定的传输层协议是否一致,若不一致,则所述DoIP报
文为非法报文;若一致,则开始检测报文场景;
[0107] 所述车内DoIP实体通过其DoIP入侵检测模块使用所述DoIP报文场景的检测策略检测所述DoIP报文是否支持设定的工作场景,若所述DoIP报文属于设定的工作场景以外的
报文,则所述DoIP报文为非法报文;若所述DoIP报文支持设定的工作场景,则开始检测当前
是否还在处理上一DoIP报文请求;
[0108] 若所述车内DoIP实体通过其DoIP入侵检测模块检测获知当前正在处理上一DoIP报文请求且通过所述DoIP报文间隔的检测策略判断处理时间并未超过设定的时间间隔,则
所述DoIP报文为非法报文;否则,将所述DoIP报文发送至其DoIP协议模块进行处理,并将处
理的响应结果返回至所述外部测试设备。
[0109] 实施例5
[0110] 在上述实施例4的基础上,本发明实施例中的入侵检测防御系统,所述车内DoIP实体通过其DoIP入侵检测模块在检测所述报文头格式、所述报文类型和所述报文长度的过程
中,在检测获知DoIP报文为非法报文后,通知其DoIP协议模块进行否定响应的发送,DoIP入
侵检测模块记录所述DoIP报文的错误日志并结束退出;所述车内DoIP实体通过其DoIP入侵
检测模块在检测所述报文传输层协议、所述报文工作场景和所述报文间隔的过程中,在检
测获知DoIP报文为非法报文后,通过DoIP入侵检测模块记录所述DoIP报文的错误日志并结
束退出。
[0111] 所述车内DoIP实体通过其DoIP入侵检测模块在检测报文头格式之前,还包括:所述车内DoIP实体通过其DoIP入侵检测模块检测DoIP激活线状态,确保处于工作状态,若
DoIP激活线状态为inactive,表明不处于工作状态,则该DoIP报文为非法报文,记录该DoIP
报文的错误日志并结束退出;若DoIP激活线状态为active,表明处于工作状态。
[0112] 所述车内DoIP实体中还设置有TCP/IP协议模块和UDS模块;所述DoIP入侵检测模块位于所述DoIP协议模块的下层,位于TCP/IP协议模块的上层。
[0113] 实施例6
[0114] 在上述实施例4或实施例5的基础上,本发明实施例中,所述DoIP设置单元还用于在外部测试设备中同样设置DoIP入侵检测模块;所述检测策略设置单元还用于在所述外部
测试设备中设置DoIP报文格式、DoIP报文场景和DoIP报文间隔的检测策略;当所述外部测
试设备接收所述车内DoIP实体的诊断通讯响应时,所述外部测试设备按照所述检测策略依
次进行DoIP报文格式、DoIP报文场景和DoIP报文间隔的检测。
[0115] 本发明在车内DoIP实体中设置有DoIP入侵检测模块和DoIP协议模块,且DoIP入侵检测模块位于DoIP协议模块的下层,能够对接收的DoIP报文先进行检测,识别不同工作场
景下的报文协议版本、报文类型、报文长度、报文间隔、报文传输层协议类型、报文请求响应
的对应关系等异常,过滤异常的非法报文,保证仅有合法的报文才能传输至DoIP协议模块
进行后续的诊断通讯,有效提升了DoIP报文的安全合法性;
[0116] 本发明设置有DoIP报文格式、DoIP报文场景和DoIP报文间隔的检测策略,能够全方面地对DoIP报文进行检测,且检测的报文策略内容、精度和优先级支持灵活设置;
[0117] 本发明的入侵检测防御方法兼容外部测试设备和车内DoIP实体,通过设置能够快速部署适配;
[0118] 本发明DoIP入侵检测模块和DoIP协议模块在DoIP协议软件结构方面通过代码融合、缓存共用和调度同步等方法,减少报文在模块间的传输频率,保证了更少的资源占用和
更高的检测效率;
[0119] 本发明的入侵检测防御方法兼容不同的DoIP协议版本,可以轻松移植到各个DoIP实体节点中。
[0120] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可
以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;
而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和
范围。