CN117472787B - 车机模糊测试的测试用例生成方法、装置、介质和设备 - Google Patents
车机模糊测试的测试用例生成方法、装置、介质和设备 Download PDFInfo
- Publication number
- CN117472787B CN117472787B CN202311816998.8A CN202311816998A CN117472787B CN 117472787 B CN117472787 B CN 117472787B CN 202311816998 A CN202311816998 A CN 202311816998A CN 117472787 B CN117472787 B CN 117472787B
- Authority
- CN
- China
- Prior art keywords
- matching degree
- list
- preset
- feature vector
- target
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 116
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000012545 processing Methods 0.000 claims description 21
- 101100441244 Caenorhabditis elegans csp-1 gene Proteins 0.000 claims description 6
- 101100441252 Caenorhabditis elegans csp-2 gene Proteins 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000001914 filtration Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013100 final test Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
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/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)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及信息安全测试技术领域,特别涉及一种车机模糊测试的测试用例生成方法、装置、介质和设备。该方法包括:获取目标车机在目标时间段内接收到的输入报文,得到输入报文集BW;根据BW,得到特征向量空间集XL;根据XL,得到测试用例列表集CS。本申请生成的测试用例的数量多,且生成的测试用例在模糊测试时的可用性较高,不会由于测试用例的可用性较低而导致目标车机出现无法识别等问题。另外,由于输入报文具有固定的结束符,在利用N‑gram模型生成测试用例时,可以极大的减少生成时无限循环的问题。
Description
技术领域
本申请涉及信息安全测试技术领域,特别是涉及一种车机模糊测试的测试用例生成方法、装置、介质和电子设备。
背景技术
模糊测试是一种常用的软件漏洞挖掘技术,通过向目标软件输入随机或伪随机数据,检测程序行为特征,如崩溃、断言失败等,从而发现软件漏洞。模糊测试用例库包含庞大数量的测试用例。模糊测试是一种趋近于无穷测试的方式,带来的必然影响就是时间成本的增加。但是实际的产出并不会随时间增加而呈现线性的增加,因此测试效率会变得越来越低。为了提高测试效率,需要使用一些规则做测试用例的筛选,但当前的用例选择是通过按照字段过滤,随机选择等方式,主观性较强。
而车机中使用的协议大多为自定义协议,直接使用现有的模糊测试用例库筛选出的测试用例进行测试时效果不好。
发明内容
本申请要解决的技术问题为:如何能够针对自定义协议,生成适配性较高的测试用例。
针对上述技术问题,根据本申请的第一方面,提供了一种车机模糊测试的测试用例生成方法,包括:
S100,获取目标车机在目标时间段内接收到的输入报文,得到输入报文集BW=(BW1,BW2,...,BWi,...,BWj);i=1,2,...,j;其中,j为目标车机在目标时间段内输入报文的数量;BWi为目标车机在目标时间段内的第i个输入报文;
S200,根据BW,得到特征向量空间集XL=(XL1,XL2,...,XLp,...,XLq);p=1,2,...,q;其中,q为特征向量空间的数量;XLp为根据Np对BW进行处理得到的特征向量空间;Np为目标N-gram模型确定的第p个N值;任意两个特征向量空间对应的N值不同;
S300,根据XL,得到测试用例列表集CS=(CS1,CS2,...,CSp,...,CSq);其中,CSp为目标N-gram模型根据XLp生成的测试用例列表;CSp=(CSp1,CSp2,...,CSpe,...,CSph);e=1,2,...,h;其中,h为XLp对应的文本起始词的数量;CSpe为目标N-gram模型根据XLp和XLp对应的第e个文本起始词生成的测试用例。
根据本申请的第二个方面,提供一种车机模糊测试的测试用例生成装置,包括:
输入报文获取模块,用于获取目标车机在目标时间段内接收到的输入报文,得到输入报文集BW=(BW1,BW2,...,BWi,...,BWj);i=1,2,...,j;其中,j为目标车机在目标时间段内输入报文的数量;BWi为目标车机在目标时间段内的第i个输入报文;
向量空间生成模块,用于根据BW,得到特征向量空间集XL=(XL1,XL2,...,XLp,...,XLq);p=1,2,...,q;其中,q为特征向量空间的数量;XLp为根据Np对BW进行处理得到的特征向量空间;Np为目标N-gram模型确定的第p个N值;任意两个特征向量空间对应的N值不同;
测试用例生成模块,用于根据XL,得到测试用例列表集CS=(CS1,CS2,...,CSp,...,CSq);其中,CSp为目标N-gram模型根据XLp生成的测试用例列表;CSp=(CSp1,CSp2,...,CSpe,...,CSph);e=1,2,...,h;其中,h为XLp对应的文本起始词的数量;CSpe为目标N-gram模型根据XLp和XLp对应的第e个文本起始词生成的测试用例。
根据本申请的第三个方面,提供一种非瞬时性计算机可读存储介质,存储介质中存储有至少一条指令或至少一段程序,至少一条指令或至少一段程序由处理器加载并执行以实现上述车机模糊测试的测试用例生成方法。
根据本申请的第四个方面,提供一种电子设备,包括处理器和上述的非瞬时性计算机可读存储介质。
本申请至少具有以下有益效果:
本申请提供的车机模糊测试的测试用例生成方法,首先获取目标车机在目标时间段内接收到的输入报文,得到输入报文集BW;这里,获取需要进行检测的目标车机在一段时间内的输入报文,以此作为测试用例的原始参考报文;其次,根据BW,得到特征向量空间集XL;这里,对于输入报文集BW,根据目标N-gram模型确定的不同N值,获取不同的特征向量空间;为了得到尽可能多的测试用例,本申请中,根据不同的N值,得到多个特征向量空间,每一特征向量空间对应一个N值,即将每一输入报文根据分隔符进行不同数量字段内容的划分得到不同的元组,进而得到不同的特征向量空间;每一特征向量空间内的元组包含其对应的N值对应数量的字段内容;进而,对于XL中的某个特征向量空间,根据选定某个文本起始词,利用目标N-gram模型可以生成多个报文,即测试用例,所以,对于一个特征向量空间,采用多个文本起始词,利用目标N-gram模型可以得到更多的测试用例;而特征向量空间越多,生成的测试用例的数量越大。且本申请生成的测试用例均是根据输入报文生成的特征向量空间中的元组生成的,根据N-gram模型的原理,生成的测试用例相较于使用常规的模糊处理算法生成的测试用例来说,与原始报文的匹配度较高,其在模糊测试时的可用性较高,不会由于测试用例的可用性较低而导致目标车机出现无法识别等问题。
另外,由于输入报文具有固定的结束符,在利用N-gram模型生成测试用例时,可以极大的减少生成时无限循环的问题。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一个实施例提供的车机模糊测试的测试用例生成方法的流程图;
图2为本申请一个实施例提供的车机模糊测试的测试用例生成装置的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,为根据本申请的一个实施例提供一种车机模糊测试的测试用例生成方法,包括:
S100,获取目标车机在目标时间段内接收到的输入报文,得到输入报文集BW=(BW1,BW2,...,BWi,...,BWj);i=1,2,...,j;其中,j为目标车机在目标时间段内输入报文的数量;BWi为目标车机在目标时间段内的第i个输入报文。
具体的,目标时间段可以是任意时间段,持续一段时间获取多个输入报文,得到输入报文集。
S200,根据BW,得到特征向量空间集XL=(XL1,XL2,...,XLp,...,XLq);p=1,2,...,q;其中,q为特征向量空间的数量;XLp为根据Np对BW进行处理得到的特征向量空间;Np为目标N-gram模型确定的第p个N值;任意两个特征向量空间对应的N值不同。
具体的,由于报文没有明显的语法,且前后两个字段同时出现的概率较大,将报文作为一个句子,而报文中每个以分隔符分隔的字段的字段内容作为一个词,利用目标N-gram模型对应的不同N值,生成不同个特征向量空间,这里,目标N-gram模型是将输入报文按照字节进行大小为N的滑动窗口操作,形成长度为N的字节片段序列。每个字节片段被称为gram(元组),并对所有gram(元组)的出现频度进行统计,然后按照事先设定好的阈值进行过滤,形成关键gram列表,也就是文本的特征向量空间。N-gram生成句子时,基于一种假设,即第N个词的出现只与前面N-1个词相关,而与其它任何词都不相关,整句的概率就是各个词出现概率的乘积。这些概率可以通过直接从预设元组库中统计N个词同时出现的次数得到。作为示例,当N为2时,将输入报文生成多个二元组,即每两个字段内容为一个二元组。XLp是通过如下步骤获取的:
S210,根据Np和BW,得到Np对应的输入报文元组列表集BWp=(BWp1,BWp2,...,BWpi,...,BWpj);其中,BWpi为根据Np对BWi进行拆分得到的输入报文元组列表;BWpi=(BWpi1,BWpi2,...,BWpia,...,BWpif(b));a=1,2,...,f(b);f(b)为根据Np对BWi进行拆分得到的元组的数量;BWpia为根据Np对BWi进行拆分得到的第a个元组;每一元组包含对应的输入报文中N个连续的字段内容。
这里,首先根据设定好的N值,将每一输入报文进行拆分,得到若干元组。
S220,根据BWp,得到输入报文元组频率列表集BWCp=(BWCp1,BWCp2,...,BWCpi,...,BWCpj);其中,BWCpi为BWpi对应的输入报文元组频率列表;BWCpi=(BWCpi1,BWCpi2,...,BWCpix,...,BWCpif(y));x=1,2,...,f(y);f(y)为BWpi中在预设元组库中的出现频率大于预设频率阈值的元组的数量;f(y)≤f(b);BWCpix为对应的元组BWpix在预设元组库中的出现频率;BWCpix=NUMpix/NUMp0;NUMpix为BWpix在预设元组库中的数量;NUMp0为预设元组库中包含的字段内容的数量为Np的元组的数量。
这里,获取每一元组在在预设元组库中的出现频率,这里的预设元组库存储了数量庞大的元组。根据预设频率阈值对所有的元组进行过滤,排除部分出现频率过低的元组,以减少噪声和无关信息的影响。
S230,根据BWp和BWCp,得到XLp。
S300,根据XL,得到测试用例列表集CS=(CS1,CS2,...,CSp,...,CSq);其中,CSp为目标N-gram模型根据XLp生成的测试用例列表;CSp=(CSp1,CSp2,...,CSpe,...,CSph);e=1,2,...,h;其中,h为XLp对应的文本起始词的数量;CSpe为目标N-gram模型根据XLp和XLp对应的第e个文本起始词生成的测试用例。
具体的,首先选定一个特征向量空间,即确定了一个N值,进而选定一个文本起始词,这里,文本起始词是与N值对应的,然后根据输入报文在该特征向量空间内对应的元组的权重,
计算输入报文的特征向量;并利用目标N-gram模型根据文本起始词在特征向量空间中确定输入报文的特征向量匹配度最高的特征向量,并输出对应的报文(测试用例)。由于输入报文具有固定的结束符,在利用N-gram模型生成测试用例时,可以极大的减少生成时无限循环的问题。
需要说明的是,对于同一个特征向量空间,使用同一个文本起始词时即可得到多个输出报文(测试用例);而多个文本起始词则可以得到更多的测试用例,那么,本实施例中,具有多个特征向量空间,特征向量空间越多,生成的测试用例的数量越大。且这里的测试用例并不是通过常规的模糊处理算法得到的,而是根据真实的输入报文利用目标N-gram模型生成的。相较于使用常规的模糊处理算法生成的测试用例来说,与原始报文的匹配度较高,其在模糊测试时的可用性较高,不会由于测试用例的可用性交底而导致目标车机出现无法识别等问题。
所以通过本实施例能够针对自定义协议,生成适配性较高的测试用例。
在本申请的一种示例性实施例中,在步骤S200之后,上述方法还包括:
S400,获取预设模糊报文列表集MH=(MH1,MH2,...,MHc,...,MHd);c=1,2,...,d;其中,d为预设模糊报文列表的数量;MHc为根据第c种模糊处理算法得到的预设模糊报文列表;MHc=(MHc1,MHc2,...,MHci,...,MHcj);MHci为根据第c种模糊处理算法对BWi进行模糊处理得到的预设模糊报文。
具体的,预设模糊报文是基于现有的模糊处理算法对输入报文进行处理得到的,作为示例,现有的模糊处理算法包括随机模糊、遍历模糊、边界值模糊等。利用d种模糊处理算法依次对每一输入报文进行处理,得到MH。
S500,根据XL,得到输入报文匹配度列表集BWD=(BWD1,BWD2,...,BWDi,...,BWDj);其中,BWDi为BWi与MH的匹配度列表子集;BWDi=(BWDi1,BWDi2,...,BWDic,...,BWDid);BWDic为BWi与MHc的匹配度列表;BWDic=(BWDic1,BWDic2,...,BWDici,...,BWDicj);其中,BWDici为BWi与MHci的匹配度;BWDici<BWDic(i+1)。
具体的,获取每一预设模糊报文与输入报文的匹配度并按照匹配度从小到大排序,具体如下:
S510,根据目标特征向量空间对BW进行特征转换,得到输入报文特征向量集BWT=(BWT1,BWT2,...,BWTi,...,BWTj);其中,BWTi为BWi对应的输入报文的特征向量;目标特征向量空间为XL中的任一特征向量空间。
S520,根据目标特征向量空间对MH进行特征转换,得到预设模糊报文特征向量集MHT=(MHT1,MHT2,...,MHTc,...,MHTd);MHTc为MHc对应的特征向量列表;MHTc=(MHTc1,MHTc2,...,MHTci,...,MHTcj);MHTci为MHci对应的特征向量。
S530,根据BWT和MHT,得到输入报文匹配度列表集BWD。
这里,通过分别获取输入报文的特征向量和预设模糊报文的特征向量,进而得到每一预设模糊报文与输入报文的匹配度。BWDici符合如下条件:BWDici=(BWTi·MHTci)/(|BWTi|×|MHTci|)。
S600,根据n个连续的预设匹配度范围,将BWDic进行划分;得到BWDic对应的n个匹配度子列表;其中,BWDic对应任一个匹配度子列表中的每一匹配度均属于对应的预设匹配度范围;n个连续的预设匹配度范围中的最小匹配度为BWD中的最小匹配度,最大匹配度为BWD中的最大匹配度;且n个连续的预设匹配度范围中任两个预设匹配度范围的大小相同。
具体的,由于根据现有的模糊处理算法得到预设模糊报文的可用性不一致,部分预设模糊报文的可用性较高,即与输入报文的匹配度较高;反之,部分预设模糊报文的可用性较低,即与输入报文的匹配度较低。如果完全随机选择若干个预设模糊报文作为测试用例,极端情况下,可能全部的测试用例都是可用性较低的预设模糊报文,可能导致测试的结果并不全面。本实施例中,为了让测试结果更全面,可以发现更多的漏洞,设置n个连续的预设匹配度范围,n个连续的预设匹配度范围中的最小匹配度为BWD中的最小匹配度,最大匹配度为BWD中的最大匹配度;且n个连续的预设匹配度范围中任两个预设匹配度范围的大小相同。通过设置以上n个预设匹配度范围,将不同匹配度对应的预设模糊报文划分至若干个匹配度子列表内。
S700,根据预设规则,在BWDic对应的n个匹配度子列表中的每个匹配度子列表中确定匹配度对应的预设模糊报文作为测试用例。
具体的,上述步骤S700包括:
S710,若BWDic对应的n个匹配度子列表中存在预设模糊报文的数量小于预设数量的匹配度子列表,则将预设模糊报文的数量小于预设数量的匹配度子列表确定为第一匹配度子列表;
S720,确定每一第一匹配度子列表的全部预设模糊报文和每一第二匹配度子列表中的预设数量的预设模糊报文作为测试用例;第二匹配度子列表为预设模糊报文的数量大于或等于预设数量的匹配度子列表。
另一方面,上述步骤S700还包括:
S730,若BWDic对应的n个匹配度子列表中的任一匹配度子列表均为第二匹配度子列表,则在每一第二匹配度子列表中确定预设数量的预设模糊报文作为测试用例。
这里,为了让测试结果更全面,可以发现更多的漏洞,需要均匀的选取不同的预设模糊报文,即应该尽量让最终的测试用例对应的匹配度是均匀的包含不同匹配度的。所以,如果每一匹配度子列表内包含的预设模糊报文的数量均大于预设数量时,从n个匹配度子列表中的每个匹配度列表内选择预设数量个预设模糊报文作为测试用例。但是,可能存在某一匹配度列表为空或其包含的预设模糊报文的数量小于预设数量,此时,选择该匹配度列表的全部预设模糊报文作为测试用例,并在其他匹配度列表内选择预设数量个预设模糊报文作为测试用例。依次保证测试用例匹配度最大化分配均匀,使得模糊测试的结果更全面,能够发现更多的漏洞。
本申请的实施例还提供一种车机模糊测试的测试用例生成装置100,如图2所示,包括:
输入报文获取模块110,用于获取目标车机在目标时间段内接收到的输入报文,得到输入报文集BW=(BW1,BW2,...,BWi,...,BWj);i=1,2,...,j;其中,j为目标车机在目标时间段内输入报文的数量;BWi为目标车机在目标时间段内的第i个输入报文。
向量空间生成模块120,用于根据BW,得到特征向量空间集XL=(XL1,XL2,...,XLp,...,XLq);p=1,2,...,q;其中,q为特征向量空间的数量;XLp为根据Np对BW进行处理得到的特征向量空间;Np为目标N-gram模型确定的第p个N值;任意两个特征向量空间对应的N值不同。
测试用例生成模块130,用于根据XL,得到测试用例列表集CS=(CS1,CS2,...,CSp,...,CSq);其中,CSp为目标N-gram模型根据XLp生成的测试用例列表;CSp=(CSp1,CSp2,...,CSpe,...,CSph);e=1,2,...,h;其中,h为XLp对应的文本起始词的数量;CSpe为目标N-gram模型根据XLp和XLp对应的第e个文本起始词生成的测试用例。
本申请的实施例还提供一种计算机程序产品,其包括程序代码,当程序产品在电子设备上运行时,程序代码用于使该电子设备执行本说明书上述描述的根据本申请各种示例性实施方式的方法中的步骤。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
根据本申请的这种实施方式的电子设备。电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
电子设备以通用计算设备的形式表现。电子设备的组件可以包括但不限于:上述至少一个处理器、上述至少一个储存器、连接不同系统组件(包括储存器和处理器)的总线。
其中,储存器存储有程序代码,程序代码可以被处理器执行,使得处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种示例性实施方式的步骤。
储存器可以包括易失性储存器形式的可读介质,例如随机存取储存器(RAM)和/或高速缓存储存器,还可以进一步包括只读储存器(ROM)。
储存器还可以包括具有一组(至少一个)程序模块的程序/实用工具,这样的程序模块包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线可以为表示几类总线结构中的一种或多种,包括储存器总线或者储存器控制器、外围总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。
电子设备也可以与一个或多个外部设备(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备交互的设备通信,和/或与使得该电子设备能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口进行。并且,电子设备还可以通过网络适配器与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器通过总线与电子设备的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本申请的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“示例性方法”部分中描述的根据本申请各种示例性实施方式的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本申请示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (9)
1.一种车机模糊测试的测试用例生成方法,其特征在于,包括:
S100,获取目标车机在目标时间段内接收到的输入报文,得到输入报文集BW=(BW1,BW2,...,BWi,...,BWj);i=1,2,...,j;其中,j为目标车机在目标时间段内接收到的输入报文的数量;BWi为目标车机在目标时间段内接收到的第i个输入报文;
S200,根据BW,得到特征向量空间集XL=(XL1,XL2,...,XLp,...,XLq);p=1,2,...,q;其中,q为特征向量空间的数量;XLp为根据Np对BW进行处理得到的特征向量空间;Np为目标N-gram模型确定的第p个N值;任意两个特征向量空间对应的N值不同;
S300,根据XL,得到测试用例列表集CS=(CS1,CS2,...,CSp,...,CSq);其中,CSp为目标N-gram模型根据XLp生成的测试用例列表;CSp=(CSp1,CSp2,...,CSpe,...,CSph);e=1,2,...,h;其中,h为XLp对应的文本起始词的数量;CSpe为目标N-gram模型根据XLp和XLp对应的第e个文本起始词生成的测试用例;
所述XLp通过如下步骤获取:
S210,根据Np和BW,得到Np对应的输入报文元组列表集BWp=(BWp1,BWp2,...,BWpi,...,BWpj);其中,BWpi为根据Np对BWi进行拆分得到的输入报文元组列表;BWpi=(BWpi1,BWpi2,...,BWpia,...,BWpif(b));a=1,2,...,f(b);f(b)为根据Np对BWi进行拆分得到的元组的数量;BWpia为根据Np对BWi进行拆分得到的第a个元组;每一元组包含对应的输入报文中N个连续的字段内容;
S220,根据BWp,得到输入报文元组频率列表集BWCp=(BWCp1,BWCp2,...,BWCpi,...,BWCpj);其中,BWCpi为BWpi对应的输入报文元组频率列表;BWCpi=(BWCpi1,BWCpi2,...,BWCpix,...,BWCpif(y));x=1,2,...,f(y);f(y)为BWpi中在预设元组库中的出现频率大于预设频率阈值的元组的数量;f(y)≤f(b);BWCpix为对应的元组BWpix在预设元组库中的出现频率;BWCpix=NUMpix/NUMp0;NUMpix为BWpix在预设元组库中的数量;NUMp0为预设元组库中包含的字段内容的数量为Np的元组的数量;
S230,根据BWp和BWCp,得到XLp。
2.根据权利要求1所述的车机模糊测试的测试用例生成方法,其特征在于,在步骤S200之后,所述方法还包括:
S400,获取预设模糊报文列表集MH=(MH1,MH2,...,MHc,...,MHd);c=1,2,...,d;其中,d为预设模糊报文列表的数量;MHc为根据第c种模糊处理算法得到的预设模糊报文列表;MHc=(MHc1,MHc2,...,MHci,...,MHcj);MHci为根据第c种模糊处理算法对BWi进行模糊处理得到的预设模糊报文;
S500,根据XL,得到输入报文匹配度列表集BWD=(BWD1,BWD2,...,BWDi,...,BWDj);其中,BWDi为BWi与MH的匹配度列表子集;BWDi=(BWDi1,BWDi2,...,BWDic,...,BWDid);BWDic为BWi与MHc的匹配度列表;BWDic=(BWDic1,BWDic2,...,BWDici,...,BWDicj);其中,BWDici为BWi与MHci的匹配度;BWDici<BWDic(i+1);
S600,根据n个连续的预设匹配度范围,将BWDic进行划分;得到BWDic对应的n个匹配度子列表;其中,BWDic对应任一个匹配度子列表中的每一匹配度均属于对应的预设匹配度范围;n个连续的预设匹配度范围中的最小匹配度为BWD中的最小匹配度,最大匹配度为BWD中的最大匹配度;且n个连续的预设匹配度范围中任两个预设匹配度范围的大小相同;
S700,根据预设规则,在BWDic对应的n个匹配度子列表中的每个匹配度子列表中确定匹配度对应的预设模糊报文作为测试用例。
3.根据权利要求2所述的车机模糊测试的测试用例生成方法,其特征在于,所述步骤S500包括:
S510,根据目标特征向量空间对BW进行特征转换,得到输入报文特征向量集BWT=(BWT1,BWT2,...,BWTi,...,BWTj);其中,BWTi为BWi对应的输入报文的特征向量;目标特征向量空间为XL中的任一特征向量空间;
S520,根据目标特征向量空间对MH进行特征转换,得到预设模糊报文特征向量集MHT=(MHT1,MHT2,...,MHTc,...,MHTd);MHTc为MHc对应的特征向量列表;MHTc=(MHTc1,MHTc2,...,MHTci,...,MHTcj);MHTci为MHci对应的特征向量;
S530,根据BWT和MHT,得到输入报文匹配度列表集BWD。
4.根据权利要求3所述的车机模糊测试的测试用例生成方法,其特征在于,BWDici符合如下条件:
BWDici=(BWTi·MHTci)/(|BWTi|×|MHTci|)。
5.根据权利要求2所述的车机模糊测试的测试用例生成方法,其特征在于,所述步骤S700包括:
S710,若BWDic对应的n个匹配度子列表中存在预设模糊报文的数量小于预设数量的匹配度子列表,则将预设模糊报文的数量小于预设数量的匹配度子列表确定为第一匹配度子列表;
S720,确定每一第一匹配度子列表的全部预设模糊报文和每一第二匹配度子列表中的预设数量的预设模糊报文作为测试用例;第二匹配度子列表为预设模糊报文的数量大于或等于预设数量的匹配度子列表。
6.根据权利要求2所述的车机模糊测试的测试用例生成方法,其特征在于,所述步骤S700包括:
S730,若BWDic对应的n个匹配度子列表中的任一匹配度子列表均为第二匹配度子列表,则在每一第二匹配度子列表中确定预设数量的预设模糊报文作为测试用例。
7.一种车机模糊测试的测试用例生成装置,其特征在于,包括:
输入报文获取模块,用于获取目标车机在目标时间段内接收到的输入报文,得到输入报文集BW=(BW1,BW2,...,BWi,...,BWj);i=1,2,...,j;其中,j为目标车机在目标时间段内输入报文的数量;BWi为目标车机在目标时间段内的第i个输入报文;
向量空间生成模块,用于根据BW,得到特征向量空间集XL=(XL1,XL2,...,XLp,...,XLq);p=1,2,...,q;其中,q为特征向量空间的数量;XLp为根据Np对BW进行处理得到的特征向量空间;Np为目标N-gram模型确定的第p个N值;任意两个特征向量空间对应的N值不同;
测试用例生成模块,用于根据XL,得到测试用例列表集CS=(CS1,CS2,...,CSp,...,CSq);其中,CSp为目标N-gram模型根据XLp生成的测试用例列表;CSp=(CSp1,CSp2,...,CSpe,...,CSph);e=1,2,...,h;其中,h为XLp对应的文本起始词的数量;CSpe为目标N-gram模型根据XLp和XLp对应的第e个文本起始词生成的测试用例;
所述XLp通过如下步骤获取:
S210,根据Np和BW,得到Np对应的输入报文元组列表集BWp=(BWp1,BWp2,...,BWpi,...,BWpj);其中,BWpi为根据Np对BWi进行拆分得到的输入报文元组列表;BWpi=(BWpi1,BWpi2,...,BWpia,...,BWpif(b));a=1,2,...,f(b);f(b)为根据Np对BWi进行拆分得到的元组的数量;BWpia为根据Np对BWi进行拆分得到的第a个元组;每一元组包含对应的输入报文中N个连续的字段内容;
S220,根据BWp,得到输入报文元组频率列表集BWCp=(BWCp1,BWCp2,...,BWCpi,...,BWCpj);其中,BWCpi为BWpi对应的输入报文元组频率列表;BWCpi=(BWCpi1,BWCpi2,...,BWCpix,...,BWCpif(y));x=1,2,...,f(y);f(y)为BWpi中在预设元组库中的出现频率大于预设频率阈值的元组的数量;f(y)≤f(b);BWCpix为对应的元组BWpix在预设元组库中的出现频率;BWCpix=NUMpix/NUMp0;NUMpix为BWpix在预设元组库中的数量;NUMp0为预设元组库中包含的字段内容的数量为Np的元组的数量;
S230,根据BWp和BWCp,得到XLp。
8.一种非瞬时性计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,其特征在于,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1-6中任意一项的所述方法。
9.一种电子设备,其特征在于,包括处理器和权利要求8中所述的非瞬时性计算机可读存储介质。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311816998.8A CN117472787B (zh) | 2023-12-27 | 2023-12-27 | 车机模糊测试的测试用例生成方法、装置、介质和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311816998.8A CN117472787B (zh) | 2023-12-27 | 2023-12-27 | 车机模糊测试的测试用例生成方法、装置、介质和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117472787A CN117472787A (zh) | 2024-01-30 |
CN117472787B true CN117472787B (zh) | 2024-03-15 |
Family
ID=89631522
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311816998.8A Active CN117472787B (zh) | 2023-12-27 | 2023-12-27 | 车机模糊测试的测试用例生成方法、装置、介质和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117472787B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110661778A (zh) * | 2019-08-14 | 2020-01-07 | 中国电力科学研究院有限公司 | 一种基于逆向分析模糊测试工控网络协议的方法及系统 |
CN113259207A (zh) * | 2021-07-13 | 2021-08-13 | 中国人民解放军国防科技大学 | 基于qrnn的有状态网络协议模糊测试用例过滤方法 |
CN113961473A (zh) * | 2021-11-15 | 2022-01-21 | 平安银行股份有限公司 | 数据测试方法、装置、电子设备及计算机可读存储介质 |
CN114238128A (zh) * | 2021-12-21 | 2022-03-25 | 中国电信股份有限公司 | 测试用例生成方法、装置、电子设备及计算机可读介质 |
CN114936149A (zh) * | 2022-04-27 | 2022-08-23 | 华中科技大学 | 基于wgan-gp的can总线模糊测试用例生成方法及模糊测试系统 |
WO2022237253A1 (zh) * | 2021-05-11 | 2022-11-17 | 华为云计算技术有限公司 | 一种测试用例生成方法、装置及设备 |
CN115437626A (zh) * | 2022-08-17 | 2022-12-06 | 北京航空航天大学 | 一种基于自然语言的ocl语句自动生成方法和装置 |
CN116719714A (zh) * | 2023-05-04 | 2023-09-08 | 武汉烽火技术服务有限公司 | 一种测试用例的筛选模型的训练方法及相应的装置 |
CN116991743A (zh) * | 2023-09-01 | 2023-11-03 | 浙江大学 | 一种基于协议逆向的工控设备黑盒模糊测试方法 |
CN117194219A (zh) * | 2023-07-31 | 2023-12-08 | 国网浙江省电力有限公司电力科学研究院 | 模糊测试用例生成与选择方法、装置、设备及介质 |
CN117216772A (zh) * | 2023-11-09 | 2023-12-12 | 中兴通讯股份有限公司 | 模糊测试用例优化方法、装置、设备及可读介质 |
CN117235745A (zh) * | 2023-11-15 | 2023-12-15 | 北京东方森太科技发展有限公司 | 基于深度学习工控漏洞挖掘方法、系统、设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10831646B2 (en) * | 2019-01-02 | 2020-11-10 | International Business Machines Corporation | Resources usage for fuzz testing applications |
-
2023
- 2023-12-27 CN CN202311816998.8A patent/CN117472787B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110661778A (zh) * | 2019-08-14 | 2020-01-07 | 中国电力科学研究院有限公司 | 一种基于逆向分析模糊测试工控网络协议的方法及系统 |
WO2022237253A1 (zh) * | 2021-05-11 | 2022-11-17 | 华为云计算技术有限公司 | 一种测试用例生成方法、装置及设备 |
CN113259207A (zh) * | 2021-07-13 | 2021-08-13 | 中国人民解放军国防科技大学 | 基于qrnn的有状态网络协议模糊测试用例过滤方法 |
CN113961473A (zh) * | 2021-11-15 | 2022-01-21 | 平安银行股份有限公司 | 数据测试方法、装置、电子设备及计算机可读存储介质 |
CN114238128A (zh) * | 2021-12-21 | 2022-03-25 | 中国电信股份有限公司 | 测试用例生成方法、装置、电子设备及计算机可读介质 |
CN114936149A (zh) * | 2022-04-27 | 2022-08-23 | 华中科技大学 | 基于wgan-gp的can总线模糊测试用例生成方法及模糊测试系统 |
CN115437626A (zh) * | 2022-08-17 | 2022-12-06 | 北京航空航天大学 | 一种基于自然语言的ocl语句自动生成方法和装置 |
CN116719714A (zh) * | 2023-05-04 | 2023-09-08 | 武汉烽火技术服务有限公司 | 一种测试用例的筛选模型的训练方法及相应的装置 |
CN117194219A (zh) * | 2023-07-31 | 2023-12-08 | 国网浙江省电力有限公司电力科学研究院 | 模糊测试用例生成与选择方法、装置、设备及介质 |
CN116991743A (zh) * | 2023-09-01 | 2023-11-03 | 浙江大学 | 一种基于协议逆向的工控设备黑盒模糊测试方法 |
CN117216772A (zh) * | 2023-11-09 | 2023-12-12 | 中兴通讯股份有限公司 | 模糊测试用例优化方法、装置、设备及可读介质 |
CN117235745A (zh) * | 2023-11-15 | 2023-12-15 | 北京东方森太科技发展有限公司 | 基于深度学习工控漏洞挖掘方法、系统、设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
基于逆向分析的工控协议模糊测试方法;王海翔;朱朝阳;应欢;缪思薇;;电力信息与通信技术;20190415(04);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117472787A (zh) | 2024-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220368706A1 (en) | Attack Behavior Detection Method and Apparatus, and Attack Detection Device | |
CN110445632B (zh) | 一种预防客户端崩溃的方法和装置 | |
US20200112475A1 (en) | Real-time adaptive infrastructure scenario identification using syntactic grouping at varied similarity | |
US11934287B2 (en) | Method, electronic device and computer program product for processing data | |
CN111193633A (zh) | 异常网络连接的检测方法及装置 | |
WO2021155683A1 (zh) | 日志打印方法、装置、电子设备和存储介质 | |
WO2021051567A1 (zh) | 获取服务器维护脚本的方法、装置、电子设备及计算机非易失性可读存储介质 | |
CN117472787B (zh) | 车机模糊测试的测试用例生成方法、装置、介质和设备 | |
US20240004778A1 (en) | Method for processing command, device for processing command, and electronic device | |
CN113157480A (zh) | 错误信息处理方法、装置、存储介质以及终端 | |
WO2024040794A1 (zh) | 一种异常流量检测方法、装置、电子设备及存储介质 | |
CN113992358B (zh) | 网络安全策略的分配方法及装置 | |
CN112463343B (zh) | 业务进程的重启方法和装置、存储介质、电子设备 | |
CN112994934B (zh) | 数据交互方法、装置及系统 | |
CN110647942B (zh) | 一种用于卫星网络的入侵检测方法、装置和设备 | |
CN114338529A (zh) | 五元组规则匹配方法及装置 | |
CN115250254B (zh) | Netflow报文分发处理方法及装置 | |
CN115600216B (zh) | 检测方法、装置、设备及存储介质 | |
CN108650267B (zh) | 区块链数据传输方法、装置、设备和存储介质 | |
CN115277477B (zh) | 基于简单对象访问协议的流量检测方法及装置 | |
US11431349B2 (en) | Method, electronic device and computer program product for processing data | |
CN110262756B (zh) | 用于缓存数据的方法和装置 | |
CN115297015A (zh) | 边缘节点接入方法及装置、存储介质和电子设备 | |
CN117992300A (zh) | 流式数据处理系统及其操作方法、网络设备及存储介质 | |
CN116931918A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |