首页> 中国专利> 基于WGAN-GP的CAN总线模糊测试用例生成方法及模糊测试系统

基于WGAN-GP的CAN总线模糊测试用例生成方法及模糊测试系统

摘要

本发明公开了一种基于WGAN‑GP的CAN总线模糊测试用例生成方法及系统,该方法包括:从目标车辆内采集CAN总线报文数据,以得到包括若干条真实CAN数据帧的训练数据集;通过训练数据集搭建并训练基于神经网络的WGAN‑GP模型;WGAN‑GP模型在噪声向量的驱动下生成若干可满足目标车辆CAN总线协议规则的虚拟CAN数据帧,若干虚拟CAN数据帧构成测试用例集;通过上述方法,无需参考目标车辆制造商的私有协议即可实现CAN总线数据特征的挖掘,并生成符合通信协议的测试用例,数据质量优良,通过性好,能在更短时间内达成传统模糊测试工具的测试目的;另外,无论是对WGAN‑GP模型的训练,还是虚拟CAN数据帧的生成过程,均无须太多人为干预,对测试人员的经验和技术要求较低。

著录项

  • 公开/公告号CN114936149A

    专利类型发明专利

  • 公开/公告日2022-08-23

    原文格式PDF

  • 申请/专利号CN202210454754.9

  • 发明设计人 黄柯霖;万振华;张海春;

    申请日2022-04-27

  • 分类号G06F11/36(2006.01);G06K9/62(2022.01);G06N3/04(2006.01);G06N3/08(2006.01);

  • 代理机构广州三环专利商标代理有限公司 44202;

  • 代理人赵贯杰

  • 地址 430074 湖北省武汉市洪山区珞喻路1037号华中科技大学

  • 入库时间 2023-06-19 16:26:56

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-09-09

    实质审查的生效 IPC(主分类):G06F11/36 专利申请号:2022104547549 申请日:20220427

    实质审查的生效

说明书

技术领域

本发明涉及CAN总线模糊测试技术领域,尤其涉及一种基于WGAN-GP的CAN总线模糊测试用例生成方法及系统。

背景技术

现代汽车不再是简单的机械设备,而是集成了数百个通过控制器局域网(CAN)总线连接的电子控制单元(ECU)的复杂系统。汽车中的CAN总线在设计时充分考虑了实时通信,但对鉴权、加密、完整性验证等安全机制的缺失,给车载CAN网络带来了安全隐患。此外,汽车智能化程度越来越高,暴露出蓝牙、Wifi、蜂窝网络等各类攻入口,大大增加了入侵车载CAN网络的可能性。而模糊测试作为一种常用的安全测试技术,被应用于挖掘汽车CAN总线网络的网络安全漏洞。

传统的Fuzzing测试,是向目标系统发送大量测试数据,观察目标系统是否出现异常行为。若目标系统表现出异常行为,则目标系统存在可能被利用的潜在漏洞。在传统的网络协议fuzzing测试中,fuzzing测试工具可以根据网络协议规范生成大量的fuzzing测试数据或者在网络协议规范下对真实数据进行编译,从而获得大量的Fuzzing测试数据。但是,CAN总线应用层协议是汽车制造商的私有协议,在没有通信协议的情况下,fuzzing测试工具只能对CAN总线数据字段的数据域数据进行随机变异,用该数据集进行模糊测试效率低下,且很耗时。

发明内容

本发明的目的是为解决上述技术问题而提供一种无须了解车辆CAN总线的私有协议而快速生成与车辆CAN总线数据特征相适配的测试用例的基于WGAN-GP的CAN总线模糊测试用例生成方法及模糊测试系统。

为了实现上述目的,本发明公开了一种基于WGAN-GP的CAN总线模糊测试用例生成方法,其包括:

从目标车辆内采集CAN总线报文数据,以得到包括若干条真实CAN数据帧的训练数据集;

通过所述训练数据集搭建并训练基于神经网络的WGAN-GP模型;

为训练好的WGAN-GP模型配置噪声向量,使得该WGAN-GP模型在该噪声向量的驱动下生成若干可满足所述目标车辆CAN总线协议规则的虚拟CAN数据帧,若干所述虚拟CAN数据帧构成测试用例集。

较佳地,在将所述训练数据集导入所述WGAN-GP模型前,还包括对所述训练数据集的预处理步骤:

提取并存储每一所述真实CAN数据帧中的标识符以及数据域,且对属于同一所述真实CAN数据帧中的标识符和数据域进行链接处理,并将链接处理后的数据规整并归一化,使其满足神经网络输入要求。

较佳地,通过OBD接口从目标车辆内采集CAN总线报文数据。

本发明还公开一种基于WGAN-GP的CAN总线模糊测试用例生成系统,其包括数据获取模块、模型生成模块以及测试用例生成模块;

所述数据获取模块,用于从目标车辆内采集CAN总线报文数据,以得到包括若干条真实CAN数据帧的训练数据集;

所述模型生成模块,用于通过所述训练数据集搭建并训练基于神经网络的WGAN-GP模型;

所述测试用例生成模块,用于为训练好的WGAN-GP模型配置噪声向量,使得该WGAN-GP模型在该噪声向量的驱动下生成若干可满足所述目标车辆CAN总线协议规则的虚拟CAN数据帧,若干所述虚拟CAN数据帧构成测试用例集。

较佳地,还包括数据预处理模块,所述数据预处理模块用于提取并存储每一所述真实CAN数据帧中的标识符以及数据域,且对属于同一所述真实CAN数据帧中的标识符和数据域进行链接处理,并将链接处理后的数据规整并归一化,使其满足神经网络输入要求。

较佳地,所述数据获取模块通过OBD接口从目标车辆内采集CAN总线报文数据。

本发明还公开另一种基于WGAN-GP的CAN总线模糊测试用例生成系统,其包括:

一个或多个处理器;

存储器;

以及一个或多个程序,其中一个或多个程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序包括用于执行如上所述的基于WGAN-GP的CAN总线模糊测试用例生成方法的指令。

本发明还公开一种计算机可读存储介质,其包括计算机程序,所述计算机程序可被处理器执行以完成如上所述的基于WGAN-GP的CAN总线模糊测试用例生成方法。

与现有技术相比,本发明CAN总线模糊测试用例生成方法,具有如下有益技术效果:

1、基于WGAN-GP模型自动生成测试用虚拟CAN数据帧,因此,无需参考目标车辆制造商的私有协议即可实现CAN总线数据特征的挖掘,并生成符合通信协议的测试用例,数据质量优良,通过性好,能在更短时间内达成传统模糊测试工具的测试目的;

2、WGAN-GP模型搭建完成后,无论是对WGAN-GP模型的训练,还是虚拟CAN数据帧的生成过程,均无须太多人为干预,对测试人员的经验和技术要求较低。

附图说明

图1为本发明其中一实施例中CAN总线模糊测试用例生成方法流程图。

图2为本发明另一实施例中CAN总线模糊测试用例生成方法流程图。

具体实施方式

为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。

本实施例公开了一种CAN总线模糊测试用例生成方法,以生成用于对CAN总线进行模糊测试的测试用例,如图1,该方法包括如下步骤:

S10:从目标车辆内采集CAN总线报文数据,以得到包括若干条真实CAN数据帧的训练数据集;

S20:通过所述训练数据集搭建并训练基于神经网络的WGAN-GP模型;

S30:为训练好的WGAN-GP模型配置噪声向量,使得该WGAN-GP模型在该噪声向量的驱动下生成若干可满足所述目标车辆CAN总线协议规则的虚拟CAN数据帧,若干所述虚拟CAN数据帧构成测试用例集。

在此需要说明的是,关于本实施例中的WGAN-GP模型的搭建和训练方式属于本领域技术人员的公知常识,在此不再赘述。

根据上述方法生成测试用例集后,将测试用例集中的各个虚拟CAN数据帧间隔导入待测车辆的CAN总线中,并观察车辆的异常情况,从而完成对车辆CAN总线系统的模糊测试。

进一步地,如图2,在将所述训练数据集导入所述WGAN-GP模型前,还包括对所述训练数据集的预处理步骤:

S11:提取并存储每一所述真实CAN数据帧中的标识符以及数据域,且对属于同一所述真实CAN数据帧中的标识符和数据域进行链接处理,并将链接处理后的数据规整并归一化,使其满足神经网络输入要求。由于模糊测试过程中,主要针对的目标对象是与汽车ECU通信内容有关的CAN数据帧中的标识符(ID)以及数据域(data),因此,为了提高对WGAN-GP模型的训练效率,只需将真实CAN数据帧中的标识符以及数据域提取出来作为训练数据集。另外,对属于同一所述真实CAN数据帧中的标识符和数据域进行链接处理,使得WGAN-GP模型能够辨识与获取到属于同一真实CAN数据帧中的标识符和数据域之间的关系。

具体地,对于数据集中经过预处理后的数据,将其转换为二进制数据,以方便数据处理。更具体地,将标识符转换为12为二进制数据,将数据域转换为64位数据,并按位构建向量,由此将单数据帧的数据特征转化为[76,1]的特征向量,便于WGAN-GP模型进行处理和训练。

另外,在采集训练用数据时,通过OBD接口从目标车辆内采集CAN总线报文数据,操作方便。

综上,本发明公开了一种基于WGAN-GP的CAN总线模糊测试用例生成方法,使用时,通过OBD接口从目标车辆内采集CAN总线报文数据,以对WGAN-GP模型进行训练,训练完成后,WGAN-GP模型在噪声向量的驱动下自动生成与目标车辆CAN总线协议规则相同的虚拟CAN数据帧,从而得到对CAN总线进行模糊测试的测试用例集。通过上述方法,首先,无需参考目标车辆制造商的私有协议即可实现CAN总线数据特征的挖掘,并生成符合通信协议的测试用例,数据质量优良,通过性好,能在更短时间内达成传统模糊测试工具的测试目的;其次,WGAN-GP模型搭建完成后,无论是对WGAN-GP模型的训练,还是虚拟CAN数据帧的生成过程,均无须太多人为干预,对测试人员的经验和技术要求较低;再者,对于CAN数据帧的数据结构,数据域部分(也即data部分)根据数据的变化特点分为以下四种数据:常值(比如0)、多值(几个数字间变换,比如0,1,9)、循环值(比如0-0x1f间进行循环递增变化)、物理量值(通常表征某种汽车状态,比如车速)。而用WGAN-GP模型对CAN数据帧进行训练时,常值、循环值、多值这些特征简单的数据域部分更容易被模型抓取,剩下的物理量值相对来说还呈现出变异较多的情况,从而将变异尽量集中在期望的“物理量”字段,这样产生的测试用例质量更高。

本发明另一较佳实施例中还公开一种基于WGAN-GP的CAN总线模糊测试用例生成系统,其包括数据获取模块、模型生成模块、数据预处理模块以及测试用例生成模块。

所述数据获取模块,用于从目标车辆内采集CAN总线报文数据,以得到包括若干条真实CAN数据帧的训练数据集。

所述模型生成模块,用于通过所述训练数据集搭建并训练基于神经网络的WGAN-GP模型。

所述测试用例生成模块,用于为训练好的WGAN-GP模型配置噪声向量,使得该WGAN-GP模型在该噪声向量的驱动下生成若干可满足所述目标车辆CAN总线协议规则的虚拟CAN数据帧,若干所述虚拟CAN数据帧构成测试用例集。

所述数据预处理模块,用于提取并存储每一所述真实CAN数据帧中的标识符以及数据域,且对属于同一所述真实CAN数据帧中的标识符和数据域进行链接处理,并将链接处理后的数据规整并归一化,使其满足神经网络输入要求。

另外,所述数据获取模块通过OBD接口从目标车辆内采集CAN总线报文数据。

本发明还公开另一种CAN总线模糊测试用例生成系统,其包括一个或多个处理器、存储器以及一个或多个程序,其中一个或多个程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序包括用于执行如上所述的CAN总线模糊测试用例生成方法的指令。处理器可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的CAN总线模糊测试用例生成系统中的模块所需执行的功能,或者执行本申请方法实施例的CAN总线模糊测试用例生成方法。

本发明还公开一种计算机可读存储介质,其包括计算机程序,所述计算机程序可被处理器执行以完成如上所述的CAN总线模糊测试用例生成方法。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是只读存储器(read-onlymemory,ROM),或随机存取存储器(random access memory,RAM),或磁性介质,例如,软盘、硬盘、磁带、磁碟、或光介质,例如,数字通用光盘(digital versatile disc,DVD)、或者半导体介质,例如,固态硬盘(solid state disk,SSD)等。

本申请实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行上述CAN总线模糊测试用例生成方法。

以上所揭露的仅为本发明的优选实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明申请专利范围所作的等同变化,仍属本发明所涵盖的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号