CN103136098A - 模糊测试的方法、装置和系统 - Google Patents

模糊测试的方法、装置和系统 Download PDF

Info

Publication number
CN103136098A
CN103136098A CN2011103918863A CN201110391886A CN103136098A CN 103136098 A CN103136098 A CN 103136098A CN 2011103918863 A CN2011103918863 A CN 2011103918863A CN 201110391886 A CN201110391886 A CN 201110391886A CN 103136098 A CN103136098 A CN 103136098A
Authority
CN
China
Prior art keywords
test case
target
measured
response
failure
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
Application number
CN2011103918863A
Other languages
English (en)
Other versions
CN103136098B (zh
Inventor
隋爱芬
唐文
郭代飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to CN201110391886.3A priority Critical patent/CN103136098B/zh
Publication of CN103136098A publication Critical patent/CN103136098A/zh
Application granted granted Critical
Publication of CN103136098B publication Critical patent/CN103136098B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种模糊测试的方法和装置。该方法包括步骤:将多个测试用例输入给一个待测目标;获取与所述待测目标对每一个测试用例的响应相关的响应信息;根据所获取的响应信息,对所述多个测试用例进行分类;分析每一个分类中的一个或多个所述测试用例的共同特征;基于所述共同特征,生成包含所述共同特征的一个或多个新测试用例。采用该方法和装置可以较为有效地生成足以引起故障的测试用例。而且,优选地,本发明提出的模糊测试方法无需获知文件格式或协议。

Description

模糊测试的方法、装置和系统
技术领域
本发明涉及软件安全测试领域,尤其涉及一种模糊测试的方法、装置和系统。
背景技术
模糊测试是一种广泛使用的软件测试技术,用于发现软件中的隐患。简而言之,模糊测试是向待测目标(例如,其上运行有相关软件的服务器)发送大量的无效或错误输入,引发待测目标以非预期方式运行,从而发现故障。比如,模糊测试会通过向待测目标发送无效输入而引起待测目标内存冲突、程序崩溃或资源用尽等状况。这些状况又很可能导致待测目标出现拒绝服务(DoS:Denial of Service)的状况,甚或给攻击者在待测目标的环境中运行任意代码提供可能。由此,模糊测试因能检测出软件实现中被忽略的故障,而成为软件安全性测试的一重要手段。目前,这种模糊测试方法已大量应用于网络协议实现的安全测试中。
利用模糊测试方法成功发现软件隐患的一个重要方面是模糊输入(也称作测试用例)的数量和质量。如何能够利用尽可能少的测试用例发现尽可能多的软件故障一直是模糊侧试的研究课题。现今最常用的测试用例构建方式有两种,其一为基于变异的(Mutationbased)构建方式,其二为基于生成(Generation based)的构建方式。基于变异的构建方式是对预先获知的有效输入数据施加变异运算,以生成无效的或不期望的数据作为测试用例。比如,这种变异运算例如可以是将有效的短字符串替换为长字符串、或将有效的数据包长度值替换为一个相当大的或相当小的数值等等。与基于变异的构建方式不同,基于生成的构建方式需要预先获知例如待测目标所能处理的文件格式或网络协议的具体描述,然后再基于这些描述通过在有效的格式或协议中随机地插入错误节点来生成相应的错误的测试报文。比如,插入错误节点可以是在网络协议的消息格式中增加字段或减少字段,或在特定位置插入错误字段等等。
上述两种模糊测试用例的构建方法都是试图使得每一个测试用例不同于有效数据,以期望引起待测目标出错。但是,测试用例还不能是完全无效数据,因为完全无效数据会很快被待测目标发现并抛弃,并不能引发待测目标出错。因此,模糊测试更关心那些刚好跨出有效数据边界且足以引起目标故障的那些无效数据。在这一点上,基于变异的模糊测试因无法得到例如文件格式或协议等可用信息的引导,因而不能发现所有可能引起故障的情况。基于生成的构建方法虽然是基于文件格式或协议来生成测试用例,但其对输入的随机化处理经常使得测试用例数目过多,且易生成一些类似的或等价的测试用例,从而难以快速高效地导致待测目标出错。
为此,现有技术中需要一种更加有效的模糊测试方法。
发明内容
考虑到现有技术的上述缺陷,本发明的实施例提出一种模糊测试的方法和装置,其可以提供一种较为有效的方式来生成足以引起故障的测试用例。而且,优选地,本发明提出的模糊测试方法因无需获知文件格式或协议,而可以应用于多种不同的网络协议实现。这使其特别适于各种各样的网络协议实现的测试工作。
本发明的实施例提供了一种模糊测试的方法,包括步骤:将多个测试用例输入给一个待测目标;获取与所述待测目标对每一个测试用例的响应相关的响应信息;根据所获取的响应信息,对所述多个测试用例进行分类;分析每一个分类中的一个或多个所述测试用例的共同特征;基于所述共同特征,生成包含所述共同特征的一个或多个新测试用例。
这种模糊测试方法引入了反馈机制,从而后续测试用例能够在借鉴先前测试用例的测试效果基础上生成。由此,在生成后续的测试用例时可以有选择地生成那些能够更有效地导致待测目标出错的测试用例。因此,采用这种方法可以较为迅速的发现那些更易引发故障的测试用例,提高了测试用例的效力。同时,由于这种模糊测试方法能够减少生成那些不易引发故障的测试用例的数量,因而这种模糊测试方法效率更高。
优选地,上述模糊测试方法中获取的响应信息不仅包括响应内容,还包括响应行为。例如,响应内容可以是针对某一测试用例的响应数据包的类型或内容(包括数据包所包含的字段数目、字段内的内容)。比如,响应内容可以是响应代码。响应行为例如包括响应时间(比如以往返延时衡量)、待测目标做出响应所占用的资源(例如,CPU占用率、内存使用率、文件系统利用状况以及存储系统使用情况等等)。
根据本发明的一个实施例,上述根据所获取的响应信息,对所述多个测试用例进行分类的步骤优选包括:基于所获取的响应信息,评估相应的测试用例的故障引发等级;将属于同一故障引发等级的测试用例分成一类。更优选地,所述评估测试用例的故障引发等级的步骤包括:对于每一个测试用例,评价与所述测试用例相关的多个响应信息的对引发故障的影响度;将针对同一个测试用例的多个响应信息的影响度加权累加,从而得到针对所述测试用例的故障引发等级。采用这种方法来评价测试用例能够将更易引发故障的测试用例分在同一分组中,并由此得以分析这些测试用例的共性,从而基于这种共性生成包含这种共性的新的测试用例。比如,如果响应时间超过阈值的各个测试用例的共性在于包含某共同内容,则可进而生成包含该共同内容的新的测试用例。如此方式选择性生成的新测试用例更易引发待测目标故障,并可形成一系列的测试用例用来进行拒绝服务测试。
根据本发明又一个实施例,属于同一分类中的多个测试用例的共同特征可以是这些测试用例之间的共同内容、共同结构或共同的行为特征。
根据本发明另一个实施例,发送给待测目标的多个初始测试用例是以随机方式,基于变异的方式或基于生成的方式生成的。更为优选地,发送给所述待测目标的初始的测试用例反应多种不同类型的非法输入。这样的好处是基于这些初始测试用例的响应信息生成的新的测试用例也可以覆盖多种可能,而不会集中在某一、两种可能的非法输入上。
根据本发明另一个实施例,所生成的新测试用例可以发送给所述待测目标,并且重复执行本发明提出的模糊测试方法,从而基于该新测试用例的响应信息,生成另外一些新的测试用例,如此循环。
根据本发明另一个实施例,还提出了一种模糊测试装置。该装置包括:发送模块,用于将多个测试用例输入给一个待测目标;响应采集模块,用于获取与所述待测目标对每一个测试用例的响应相关的响应信息;评估分类模块,用于根据所获取的响应信息,对所述多个测试用例进行分类;分析模块,用于分析每一个分类中的一个或多个所述测试用例的共同特征;生成模块,基于所述共同特征,生成包含所述共同特征的一个或多个新测试用例。其中,优选地,所述响应信息包括:响应内容或响应行为。
优选地,所述评估分类模块包括:评估模块,用于基于所获取的响应信息,评估相应的测试用例的故障引发等级;分类模块,将属于同一故障引发等级的测试用例分成一类。更为优选地,所述评估模块包括:第一模块,用于评价与所述测试用例相关的多个响应信息的对引发故障的影响度;第二模块,用于将针对同一个测试用例的多个响应信息的影响度加权累加,从而得到针对所述测试用例的故障引发等级。其中,属于同一分类的所述多个测试用例之间的共同内容、共同结构或共同的行为特征。
根据本发明又一方面,本发明还提出了一种模糊测试的系统,该系统包括如上所述的模糊测试装置。
此外,本发明还提出一种计算机可读介质,其存储有能够执行本发明提出的上述模糊测试方法的计算机可读指令。而且,本发明还提出计算机程序,其包括能够执行上述模糊测试方法的计算机可读指令。
利用本发明实施例的上述技术方案,通过引入反馈机制来基于先前测试用例的测试效果生成新的测试用例,可以提高所构造的测试用例的效力,并减少生成不必要的测试用例,从而整体上提高了模糊测试的效率并能达到更加有效的测试效果。
附图说明
本发明的目的、特点、特征和优点通过以下结合附图的详细描述将变得更加显而易见。其中:
图1示出了根据本发明一实施例的模糊测试方法的流程图;
图2示出了根据本发明另一实施例的模糊测试方法的流程图;
图3示出了根据本发明一实施例的模糊测试的装置的示意图。
具体实施方式
考虑到现有基于变异和基于生成的模糊测试方法的缺陷,在本发明实施例中提出了一种带有反馈机制的模糊测试方法。所谓反馈机制是指在模糊测试过程中后续测试用例是在对之前测试用例的测试效果进行分析之后有选择地获得的。由于引入了上述反馈机制,在生成后续测试用例的过程中可以更多地选择那些更可能引起待测目标故障的测试用例。这样的优势在于可以提高测试用例的效力和针对性,从而模糊测试过程更加高效。
图1示例性地示出了根据本发明一个实施例的模糊测试方法。在图1所示的例子中,待测目标例如为一个协议实现体,其具体例如可以是一个可以运行网络协议实现软件的计算机,用于按照预先约定的网络协议(例如包括消息格式,消息传递行为)进行数据的交互。但在实际应用中,待测目标并不限于此,比如待测目标还可以是文件处理实现体,用户信息交互实现体等等。对于那些基于例如FPGA、DPS实现的设备,待测目标还可以是那些其上可运行相关软件的固件或其他类似的电子设备。
在图1中,根据本发明一个实施例的模糊测试方法大体包括反馈收集、效果评估、生成新测试用例三个阶段。
具体地,反馈收集阶段从步骤S110开始。在步骤S110中,首先将一定数目的初始测试用例(或称为第一测试用例)作为输入发送给待测目标,促使待测目标对这些初始测试用例做出响应。这些初始测试用例可以按照多种方式来获得。在图1所示的实施例中采用了一种最简单的方法,即采用随机方式生成这些初始测试用例。比如,假设待测目标的输入可以是字符串,那么初始测试用例可以是从基本字符中随机选取的若干字符的组合。更为优选地是希望随机生成的初始测试用例是均匀分布的,比如尽可能全面地使用基本字符。以ASCII字符为例,ASCII字符大体包括字母、数字和特殊字符三大类。这样,优选地,随机生成的初始测试用例可以包括ASCII中的字母、数字以及特殊字符三个类型的字符。这样的好处是初始测试用例可以较为均匀地包括多种非法输入的可能性,而不会局限于少数几种可能的非法输入。除随机生成方法之外,步骤S110中的初始测试用例还可以采用基于文法(syntax)的生成方法,比如,之前提到的基于变异的方法和基于生成的方法。关于这一部分将在后面结合附图2详细描述。
在收到初始测试用例之后,待测目标必然会试图对每一个输入的测试用例做出响应。待测目标的响应方式以及响应结果可能因输入的不同而不同。为此,在图1的步骤S120中,收集与待测目标对每个初始用例做出的响应相关的响应信息。在图1的实例中,响应信息例如是响应内容。比如,响应内容可以是待测目标针对某初始测试用例反馈的响应数据包的类型或内容,该响应数据包中例如可包含响应代码。对于SIP(会话启动协议)而言,响应代码例如可以是表示正常的200OK、表示请求被禁止的403Forbiden,表示网关超时的504 Gateway Timeout等等。响应内容还可以是响应数据包中包含的其他数据内容,比如,响应数据包的内容可以完全是乱码。除了响应内容之外,响应信息还可以包括例如图2所示的响应行为,这将在下面结合图2详细描述。
在收集到针对初始测试用例的响应信息之后,模糊测试方法进入效果评估阶段,即步骤S130。在步骤S130中,基于所获得的响应信息,可对初始测试用例的测试效果进行分类。比如,一种简单的方法是在步骤S131中根据响应代码的不同,对初始测试用例进行分类。对应于同一响应代码的测试用例分在一组。优选地,还可以根据响应代码的不同,评价相关初始测试用例的故障引发等级(FEL:failure-causing effectiveness level)。具体地,例如,如果响应数据包中响应代码为“200OK”,表明相应的初始测试用例为有效输入,其FEL最低,例如FEL=0。如果响应数据包中响应代码包含“Time Out”,表明待测目标可能因无法正常响应而出现了死循环,故而其FEL较高,例如FEL=5。如果响应数据包中的内容全是乱码,则表明待测目标响应出错,因而相应的初始测试用例的FEL也可以较高,比如FEL也为5。进而,在步骤S135中将具有同一FEL的多个初始测试用例可分在同一组中,从而得到多个包含初始测试用例的分组。
继而,模糊测试方法进入新测试用例生成阶段。即,在步骤S140中分析属于同一分组的一个或多个初始测试用例的共同特征。比如,在图1所示的例子中,测试用例的共同特征可以是共同拥有的字符。举例来说,例如同属于FEL=5的分组中的测试用例均包括一个相同的非法字符“
Figure BDA0000114623510000051
”。然后,在步骤S150中,基于分析出的共同特征,生成新的测试用例(第二测试用例),比如,包含非法字符“
Figure BDA0000114623510000052
”的测试用例。在步骤S150中,考虑到FEL较高的初始测试用例更易引起待测目标的故障,从而优选基于FEL较高的分组的共同特征生成新的测试用例。这样,所生成的新的测试用例能够更加快速并有效地测试出故障,由此能提高模糊测试的效率和有效性。测试用例的共同特征还可以是例如共同的行为特征或共同结构特征,这将结合图2详细说明。
最后,将新生成的测试用例发送给待测目标作为新的输入。这里,发送的新测试用例可被视作下一模糊测试循环中的初始测试用例(或第一测试用例),并继而重复执行步骤S110-S150,从而在新测试循环中获得又一批新的测试用例。当然,图1所示的模糊测试循环还可根据实际需要不断重复执行,或者仅执行一次或有限次数。
图2示例性地示出了根据本发明另一个实施例的模糊测试方法。在图2所示的实施例中,模糊测试方法从步骤S210开始。在步骤S210中,同样先将一定数目的初始测试用例作为输入发送给待测目标,以使待测目标对这些初始测试用例做出响应。这里,初始测试用例可采用基于文法(syntax)的生成方法,比如,之前提到的基于变异的方法和基于生成的方法。具体地,例如,当采用基于变异的方法来生成初始用例时,考虑到需要使得初始用例较为均匀地覆盖各种可能的非法输入,因而优选选取针对不同的字段类型(例如长度字段和普通的内容字段等)进行变异运算,而且还需要选取不同类型的变异算子,以便得到各种类型的初始测试用例。此外,初始测试用例还可以采用基于生成的方法获得。比如,对于那些可以预先获知协议报文格式的情况,可以采用ABNF(扩展的巴科斯范式)表示的协议报,并选取其中具有代表性的错误插入点(“必选项”)来生成测试报文。如此生成的测试用例可以覆盖典型的非法报文。
进而,在步骤S220收集与待测目标对每个初始用例的响应相关的响应信息。在图2所示的实例中,响应信息例如是响应行为,比如响应时间或响应过程所占用的资源等等。具体地,通常可以利用往返时延(round trip time)来衡量响应时间,用待测目标在响应过程中对CPU的占用率、内存的使用率、文件系统利用率以及存储系统使用情况中的任意一种或多种来衡量做出该响应所占有的资源。在下面这个具体的例子是采用CPU的占用率来衡量响应所占用的资源。更为优选地,针对一个初始测试用例,可以同时收集到一种或多种响应信息,比如所收集的响应信息可以既包括响应内容、也包括响应时间,以及资源占用情况。这样可以为全方位评价测试用例的测试效果提供可能。
在收集到针对初始测试用例的响应信息之后,模糊测试方法进入效果评估阶段,即步骤S230。图2示出了一种相对复杂的评估分类方法。具体地,在步骤S231中,对于属于同一测试用例的多种响应信息中的每一个的影响程度(IND:Influence Degree)进行评价。比如,响应时间或往返延时越短IND值越低,响应时间超出平均值则IND值越高,超出阈值则IND更高。再比如,CPU占用率为99%以上,IND值最高;CPU占用率为50%-90%,IND值为中等;CPU占用率为50%以下,IND值为低。对于内存占用而言,IND值越高内存占用越高,等等。在步骤S233中,将这些响应信息的影响程度IND进行加权累加,从而得到该测试用例的故障引发等级FEL(见以下公式)。
FEL = Σ i = 1 N K i IND i
其中,i表示第i种响应信息;INDi表示该响应信息的影响程度;Ki为第i种响应信息对FEL的贡献比率,即加权因子。比如,CPU占用率的加权因子Ki可以取0.5,其他影响要素,如响应时间可以取0.3等等。一般而言,其主要作用的因素,权重会较高。如此通过加权求和得到对每个测试用例的FEL。如果FEL超过预定阈值,则表明该测试用例引起待测目标崩溃的可能性越大。在步骤S235中将属于同一等级的FEL的多个初始测试用例分在同一组中,从而得到多个包含初始测试用例的分组。
继而,模糊测试方法进入新测试用例生成阶段。即,在步骤S240中分析属于同一分组的一个或多个初始测试用例的共同特征。比如,在图2所示的例子中,测试用例的共同特征可以是例如共同的行为特征或共同的结构特征。对于共同行为特征,比如测试用例改变正常消息交互顺序,再比如均为以预定间隔连续重复发送相同数据包,或均为先发送长数据包再发送短数据包,等等。此外,测试用例的共同结构特征比如是均包括1个头字段和多个数据字段,其中数据字段均为第一个数据字段的重复,再比如均包括1个头字段和两个数据字段,其中一个数据字段的长度超出预定值,等等。在步骤S250中,优选地,选择加权得到的FEL较高的分组的共同特征,并基于这些共同特征生成具有这些共同特征的新的测试用例。最后,将新生成的测试用例发送给待测目标作为新的输入。由此,所生成的一系列新的测试用例更易于引发待测目标出现故障,例如使得待测目标达到拒绝服务(DoS)状态,从而实现DoS测试。
利用本发明实施例的模糊测试方法可以提供一种较为有效的方式来生成足以引起故障的测试用例。而且,优选地,本发明提出的模糊测试方法因无需获知文件格式或协议,而可以应用于多种不同的网络协议实现。这使其特别适于各种各样的网络协议实现的测试工作。
本发明还提供了一种机器(如计算机)可读的存储介质,存储用于使一机器执行如本文所述的模糊测试方法的指令。
本发明还提供一种计算机程序,其包含可以执行所述模糊测试方法的计算机可读指令。
具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
图3示出了根据本发明一实施例的模糊测试的装置300的示意图。如图3,该实施例的装置300包括:发送模块310,用于将多个测试用例输入给一个待测目标10;响应采集模块320,用于获取与所述待测目标10对每一个测试用例做出响应相关的响应信息;评估分类模块330,用于根据所获取的响应信息,对所述多个测试用例进行分类;分析模块340,用于分析每一个分类中的一个或多个所述测试用例的共同特征;生成模块350,基于所述共同特征,生成包含所述共同特征的一个或多个新测试用例。其中,响应采集模块可以设置在待测目标处、发送模块处、或待测目标与发送模块之间,用于截取待测目标发送给发送模块的响应数据包,或者根据需要通过与待测目标建立连接来查询待测目标的资源占用情况等等。
其中,所述响应信息包括:响应内容或响应行为。优选地,同一分类中的测试用例之间的共同特征包括:属于同一分类的所述多个测试用例之间的共同内容、共同结构或共同的行为特征。
在图3中,评估分类模块330包括:评估模块331,用于基于所获取的响应信息,评估相应的测试用例的故障引发等级;和分类模块335,将属于同一故障引发等级的测试用例分成一类。优选地,评估模块331包括:第一模块,用于评价与所述测试用例相关的多个响应信息的对引发故障的影响度;第二模块,用于将针对同一个测试用例的多个响应信息的影响度加权累加,从而得到针对所述测试用例的故障引发等级。优选地,根据权利要求11所述的装置,其中,所述共同特征包括:属于同一分类的所述多个测试用例之间的共同内容、共同结构或共同的行为特征。
本领域技术人员应当理解,模糊测试的装置可以利用软件、硬件或者软硬件结合的方式来实现。
本领域技术人员应当理解,上面所公开的各个实施例可以在不偏离发明实质的情况下做出各种改变和修改,这些改变和修改都应当落在本发明的保护范围之内。因此,本发明的保护范围应当由所附的权利要求书来限定。

Claims (19)

1.一种用于模糊测试的方法,包括步骤:
将多个测试用例输入给一个待测目标(S110);
获取与所述待测目标对每一个测试用例的响应相关的响应信息(S120);
根据所获取的响应信息,对所述多个测试用例进行分类(S130);
分析每一个分类中的一个或多个所述测试用例的共同特征(S140);
基于所述共同特征,生成包含所述共同特征的一个或多个新测试用例(S150)。
2.根据权利要求1所述的方法,其中,所述响应信息包括:响应内容或响应行为。
3.根据权利要求2所述的方法,其中,所述响应行为包括:响应时间或者所述待测目标做出响应所占用的资源。
4.根据权利要求3所述的方法,其中,所述待测目标做出响应所占用的资源包括CPU占用率、内存使用率、文件系统利用率以及存储系统使用情况中的任意一种或多种。
5.根据权利要求1所述的方法,其中,所述根据所获取的响应信息,对所述多个测试用例进行分类的步骤(S130)包括:
基于所获取的响应信息,评估相应的测试用例的故障引发等级(S131);
将属于同一故障引发等级的测试用例分成一类(S135)。
6.根据权利要求5所述的方法,其中,所述评估测试用例的故障引发等级的步骤包括:对于每一个测试用例,
评价与所述测试用例相关的多个响应信息的对引发故障的影响度(S231);
将针对同一个测试用例的多个响应信息的影响度加权累加,从而得到针对所述测试用例的故障引发等级(S233)。
7.根据权利要求1所述的方法,其中,所述共同特征包括:属于同一分类的所述多个测试用例之间的共同内容、共同结构或共同的行为特征。
8.根据权利要求1所述的方法,其中,所述发送给待测目标的多个测试用例是以随机方式、基于变异的方式或基于生成的方式生成的。
9.根据权利要求1所述的方法,其中,发送给所述待测目标的多个测试用例反应多种不同类型的非法输入。
10.根据权利要求1所述的方法,还包括:重复执行如权利要求1所述的方法,且其中将所生成的新测试用例作为所述测试用例发送给所述待测目标。
11.一种用于模糊测试的装置,包括:
发送模块(310),用于将多个测试用例输入给一个待测目标(10);
响应采集模块(320),用于获取与所述待测目标(10)对每一个测试用例的响应相关的响应信息;
评估分类模块(330),用于根据所获取的响应信息,对所述多个测试用例进行分类;
分析模块(340),用于分析每一个分类中的一个或多个所述测试用例的共同特征;
生成模块(350),基于所述共同特征,生成包含所述共同特征的一个或多个新测试用例。
12.根据权利要求11所述的装置,其中,所述响应信息包括:响应内容或响应行为。
13.根据权利要求11所述的装置,其中,所述评估分类模块(330)包括:
评估模块(331),用于基于所获取的响应信息,评估相应的测试用例的故障引发等级;
分类模块(335),将属于同一故障引发等级的测试用例分成一类。
14.根据权利要求13所述的装置,其中,所述评估模块(331)包括:
第一模块,用于评价与所述测试用例相关的多个响应信息的对引发故障的影响度;
第二模块,用于将针对同一个测试用例的多个响应信息的影响度加权累加,从而得到针对所述测试用例的故障引发等级。
15.根据权利要求11所述的装置,其中,所述共同特征包括:属于同一分类的所述多个测试用例之间的共同内容、共同结构或共同的行为特征。
16.根据权利要求11所述的装置,其中,所述发送模块(310)还发送所生成的新测试用例给所述待测目标。
17.一种模糊测试的系统,其特征在于,该系统包括如权利要求11-16中任一项所述的模糊测试的装置。
18.一种计算机可读介质,存储执行权利要求1-10任一项所述方法的计算机可读指令。
19.一种计算机程序,包括执行权利要求1-10任一项所述方法的计算机可读指令。
CN201110391886.3A 2011-11-30 2011-11-30 模糊测试的方法、装置和系统 Active CN103136098B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110391886.3A CN103136098B (zh) 2011-11-30 2011-11-30 模糊测试的方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110391886.3A CN103136098B (zh) 2011-11-30 2011-11-30 模糊测试的方法、装置和系统

Publications (2)

Publication Number Publication Date
CN103136098A true CN103136098A (zh) 2013-06-05
CN103136098B CN103136098B (zh) 2016-03-23

Family

ID=48495948

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110391886.3A Active CN103136098B (zh) 2011-11-30 2011-11-30 模糊测试的方法、装置和系统

Country Status (1)

Country Link
CN (1) CN103136098B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105721230A (zh) * 2014-11-30 2016-06-29 中国科学院沈阳自动化研究所 一种面向Modbus协议的模糊测试方法
WO2016206505A1 (zh) * 2015-06-26 2016-12-29 中兴通讯股份有限公司 自动化测试系统及测试方法
CN108470003A (zh) * 2018-03-24 2018-08-31 中科软评科技(北京)有限公司 模糊测试方法、装置和系统
CN109347696A (zh) * 2018-09-30 2019-02-15 中国人民解放军国防科技大学 一种基于分级变异的网络协议模糊测试方法
CN109643270A (zh) * 2016-08-24 2019-04-16 谷歌有限责任公司 多层测试套件生成
CN110191019A (zh) * 2019-05-28 2019-08-30 北京百度网讯科技有限公司 车辆can总线的测试方法、装置、计算机设备和存储介质
CN111628900A (zh) * 2019-02-28 2020-09-04 西门子股份公司 基于网络协议的模糊测试方法、装置和计算机可读介质
CN112559327A (zh) * 2020-12-02 2021-03-26 天津车之家数据信息技术有限公司 一种测试用例的生成方法、装置和计算设备
TWI765426B (zh) * 2020-11-24 2022-05-21 安華聯網科技股份有限公司 用於建構測試資料的字元生成裝置、字元生成方法及其電腦程式產品

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101482596A (zh) * 2009-01-06 2009-07-15 南京大学 多因素工业系统的故障快速识别方法
US7774757B1 (en) * 2005-07-13 2010-08-10 Oracle America, Inc. Dynamic verification of application portability
CN101859274A (zh) * 2009-04-07 2010-10-13 西门子(中国)有限公司 一种进行模糊测试的方法及系统
CN101901183A (zh) * 2009-05-31 2010-12-01 西门子(中国)有限公司 一种过滤测试用例的方法及装置
CN101984416A (zh) * 2010-11-02 2011-03-09 中兴通讯股份有限公司 一种测试用例的生成方法及装置
CN102063374A (zh) * 2011-01-07 2011-05-18 南京大学 一种使用半监督信息进行聚类的回归测试用例选择方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7774757B1 (en) * 2005-07-13 2010-08-10 Oracle America, Inc. Dynamic verification of application portability
CN101482596A (zh) * 2009-01-06 2009-07-15 南京大学 多因素工业系统的故障快速识别方法
CN101859274A (zh) * 2009-04-07 2010-10-13 西门子(中国)有限公司 一种进行模糊测试的方法及系统
CN101901183A (zh) * 2009-05-31 2010-12-01 西门子(中国)有限公司 一种过滤测试用例的方法及装置
CN101984416A (zh) * 2010-11-02 2011-03-09 中兴通讯股份有限公司 一种测试用例的生成方法及装置
CN102063374A (zh) * 2011-01-07 2011-05-18 南京大学 一种使用半监督信息进行聚类的回归测试用例选择方法

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105721230B (zh) * 2014-11-30 2017-03-22 中国科学院沈阳自动化研究所 一种面向Modbus协议的模糊测试方法
CN105721230A (zh) * 2014-11-30 2016-06-29 中国科学院沈阳自动化研究所 一种面向Modbus协议的模糊测试方法
WO2016206505A1 (zh) * 2015-06-26 2016-12-29 中兴通讯股份有限公司 自动化测试系统及测试方法
CN109643270B (zh) * 2016-08-24 2022-03-11 谷歌有限责任公司 用于多层测试套件生成的方法和系统
CN109643270A (zh) * 2016-08-24 2019-04-16 谷歌有限责任公司 多层测试套件生成
CN108470003A (zh) * 2018-03-24 2018-08-31 中科软评科技(北京)有限公司 模糊测试方法、装置和系统
CN109347696A (zh) * 2018-09-30 2019-02-15 中国人民解放军国防科技大学 一种基于分级变异的网络协议模糊测试方法
CN109347696B (zh) * 2018-09-30 2020-10-20 中国人民解放军国防科技大学 一种基于分级变异的网络协议模糊测试方法
CN111628900A (zh) * 2019-02-28 2020-09-04 西门子股份公司 基于网络协议的模糊测试方法、装置和计算机可读介质
CN111628900B (zh) * 2019-02-28 2023-08-29 西门子股份公司 基于网络协议的模糊测试方法、装置和计算机可读介质
CN110191019A (zh) * 2019-05-28 2019-08-30 北京百度网讯科技有限公司 车辆can总线的测试方法、装置、计算机设备和存储介质
CN110191019B (zh) * 2019-05-28 2021-05-28 北京百度网讯科技有限公司 车辆can总线的测试方法、装置、计算机设备和存储介质
TWI765426B (zh) * 2020-11-24 2022-05-21 安華聯網科技股份有限公司 用於建構測試資料的字元生成裝置、字元生成方法及其電腦程式產品
CN112559327A (zh) * 2020-12-02 2021-03-26 天津车之家数据信息技术有限公司 一种测试用例的生成方法、装置和计算设备

Also Published As

Publication number Publication date
CN103136098B (zh) 2016-03-23

Similar Documents

Publication Publication Date Title
CN103136098A (zh) 模糊测试的方法、装置和系统
CN109951500B (zh) 网络攻击检测方法及装置
US11374897B2 (en) CandC domain name analysis-based botnet detection method, device, apparatus and medium
KR101538709B1 (ko) 산업제어 네트워크를 위한 비정상 행위 탐지 시스템 및 방법
EP3598329A1 (en) Information processing method, information processing system, and program
CN108156174A (zh) 基于c&c域名分析的僵尸网络检测方法、装置、设备及介质
JP6291135B2 (ja) コネクション制御装置、コネクション制御方法およびコネクション制御プログラム
CN101719824A (zh) 一种基于网络行为检测的信任度评估系统和方法
CN113408609A (zh) 一种网络攻击检测方法及系统
CN111628900A (zh) 基于网络协议的模糊测试方法、装置和计算机可读介质
CN111600865A (zh) 一种异常通信检测方法、装置及电子设备和存储介质
CN113704328B (zh) 基于人工智能的用户行为大数据挖掘方法及系统
CN112437062B (zh) 一种icmp隧道的检测方法、装置、存储介质和电子设备
CN115580494B (zh) 一种弱口令的检测方法、装置和设备
CN109413022B (zh) 一种基于用户行为检测http flood攻击的方法和装置
CN113704772B (zh) 基于用户行为大数据挖掘的安全防护处理方法及系统
CN114124773A (zh) 一种端口块地址转换的测试系统及方法
Nasution et al. IoT object security towards on-off attack using trustworthiness management
KR101648033B1 (ko) 공격 패턴이 존재하지 않는 공격 시그니처 기반의 침입 탐지 방법 및 그를 위한 장치
CN115776395A (zh) 一种基于响应时间的http请求走私漏洞检测方法及系统
CN104584028A (zh) 未经授权的用户分类
KR101381558B1 (ko) 비정상 트래픽 탐지 방법 및 장치
KR101326804B1 (ko) 분산서비스거부 공격 탐지 방법 및 시스템
KR101410233B1 (ko) 네트워크 세션 행위 패턴 모델링 탐지방법 및 모델링탐지시스템
Sharshembiev et al. Protocol Misbehavior Analysis using Multivariate Statistical Analysis and Machine Learning in Vehicular Ad Hoc Networks.

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant