CN117784752A - 一种can总线的模糊测试方法、系统、装置及介质 - Google Patents

一种can总线的模糊测试方法、系统、装置及介质 Download PDF

Info

Publication number
CN117784752A
CN117784752A CN202311749784.3A CN202311749784A CN117784752A CN 117784752 A CN117784752 A CN 117784752A CN 202311749784 A CN202311749784 A CN 202311749784A CN 117784752 A CN117784752 A CN 117784752A
Authority
CN
China
Prior art keywords
fuzzy
bus
target
data
vulnerability
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
Application number
CN202311749784.3A
Other languages
English (en)
Inventor
周东
朱书林
陈颖慧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Imotion Automotive Technology Suzhou Co Ltd
Original Assignee
Imotion Automotive Technology Suzhou Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Imotion Automotive Technology Suzhou Co Ltd filed Critical Imotion Automotive Technology Suzhou Co Ltd
Priority to CN202311749784.3A priority Critical patent/CN117784752A/zh
Publication of CN117784752A publication Critical patent/CN117784752A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明公开了一种CAN总线的模糊测试方法、系统、装置及介质,适用于模糊测试技术领域。获取基于CAN总线的待测数据模型文件,该文件覆盖输入空间矩阵的大部分,全面测试系统的所有可能情况;通过多个模糊算法进行模糊处理,避免现有的单一模糊方法受限于特定应用领域或者协议,本发明中将各模糊算法在模糊算法数据库内存储,基于当前的待测数据模型文件的属性信息和/或漏洞种类以及对应的预设要求的关系确定匹配的目标模糊策略。目标模糊策略内包括N个不同的模糊算法,且N大于1,使得测试覆盖度的范围增大,同时,不同的模糊算法,避免生成相似或者相同的模糊数据,提高测试效果。

Description

一种CAN总线的模糊测试方法、系统、装置及介质
技术领域
本发明涉及模糊测试技术领域,特别是涉及一种CAN总线的模糊测试方法、系统、装置及介质。
背景技术
控制器局域网总线(Controller Area Network,CAN)协议广泛应用于汽车和工业领域的通信协议,随着应用需求的增加,对CAN协议扩展以适应更多的数据和功能要求。对于安全性方面的测试是重要一环。
当前较为常用的测试方法为模糊测试,现有的模糊测试方法仅采用单一的模糊方法,单一的模糊方法可能受限于特定的应用领域或者协议,还有可能忽略到输入数据的语义信息,仅关注数据的形式不考虑对应的含义;或者错过一些潜在的漏洞和问题导致的测试覆盖度较小。另外,如果反复使用相同的单一模糊方法,会生成相似或者相同的模糊数据,在协议系统下无法暴露新的问题,导致测试效果较差。
因此,如何提高模糊测试的覆盖度和测试效果是本领域技术人员亟需要解决的。
发明内容
本发明的目的是提供一种CAN总线的模糊测试方法、系统、装置及介质,以解决当前的模糊测试方法单一导致的测试覆盖度较小,且相同的模糊测试方法导致生成相同或者相似的模糊数据导致的测试效果较差的问题。
为了解决上述技术问题,本发明提供一种CAN总线的模糊测试方法,包括:
获取基于CAN总线的待测数据模型文件以及对应的属性信息和漏洞种类;
在模糊算法数据库内根据所述属性信息和/或所述漏洞种类与对应的预设要求的关系,确定所述待测数据模型文件的目标模糊策略,其中,所述目标模糊策略是基于N个不同的模糊算法结合确定的模糊策略,且N大于1;
根据所述目标模糊策略对所述待测数据模型文件进行模糊处理以确定模糊结果;
将所述模糊结果对应的模糊数据发送至待测设备进行模糊测试。
优选地,所述属性信息至少包括所述待测数据模型文件的数据长度;所述在模糊算法数据库内根据所述属性信息和/或所述漏洞种类与对应的预设要求的关系,确定所述待测数据模型文件的目标模糊策略,包括:
获取所述待测数据模型文件的漏洞种类和属性信息的关联度;
在所述关联度大于预设关联度的情况下,根据所述属性信息和所述漏洞种类与第一预设要求的关系确定对应的所述目标模糊策略;
在所述关联度小于或等于所述预设关联度的情况下,根据所述待测数据模型文件的文件业务优先级确定所述漏洞种类或所述属性信息,与第二预设要求的关系确定对应的所述目标模糊策略,其中,所述文件业务优先级的第一优先级为所述漏洞种类或所述属性信息。
优选地,所述根据所述属性信息和所述漏洞种类与第一预设要求的关系确定对应的所述目标模糊策略,包括:
在所述待测数据模型文件的数据长度超出预设数据长度的情况下,判断对应的漏洞种类是否包含数据字段溢出种类;
若包含,则确定满足所述第一预设要求,且确定所述目标模糊策略为协议语法感知模糊算法和随机模糊算法。
优选地,在所述文件业务优先级的第一优先级为所述漏洞种类时,根据所述漏洞种类与所述第二预设要求的关系确定对应的所述目标模糊策略,包括:
预先获取各所述漏洞种类对应的模糊算法;
确定所述漏洞种类的数量以及各所述漏洞种类的优先级;
在所述漏洞种类的数量达到预设数量的情况下,根据各所述漏洞种类的优先级对应所述漏洞种类进行排序;
在排序后的所述漏洞种类中选取预设种类数量对应的目标漏洞种类,以确定满足所述第二预设要求;
根据所述目标漏洞种类对应的模糊算法进行组合确定所述目标模糊策略。
优选地,在确定所述目标模糊策略之后,在所述根据所述目标模糊策略对所述待测数据模型文件进行模糊处理以确定模糊结果之前,还包括:
在所述模糊算法数据库内预先获取所述目标模糊策略的模糊算法对应结合的其他模糊算法;
根据所述其他模糊算法确定对应的第一漏洞种类和第一属性信息;
判断所述第一漏洞种类和所述第一属性信息是否与所述待测数据模型文件的所述漏洞种类和所述属性信息存在相同;
若相同,则将所述其他模糊算法加入至所述目标模糊策略内以更新所述目标模糊策略,并进入至所述根据所述目标模糊策略对所述待测数据模型文件进行模糊处理以确定模糊结果的步骤;
若不相同,则保持所述目标模糊策略不变,并进入至所述根据所述目标模糊策略对所述待测数据模型文件进行模糊处理以确定模糊结果的步骤。
优选地,所述漏洞种类的第一优先级为错误帧处理且第二优先级为未加密通信,所述预设种类数量为2个;所述根据所述目标模糊策略对所述待测数据模型文件进行模糊处理以确定模糊结果,包括:
确定所述错误帧处理对应的模糊算法为REF模糊算法;
确定所述未加密通信对应的模糊算法为语义变异模糊算法;
根据所述BRF模糊算法对所述待测数据模型文件进行模糊处理得到第一模糊结果;
根据所述语义变异模糊算法对所述第一模糊结果对应的模糊数据进行模糊处理得到第二模糊结果。
优选地,在所述将所述模糊结果对应的模糊数据发送至待测设备进行模糊测试之后,还包括:
获取下一个基于CAN总线的所述待测数据模型文件;
若下一个基于CAN总线的所述待测数据模型文件与当前的所述待测数据模型文件相同时,则对应的目标模糊策略相同。
优选地,还包括:
监测所述待测设备的工作状态;
若所述工作状态存在异常,则停止所述CAN总线的模糊处理过程,且记录存在异常的日志信息;
对应地,在所述待测设备接收所述模糊数据的最后预设量报文数据发生异常时,还包括:
通过重放方式触发异常工作状态时的异常情况以定位所述CAN总线出现的漏洞。
为了解决上述技术问题,本发明还提供一种CAN总线的模糊测试系统,包括:
获取模块,用于获取基于CAN总线的待测数据模型文件以及对应的属性信息和漏洞种类;
确定模块,用于在模糊算法数据库内根据所述属性信息和/或所述漏洞种类与对应的预设要求的关系,确定所述待测数据模型文件的目标模糊策略,其中,所述目标模糊策略是基于N个不同的模糊算法结合确定的模糊策略,且N大于1;
模糊处理模块,用于根据所述目标模糊策略对所述待测数据模型文件进行模糊处理以确定模糊结果;
发送模块,用于将所述模糊结果对应的模糊数据发送至待测设备进行模糊测试。
为了解决上述技术问题,本发明还提供一种CAN总线的模糊测试装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述所述的CAN总线的模糊测试方法的步骤。
为了解决上述技术问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的CAN总线的模糊测试方法的步骤。
本发明提供的一种CAN总线的模糊测试方法,该方法获取基于CAN总线的待测数据模型文件,该文件覆盖输入空间矩阵的大部分,全面测试系统的所有可能情况;通过多个模糊算法进行模糊处理,避免现有的单一模糊方法受限于特定应用领域或者协议,本发明中将各模糊算法在模糊算法数据库内存储,基于当前的待测数据模型文件的属性信息和/或漏洞种类以及对应的预设要求的关系确定匹配的目标模糊策略。目标模糊策略内包括N个不同的模糊算法,且N大于1,使得测试覆盖度的范围增大,同时,不同的模糊算法,避免生成相似或者相同的模糊数据,提高测试效果。
另外,本发明还提供了一种CAN总线的模糊测试系统、装置及介质,具有如上述CAN总线的模糊测试方法相同的有益效果。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种CAN总线的模糊测试方法的流程图;
图2为本发明实施例提供的一种CAN总线的模糊测试工具的示意图;
图3为本发明实施例提供的一种CAN总线的模糊测试工具的交互示意图;
图4为本发明实施例提供的一种CAN总线的模糊测试工具的Trans模块示意图;
图5为本发明实施例提供的一种CAN总线的模糊测试工具的FuzzEngine模块示意图;
图6为本发明实施例提供的一种CAN总线的模糊测试工具的Log模块示意图;
图7为本发明实施例提供的一种CAN总线的模糊测试工具的Monitor模块示意图;
图8为本发明实施例提供的另一种CAN总线的模糊测试方法的流程图;
图9为本发明实施例提供的一种CAN总线的模糊测试系统的结构图;
图10为本发明实施例提供的一种CAN总线的模糊测试装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
本发明的核心是提供一种CAN总线的模糊测试方法、系统、装置及介质,以解决当前的模糊测试方法单一导致的测试覆盖度较小,且相同的模糊测试方法导致生成相同或者相似的模糊数据导致的测试效果较差的问题。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
需要说明的时,CAN总线或者扩展出的CAN-FD协议在车载通信方面占有很大比重,随着车辆网络的安全威胁日益增加,安全相关的CAN与CAN-FD协议模糊测试也有很大的发展,例如模糊测试方法的种类的增多,测试工具和框架的发展也日益成熟。当前的模糊测试方法仅通过一个模糊算法,导致单一的模糊方法通常只能模糊输入数据的特定方面,如数据的比特位、数值范围或结构。这意味着它只能覆盖输入空间的一小部分,无法全面测试系统的所有可能情况。某些模糊方法可能受限于特定的应用领域或协议。例如,比特翻转模糊主要用于测试通信协议,而对于其他类型的应用可能不太适用。一些单一的模糊方法可能忽略输入数据的语义信息,只关注数据的形式而不考虑其含义。这可能导致生成的模糊数据在实际场景中不够实际和有针对性。由于单一模糊方法无法覆盖所有可能的异常情况,它可能会错过一些潜在的漏洞和问题,因此无法提供全面的测试覆盖。如果反复使用相同的单一模糊方法,它可能会生成相似或相同的模糊数据,导致测试效率低下。这种情况下,系统可能无法暴露新的问题。因此,上述单一的模糊测试方法带来的技术问题,本发明提供的CAN总线的模糊测试方法,可以解决上述技术问题。图1为本发明实施例提供的一种CAN总线的模糊测试方法的流程图,如图1所示,该方法包括:
S11:获取基于CAN总线的待测数据模型文件以及对应的属性信息和漏洞种类;
S12:在模糊算法数据库内根据属性信息和/或漏洞种类与对应的预设要求的关系,确定待测数据模型文件的目标模糊策略;
其中,目标模糊策略是基于N个不同的模糊算法结合确定的模糊策略,且N大于1;
S13:根据目标模糊策略对待测数据模型文件进行模糊处理以确定模糊结果;
S14:将模糊结果对应的模糊数据发送至待测设备进行模糊测试。
可以理解的时,基于CAN总线的待测数据模型文件以及对应的属性信息和漏洞种类,CAN总线的待测数据模型文件是基于DBC文件得到,需要说明的是,数据库容器(Database Container,DBC)文件是一种CAN总线诊断文件格式。它是CAN总线诊断工具中用于定义CAN总线通信协议的XML格式文件。DBC文件包含了CAN通信的信号、消息身份证明(Identification,ID)、数据长度、周期等信息,可以帮助开发人员进行CAN通信协议的开发、测试、诊断和分析。漏洞种类,如ID欺骗、信号干扰、流量分析、拒绝服务攻击、数据字段溢出、未加密通信、错误帧处理、漏洞挖掘、输入验证漏洞、崩溃和崩溃型漏洞、资源管理问题、功能性漏洞、状态机问题和协议实现问题等。相比于现有的收集报文采用嗅探抓包方式或者使用工具收集设备之间CAN总线上的通信报文,但仅是整个CAN通信矩阵中的一小部分,本实施例中基于DBC文件采集的数据其数据覆盖度较大。
作为一种是实施例,待测数据模型文件的确定过程,包括:
获取基于CAN总线的DBC文件;
判断DBC文件是否有效;
若有效,则将DBC文件进行转换以确定待测数据模型文件。
具体地,对于DBC文件的获取途径的输入接口包括但不限于通用串行总线(Universal Serial Bus,USB)、车载自动诊断系统(On-Board Diagnostics,OBD)接口的物理连接。通过输入有效的DBC文件,对输入的DBC文件进行解析转换,以生成模糊数据生成的可扩展标记语言(Extensible Markup Language,XML)数据模型文件。对于DBC文件是否有效的判断,可以查看DBC文件是否为空文件,如果是空文件,没有数据内容,则确定DBC文件无效,如果不是空文件,则确定DBC文件有效,则转换解析为待测数据模型文件。如果解析失败,则停止后续的步骤,记录解析失败的日志信息。
作为一种实施例,还包括:
在DBC文件无效的情况下,记录错误故障的日志信息。
具体地,如果输入的DBC文件存在问题,则无法正常解析,则会出现报出故障,记录错误故障的日志信息。对于故障信息的提醒模式,除了日志信息的记录,还可以通过语音或者界面的显示进行提醒,在此不做限定。
在步骤S12中的模糊算法数据库存储各模糊算法,如基于字典的模糊算法、协议语法感知模糊算法、随机模糊算法、强制错误模糊算法和模型驱动的模糊等,在该库中的模糊算法可以是单独独立存储,也可以是相互映射存储,本实施例中的相互映射存储的意思是一种模糊算法可以和其他模糊算法搭配使用。根据属性信息和/或漏洞种类与对应的预设要求的关系确定目标模糊策略。也就是,这里存在三关系,一种是属性信息与对应的预设要求的关系,一种是漏洞种类与对应的预设要求的关系,另一种是属性信息和漏洞种类与对应的预设要求的关系。另外,由于属性信息和漏洞种类内包括具体的数据的个数较多,对应的预设要求基于具体数据设定,可以根据实际情况设定即可。
需要说明的是,目标模糊策略是基于N个不同的模糊算法结合确定的策略,且N大于1。相比于现有的模糊处理,本发明采用多个不同的模糊算法。根据确定的目标模糊策略对待测数据模型文件进行模糊处理确定模糊结果。将模糊结果对应的模糊数据发送到待测设备进行模糊测试。测试人员将输入DBC文件的一端连接个人计算机(Personal computer,PC)端,另一端连接待测设备,也就是车内的发动机控制单元(Engine Control Unit,ECU)。整个测试环节如果待测设备没有任何负反馈响应,则将整个待测数据模型文件内的各数据报文迭代完成后停止模糊测试。
本发明实施例提供的一种CAN总线的模糊测试方法,该方法获取基于CAN总线的待测数据模型文件,该文件覆盖输入空间矩阵的大部分,全面测试系统的所有可能情况;通过多个模糊算法进行模糊处理,避免现有的单一模糊方法受限于特定应用领域或者协议,本发明中将各模糊算法在模糊算法数据库内存储,基于当前的待测数据模型文件的属性信息和/或漏洞种类以及对应的预设要求的关系确定匹配的目标模糊策略。目标模糊策略内包括N个不同的模糊算法,且N大于1,使得测试覆盖度的范围增大,同时,不同的模糊算法,避免生成相似或者相同的模糊数据,提高测试效果。
在一些实施例中,属性信息至少包括待测数据模型文件的数据长度;在模糊算法数据库内根据属性信息和/或漏洞种类与对应的预设要求的关系,确定待测数据模型文件的目标模糊策略,包括:
获取待测数据模型文件的漏洞种类和属性信息的关联度;
在关联度大于预设关联度的情况下,根据属性信息和漏洞种类与第一预设要求的关系确定对应的目标模糊策略;
在关联度小于或等于预设关联度的情况下,根据待测数据模型文件的文件业务优先级确定漏洞种类或属性信息,与第二预设要求的关系确定对应的目标模糊策略,其中,文件业务优先级的第一优先级为漏洞种类或属性信息。
具体地,在属性信息至少为数据长度时,基于数据长度和漏洞种类的关联度,由于数据长度满足一定的条件下,对应的该数据存在的漏洞种类下所属的模糊算法具有一定的关联性。因此,确定两种数据的关联度,本实施例中的关联度确定过程不做限定,可以通过权重方式确定,也可以通过概率确定等。在关联度大于预设关联度的情况下,通过属性信息和漏洞种类与第一预设要求关系确定目标模糊策略。若关联度不大于预设关联度的情况时,则基于文件业务优先级的最高级具体为漏洞种类还是属性信息的参数种类,再基于两种参数分别对应的第二预设要求的关系确定。
在一些实施例中,根据属性信息和漏洞种类与第一预设要求的关系确定对应的目标模糊策略,包括:
在待测数据模型文件的数据长度超出预设数据长度的情况下,判断对应的漏洞种类是否包含数据字段溢出种类;
若包含,则确定满足第一预设要求,且确定目标模糊策略为协议语法感知模糊算法和随机模糊算法。
具体地,若数据长度超出预设数据长度的情况下,判断漏洞种类是否包含与数据长度相关的具体漏洞种类(数据字段溢出种类)。只要包含,则确定满足第一预设要求,则确定目标模糊策略为协议语法感知模糊算法和随机模糊算法。
协议语法感知模糊算法是根据CAN协议的语法规则生成消息,确保消息的结构合法,用于发现系统在处理合法消息时可能存在的漏洞。随机模糊算法可以生成大量不同的随机CAN消息,模拟不稳定或异常的输入。具体算法的应用和现有技术相同,在此不做赘述。
本实施例提供的根据属性信息和漏洞种类与第一预设要求的关系确定对应的目标模糊策略,将两种参数结合确定的目标模糊策略,使其多样性。
在另一些实施例中,在文件业务优先级的第一优先级为漏洞种类时,根据漏洞种类与第二预设要求的关系确定对应的目标模糊策略,包括:
预先获取各漏洞种类对应的模糊算法;
确定漏洞种类的数量以及各漏洞种类的优先级;
在漏洞种类的数量达到预设数量的情况下,根据各漏洞种类的优先级对应漏洞种类进行排序;
在排序后的漏洞种类中选取预设种类数量对应的目标漏洞种类,以确定满足第二预设要求;
根据目标漏洞种类对应的模糊算法进行组合确定目标模糊策略。
具体地,在文件业务优先级的第一优先级为漏洞种类时,需要获取各漏洞种类对应的模糊算法,确定漏洞种类的数量以及各漏洞种类的优先级,在漏洞种类的数量达到一定数量(预设数量)的情况下,需要基于漏洞种类的优先级进行排序,也就是说,当前漏洞种类较多,若均与各漏洞种类对应的模糊算法进行组合的模糊处理过程,虽处理的准确度提升,但是处理速度则慢很多,因此,需要考虑取一部分的模糊算法。因此,在排序后的漏洞种类中选取预设种类数量对应的目标漏洞种类,以确定满足第二预设要求。根据满足第二预设要求对应的目标漏洞种类所属的模糊算法进行组合确定目标模糊策略。
本实施例提供的在文件业务优先级的第一优先级为漏洞种类时,根据漏洞种类与第二预设要求的关系确定对应的目标模糊策略,仅通过漏洞种类确定目标模糊策略,使得确定过程灵活性。
在一些实施例中,漏洞种类的第一优先级为错误帧处理且第二优先级为未加密通信,预设种类数量为2个;根据目标模糊策略对待测数据模型文件进行模糊处理以确定模糊结果,包括:
确定错误帧处理对应的模糊算法为REF模糊算法;
确定未加密通信对应的模糊算法为语义变异模糊算法;
根据BRF模糊算法对待测数据模型文件进行模糊处理得到第一模糊结果;
根据语义变异模糊算法对第一模糊结果对应的模糊数据进行模糊处理得到第二模糊结果。
具体地,漏洞种类的第一优先级和第二优先级存在与的逻辑,即第一优先级为错误帧处理且第二优先级为未加密通信。预设种类数量为2个,确定模糊结果是根据BRF模糊算法对待测数据模型文件进行模糊处理得到第一模糊结果;根据语义变异模糊算法对第一模糊结果对应的模糊数据进行模糊处理得到第二模糊结果。
比特翻转率(Bit Flipping Rate,BRF)模糊算法是通过随机地改变CAN报文中的比特位来生成模糊数据,以模拟CAN总线上可能出现的传输错误和异常情况。语义变异模糊算法是一种模糊测试技术,用于测试软件系统对于输入数据的鲁棒性和容错能力。与传统的随机模糊测试不同,语义变异模糊算法着重于改变输入数据的语义结构,以便更全面地检测系统中的潜在问题。
对于两种模糊算法先依据哪个模糊算法进行处理在此不做限定,可以根据实际情况设定即可。
作为一种实施例,BRF模糊算法的模糊处理过程,包括:
获取当前数据报文,其中,当前数据报文属于待测数据模型文件或者第一模糊结果对应的模糊数据;
在当前数据报文的数据字段中随机选择一个字节进行翻转得到第一数据字段;
在随机选择的字节内随机选择一个比特位进行翻转以确定第一数据字段所属的第一目标模糊数据。
具体地,获取当前数据报文,此时的数据报文如果是先进行该模糊算法的话,则属于待测数据模型文件,如果是先进行了语义变异模糊算法,则此时输入的为第一模糊结果对应的模糊数据。
CAN总线协议中定义的数据帧组成均有数据字段,数据字段是承载主要信息的部分,故对数据字段中随机选择一个字节进行翻转,由于一个字节存在8个bit位,在该字节内随机选择一个比特位进行翻转来确定第一目标模糊数据。
例如:数据报文中的数据字段为[0xAA,0xBB,0xCC,0x12,0x34,0x56,0x78,0x9A],首先,从数据字段中随机选择一个字节进行翻转,假设选择第4个字节(0x12)。然后,在这个字节内随机选择一个比特进行翻转,假设选择第5个比特(二进制中的第6位)。翻转该比特后,原始字节0x12变为0x16,然后数据字段就变成[0xAA,0xBB,0xCC,0x16,0x34,0x56,0x78,0x9A]的第一目标模糊数据。
同样,作为一种实施例,语义变异模糊算法的模糊处理过程,包括:
获取当前数据报文的数据,其中,数据报文属于第一模糊结果对应的模糊数据或者待测数据模型文件,数据至少为CAN总线的总线标识值、数据长度值或者当前数据报文的数据字段的字节变化;
将当前数据报文的数据分别按照对应的数据预设值进行变化以得到对应的变化数据作为第二目标模糊数据。
具体地,获取当前数据报文的数据,其获取的是当前数据报文的具体数据,数据至少包括CAN总线的总线标识值、数据长度值或者当前数据报文的数据字段的字节变化。
将当前数据报文的数据分别按照对应的数据预设值进行变化得到对应的变化数据作为第二目标模糊数据。对应数据预设值的变化增加,是基于原本具体数据的基础上增加小的范围,如预设值为2,则说明在允许的数据预设值(0-2)的范围内变化。
不同具体的数据对应的数据预设值不同,故作为一种实施例,将当前数据报文的数据分别按照对应的数据预设值进行变化以得到对应的变化数据作为第二目标模糊数据,包括:
将CAN总线的总线标识值增加第一数据预设值以得到增加后的CAN总线的总线标识值;
将数据长度值增加第二数据预设值以得到增加后的数据长度值;
将当前数据报文的数据字段的一个或者多个字节对应增加或者减少对应的第三数据预设值以得到变化后的当前数据报文的数据字段;
将增加后的CAN总线的总线标识值、增加后的数据长度值和变化后的当前数据报文的数据字段作为第二目标模糊数据。
具体地,CAN总线的总线标识值(CAN ID)的值、数据长度的值、以及对数据字段中的字节的进行小范围的增大或减少,以模拟出不同的协议报文使用情景和异常情况。这对使用到CAN协议或者CAN-FD协议的情况均能达到比较高的模糊覆盖度。
例如:例如数据报文的CAN ID为0x123,数据长度为8,字节数据字段为BRF处理后的数据字段[0xAA,0xBB,0xCC,0x16,0x34,0x56,0x78,0x9A]。可以将CAN ID增加一个小的值,如变成0x124,将数据字段中的一个字节增加或减少一些值,如变成[0xAA,0xBB,0xCC,0x16,0x35,0x54,0x79,0x98]。
本实施例中将两次模糊算法的组合对某一条数据报文的模糊化处理,可以生成高效较有针对性的数据报文,对车内ECU在接收CAN或者CAN-FD报文的容错性和鲁棒性上是一个很有效的测试。
在上述实施例的基础上,在一些实施例中,在确定目标模糊策略之后,在根据目标模糊策略对待测数据模型文件进行模糊处理以确定模糊结果之前,还包括:
在模糊算法数据库内预先获取目标模糊策略的模糊算法对应结合的其他模糊算法;
根据其他模糊算法确定对应的第一漏洞种类和第一属性信息;
判断第一漏洞种类和第一属性信息是否与待测数据模型文件的漏洞种类和属性信息存在相同;
若相同,则将其他模糊算法加入至目标模糊策略内以更新目标模糊策略,并进入至根据目标模糊策略对待测数据模型文件进行模糊处理以确定模糊结果的步骤;
若不相同,则保持目标模糊策略不变,并进入至根据目标模糊策略对待测数据模型文件进行模糊处理以确定模糊结果的步骤。
可以理解的是,本实施例中的模糊算法数据库内的模糊算法处于相互映射关系中,也就是存在相互搭配使用的其他模糊算法。在本实施例中考虑到当前确定的目标模糊策略之后,还进一步确定是否与原有的搭配模糊算法结合。
获取目标模糊策略的模糊算法对应结合的其他模糊算法,根据其他模糊算法确定对应的第一漏洞种类和第一属性信息,判断是否与待测数据模型文件的漏洞种类和属性信息相同,若相同,则将该其他模糊算法加入至目标模糊策略中以进行更新,并进入至根据目标模糊策略对待测数据模型文件进行模糊处理以确定模糊结果的步骤。如果不相同,则保持当前的目标模糊策略不变。
本实施例提供的其他模糊算法作为一种补充算法,若满足一定的条件后,进行补充加入,以完善当前模糊处理的算法策略,提高模糊处理的准确性。
在一些实施例中,在将模糊结果对应的模糊数据发送至待测设备进行模糊测试之后,还包括:
获取下一个基于CAN总线的待测数据模型文件;
若下一个基于CAN总线的待测数据模型文件与当前的待测数据模型文件相同时,则对应的目标模糊策略相同。
具体地,本实施例中,考虑到匹配目标模糊策略占用一定的时间,不必每次获取到待测数据模型文件进行一次匹配过程。因此,若下一个的待测数据模型文件与当前的待测数据模型文件相同时,则对应的目标模糊策略相同,无需再次进行匹配,以提高模糊处理的效率。在上述实施例的基础上,还包括:
监测待测设备的工作状态;
若工作状态存在异常,则停止CAN总线的模糊处理过程,且记录存在异常的日志信息;
对应地,在待测设备接收模糊数据的最后预设量报文数据发生异常时,还包括:
通过重放方式触发异常工作状态时的异常情况以定位CAN总线出现的漏洞。
图2为本发明实施例提供的一种CAN总线的模糊测试工具的示意图,如图2所示,包括四个模块,Trans模块、FuzzEngine模块、Log模块、Monitor模块;其中针对DBC文件输入接口包括但不限于通用串行总线(Universal Serial Bus,USB)、车载自动诊断系统(On-Board Diagnostics,OBD)接口物理连接,对待测设备的输入和接收待测设备输出的接口包括但不限于USB、OBD进行物理连接。图3为本发明实施例提供的一种CAN总线的模糊测试工具的交互示意图,如图3所示,Trans模块与FuzzEngine模块、Log模块进行信息交互;FuzzEngine模块与Trans模块、Log模块、Monitor模块进行信息交互;Log模块与Trans模块、FuzzEngine模块、Monitor模块进行信息交互;Monitor模块与FuzzEngine模块、Log模块进行信息交互;图4为本发明实施例提供的一种CAN总线的模糊测试工具的Trans模块示意图,如图4所示,Trans模块用于对输入的DBC文件进行解析,生成能相互映射的XML格式的数据模型,该数据模型为模糊测试提供输入条件。图5为本发明实施例提供的一种CAN总线的模糊测试工具的FuzzEngine模块示意图,如图5所示,FuzzEngine模块用于接收处理Trans模块生成的数据模型,使用模糊算法生成迭代的模糊数据,发送到待测设备端。图6为本发明实施例提供的一种CAN总线的模糊测试工具的Log模块示意图,如图6所示,Log模块用于记录Trans模块、FuzzEngine模块、Monitor模块运行期间产生的日志,日志文件实时落盘在存储单元中。图7为本发明实施例提供的一种CAN总线的模糊测试工具的Monitor模块示意图,如图7所示,Monitor模块用于监测待测设备在模糊测试过程中的系统状态的变化,是否产生coredump、进程是否挂死、系统是否宕机等。
需要说明的是,本实施例中的监控待测设备的工作状态是Monitor模块负责,若工作状态存在异常,则需要停止CAN总线的模糊处理过程,由log模块记录存在异常的日志信息。Log模块会实时记录发送到待测设备的模糊化处理后得数据报文,以便于后续发现问题的定位;Monitor模块负责监测待测设备中的系统的异常情况,当系统存在异常状态时,例如进程挂死、系统宕机、系统产生coredump等,Log模块将实时记录Monitor模块监测到的异常状态信息,落盘在存储单元中。
对应地,在模糊数据发送的过程中,如果待测设备中的系统没有任何负反馈响应,那数据模型中的所有数据报文都被FuzEngine遍历处理后,将停止模糊测试,也就是说当前的遍历完成。
在待测设备接收模糊数据的最后预设量报文数据发生异常时,也就是待测设备产生异常的最后一部分报文,可以通过重放的方式触发异常场景,来复现问题,最终达到找出问题的原因,来解决系统可能出现的漏洞或者bug。
本发明实施例提供的监控过程,实时监测待测设备的工作状态,一旦出现异常,停止对应的模糊数据产生,及时停止以便于及时处理。
图8为本发明实施例提供的另一种CAN总线的模糊测试方法的流程图,如图8所示,该方法包括:
S21:DBC文件输入;
S22:Trans模块进行解析;
S23:判断DBC文件是否解析成功,若解析成功,则进入步骤S24,若解决失败,则进入步骤S25;
S24:生成XML格式的数据模型;
S25:Log模块记录解析失败日志;
S26:通过接口调用将生成的数据模型文件发送到FuzzEngine模块;
S27:FuzzEngine模块接收到xml格式的数据模型;
S28:使用BRF模糊算法和语义变异模糊算法对在数据模型中的CAN或CAN-FD报文数据进行模糊化处理;
S29:发送模糊化处理后的数据报文;
S30:待测设备接收到发送的模糊数据报文;
S31:Log模块记录发送的数据报文日志,以便后续定位问题;
S32:Monitor模块监测待测设备的系统状态;
S33:系统状态在模糊测试中是否存在异常,若异常,则进入步骤S34,若不异常,则进入步骤S35;
S34:Log模块记录系统异常情况并退出模糊测试;
S35:继续模糊测试;
S36:XML中的数据模型中所包含的数据报文在模糊算法下迭代完成,并结束。
上述详细描述了CAN总线的模糊测试方法对应的各个实施例,在此基础上,本发明还公开与上述方法对应的CAN总线的模糊测试系统,图9为本发明实施例提供的一种CAN总线的模糊测试系统的结构图。如图9所示,CAN总线的模糊测试系统包括:
获取模块11,用于获取基于CAN总线的待测数据模型文件以及对应的属性信息和漏洞种类;
确定模块12,用于在模糊算法数据库内根据属性信息和/或漏洞种类与对应的预设要求的关系,确定待测数据模型文件的目标模糊策略,其中,目标模糊策略是基于N个不同的模糊算法结合确定的模糊策略,且N大于1;
模糊处理模块13,用于根据目标模糊策略对待测数据模型文件进行模糊处理以确定模糊结果;
发送模块14,用于将模糊结果对应的模糊数据发送至待测设备进行模糊测试。
由于系统部分的实施例与上述的实施例相互对应,因此系统部分的实施例请参照上述方法部分的实施例描述,在此不再赘述。
对于本发明提供的一种CAN总线的模糊测试系统的介绍请参照上述方法实施例,本发明在此不再赘述,其具有上述CAN总线的模糊测试方法相同的有益效果。
图10为本发明实施例提供的一种CAN总线的模糊测试装置的结构图,如图10所示,该装置包括:
存储器21,用于存储计算机程序;
处理器22,用于执行计算机程序时实现CAN总线的模糊测试方法的步骤。
其中,处理器22可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器22可以采用数字信号处理器(Digital Signal Processor,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器22也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(CentralProcessing Unit,CPU);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器22可以集成有图像处理器(Graphics Processing Unit,GPU),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器22还可以包括人工智能(Artificial Intelligence,AI)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器21可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器21还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器21至少用于存储以下计算机程序211,其中,该计算机程序被处理器22加载并执行之后,能够实现前述任一实施例公开的CAN总线的模糊测试方法的相关步骤。另外,存储器21所存储的资源还可以包括操作系统212和数据213等,存储方式可以是短暂存储或者永久存储。其中,操作系统212可以包括Windows、Unix、Linux等。数据213可以包括但不限于CAN总线的模糊测试方法所涉及到的数据等等。
在一些实施例中,CAN总线的模糊测试装置还可包括有显示屏23、输入输出接口24、通信接口25、电源26以及通信总线27。
领域技术人员可以理解,图10中示出的结构并不构成对CAN总线的模糊测试装置的限定,可以包括比图示更多或更少的组件。
处理器22通过调用存储于存储器21中的指令以实现上述任一实施例所提供的CAN总线的模糊测试方法。
对于本发明提供的一种CAN总线的模糊测试装置的介绍请参照上述方法实施例,本发明在此不再赘述,其具有上述CAN总线的模糊测试方法相同的有益效果。
进一步的,本发明还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器22执行时实现如上述CAN总线的模糊测试方法的步骤。
可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本发明提供的一种计算机可读存储介质的介绍请参照上述方法实施例,本发明在此不再赘述,其具有上述CAN总线的模糊测试方法相同的有益效果。
以上对本发明所提供的一种CAN总线的模糊测试方法、系统、装置及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (11)

1.一种CAN总线的模糊测试方法,其特征在于,包括:
获取基于CAN总线的待测数据模型文件以及对应的属性信息和漏洞种类;
在模糊算法数据库内根据所述属性信息和/或所述漏洞种类与对应的预设要求的关系,确定所述待测数据模型文件的目标模糊策略,其中,所述目标模糊策略是基于N个不同的模糊算法结合确定的模糊策略,且N大于1;
根据所述目标模糊策略对所述待测数据模型文件进行模糊处理以确定模糊结果;
将所述模糊结果对应的模糊数据发送至待测设备进行模糊测试。
2.根据权利要求1所述的CAN总线的模糊测试方法,其特征在于,所述属性信息至少包括所述待测数据模型文件的数据长度;所述在模糊算法数据库内根据所述属性信息和/或所述漏洞种类与对应的预设要求的关系,确定所述待测数据模型文件的目标模糊策略,包括:
获取所述待测数据模型文件的漏洞种类和属性信息的关联度;
在所述关联度大于预设关联度的情况下,根据所述属性信息和所述漏洞种类与第一预设要求的关系确定对应的所述目标模糊策略;
在所述关联度小于或等于所述预设关联度的情况下,根据所述待测数据模型文件的文件业务优先级确定所述漏洞种类或所述属性信息,与第二预设要求的关系确定对应的所述目标模糊策略,其中,所述文件业务优先级的第一优先级为所述漏洞种类或所述属性信息。
3.根据权利要求2所述的CAN总线的模糊测试方法,其特征在于,所述根据所述属性信息和所述漏洞种类与第一预设要求的关系确定对应的所述目标模糊策略,包括:
在所述待测数据模型文件的数据长度超出预设数据长度的情况下,判断对应的漏洞种类是否包含数据字段溢出种类;
若包含,则确定满足所述第一预设要求,且确定所述目标模糊策略为协议语法感知模糊算法和随机模糊算法。
4.根据权利要求2所述的CAN总线的模糊测试方法,其特征在于,在所述文件业务优先级的第一优先级为所述漏洞种类时,根据所述漏洞种类与所述第二预设要求的关系确定对应的所述目标模糊策略,包括:
预先获取各所述漏洞种类对应的模糊算法;
确定所述漏洞种类的数量以及各所述漏洞种类的优先级;
在所述漏洞种类的数量达到预设数量的情况下,根据各所述漏洞种类的优先级对应所述漏洞种类进行排序;
在排序后的所述漏洞种类中选取预设种类数量对应的目标漏洞种类,以确定满足所述第二预设要求;
根据所述目标漏洞种类对应的模糊算法进行组合确定所述目标模糊策略。
5.根据权利要求4所述的CAN总线的模糊测试方法,其特征在于,在确定所述目标模糊策略之后,在所述根据所述目标模糊策略对所述待测数据模型文件进行模糊处理以确定模糊结果之前,还包括:
在所述模糊算法数据库内预先获取所述目标模糊策略的模糊算法对应结合的其他模糊算法;
根据所述其他模糊算法确定对应的第一漏洞种类和第一属性信息;
判断所述第一漏洞种类和所述第一属性信息是否与所述待测数据模型文件的所述漏洞种类和所述属性信息存在相同;
若相同,则将所述其他模糊算法加入至所述目标模糊策略内以更新所述目标模糊策略,并进入至所述根据所述目标模糊策略对所述待测数据模型文件进行模糊处理以确定模糊结果的步骤;
若不相同,则保持所述目标模糊策略不变,并进入至所述根据所述目标模糊策略对所述待测数据模型文件进行模糊处理以确定模糊结果的步骤。
6.根据权利要求4所述的CAN总线的模糊测试方法,其特征在于,所述漏洞种类的第一优先级为错误帧处理且第二优先级为未加密通信,所述预设种类数量为2个;所述根据所述目标模糊策略对所述待测数据模型文件进行模糊处理以确定模糊结果,包括:
确定所述错误帧处理对应的模糊算法为REF模糊算法;
确定所述未加密通信对应的模糊算法为语义变异模糊算法;
根据所述BRF模糊算法对所述待测数据模型文件进行模糊处理得到第一模糊结果;
根据所述语义变异模糊算法对所述第一模糊结果对应的模糊数据进行模糊处理得到第二模糊结果。
7.根据权利要求1至6任意一项所述的CAN总线的模糊测试方法,其特征在于,在所述将所述模糊结果对应的模糊数据发送至待测设备进行模糊测试之后,还包括:
获取下一个基于CAN总线的所述待测数据模型文件;
若下一个基于CAN总线的所述待测数据模型文件与当前的所述待测数据模型文件相同时,则对应的目标模糊策略相同。
8.根据权利要求1至6任意一项所述的CAN总线的模糊测试方法,其特征在于,还包括:
监测所述待测设备的工作状态;
若所述工作状态存在异常,则停止所述CAN总线的模糊处理过程,且记录存在异常的日志信息;
对应地,在所述待测设备接收所述模糊数据的最后预设量报文数据发生异常时,还包括:
通过重放方式触发异常工作状态时的异常情况以定位所述CAN总线出现的漏洞。
9.一种CAN总线的模糊测试系统,其特征在于,包括:
获取模块,用于获取基于CAN总线的待测数据模型文件以及对应的属性信息和漏洞种类;
确定模块,用于在模糊算法数据库内根据所述属性信息和/或所述漏洞种类与对应的预设要求的关系,确定所述待测数据模型文件的目标模糊策略,其中,所述目标模糊策略是基于N个不同的模糊算法结合确定的模糊策略,且N大于1;
模糊处理模块,用于根据所述目标模糊策略对所述待测数据模型文件进行模糊处理以确定模糊结果;
发送模块,用于将所述模糊结果对应的模糊数据发送至待测设备进行模糊测试。
10.一种CAN总线的模糊测试装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至8任一项所述的CAN总线的模糊测试方法的步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述的CAN总线的模糊测试方法的步骤。
CN202311749784.3A 2023-12-19 2023-12-19 一种can总线的模糊测试方法、系统、装置及介质 Pending CN117784752A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311749784.3A CN117784752A (zh) 2023-12-19 2023-12-19 一种can总线的模糊测试方法、系统、装置及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311749784.3A CN117784752A (zh) 2023-12-19 2023-12-19 一种can总线的模糊测试方法、系统、装置及介质

Publications (1)

Publication Number Publication Date
CN117784752A true CN117784752A (zh) 2024-03-29

Family

ID=90384454

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311749784.3A Pending CN117784752A (zh) 2023-12-19 2023-12-19 一种can总线的模糊测试方法、系统、装置及介质

Country Status (1)

Country Link
CN (1) CN117784752A (zh)

Similar Documents

Publication Publication Date Title
CN108763957B (zh) 一种数据库的安全审计系统、方法及服务器
US20080148398A1 (en) System and Method for Definition and Automated Analysis of Computer Security Threat Models
CN111866016B (zh) 日志的分析方法及系统
CN109587125B (zh) 一种网络安全大数据分析方法、系统及相关装置
CN110088744B (zh) 一种数据库维护方法及其系统
CN103544095B (zh) 服务器程序的监控方法及其系统
CN108848067A (zh) 智能学习并预置只读白名单规则的opc协议安全防护方法
CN105391729A (zh) 基于模糊测试的web漏洞自动挖掘方法
CN112905548B (zh) 一种安全审计系统及方法
CN113112038B (zh) 智能监测与诊断分析系统、装置、电子设备及存储介质
CN107168844B (zh) 一种性能监控的方法及装置
CN112052156B (zh) 一种模糊测试方法、装置和系统
WO2018106555A1 (en) Device driver telemetry
CN112039858A (zh) 一种区块链服务安全加固系统与方法
CN112350854A (zh) 一种流量故障定位方法、装置、设备及存储介质
CN113934621A (zh) 模糊测试方法、系统、电子设备及介质
CN113779573B (zh) 一种基于系统溯源图的大规模勒索软件分析方法和分析装置
CN110704313B (zh) Java虚拟机内存泄漏检测方法及装置
CN117784752A (zh) 一种can总线的模糊测试方法、系统、装置及介质
CN116248393A (zh) 一种内网数据传输漏洞扫描装置及系统
CN114579809A (zh) 事件分析方法、装置、电子设备及存储介质
CN113626288A (zh) 故障处理方法、系统、装置、存储介质和电子设备
CN113836539A (zh) 基于精准测试的电力工控系统漏洞全流程处置系统及方法
CN112804104A (zh) 一种预警方法、装置、设备及介质
CN112131090A (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