CN114302442A - 一种基于sdr的低成本v2x模糊测试方法 - Google Patents
一种基于sdr的低成本v2x模糊测试方法 Download PDFInfo
- Publication number
- CN114302442A CN114302442A CN202111533976.1A CN202111533976A CN114302442A CN 114302442 A CN114302442 A CN 114302442A CN 202111533976 A CN202111533976 A CN 202111533976A CN 114302442 A CN114302442 A CN 114302442A
- Authority
- CN
- China
- Prior art keywords
- message
- test
- tested
- file
- sdr
- 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.)
- Granted
Links
Images
Abstract
本发明公开一种基于SDR的低成本V2X模糊测试方法,包括:对待测设备的通信协议报文基于抽象语法标记转换为特定语言描述的特定格式文件;根据预设的编码规则,确定特定格式文件中不同字段的位数,制定字段生成策略,以此对特定格式文件进行格式转换得到语法模版文件;根据语法模版文件生成合法消息,将合法消息划分为测试部分和待变异部分,将测试部分作为测试用例发送至待测设备;对待变异部分根据预设的变异规则进行变异,得到畸形消息,将畸形消息作为测试用例发送至待测设备;将测试用例发送至待测设备的过程中,对通信协议进程进行监控,定位崩溃位置。针对车联网协议V2X,构造ASN.1格式的V2X测试消息,实现自动化的漏洞挖掘,增强设备安全性。
Description
技术领域
本发明涉及协议安全分析技术领域,特别是涉及一种基于SDR的低成本V2X模糊测试方法。
背景技术
本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
基于蜂窝网络的车联网协议C-V2X是通用的车用无线通信协议(vehicle to X,V2X),通过复用当前蜂窝网络的实现和基础设施实现车辆自组网。C-V2X协议根据具体蜂窝网络的不同,分为LTE-V2X和NR-V2X,目前针对C-V2X协议还没有系统化、自动化的漏洞挖掘方法,对C-V2X设备的实现安全性难以进行评估,在车联网场景下,严重的漏洞可能威胁交通安全和人身安全。
模糊测试是通过构造异常输入触发程序问题,是自动化的漏洞挖掘方法。从底层数据发送方面来说,目前的模糊测试框架主要是针对IP或者特定协议构造实现的,无法满足C-V2X底层发送需要;且针对上层ASN.1格式的消息,目前的模糊测试方法存在效率问题;其中,ASN.1抽象语法标记(Abstract Syntax Notation One)ASN.1是一种ISO/ITU-T标准,描述一种对数据进行表示、编码、传输和解码的数据格式。现有的针对LTE上层协议的模糊测试方法、针对C-V2X物理层的收发工具以及进行一致性检测的商用综测仪等存在以下问题:
1、基于ASN.1规范的模糊测试已有方法有针对LTE上层协议RRC和NAS的测试。分析对象是LTE层3协议,是对ASN.1标准文件进行变异来产生不合法消息,以对消息解析过程进行模糊测试,对符合ASN.1标准文件的消息进行变异产生不同的合法消息,以对消息处理过程进行模糊测试。但是,一方面变异规则比较单一,不适用于特殊情况的测试;另一方面通过大量编译ASN.1文件来生成消息,有很大的时间开销,模糊测试效率低。
2、目前模糊测试框架都是基于IP,不适用于C-V2X上层协议,C-V2X底层是基于LTE的。针对LTE上层协议的模糊测试可以直接使用srsLTE等完备的开源工具构建上下行链路,但针对C-V2X还没有可以直接使用的模糊测试框架或者开源商用工具,只有部分物理层实现;C-V2X物理层的收发工具基于srsLTE,一方面该收发工具在适配不同设备时不灵活,没有实现预留子帧功能;另一方面没有上层协议实现的参考,需要手动实现物理层以上的协议栈,从而构建针对于C-V2X协议的模糊测试框架。
3、针对协议的测试包括一致性检测、性能测试、互操作性测试、健壮性测试。但是商用综合测试仪无法对健壮性进行测试,只能测试合法消息及正常功能。通常安全方面的检测是通过模糊测试来完成的,也可以在商用综合测试仪的消息收发功能的基础上实现模糊测试,但是成本太高。目前还没有针对C-V2X协议消息层和安全层的模糊测试工具,对协议实现方面的安全性测试还不完备。
发明内容
为了解决上述问题,本发明提出了一种基于SDR的低成本V2X模糊测试方法,针对车联网协议V2X,构造ASN.1格式的V2X测试消息,实现自动化的漏洞挖掘,增强设备安全性。
为了实现上述目的,本发明采用如下技术方案:
第一方面,本发明提供一种基于SDR的低成本V2X模糊测试方法,包括:
对待测设备的通信协议报文基于抽象语法标记转换为特定语言描述的特定格式文件;
将特定格式文件根据预设的编码规则,确定不同字段的位数,制定字段生成策略,以此对特定格式文件进行格式转换得到语法模版文件;
根据语法模版文件生成合法消息,并将合法消息划分为测试部分和待变异部分,将测试部分作为测试用例发送至待测设备;
对待变异部分根据预设的变异规则进行变异后,得到畸形消息,将畸形消息作为测试用例发送至待测设备;
将测试用例发送至待测设备的过程中,对通信协议进程进行监控,并定位崩溃位置。
作为可选择的实施方式,所述特定语言描述的特定格式文件采用ASN.1,生成ASN.1格式的消息文件。
作为可选择的实施方式,所述预设的编码规则为采用UPER编码规则,将特定格式文件编写为正则表达的语法模版文件。
作为可选择的实施方式,所述特定格式文件包括primitive数据类型和structured数据类型,根据预设的编码规则确定特定格式文件中不同数据类型不同字段的位数,不同字段的位数包括比特位数、字符个数。
作为可选择的实施方式,所述特定格式文件包括primitive数据类型和structured数据类型,基于两种数据类型,制定的字段生成策略包括:所述primitive数据类型中:
INTEGER:在size值约束下设置随机数;
ENUMERATED:在个数范围内随机选择;
BIT STRING:在size值约束下设置随机长度的随机值;或,没有size值约束时,根据消息长度约束设置最大长度的随机值;
OCTET STRING:在size值约束下在字典库随机选择;或,没有size值约束时,根据消息长度约束设置最大长度;
IA5String:在size值约束下在字典库随机选择;或,没有size值约束时,根据消息长度约束设置最大长度。
作为可选择的实施方式,基于两种数据类型,制定的字段生成策略包括:所述structured数据类型中:
CHOICE:遍历所有数据类型,根据数据类型设置。
SEQUENCE:随机选择OPTIONAL标注的字段,根据数据类型设置。
SEQUENCE OF:在size值约束下设置随机长度。
第二方面,本发明提供一种基于SDR的低成本V2X模糊测试装置,包括:
编译模块,被配置为对待测设备的通信协议报文基于抽象语法标记转换为特定语言描述的特定格式文件;
文件转换模块,被配置为将特定格式文件根据预设的编码规则,确定不同字段的位数,制定字段生成策略,以此对特定格式文件进行格式转换得到语法模版文件;
消息生成模块,被配置为根据语法模版文件生成合法消息,并将合法消息划分为测试部分和待变异部分,将测试部分作为测试用例发送至待测设备;
变异模块,被配置为对待变异部分根据预设的变异规则进行变异后,得到畸形消息,将畸形消息作为测试用例发送至待测设备;
测试模块,被配置为将测试用例发送至待测设备的过程中,对通信协议进程进行监控,并定位崩溃位置。
第三方面,本发明提供一种基于SDR的低成本V2X模糊测试系统,包括:第二方面所述的模糊测试装置、收发装置和协议解析装置;
所述模糊测试装置通过收发装置进行测试用例的传输;所述收发装置用于在待测设备间采用测试用例进行通信测试时,对通信协议报文在待测设备之间的传输;所述协议解析装置用于对通信协议进程中通信报文的解析,且将解析结果通过收发装置传输至监控终端,以对通信协议进程进行监控,并定位崩溃位置。
作为可选择的实施方式,所述收发装置中设有同步机制,根据同步子帧的设置情况计算预留子帧的个数。
作为可选择的实施方式,所述协议解析装置基于C语言编译,采用启发式方法注册和组合多个解析器,且自动解析。
第四方面,本发明提供一种车联网通信模糊测试系统,包括路侧单元和车载单元,所述路侧单元和车载单元通信时,采用第一方面所述的模糊测试方法对通信过程进行测试。
与现有技术相比,本发明的有益效果为:
本发明提出一种基于SDR的低成本V2X模糊测试方法,针对车联网协议V2X,构造ASN.1格式的V2X测试消息,实现对基于蜂窝网络的车联网协议的通用性模糊测试,实现自动化的漏洞挖掘,增强设备安全性。
本发明提出一种基于SDR的低成本V2X模糊测试方法,通过生成语言模版文件的方式,缩减编译ASN.1文件带来的时间开销,实现低成本的高效系统化漏洞挖掘。
本发明提出一种基于SDR的低成本V2X模糊测试方法,采用收发装置向待测设备发送消息,适配更多设备,实现通用性,满足四跨和新四跨不同频点带宽设备的测试需要。
本发明提出一种基于SDR的低成本V2X模糊测试方法,采用协议解析装置接收并实时解析消息,不借助商用综合测试仪,使得测试更加灵活方便,能够满足模糊测试需求。
本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1为本发明实施例1提供的基于SDR的低成本V2X模糊测试方法流程图;
图2为本发明实施例1提供的基于SDR的低成本V2X模糊测试方法示意图。
具体实施方式
下面结合附图与实施例对本发明做进一步说明。
应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
实施例1
C-V2X协议根据具体蜂窝网络的不同,分为LTE-V2X和NR-V2X,本实施例主要分析基于LTE的V2X技术。参与V2X通信的实体包括路侧单元RSU、车载单元OBU、基站以及其他边缘计算单元等。在通信模式上,除了传统的上下行通信,LTE-V2X还复用了D2D相关的技术,实现了设备与设备之间的直通通信,在这种情况下,物理层可以选择自主模式的资源分配方式,设备与设备是等价关系,不再区分上行和下行,设备能够周期性或触发性地向周围设备广播消息。
类似于蜂窝网络,LTE-V2X的协议栈还分为控制面和用户面,控制面负责传递应用数据;针对用户面,可以将协议栈划分为芯片厂商负责的底层协议栈部分,以及终端和安全厂商负责的上层协议栈部分。底层协议栈包括物理层(PHY)和接入层,接入层又包括媒体访问控制层(MAC)、广播链路控制层(RLC)、分组数据融合层(PDCP)。底层协议栈在RLC层只进分片不重组,PDCP层不进行头压缩,完整性保护和加密,安全部分的实现完全依赖上层的安全层。上层协议栈包括网络层、消息层、安全层、应用层和用于底层数据映射和内部转换的适配层。网络层用来传递消息的AID和长度信息;消息层用来传递车辆在行驶过程中的动力学信息、路径信息等,还有路侧设备产生的交通信息、交通事件;安全层用于保护消息的完整性。协议栈的演变主要体现在物理层频点带宽的变化、消息层格式的微调以及安全层的完善。针对消息层消息格式和安全层消息格式,主要使用基于ASN.1的UPER和OER编码,通过编码,将大量数据转换成少量字节进行传递,降低了占用带宽,减少了延迟,适合V2X的场景。
现有针对LTE上层协议的模糊测试方法、针对C-V2X物理层的收发工具以及进行一致性检测的商用综测仪具体如下:
1、berserker是针对LTE上层协议的模糊测试工具。主要针对LTE层3的上下行消息(包括RRC协议和NAS消息),通过开源软件srsLTE搭建实验环境,设置UE、RAN和CN三个实体,针对L3层的20种消息按照ASN.1语法构造大量测试用例,对srsLTE的开源协议栈进行模糊测试,主要目标包括协议解码器、消息处理过程等;结构组成包括模糊测试器和驱动,模糊测试器包括ASN.1模式的生成器,针对ASN.1模式的变异器,ASN.1编译器,ASN.1编码解码器,RRC PDU变异器,RRC PDU生成器。
2、目前协议模糊测试框架有SPIKE、SULLEY、Boofuzz、SPFuzz、SNOOZE、ASPFuzz等,大多都是基于IP协议或者特定协议。GSMFuzz、HFuzz、BASESPEC、LTEInspector等是针对蜂窝协议的工具,通过静态提取消息、手动分析或形式化验证等方法进行漏洞挖掘。
3、目前芯片厂商、车厂、终端厂商、安全厂商进行C-V2X开发,主要借助商用综合测试仪来进行协议的一致性检测、互联互通以及安全检测。商用综合测试仪主要包括GNSS同步和消息收发两个设备,可选支持组件,能够测试C-V2X从物理层到应用层整个协议栈。
如背景技术中所述,上述方法均存在一些问题,基于此,在本实施例中,首先提出一种基于SDR的低成本V2X模糊测试方法,如图1所示,具体包括:
对待测设备的通信协议报文基于抽象语法标记转换为特定语言描述的特定格式文件;
将特定格式文件根据预设的编码规则,确定不同字段的位数,制定字段生成策略,以此对特定格式文件进行格式转换为基于生成的正则表达的语法模版文件,用于生成变异前的测试用例;
根据语法模版文件,生成不同字段的数据并按照数据格式生成合法消息,将合法消息划分为测试部分和待变异部分,将测试部分作为测试用例发送至待测设备;
对待变异部分根据预设的变异规则进行变异后,得到畸形消息,将畸形消息作为测试用例发送至待测设备;
将测试用例发送至待测设备的过程中,对通信协议进程进行监控,并定位崩溃位置。
在本实施例中,针对C-V2X通信协议,C-V2X协议栈包括物理层、链路层、网络层、消息层、安全层、应用层,本实施例的模糊测试针对的目标是消息层和应用层,通过构建大量的全协议栈(不包括安全层)完整消息进行模糊测试,且为了测试消息层,需要封装网络层、链路层和物理层。
在本实施例中,如图2所示,所述特定语言描述的特定格式文件采用的是ASN.1文件,生成基于ASN.1格式的语法模版消息文件;具体地,提取C-V2X通信协议报文中的消息层ASN.1文件,得到包含消息层ASN.1规范格式的文件;对ASN.1规范格式的文件根据模版文件生成器得到模版文件,继而通过消息生成器得到若干测试用例,对测试用例进行消息封装后,将封装后的消息发送至待测设备SUT中。
在本实施例中,采用UPER的编码规则,将得到的ASN.1规范格式的文件根据UPER编码规则,编写正则表达的模版文件,以及构建字段生成策略。
在本实施例中,待测设备SUT可能对ASN.1格式文件有修改,或者需要适配不同的ASN.1标准版本,所以需要逆向ASN.1结构,保证待测设备SUT接收到的消息能正常处理,确定正确格式的ASN.1格式文件;
因此,本实施例对消息报文格式进行分析和逆向处理。将ASN.1格式文件采用UPER编码规则,映射到语法模版文件,以进行自定义的数据构造。
ASN.1文件需要经过编译生成编码器,从而编码生成消息;之所以需要编译,是因为ASN.1是一种外部数据定义语言,无法直接映射到某种高级语言的数据类型,为了在异构平台或不同程序的消息传输上有更好的性能,需要使用ASN.1定义统一的数据类型。在使用ASN.1时,需要先编译ASN.1文件,将ASN.1文件映射到某种特定高级语言,且除了针对ASN.1文件的修改,还有针对字段的变异,但是都需要进行重复的编码和解码;所以如果每次发送消息时,都针对大量ASN.1格式文件进行编译,会有巨大的时间和空间开销。而本实施例的模糊测试方法不存在这个问题,可通过制定字段生成策略,直接生成字段组成消息。
在本实施例中,采用UPER的编码规则生成语法模版文件;考虑到效率,本实施例采用基于语法模版的fuzz工具,自定义满足范式正则表达的UPER编码的语法模版文件。
UPER编码规则在标准ITU-T X.691中有详细定义,基于ASN.1有两种类型,即structured类型和primitive类型,根据编码规则,确定C-V2X消息报文中,不同类型不同字段的位数:
primitive类型:
(1)INTEGER:根据(max-min)计算比特位数;
(2)ENUMERATED:根据个数决定比特位数,以0作为首个;
(3)BIT STRING:根据个数决定比特位数,以0作为首个;
(4)OCTET STRING:根据size值的大小决定字符个数,每个占八位;
(5)IA5String:根据size值的大小决定字符个数,每个占七位。
structured类型:
(1)CHOICE:根据个数决定位数,以0作为首个;
(2)SEQUENCE:根据个数决定位数,以0作为首个;
(3)SEQUENCE OF:根据size值,从0开始计算。
在本实施例中,基于ASN.1的两种类型,制定字段生成策略;具体如下:
primitive类型:
(1)INTEGER:在size值约束下设置随机数。
(2)ENUMERATED:在个数范围内随机选择。
(3)BIT STRING:如果有size值约束,在size值约束下设置随机长度的随机值;没有size值约束,根据消息长度约束设置最大长度的随机值。
(4)OCTET STRING:如果有size值约束,在size值约束下在字典库随机选择;没有size值约束,根据消息长度约束设置最大长度。
(5)IA5String:如果有size值约束,在size值约束下在字典库随机选择;没有size值约束,根据消息长度约束设置最大长度。
structured类型:
(1)CHOICE:遍历选择所有选项,根据选项数据类型(primitive或structured)按照具体策略进行操作。
(2)SEQUENCE:随机选择有OPTIONAL标注的字段,根据选项数据类型(primitive或structured)按照具体策略进行操作。
(3)SEQUENCE OF:如果有size值约束,在约束下设置随机长度。
其他情况下,如extension marker:随机更改extension marker的位置。
在本实施例中,根据语法模版文件生成大量消息层的ASN.1测试消息,对ASN.1测试消息进行封装,增加网络层、链路层和物理层,生成合法的V2X空口消息,采用driver将V2X空口消息进行编码调制后,转换成无线电波发送给待测设备SUT;
且,在发送的同时,采用多线程监控C-V2X通信协议的进程情况,如果进程崩溃,则记录当前种子,定位崩溃位置;通过手动分析种子,复现崩溃,逆向二进制进行原因分析和漏洞利用。
在本实施例中,上述模糊测试方法主要包括下述几个部分:基于ASN.1语法的编译过程、基于ASN.1语法的编码解码过程、消息生成过程、消息变异过程和监控过程;
具体包括:
基于ASN.1语法的编译过程:编译ASN.1格式文件,通过将ASN.1格式文件构建成基于特定语言的针对特定格式的解码器和解析器,以此对不同待测设备的不同消息报文编译为特定语言描述的特定格式文件,以对不同待测设备构造不同的测试消息进行模糊测试。
基于ASN.1语法的编码解码过程:通过编码器将基于特定语言的特定格式消息编码成字节流,通过解码器将字节流解析成特定格式的消息结构。ASN.1文件经过编译后,进一步编码生成消息报文,在编译时,会根据给定的ASN.1文件生成约束条件。
消息生成过程:如果不采用基于语法的模糊测试方法,会有大量的消息报文无法通过解码器,导致无法达到后续协议字段处理的步骤。因此为了确保数据合法,达到更深层的程序,本实施例基于语法模版,通过生成语法模版文件,将编译器生成的内容通过消息生成器,包括封装DSMP头,传给协议栈下层等。
消息变异过程:根据变异规则生成大量测试用例。
监控过程:采用多线程方式监控通信协议进程,找到引起崩溃的种子,结合固件进行进一步的分析定位。
在本实施例中,还包括采用SDR收发器消息的收发,SDR收发器包括:
(1)射频硬件部分:SDR收发器的射频硬件部分是基于Ettus的USRP B210以及驱动UHD实现。相比DSRC和LTE,LTE-V2X需要根据GNSS信号来进行同步,因此需要额外配合使用GPS授时模块GPSDO,使用GPS天线在开阔的场地进行通信和调试;UHD驱动搭建在两台linux真机上。
(2)底层合法数据生成,包括:封装适配层和网络层头部,封装链路层头部,封装物理层,编码和调制,发送无线电。链路层包括媒体访问控制层(MAC)、广播链路控制层(RLC)、分组数据融合层(PDCP)。与LTE相比,在RLC层只进分片不重组,PDCP层不进行头压缩,实现完整性保护和加密。物理层在srsLTE等开源工具的C-V2X收发功能基础上进行了修改,主要修改的内容包括:
(1)因为在测试过程中,不同厂家生产的C-V2X设备的物理层有差异,随着标准演进过程设备也有不同版本,因此需要根据实际情况在程序上做一些适配,具体为:根据设备类型和配置修改频点55140或55090;带宽设置为20Hz或10Hz;子信道数目设置为10或5。
(2)同步机制的补充,预留子帧,预留子帧个数为:
不设置同步子帧的情况下,每个系统帧内预留子帧个数:(10240)mod 100=40;
设置同步子帧的情况下,每个系统帧内预留子帧个数计算:(10240-128)mod100=12。
在本实施例中,还包括基于Wireshark的C-V2X消息层协议解析器;Wireshark是解析协议的通用工具,Wireshark目前有基于DSRC的协议解析器实现,但没有针对C-V2X协议的实现,一方面C-V2X协议在网络层、适配层等方面与DSRC略有出入,直接使用不够灵活,存在由于版权问题等需要更新ASN.1文档并进行编译等问题;另一方面DSRC协议解析器基于的Wireshark版本太旧。
因此本实施例针对C-V2X重建协议解析器,使得通过SDR收发器解调解码之后的消息能够实时地被捕获并解析,方便流量观察和手动分析;具体包括:
(1)Wireshark插件支持lua和C语言两种编写方法;针对ASN.1格式的解析需求,如果基于ASN编译器采用lua语言的插件方式,无法实现对应数据高亮。因此为了支持ASN.1,采用本实施例基于C语言重新编译整个Wireshark,选择采用build-in插件的方式生成解析器。
(2)采用启发式方法注册和组合多个解析器,在解析的时候不需要手动选择解析协议,会自动解析。
(3)修改Wireshark源码并编译。
实施例2
本实施例提出一种基于SDR的低成本V2X模糊测试装置,包括:
编译模块,被配置为对待测设备的通信协议报文基于抽象语法标记转换为特定语言描述的特定格式文件;
文件转换模块,被配置为将特定语言描述的特定格式文件,根据预设的编码规则,确定不同字段的位数,制定字段生成策略,将其转换为基于生成的正则表达的语法模版文件,用于生成变异前的测试用例;
消息生成模块,被配置为根据语法模版文件,生成不同字段的数据并按照数据格式生成合法消息;将合法消息划分为测试部分和待变异部分,将测试部分作为测试用例发送至待测设备;
变异模块,被配置为对待变异部分根据预设的变异规则进行变异后,得到畸形消息,将畸形消息作为测试用例发送至待测设备;
测试模块,被配置为将测试用例发送至待测设备的过程中,对通信协议进程进行监控,并定位崩溃位置。
此处需要说明的是,上述模块对应于实施例1中所述的步骤,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为系统的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。
实施例3
本实施例提出一种基于SDR的低成本V2X模糊测试系统,包括:实施例2所述的模糊测试装置、收发装置和协议解析装置;所述收发装置分别与模糊测试装置和协议解析装置连接;
所述收发装置用于在待测设备间采用测试用例进行通信测试时,对通信协议报文在待测设备之间的传输;
所述模糊测试装置通过收发装置进行通信协议报文及其测试用例的传输;
所述协议解析装置用于对通信协议进程中通信报文的解析,且将解析结果通过收发装置传输至监控终端,以对通信协议进程进行监控,并定位崩溃位置。
在本实施例中,上述模糊测试装置主要包括下述几个部分:基于ASN.1语法的编译器、基于ASN.1语法的编码解码器、消息生成器、消息变异器和监控器;
具体包括:
基于ASN.1语法的编译器:编译ASN.1格式文件,通过将ASN.1格式文件构建成基于特定语言的针对特定格式的解码器和解析器,以此对不同待测设备的不同消息报文编译为特定语言描述的特定格式文件,以对不同待测设备构造不同的测试消息进行模糊测试。
基于ASN.1语法的编码解码器:通过编码器将基于特定语言的特定格式消息编码成字节流,通过解码器将字节流解析成特定格式的消息结构。ASN.1文件经过编译后,进一步编码生成消息报文,在编译时,会根据给定的ASN.1文件生成约束条件。
消息生成器:如果不采用基于语法的模糊测试方法,会有大量的消息报文无法通过解码器,导致无法达到后续字段处理的步骤。因此为了确保数据合法,达到更深层的程序,本实施例基于语法模版,通过生成语法模版文件,将编译器生成的内容通过消息生成器,包括封装DSMP头,传给协议栈下层等。
消息变异器:根据变异规则生成大量测试用例。
监控器:采用多线程方式监控通信协议进程,找到引起崩溃的种子,结合固件进行进一步的分析定位。
在本实施例中,所述收发装置采用SDR收发器,包括:
(1)射频硬件部分:SDR收发器的射频硬件部分是基于Ettus的USRP B210以及驱动UHD实现。相比DSRC和LTE,LTE-V2X需要根据GNSS信号来进行同步,因此需要额外配合使用GPS授时模块GPSDO,使用GPS天线在开阔的场地进行通信和调试;UHD驱动搭建在两台linux真机上。
(2)底层合法数据生成,包括:封装适配层和网络层头部,封装链路层头部,封装物理层,编码和调制,发送无线电。链路层包括媒体访问控制层(MAC)、广播链路控制层(RLC)、分组数据融合层(PDCP)。与LTE相比,在RLC层只进分片不重组,PDCP层不进行头压缩,实现完整性保护和加密。物理层在srsLTE等开源工具的C-V2X收发功能基础上进行了修改,主要修改的内容包括:
(1)因为在测试过程中,不同厂家生产的C-V2X设备的物理层有差异,随着标准演进过程设备也有不同版本,因此需要根据实际情况在程序上做一些适配,具体为:根据设备类型和配置修改频点55140或55090;带宽设置为20Hz或10Hz;子信道数目设置为10或5。
(2)同步机制的补充,预留子帧,预留子帧个数为:
不设置同步子帧的情况下,每个系统帧内预留子帧个数:(10240)mod 100=40;
设置同步子帧的情况下,每个系统帧内预留子帧个数计算:(10240-128)mod100=12。
本实施例实现底层通信的搭建,在物理层开源实现的基础上对参数配置的设定及子帧号问题进行处理,能够满足四跨和新四跨不同频点带宽的设备的测试需要。
在本实施例中,还包括基于Wireshark的C-V2X消息层协议解析装置;Wireshark是解析协议的通用工具,Wireshark目前有基于DSRC的协议解析器实现,但没有针对C-V2X协议的实现,一方面C-V2X协议在网络层、适配层等方面与DSRC略有出入,直接使用不够灵活,存在由于版权问题等需要更新ASN.1文档并进行编译等问题;另一方面DSRC协议解析器基于的Wireshark版本太旧。
因此本实施例针对C-V2X重建协议解析装置,使得通过SDR收发器解调解码之后的消息能够实时地被捕获并解析,方便流量观察和手动分析;具体包括:
(1)Wireshark插件支持lua和C语言两种编写方法;针对ASN.1格式的解析需求,如果基于ASN编译器采用lua语言的插件方式,无法实现对应数据高亮。因此为了支持ASN.1,采用本实施例基于C语言重新编译整个Wireshark,选择采用build-in插件的方式生成解析器。
(2)采用启发式方法注册和组合多个解析器,在解析的时候不需要手动选择解析协议,会自动解析。
(3)修改Wireshark源码并编译。
在本实施例中,通过数据传输接口实现SDR收发器与模糊测试装置、协议解析装置的连接。
实施例4
本实施例提供一种车联网通信模糊测试系统,包括路侧单元和车载单元,所述路侧单元和车载单元通信时,采用实施例1所述的模糊测试方法对通信过程进行测试。
LTE-V2X协议直通通信有两种通信实体,即路侧单元RSU和车载单元OBU,两种实体在直通通信中是平等的,通过PC5接口通信时不区分上行和下行。LTE-V2X的消息层共有五种消息,分别是基本安全消息(BSM)、地图消息(MAP)、路侧安全消息(RSM)、信号灯消息(SPAT)和路侧信息(RSI);其中车载单元只能发送基本安全消息,能接收并处理五种消息;路侧设备只能接收并处理基本安全消息,能发送其他四种消息;那么本实施例通过模糊测试装置、收发装置和协议解析装置的模糊测试系统可以针对不同的设备构造发送五种消息,从而对LTE-V2X消息层实现进行模糊测试。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (10)
1.一种基于SDR的低成本V2X模糊测试方法,其特征在于,包括:
对待测设备的通信协议报文基于抽象语法标记转换为特定语言描述的特定格式文件;
将特定格式文件根据预设的编码规则,确定不同字段的位数,制定字段生成策略,以此对特定格式文件进行格式转换得到语法模版文件;
根据语法模版文件生成合法消息,并将合法消息划分为测试部分和待变异部分,将测试部分作为测试用例发送至待测设备;
对待变异部分根据预设的变异规则进行变异后,得到畸形消息,将畸形消息作为测试用例发送至待测设备;
将测试用例发送至待测设备的过程中,对通信协议进程进行监控,并定位崩溃位置。
2.如权利要求1所述的一种基于SDR的低成本V2X模糊测试方法,其特征在于,所述特定语言描述的特定格式文件采用ASN.1,生成ASN.1格式的消息文件;
所述预设的编码规则为采用UPER编码规则,将特定格式文件编写为正则表达的语法模版文件。
3.如权利要求1所述的一种基于SDR的低成本V2X模糊测试方法,其特征在于,所述特定格式文件包括primitive数据类型和structured数据类型,根据预设的编码规则确定特定格式文件中不同数据类型不同字段的位数,不同字段的位数包括比特位数、字符个数。
4.如权利要求1所述的一种基于SDR的低成本V2X模糊测试方法,其特征在于,所述特定格式文件包括primitive数据类型和structured数据类型,基于两种数据类型,制定的字段生成策略包括:所述primitive数据类型中:
INTEGER:在size值约束下设置随机数;
ENUMERATED:在个数范围内随机选择;
BIT STRING:在size值约束下设置随机长度的随机值;或,没有size值约束时,根据消息长度约束设置最大长度的随机值;
OCTET STRING:在size值约束下在字典库随机选择;或,没有size值约束时,根据消息长度约束设置最大长度;
IA5String:在size值约束下在字典库随机选择;或,没有size值约束时,根据消息长度约束设置最大长度。
5.如权利要求4所述的一种基于SDR的低成本V2X模糊测试方法,其特征在于,基于两种数据类型,制定的字段生成策略包括:所述structured数据类型中:
CHOICE:遍历所有数据类型,根据数据类型设置。
SEQUENCE:随机选择OPTIONAL标注的字段,根据数据类型设置。
SEQUENCE OF:在size值约束下设置随机长度。
6.一种基于SDR的低成本V2X模糊测试装置,其特征在于,包括:
编译模块,被配置为对待测设备的通信协议报文基于抽象语法标记转换为特定语言描述的特定格式文件;
文件转换模块,被配置为将特定格式文件根据预设的编码规则,确定不同字段的位数,制定字段生成策略,以此对特定格式文件进行格式转换得到语法模版文件;
消息生成模块,被配置为根据语法模版文件生成合法消息,并将合法消息划分为测试部分和待变异部分,将测试部分作为测试用例发送至待测设备;
变异模块,被配置为对待变异部分根据预设的变异规则进行变异后,得到畸形消息,将畸形消息作为测试用例发送至待测设备;
测试模块,被配置为将测试用例发送至待测设备的过程中,对通信协议进程进行监控,并定位崩溃位置。
7.一种基于SDR的低成本V2X模糊测试系统,其特征在于,包括:权利要求6所述的模糊测试装置、收发装置和协议解析装置;
所述模糊测试装置通过收发装置进行测试用例的传输;所述收发装置用于在待测设备间采用测试用例进行通信测试时,对通信协议报文在待测设备之间的传输;所述协议解析装置用于对通信协议进程中通信报文的解析,且将解析结果通过收发装置传输至监控终端,以对通信协议进程进行监控,并定位崩溃位置。
8.如权利要求7所述的一种基于SDR的低成本V2X模糊测试系统,其特征在于,所述收发装置中设有同步机制,根据同步子帧的设置情况计算预留子帧的个数。
9.如权利要求7所述的一种基于SDR的低成本V2X模糊测试系统,其特征在于,所述协议解析装置基于C语言编译,采用启发式方法注册和组合多个解析器,且自动解析。
10.一种车联网通信模糊测试系统,其特征在于,包括路侧单元和车载单元,所述路侧单元和车载单元通信时,采用权利要求1-5任一项所述的模糊测试方法对通信过程进行测试。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111533976.1A CN114302442B (zh) | 2021-12-15 | 2021-12-15 | 一种基于sdr的低成本v2x模糊测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111533976.1A CN114302442B (zh) | 2021-12-15 | 2021-12-15 | 一种基于sdr的低成本v2x模糊测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114302442A true CN114302442A (zh) | 2022-04-08 |
CN114302442B CN114302442B (zh) | 2023-09-22 |
Family
ID=80967854
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111533976.1A Active CN114302442B (zh) | 2021-12-15 | 2021-12-15 | 一种基于sdr的低成本v2x模糊测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114302442B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114756474A (zh) * | 2022-04-27 | 2022-07-15 | 苏州睿芯集成电路科技有限公司 | 一种cpu验证中随机向量的生成方法、装置以及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110995764A (zh) * | 2019-12-27 | 2020-04-10 | 北京清华亚迅电子信息研究所 | 一种移动蜂窝网络应用层数据流量模糊测试系统及方法 |
US20210099976A1 (en) * | 2018-06-08 | 2021-04-01 | Intel Corporation | Management of preferred channel allocations between wireless communication bands |
CN113453188A (zh) * | 2021-06-24 | 2021-09-28 | 国汽(北京)智能网联汽车研究院有限公司 | 一种智能网联汽车无线安全监测系统、方法及存储介质 |
CN113507436A (zh) * | 2021-06-02 | 2021-10-15 | 中国人民解放军63880部队 | 一种针对goose协议的电网嵌入式终端模糊测试方法 |
WO2021226062A1 (en) * | 2020-05-04 | 2021-11-11 | Intel Corporation | Intelligent transport system service dissemination |
-
2021
- 2021-12-15 CN CN202111533976.1A patent/CN114302442B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210099976A1 (en) * | 2018-06-08 | 2021-04-01 | Intel Corporation | Management of preferred channel allocations between wireless communication bands |
CN110995764A (zh) * | 2019-12-27 | 2020-04-10 | 北京清华亚迅电子信息研究所 | 一种移动蜂窝网络应用层数据流量模糊测试系统及方法 |
WO2021226062A1 (en) * | 2020-05-04 | 2021-11-11 | Intel Corporation | Intelligent transport system service dissemination |
CN113507436A (zh) * | 2021-06-02 | 2021-10-15 | 中国人民解放军63880部队 | 一种针对goose协议的电网嵌入式终端模糊测试方法 |
CN113453188A (zh) * | 2021-06-24 | 2021-09-28 | 国汽(北京)智能网联汽车研究院有限公司 | 一种智能网联汽车无线安全监测系统、方法及存储介质 |
Non-Patent Citations (2)
Title |
---|
SHANQING GUO ETC: ""Differentially Private Publication of Multi-Party Sequential Data"", 《IEEE》 * |
马壮: ""车载终端监控协议的安全测试系统的设计与实现"", 《中国优秀硕士学位论文全文数据库-工程科技II辑》, no. 4 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114756474A (zh) * | 2022-04-27 | 2022-07-15 | 苏州睿芯集成电路科技有限公司 | 一种cpu验证中随机向量的生成方法、装置以及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114302442B (zh) | 2023-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10958587B2 (en) | Transmission latency reduction | |
KR102479510B1 (ko) | 데이터 송신 방법 및 장치 | |
US7830827B2 (en) | Method and device of handling multi-user/multi-service | |
TWI492563B (zh) | 用於無線通訊之媒體存取控制層封包資料單元 | |
CN102160304B (zh) | 无线通信系统的重发资源分配方法和装置 | |
CA2779928C (en) | Method and apparatus for generating, transmitting, and receiving a data frame in a wireless communication system | |
US10959214B2 (en) | Information processing method, communication device, and computer storage medium for ensuring correct generation of a check bit | |
RU2010130186A (ru) | Сигнализация по каналу управления с использованием общего поля сигнализации для транспортного формата и версии избыточности | |
RU2010135523A (ru) | Способ и устройство для идентификации канала в системе беспроводной связи | |
KR20010093614A (ko) | 무선 패킷 송수신 장치 및 그 방법 | |
RU2491732C2 (ru) | Способ и устройство для пакетной передачи с использованием crc и пакетов равной длины | |
CN111698067A (zh) | 数据传输方法及装置 | |
JP2002026877A (ja) | ブロック誤り率測定法 | |
CN114302442B (zh) | 一种基于sdr的低成本v2x模糊测试方法 | |
US8341478B2 (en) | Method and apparatus for selective acknowledgement | |
EP3893419A1 (en) | Data retransmission decoding method, apparatus and system, and communication device | |
EP2302862A1 (en) | A method and apparatus for processing protocol data units in a wireless network | |
CN108881144B (zh) | 无线通信方法及设备 | |
CN108809508B (zh) | 一种确定数据是否受到破坏的方法及装置 | |
CN113596742B (zh) | 一种数据传输方法及装置 | |
CN111224740B (zh) | 一种控制信息的发送和接收方法及终端设备 | |
US10243698B2 (en) | Channel coding/decoding method for data exchange service, and device | |
US20240007856A1 (en) | Communication method, apparatus, and device | |
KR100446527B1 (ko) | 무선 패킷 데이터 통신 시스템에서 패킷 데이터 유닛의송신 및 수신 방법 | |
KR20080074723A (ko) | 통신시스템에서 다수개의 주파수 밴드를 사용한 데이터송수신 방법 및 장치 |
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 |