CN112380081B - 一种基于字段权重的商用车载can总线模糊测试方法 - Google Patents
一种基于字段权重的商用车载can总线模糊测试方法 Download PDFInfo
- Publication number
- CN112380081B CN112380081B CN202011409975.1A CN202011409975A CN112380081B CN 112380081 B CN112380081 B CN 112380081B CN 202011409975 A CN202011409975 A CN 202011409975A CN 112380081 B CN112380081 B CN 112380081B
- Authority
- CN
- China
- Prior art keywords
- field
- variable
- bit
- message
- bus
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/221—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种基于字段权重的商用车载CAN总线模糊测试方法,所述方法的整体实施流程如下:首先从收集的报文数据集中筛选出标识符相同的报文,在报文数据场中对每一位进行翻转率计算,将数据场分为不变字段与可变字段;为细化字段并确定字段属性,计算可变字段中相邻位的位翻转率比值并与设定阈值比较,实现可变字段的再划分;根据可变字段内位翻转率的变化特点与分布特征确定可变字段属性;在确定所有可变字段后,计算每个可变字段的平均翻转率,并赋予权重值,单独或组合的可变字段按照权重值进行概率变异生成模糊测试用例。该方法是一种基于协议的模糊测试方法,解决了测试用例有效性较低的问题。
Description
技术领域
本发明涉及一种车辆通信漏洞测试方法,具体涉及一种基于字段权重的商用车载CAN总线模糊测试方法。
背景技术
智能化、网联化逐渐成为当前汽车的主要发展方向,车辆内部电子控制单元(ECU,Electronic Control Unit)数量众多,种类庞杂,相互间传输车辆运行重要数据并组建成基于CAN总线的车载网络,对外的通信接口也逐渐增多,网联汽车的安全受到严峻挑战。当攻击者向车载CAN总线网络内注入恶意报文时,车辆可能会产生异常响应,从而暴露商用车载CAN总线协议漏洞,从而影响车辆或乘车人员的生命安全。
CAN总线是车载网络的主要通信方式,许多商用车选择基于CAN 2.0B基础上制定协议规范。由于SAE J1939是基于CAN 2.0B的针对商用车的通信标准,因此采用SAE J1939协议标准的不同商用电动汽车厂商制订的CAN总线应用层协议具有相似之处。
现有的车载CAN总线协议的测试方法主要通过手动输入大量潜在变异报文进行汽车运行状态监控,这种方式过于依赖经验,同时生成变异报文效率较低。如何通过自动化或半自动化的方式高效率的生成变异报文对车载CAN总线进行测试,是车辆信息安全测试方面的重要研究内容。
发明内容
本发明针对基于SAE J1939通信标准的CAN总线协议,提供了一种基于字段权重的商用车载CAN总线模糊测试方法。该方法是一种基于协议的模糊测试方法,解决了测试用例有效性较低的问题。
本发明的目的是通过以下技术方案实现的:
一种基于字段权重的商用车载CAN总线模糊测试方法,包括如下步骤:
步骤一、字段划分:
第一步,设某段采集时间内对应报文标识符为IDi的报文个数为m,置计数值j为0,j为报文数据场中该比特的位置;
第二步,判断j是否不大于64,若是,则进入第三步;若不是,则进入第六步;
第四步,计算IDi报文中第j位的翻转率Trj=BFNj/m;
第五步,判断IDi报文中第j位的翻转率Trj是否为0,若是,则第j位属于不变区域,j增加1并返回第二步;若不是,则第j位属于可变区域,j增加1并返回第二步;
第六步,对IDi报文中某个可变区域,k为该可变区域的起始比特的位置,p为该可变区域的长度,k+p为该可变区域的结束比特的位置,置计数值q为0;
第七步,判断q是否小于p,若是,则进入第八步;若不是,则进入第十步;
第八步,计算翻转率比值BR=Trk+q/Trk+q-1;
第九步,判断BR是否小于阈值Th,若是,则在k+q处划分字段,q增加1并返回第七步;若不是,则q增加1并返回第七步;
第十步,判断可变字段所属类型,若可变字段数值连续增加1且字段内相邻位有Tra+1=2Tra,若是,则该可变字段为计数器字段,结束;若不是,则该可变字段不是计数器字段;
第十一步,若可变字段不是计数器字段,判断该字段内位翻转率分布是否符合以0.5为中心的正态分布,若是,则该可变字段为校验字段,结束;若不是,则该字段为多值字段,结束;
步骤二、模糊测试:
第一步,对于标识符为IDi的报文,根据步骤一划分出a个可变字段F1,F2,…Fa,其中第k个可变字段的起始位与终止位分别为Fk (f),Fk (l),置j为1;
第二步,判断j是否小于等于a,若是,则进入第三步;若不是,则进入第五步;
第五步,计算可变字段Fj单独变异操作数Tj (s),对于可变字段Fj,定义其长度为pj,有Tj (s)=2pj;
第六步,生成可变字段Fj单独变异可生成测试用例Nj (s)=Wj (s)Tj (s);
第九步,生成该字段组合变异可生成测试用例Nuv (m)=Wuv (s)Tuv (m)。
本发明中,计数器字段指:用于防止CAN总线报文重放攻击所设计的字段。每发送一条具有相同ID的报文时,计数器字段的数值将会加1。多值字段指:在一段时间内,字段中只会出现几个固定的数值。该字段中的数据类型可能为状态类型,用于表示汽车某个参数信号的几种状态。校验字段指:用于检测传输错误的校验和字段。
本发明中,变异操作数指:报文变异数据的构造方法,包括以下四类:1)将报文中某一段数据用随机生成二进制数据代替;2)以一定的变异率,翻转改变报文二进制数据里一定比例的比特位;3)将某字段的二进制数据看成一个整体,随机增加或减少一个数值;4)将二进制数据中一定比例的比特位直接清零或置一。
相比于现有技术,本发明具有如下优点:
1、本发明的方法可以对商用车载CAN总现报文的数据场实现字段划分,有助于对不同厂商私有CAN应用层协议进行逆向分析。
2、本发明的方法通过字段划分对商用车载CAN总线模糊测试生成异常报文测试用例的方法进行了优化,同时基于位翻转率为可变字段设置变异权重,可以更有效率的生成商用车载CAN总线模糊测试用例,提高了CAN总线模糊测试效率。
附图说明
图1为本发明基于报文数据场位翻转特征的商用车载CAN总线数据场字段划分流程图;
图2为本发明基于字段权重的商用车载CAN总线网络模糊测试方法测试用例生成流程图。
具体实施方式
下面结合附图对本发明的技术方案作进一步的说明,但并不局限于此,凡是对本发明技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,均应涵盖在本发明的保护范围中。
本发明提供了一种基于字段权重的商用车载CAN总线模糊测试方法,所述方法的整体实施流程如下:首先从收集的报文数据集中筛选出标识符相同的报文,在报文数据场中对每一位进行翻转率计算,将数据场分为不变字段与可变字段;为细化字段并确定字段属性,计算可变字段中相邻位的位翻转率比值并与设定阈值比较,实现可变字段的再划分;根据可变字段内位翻转率的变化特点与分布特征确定可变字段属性;在确定所有可变字段后,计算每个可变字段的平均翻转率,并赋予权重值,单独或组合的可变字段按照权重值进行概率变异生成模糊测试用例。具体步骤如下:
步骤一、字段划分:
如图1所示,包括如下步骤:
第一步,设某段采集时间内对应报文标识符为IDi的报文个数为m,置计数值j为0,j为报文数据场中该比特的位置;
第二步,判断j是否不大于64,若是,则进入第三步;若不是,则进入第六步;
第四步,计算IDi报文中第j位的翻转率Trj=BFNj/m;
第五步,判断IDi报文中第j位的翻转率Trj是否为0,若是,则第j位属于不变区域,j增加1并返回第二步;若不是,则第j位属于可变区域,j增加1并返回第二步;
第六步,对IDi报文中某个可变区域,k为该可变区域的起始比特的位置,p为该可变区域的长度,k+p为该可变区域的结束比特的位置,置计数值q为0;
第七步,判断q是否小于p,若是,则进入第八步;若不是,则进入第十步;
第八步,计算翻转率比值BR=Trk+q/Trk+q-1;
第九步,判断BR是否小于阈值Th,若是,则在k+q处划分字段,q增加1并返回第七步;若不是,则q增加1并返回第七步;
第十步,判断可变字段所属类型,若可变字段数值连续增加1且字段内相邻位有Tra+1=2Tra,若是,则该可变字段为计数器字段,结束;若不是,则该可变字段不是计数器字段;
第十一步,若可变字段不是计数器字段,判断该字段内位翻转率分布是否符合以0.5为中心的正态分布,若是,则该可变字段为校验字段,结束;若不是,则该字段为多值字段,结束;
本步骤中,第九步根据可变字段中前后位的位翻转率比值对字段进行细致划分;第十步、第十一步根据可变字段中位翻转率变化特征判断字段属性。
在现有文献中,没有对可变区域与不变区域的区分,因此本方法通过判断翻转率Tr是否为0对数据场内的常值和变值进行分离,提高了数据场内字段划分的准确性和有效性。
步骤二、模糊测试:
如图2所示,包括如下步骤:
第一步,对于标识符为IDi的报文,根据步骤一划分出a个可变字段F1,F2,…Fa,其中第k个可变字段的起始位与终止位分别为Fk (f),Fk (l),置j为1;
第二步,判断j是否小于等于a,若是,则进入第三步;若不是,则进入第五步;
第五步,计算可变字段Fj单独变异操作数Tj (s),对于可变字段Fj,定义其长度为pj,有Tj (s)=2pj;
第六步,生成可变字段Fj单独变异可生成测试用例Nj (s)=Wj (s)Tj (s);
第九步,生成该字段组合变异可生成测试用例Nuv (m)=Wuv (s)Tuv (m)。
本步骤中,第四步为可变字段设置基于平均翻转率的权重,按照条件概率生成变异测试用例。
实施例:
为验证本发明所提方法的有效性,通过在线公开的CAN报文数据集进行实验评估。本实施例选择了标识符为ID 0x191,ID 0x260的报文进行基于字段权重的商用车载CAN总线模糊测试方法。
(1)基于位翻转率的字段划分方法验证
标识符ID 0x191,ID 0x260字段划分情况如表1所示,0x191的字段划分基本正确,在第4字节中因采集报文内容无变化而与规范格式存在差异,这种差异可以通过增加采集报文量解决。0x260的推算格式与规范格式完全相符,说明基于位翻转率的商用车载CAN报文数据场字段划分具有有效性。
表1 0x191与0x260报文字段划分格式推断验证
(2)针对基于字段权重的模糊测试方法验证
使用本发明设计的模糊测试用例生成方法,对报文标识符为0x1C4的报文进行变异。该报文中第1、3、4、6字节数值无变异,2、5、7字节发生变异。使用该方法生成的10000条测试用例输入到汽车,引发了9种异常状态,证明该变异方法具有有效性。
Claims (10)
1.一种基于字段权重的商用车载CAN总线模糊测试方法,其特征在于所述方法包括如下步骤:
步骤一、字段划分:
第一步,设某段采集时间内对应报文标识符为IDi的报文个数为m,置计数值j为0,j为报文数据场中比特的位置;
第二步,判断j是否不大于64,若是,则进入第三步;若不是,则进入第六步;
第三步,计算m条报文标识符为IDi的报文中第j位的翻转数BFNj;
第四步,计算IDi报文中第j位的翻转率Trj;
第五步,判断IDi报文中第j位的翻转率Trj是否为0,若是,则第j位属于不变区域,j增加1并返回第二步;若不是,则第j位属于可变区域,j增加1并返回第二步;
第六步,对IDi报文中某个可变区域,k为该可变区域的起始比特的位置,p为该可变区域的长度,k+p为该可变区域的结束比特的位置,置计数值q为0;
第七步,判断q是否小于p,若是,则进入第八步;若不是,则进入第十步;
第八步,计算翻转率比值BR;
第九步,判断BR是否小于阈值Th,若是,则在k+q处划分字段,q增加1并返回第七步;若不是,则q增加1并返回第七步;
第十步,判断可变字段所属类型,若可变字段数值连续增加1且字段内相邻位有Tra+1=2Tra,若是,则该可变字段为计数器字段,结束;若不是,则该可变字段不是计数器字段;
第十一步,若可变字段不是计数器字段,判断该可变字段内位翻转率分布是否符合以0.5为中心的正态分布,若是,则该可变字段为校验字段,结束;若不是,则该可变字段为多值字段,结束;
步骤二、模糊测试:
第一步,对于标识符为IDi的报文,根据步骤一划分出a个可变字段F1,F2,…Fa,其中第k个可变字段的起始位与终止位分别为Fk (f),Fk (l),置j为1;
第二步,判断j是否小于等于a,若是,则进入第三步;若不是,则进入第五步;
第四步,为可变字段Fj分配权重值Wj (s),j增加1并返回第二步;
第五步,计算可变字段Fj单独变异操作数Tj (s);
第六步,生成可变字段Fj单独变异测试用例Nj (s);
第七步,计算组合字段Fu,…,Fv中组合变异操作数Tuv (m);
第八步,计算组合字段Fu,…,Fv组合权重值Wuv (m);
第九步,生成组合字段Fu,…,Fv组合变异测试用例Nuv (m)。
3.根据权利要求1所述的基于字段权重的商用车载CAN总线模糊测试方法,其特征在于所述步骤一中,Trj的计算公式为:Trj=BFNj/m。
4.根据权利要求1所述的基于字段权重的商用车载CAN总线模糊测试方法,其特征在于所述步骤一中,BR的计算公式为:BR=Trk+q/Trk+q-1。
7.根据权利要求1所述的基于字段权重的商用车载CAN总线模糊测试方法,其特征在于所述步骤二中,Tj (s)的计算公式为:Tj (s)=2pj,pj为可变字段Fj的长度。
10.根据权利要求1所述的基于字段权重的商用车载CAN总线模糊测试方法,其特征在于所述步骤二中,Nuv (m)的计算公式为:Nuv (m)=Wuv (s)Tuv (m)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011409975.1A CN112380081B (zh) | 2020-12-04 | 2020-12-04 | 一种基于字段权重的商用车载can总线模糊测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011409975.1A CN112380081B (zh) | 2020-12-04 | 2020-12-04 | 一种基于字段权重的商用车载can总线模糊测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112380081A CN112380081A (zh) | 2021-02-19 |
CN112380081B true CN112380081B (zh) | 2023-03-21 |
Family
ID=74590483
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011409975.1A Active CN112380081B (zh) | 2020-12-04 | 2020-12-04 | 一种基于字段权重的商用车载can总线模糊测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112380081B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113268430A (zh) * | 2021-06-17 | 2021-08-17 | 北京邮电大学 | 一种基于数据分析的can总线模糊测试方法 |
CN113986712A (zh) * | 2021-09-10 | 2022-01-28 | 深圳开源互联网安全技术有限公司 | 一种基于http/2的模糊测试方法和装置 |
CN114745148B (zh) * | 2022-01-06 | 2023-02-07 | 华东师范大学 | 基于动态规划的车载网络can总线入侵检测方法及系统 |
CN116881058A (zh) * | 2023-07-19 | 2023-10-13 | 凯云联创(北京)科技有限公司 | 一种嵌入式设备的模糊测试方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110336827A (zh) * | 2019-07-15 | 2019-10-15 | 北京工业大学 | 一种基于异常字段定位的Modbus TCP协议模糊测试方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3880934B2 (ja) * | 2003-01-28 | 2007-02-14 | Necエレクトロニクス株式会社 | Crc符号生成方法 |
CN104765690B (zh) * | 2015-04-22 | 2017-10-27 | 哈尔滨工业大学 | 基于模糊遗传算法的嵌入式软件测试数据生成方法 |
CN106656663A (zh) * | 2016-12-07 | 2017-05-10 | 中国电子产品可靠性与环境试验研究所 | Can总线数据链路层的位翻转故障注入方法和系统 |
US11099973B2 (en) * | 2019-01-28 | 2021-08-24 | Salesforce.Com, Inc. | Automated test case management systems and methods |
CN110191021B (zh) * | 2019-05-29 | 2021-04-30 | 北京百度网讯科技有限公司 | 一种协议测试方法、装置、电子设备及存储介质 |
CN110990276A (zh) * | 2019-11-29 | 2020-04-10 | 泰康保险集团股份有限公司 | 接口字段自动化测试方法、装置和存储介质 |
-
2020
- 2020-12-04 CN CN202011409975.1A patent/CN112380081B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110336827A (zh) * | 2019-07-15 | 2019-10-15 | 北京工业大学 | 一种基于异常字段定位的Modbus TCP协议模糊测试方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112380081A (zh) | 2021-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112380081B (zh) | 一种基于字段权重的商用车载can总线模糊测试方法 | |
US11546298B2 (en) | Information processing method, information processing system, and non-transitory computer-readable recording medium storing a program | |
Marchetti et al. | READ: Reverse engineering of automotive data frames | |
US11411681B2 (en) | In-vehicle information processing for unauthorized data | |
CN111030962B (zh) | 车载网络入侵检测方法及计算机可读存储介质 | |
CN108665359B (zh) | 区块链处理方法、记账节点及验证节点 | |
CN110226310B (zh) | 电子控制装置、不正当检测服务器、车载网络系统、车载网络监视系统以及方法 | |
EP3621246A1 (en) | Security processing method and server | |
CN108390869B (zh) | 集成深度学习的车载智能网关装置及其命令序列检测方法 | |
EP3968575A1 (en) | Security processing method and server | |
CN106650505A (zh) | 一种车辆攻击检测方法和装置 | |
CN111294341A (zh) | 基于自编码器和递归神经网络的车载系统入侵检测方法 | |
CN102801552A (zh) | 基于网络建模的用于错误隔离和错误减轻的系统和方法 | |
Zhang et al. | A hybrid approach toward efficient and accurate intrusion detection for in-vehicle networks | |
US20190296935A1 (en) | Device and method for dividing field boundary of can trace | |
JP2019129527A (ja) | データ解析装置及びプログラム | |
US11218476B2 (en) | Vehicle authentication and protection system | |
CN108170403B (zh) | 数据筛选方法和装置 | |
CN110365682A (zh) | 一种反作弊方法及装置 | |
Jeong et al. | X-CANIDS: Signal-Aware Explainable Intrusion Detection System for Controller Area Network-Based In-Vehicle Network | |
JP2019129528A (ja) | データ解析装置及びプログラム | |
CN111428878B (zh) | 一种关于车联网安全事件严重程度的确定方法 | |
Li et al. | GAN model using field fuzz mutation for in-vehicle CAN bus intrusion detection | |
Liu et al. | Another Look at the Connection between CAN Signal Ringing & In-Vehicle ECU Identification | |
Awaad et al. | An Intelligent, Two-Stage, In-Vehicle Diagnostic-Based Secured Framework |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |