CN113268430A - 一种基于数据分析的can总线模糊测试方法 - Google Patents
一种基于数据分析的can总线模糊测试方法 Download PDFInfo
- Publication number
- CN113268430A CN113268430A CN202110671302.1A CN202110671302A CN113268430A CN 113268430 A CN113268430 A CN 113268430A CN 202110671302 A CN202110671302 A CN 202110671302A CN 113268430 A CN113268430 A CN 113268430A
- Authority
- CN
- China
- Prior art keywords
- data
- bit
- bits
- bus
- test case
- 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
Classifications
-
- 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/3676—Test management for coverage analysis
-
- 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)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种基于数据分析的CAN(控制器局域网络)总线模糊测试方法,属于车辆信息安全技术领域。本发明方法包括:采集CAN总线传输的数据帧,按数据帧ID分组并将数据表示为二进制形式;使用计算数据间比特反转率的方法发现数据中的信号边界以及数据中信号的类型;根据分析结果生成模糊测试用例;采用生成的模糊测试用例对车辆进行模糊测试。本发明方法避开使用人工分析以及使用随机或变异方式生成模糊测试用例的传统方式,在保证可以生成足够的测试用例覆盖可能与车辆功能相关的CAN信号时,可以使得所用测试用例数量更少,从而可以减少在车辆模糊测试时计算资源在时间和空间上的消耗,且大量减少人工分析的工作量。
Description
技术领域
本发明涉及车辆信息安全技术领域,尤其涉及一种基于数据分析的车辆CAN(控制器局域网络)总线模糊测试方法。
背景技术
现代汽车都配有大量ECU(电子控制单元),不同的ECU之间使用CAN总线进行通信,它们共同构成了一个汽车内部局域网。由于车联网相关技术的广泛应用,汽车内部局域网可以通过各类网络接口与互联网相连。通过蓝牙、Wifi、蜂窝网络等对外网络接口,攻击者无需物理接触汽车即可侵入CAN总线,使用重放、伪造报文等方式对CAN网络及ECU发起攻击。由于设计时欠缺对安全性的考虑,CAN总线本身存在消息来源无法验证、广播消息易被监听等安全隐患。因此需要对CAN总线进行安全性测试,发现总线上存在的安全问题。模糊测试是一种重要的测试手段和漏洞挖掘方法。现有技术中,对CAN总线的模糊测试方法采用了随机生成数据或通过变异合法数据包生成数据的方式,工作量大且效率低下。
发明内容
针对目前在汽车CAN总线的模糊测试中存在工作量大且效率低下的问题,本发明提供了一种基于数据分析的CAN总线模糊测试方法,通过对CAN总线上数据的分析生成模糊测试用例,以减少时间、空间上的消耗。
本发明提供的基于数据分析的CAN总线模糊测试方法,包括如下步骤:
步骤1:采集CAN总线传输的数据帧,并按数据帧ID分组,将每组数据转换为二进制形式表示;
步骤2:对每组二进制数据进行分析,包括:使用计算数据间比特反转率的方法发现数据中的信号边界以及数据中信号的类型;其中,数据帧中比特反转率为0的位为固定值,也代表了信号边界,比特反转率不为0的位为变化值,获取其中数据递增或递减的位段,以及数据随机的位段;
步骤3:根据对每组二进制数据分析的结果生成模糊测试用例;其中,数据帧中判断为固定值的位段,不做改动;判断为递增或递减的位段,按递增或递减规律生成模糊测试用例上对应位段的数据;判断为随机变化的位段,随机生成数据;
步骤4:采用生成的模糊测试用例对车辆进行模糊测试。
相对于现有技术,本发明的优点与积极效果在于:现有技术分析CAN总线数据帧时主要使用人工分析的方法寻找数据特征,使用随机生成模糊测试用例或通过变异合法数据包来生成模糊测试用例,存在工作量大且效率低下的问题。本发明克服了现有问题,避开使用人工分析以及使用随机或变异方式生成模糊测试用例的传统方式,通过对CAN总线上传输的数据帧进行分析,创新地将对传输的控制信号转换为二进制位表示,挖掘出二进制位数据在数学特征的体现,从而根据这些数学特征规律来生成模糊测试用例,相对于现有方法在保证可以生成足够的测试用例覆盖可能与车辆功能相关的CAN信号时,可以使得所用测试用例数量更少,从而可以减少在车辆模糊测试时计算资源在时间和空间上的消耗,且大量减少人工分析的工作量。
附图说明
图1是本发明基于数据分析的CAN总线模糊测试方法的一个实现流程图。
具体实施方式
下面将结合附图和实施例对本发明作进一步的详细说明。
如图1所示,本发明提供了一种高效的基于数据分析的CAN总线模糊测试方法,利用计算机等智能设备进行如下4个步骤的处理,来获取模糊测试用例,对车辆进行模糊测试。下面说明每个步骤的实现。
步骤1,数据采集与预处理。
本发明实施例中采集车辆上一段时间内的CAN总线数据,采集CAN总线传输的数据帧,按数据帧ID(标识)将数据分为若干组,后续以组为单位对数据进行分析。将每组数据内容以二进制表示。
本发明可设定采集时间段长度,在该时间长度内采集CAN总线上的数据,对属于同一数据帧ID的数据分为一组,每组内数据帧按照采集时间先后排序。CAN总线中每个ECU拥有一个ID,数据帧的ID代表该数据帧的目的地址为该ID的ECU,数据帧ID不同代表数据帧的目的ECU不同,本发明实施例将属于相同目的ECU的数据帧分为一组。
步骤2,对每组转换为二进制的数据进行分析。
CAN总线上数据帧最长可为8个字节,然而实际应用中往往只使用8字节中的某几个字节或比特表示某个车辆功能信号,且该段数据具有某种数学特征,如递增、数值枚举等,因此生成模糊测试用例时可以只针对该信号的部分数据进行特定规则的畸形处理。
本步骤使用计算数据间比特反转率的方法发现数据中的信号边界以及数据中信号的类型,具体方法如下:
针对每个ID内的数据,按时间先后顺序排列数据帧,为数据帧的每一位设置一个计数器,按时间先后顺序分析数据帧每一位上的比特是否存在由‘0’变为‘1’或由‘1’变为‘0’的情况,若有则计数器数值增加1。根据每一位上计数器的统计结果得到比特反转次数。
用每一位的计数器值除以总数据长度,获得每一位的比特反转率。此处总数据长度是指组内的数据帧数量。
若某一位比特反转率为0,说明该位为固定值,不会随时间、车辆物理现象等变化;若某一位比特反转率不为0,说明该位为变化值。
针对比特反转率不为0的数据段进行分析。若相邻的某几个位的比特反转率值递增且低位(或高位)的比特反转率约为其相邻高位(或低位)的比特反转率的2倍,则这几个位数据数值呈递增(或递减)趋势。计算相邻数据间的差值,若差值为正则数值递增,若差值为负则数据递减。若相邻的某几个位的比特反转率间无明显联系,则这几个位数据数值可能为随机值。
对于比特反转率为0的数据段,也代表了一个信号边界,信号边界可以为多位数据,也可以为一位数据。
本发明优先获取递增或递减的数据位段,最后将数据帧的位分为了固定位段、递增或递减的位段以及随机位段。
步骤3,模糊测试用例生成。
基于上述数据分析的结果,生成模糊测试用例,生成规则为:
对于被判断为固定值的数据位段,不做改动,保持二进制数值0或1;
对于被判断为随机值的数据位段,随机生成数据。
按照上述步骤1~3,本发明对每一ID的数据帧进行数据采集和分析,生成模糊测试用例。
步骤4,对车辆进行模糊测试。
将生成的测试用例发送至车辆总线,观察车辆反应。
实施例
本实施例以表1中采集的CAN总线数据来说明本发明方法的应用。
表1采集的CAN总线数据
表1中所示为在一段时间采集的数据帧ID为123的CAN总线上的数据,包括15个时间点上的数据帧。
步骤1,对表1数据进行预处理。
将表1中数据以二进制表示,如下:
['1000000011111111000001010001110100000010001100100101001101001000','1000000011111111000001010001110100000010001100100101001101101001','1000000011111111000001010001110100000010001010100101010101001010','1000000011111111000001010001110100000010001010100101010101001011','1000000011111111000001010001110100000010001001100101011001001100','1000000011111111000001010001110100000010000111100101100001001101','1000000011111111000001010001110100000010000111100101100001001110','1000000011111111000001010001110100000010000101100101101001101111','1000000011111111000001010001110100000010000101100101101001000000','1000000011111111000001010001110100000010000011100101110001000001','1000000011111111000001010001110100000010000011100101110001000010','1000000011111111000001010001110100000010000010100101110101000011','1000000011111111000001010001110100000010000000100101111101000100','1000000011111111000001010001110100000010000000100101111101100101','1000000011111111000001010001110100000010001110100101000101000110']
步骤2,对二进制数据进行分析。
给数据帧的二进制数据的每位上设置一个计数器,计算上述数据的比特反转次数,结果为[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4,7,2,0,0,0,0,0,0,2,4,7,2,0,0,6,0,1,3,7,14],则其比特反转率为[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.13,0.27,0.47,0.13,0.0,0.0,0.0,0.0,0.0,0.0,0.13,0.27,0.47,0.13,0.0,0.0,0.4,0.0,0.07,0.2,0.47,0.93]。
由计算结果可见,该组数据的第1~42位、第47~52位、第57~58位、第60位为固定值;第61~64位数值递增且相邻数值间低位约为高位的2倍且差值为正,则第61~64位为递增数据;第43~46位、第53~56位、第59位数值无明显递增规律,为随机值。
步骤3,生成模糊测试用例。
根据上述分析结果,判断为固定值的数据保留原值。针对递增的数据,变异为0000~1111的递增循环数据;针对随机的数据,填充随机值。生成50条测试用例的结果如下:
['1000000011111111000001010001110100000010000110100111100100000','1000000011111111000001010001110100000010001001100101100100001','1000000011111111000001010001110100000010000011100110100110010','1000000011111111000001010001110100000010000000100111000100011','1000000011111111000001010001110100000010000101100111100100100','1000000011111111000001010001110100000010001000100100100100101','1000000011111111000001010001110100000010000100100100100100110','1000000011111111000001010001110100000010001010100110110110111','1000000011111111000001010001110100000010000010100111100101000','1000000011111111000001010001110100000010000001100101000101001','1000000011111111000001010001110100000010001011100111000111010','1000000011111111000001010001110100000010001010100101100101011','1000000011111111000001010001110100000010001111100111000101100','1000000011111111000001010001110100000010000101100101000111101','1000000011111111000001010001110100000010000100100110000111110','1000000011111111000001010001110100000010000010100111010101111','1000000011111111000001010001110100000010000110100110100100000','1000000011111111000001010001110100000010001011100101000100001','1000000011111111000001010001110100000010001010100101110110010','1000000011111111000001010001110100000010000110100111000100011','1000000011111111000001010001110100000010001010100100100110100','1000000011111111000001010001110100000010000000100111000100101','1000000011111111000001010001110100000010000000100111000110110','1000000011111111000001010001110100000010000011100100100100111','1000000011111111000001010001110100000010001110100111110101000','1000000011111111000001010001110100000010000111100100100101001','1000000011111111000001010001110100000010000001100111000101010','1000000011111111000001010001110100000010001010100101100111011','1000000011111111000001010001110100000010001000100101110111100','1000000011111111000001010001110100000010000100100101100111101','1000000011111111000001010001110100000010000111100110010101110','1000000011111111000001010001110100000010000011100111010111111','1000000011111111000001010001110100000010000001100100000100000','1000000011111111000001010001110100000010001011100111100110001','1000000011111111000001010001110100000010000101100110000100010','1000000011111111000001010001110100000010001110100110010100011','1000000011111111000001010001110100000010001001100101000100100','1000000011111111000001010001110100000010000000100100100100101','1000000011111111000001010001110100000010001101100111100110110','1000000011111111000001010001110100000010001111100110100110111','1000000011111111000001010001110100000010000011100111100111000','1000000011111111000001010001110100000010000111100101000101001','1000000011111111000001010001110100000010001000100100010101010','1000000011111111000001010001110100000010000011100110110111011','1000000011111111000001010001110100000010000100100100110111100','1000000011111111000001010001110100000010000111100110010111101','1000000011111111000001010001110100000010000100100110010101110','1000000011111111000001010001110100000010000100100100100101111','1000000011111111000001010001110100000010001110100100000100000','1000000011111111000001010001110100000010000100100111010100001']
最后,利用所生成的模糊测试用例对车辆进行模糊测试。
上述实施例,应用本发明方法生成的模糊测试用例最多为8192条,而使用完全随机方式生成的模糊测试用例最多可达264条,使用合法数据包变异方式生成的模糊测试用例最少为9216条(单字节变异方式),可见采用本发明方法可以用最少的测试用例覆盖可能与车辆功能相关的CAN信号,消耗的时间、空间资源少于其他方法。
Claims (3)
1.一种基于数据分析的CAN总线模糊测试方法,其特征在于,包括:
采集CAN总线传输的数据帧,并按数据帧ID分组,将每组数据转换为二进制形式表示;每组数据按时间先后顺序排列数据帧;
对每组二进制数据使用计算数据间比特反转率的方法进行分析,获得数据中的信号边界以及数据中信号的类型;其中,数据帧中比特反转率为0的位为固定值,也代表了信号边界,比特反转率不为0的位为变化值,获取数据递增或递减的位段,以及随机变化的位段;
根据对每组二进制数据分析的结果生成模糊测试用例;其中,数据帧中判断为固定值的位段,不做改动;判断为递增或递减的位段,按递增或递减规律生成模糊测试用例上对应位段的数据;判断为随机变化的位段,随机生成数据;
采用生成的模糊测试用例对车辆进行模糊测试。
2.根据权利要求1所述的方法,其特征在于,所述的对每组二进制数据使用计算数据间比特反转率的方法进行分析,包括:
(1)针对每组二进制数据,为数据帧每一位设置一个计数器,按时间顺序统计数据帧中每一位上存在的由‘0’变为‘1’或由‘1’变为‘0’的情况,若有则计数器数值增加1;根据每一位上计数器的统计结果得到比特反转次数;
(2)用每一位的计数器值除以组内数据帧数量,获得每一位的比特反转率;若某一位比特反转率为0,说明该位为固定值,若某一位比特反转率不为0,说明该位为变化值;
(3)对比特反转率不为0的数据段进行分析,包括:若数据帧中相邻的n个位的比特反转率值递增且低位或高位的比特反转率约为其相邻高位或低位的比特反转率的2倍,则表示相邻n个位的数据呈递增或递减趋势;计算相邻位的数据差值,若差值为正则数据递增,若差值为负则数据递减;若相邻n个位的比特反转率不存在数值上的联系,则表示n个位的数据为随机值;n为大于1的自然数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110671302.1A CN113268430A (zh) | 2021-06-17 | 2021-06-17 | 一种基于数据分析的can总线模糊测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110671302.1A CN113268430A (zh) | 2021-06-17 | 2021-06-17 | 一种基于数据分析的can总线模糊测试方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113268430A true CN113268430A (zh) | 2021-08-17 |
Family
ID=77235168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110671302.1A Pending CN113268430A (zh) | 2021-06-17 | 2021-06-17 | 一种基于数据分析的can总线模糊测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113268430A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113872985A (zh) * | 2021-10-14 | 2021-12-31 | 重庆邮电大学 | 针对车载can总线模糊测试方法、终端以及计算机设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101797005B1 (ko) * | 2017-03-09 | 2017-12-13 | 슈어소프트테크주식회사 | 차종 별 테스트 케이스 생성 방법 |
CN111865743A (zh) * | 2020-07-03 | 2020-10-30 | 深圳开源互联网安全技术有限公司 | 车辆can总线模糊测试方法、系统、电子设备及存储介质 |
CN112380081A (zh) * | 2020-12-04 | 2021-02-19 | 哈尔滨工业大学 | 一种基于字段权重的商用车载can总线模糊测试方法 |
-
2021
- 2021-06-17 CN CN202110671302.1A patent/CN113268430A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101797005B1 (ko) * | 2017-03-09 | 2017-12-13 | 슈어소프트테크주식회사 | 차종 별 테스트 케이스 생성 방법 |
CN111865743A (zh) * | 2020-07-03 | 2020-10-30 | 深圳开源互联网安全技术有限公司 | 车辆can总线模糊测试方法、系统、电子设备及存储介质 |
CN112380081A (zh) * | 2020-12-04 | 2021-02-19 | 哈尔滨工业大学 | 一种基于字段权重的商用车载can总线模糊测试方法 |
Non-Patent Citations (1)
Title |
---|
谭凯: "汽车CAN总线安全性模糊测试技术研究", 《中国优秀博硕士学位论文全文数据库(硕士) 工程科技Ⅱ辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113872985A (zh) * | 2021-10-14 | 2021-12-31 | 重庆邮电大学 | 针对车载can总线模糊测试方法、终端以及计算机设备 |
CN113872985B (zh) * | 2021-10-14 | 2023-07-18 | 重庆邮电大学 | 针对车载can总线模糊测试方法、终端以及计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102724219B (zh) | 网络数据的计算机处理方法及系统 | |
CN111131304B (zh) | 面向云平台大规模虚拟机细粒度异常行为检测方法和系统 | |
CN111835611B (zh) | 一种车辆can总线数据解析方法及装置 | |
CN113608483B (zh) | 获取车辆信号值方法、电子设备及电子控制单元 | |
CN112380081B (zh) | 一种基于字段权重的商用车载can总线模糊测试方法 | |
CN109922063B (zh) | 多功能电表通信协议模糊测试的污数据生成方法 | |
CN110825545A (zh) | 一种云服务平台异常检测方法与系统 | |
CN113268430A (zh) | 一种基于数据分析的can总线模糊测试方法 | |
CN100352208C (zh) | 一种大型网站数据流的检测与防御方法 | |
CN110222795A (zh) | 基于卷积神经网络的p2p流量的识别方法及相关装置 | |
CN112084180A (zh) | 一种监控车载应用质量的方法、装置、设备及介质 | |
CN115238822A (zh) | 一种基于混合变异策略的网络协议漏洞挖掘方法 | |
CN114936149A (zh) | 基于wgan-gp的can总线模糊测试用例生成方法及模糊测试系统 | |
CN109921970B (zh) | 一种数据处理方法及系统 | |
CN117170979B (zh) | 一种大规模设备的能耗数据处理方法、系统、设备及介质 | |
CN111800292A (zh) | 基于历史流量的预警方法、装置、计算机设备及存储介质 | |
CN112087450B (zh) | 一种异常ip识别方法、系统及计算机设备 | |
WO2019107149A1 (ja) | ビットアサイン推定装置、ビットアサイン推定方法、プログラム | |
CN106682058A (zh) | 应用程序的筛选方法、装置和系统 | |
CN112235242A (zh) | 一种c&c信道检测方法及系统 | |
CN111126430A (zh) | 用于异常检测系统的数据聚类方法、无线通信网络终端 | |
CN116910144A (zh) | 算力网络资源中心、算力服务系统以及数据处理方法 | |
CN113746707B (zh) | 一种基于分类器及网络结构的加密流量分类方法 | |
CN114745148B (zh) | 基于动态规划的车载网络can总线入侵检测方法及系统 | |
CN113872985A (zh) | 针对车载can总线模糊测试方法、终端以及计算机设备 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210817 |
|
RJ01 | Rejection of invention patent application after publication |