一种测试样本生成的方法和装置与流程

文档序号:11918193阅读:263来源:国知局
一种测试样本生成的方法和装置与流程

本发明涉及信息安全领域,尤其涉及一种测试样本生成的方法和装置。



背景技术:

在系统的安全测试领域中采用的模糊测试方法,通过向目标系统输入大量的测试样本,来发现目标系统的漏洞。

现有技术中在测试样本生成时,采用基于变异的安全测试样本生成方法,即通过对样本种子文本的二进制文本数据进行随机改变,随机生成大量测试样本。该方法会造成大量无效测试样本的产生,这就带来了测试样本对安全漏洞无针对性,致使安全测试效率低下的问题。



技术实现要素:

本发明的发明人发现了上述现有技术中存在问题,并因此针对上述问题中的至少一个问题提出了一种新的技术方案。本发明提供了一种测试样本生成的方法和装置,通过可变异点的识别,针对性的生成测试样本,使得可以根据测试需求生成测试样本,避免了大量无效测试样本的产生,提高了测试效率。

根据本发明的一个方面,提供了一种测试样本生成的方法,包括:

判断样本种子文本的样本种子类型;

根据样本种子类型选择相应的语法解析算法,对样本种子文本进行解析,得到样本种子文本的语法结构;

根据语法结构从规则库中获取语法规则;

根据语法规则识别样本种子文本的可变异点;

将可变异点替换为标签,以生成样本种子母版;

从相应的测试数据集中按照预定规则选择测试数据作为标签替换值;

利用标签替换值对标签进行替换,以生成测试样本。

在一个实施例中,根据语法规则识别样本种子文本的可变异点的步骤包括:

从语法结构中提取元信息;

将元信息与语法规则进行匹配;

若匹配成功,则将元信息作为可变异点。

在一个实施例中,元信息包括名称、语法成分类型和上下文结构。

在一个实施例中,若匹配成功,则将元信息作为可变异点的步骤包括:

若匹配成功,则将元信息作为可变异点并保存可变异点的位置和类型;

将可变异点替换为标签,以生成样本种子母版的步骤包括:

根据可变异点的位置和类型,将可变异点替换为相应类型的标签,以生成样本种子母版;

从相应的测试数据集中按照预定规则选择测试数据作为标签替换值的步骤包括:

根据标签的类型,从相应的测试数据集中按照预定规则选择测试数据作为标签替换值。

在一个实施例中,在生成测试样本后,还包括:

从相应的测试数据集中按照预定规则继续选择测试数据作为标签替换值,然后执行利用标签替换值对标签进行替换以生成测试样本的步骤。

根据本发明的另一方面,提供了一种测试样本生成的装置,包括:

语法解析单元,用于判断样本种子文本的样本种子类型;根据样本种子类型选择相应的语法解析算法,对样本种子文本进行解析,得到样本种子文本的语法结构;

可变异点识别单元,用于根据语法结构从规则库中获取语法规则;根据语法规则识别样本种子文本的可变异点;

标签标注单元,用于将可变异点替换为标签,以生成样本种子母版;

测试样本生成单元,用于从相应的测试数据集中按照预定规则选择测试数据作为标签替换值;利用标签替换值对标签进行替换,以生成测试样本。

在一个实施例中,可变异点识别单元,具体用于从语法结构中提取元信息;将元信息与语法规则进行匹配;若匹配成功,则将元信息作为可变异点。

在一个实施例中,元信息包括名称、语法成分类型和上下文结构。

在一个实施例中,可变异点识别单元,具体用于若匹配成功,则将元信息作为可变异点并保存可变异点的位置和类型;

标签标注单元,具体用于根据可变异点的位置和类型,将可变异点替换为相应类型的标签,以生成样本种子母版;

测试样本生成单元,具体用于根据标签的类型,从相应的测试数据集中按照预定规则选择测试数据作为标签替换值。

在一个实施例中,测试样本生成单元,还用于从相应的测试数据集中按照预定规则继续选择测试数据作为标签替换值,然后执行利用标签替换值对标签进行替换以生成测试样本。

本发明的一种测试样本生成的方法和装置,通过可变异点的识别,针对性的生成测试样本,使得可以根据测试需求生成测试样本,避免了大量无效测试样本的产生,提高了测试效率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一种测试样本生成的方法的一个实施例的示意图。

图2为本发明一种测试样本生成的方法的另一个实施例的示意图。

图3为本发明一种测试样本生成的装置的一个实施例的示意图。

具体实施方式

现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。

在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

图1为本发明一种测试样本生成的方法的一个实施例示意图。优选的,本实施例的方法由本发明内的测试样本生成的装置执行。如图1所示,本实施例的方法步骤如下:

步骤101,判断样本种子文本的样本种子类型。

步骤102,根据样本种子类型选择相应的语法解析算法,对样本种子文本进行解析,得到样本种子文本的语法结构。

本发明的方法可以适用于多种被测系统,通常不同类型的被测系统对应的文件类型并不相同。因此,首先判断样本种子文本的样本种子类 型,根据样本种子类型选择相应的语法解析算法。

在一个实施例中,当需要对谷歌浏览器、火狐浏览器等网页浏览器进行漏洞挖掘时,使用html(HyperText Markup Language,超级文本标记语言)格式的文本作为测试文本。此时选择的样本种子文本的文件格式为html格式,即样本种子文件类型为html格式的文件。当判断样本种子文件类型为html格式的文件后,选择html的语法解析算法,对样本种子文本进行解析,从而得到样本种子文本的语法结构。例如样本种子文本为<body style=“width:90px”>时,根据html语法解析算法,得到其语法结构为<元素style=“样式类型:样式值”>。可以看出,样本种子文本中的body对应的语法结构即元素(element),body即文本本身,width为样式类型。

本领域技术人员通过本发明可以了解的是,当测试其他类型的软件、系统时,样本种子类型即为其对应的文件格式类型。

在一个实施例中,在对样本种子文本进行解析时,可以选用LR分析法等语法分析方法,对样本种子文件进行解析,得到样本种子文本的语法结构。

步骤103,根据语法结构从规则库中获取语法规则。

步骤104,根据语法规则识别样本种子文本的可变异点。

步骤105,将可变异点替换为标签,以生成样本种子母版。

例如,样本种子文本为<body style=“width:90px”>时,语法规则为,样本种子文本中所有样式类型均为可变异点,则“width”即为可变异点。将可变异点替换为标签,得到样本种子母版<body style=“<cs>:90px”>,其中cs即为一个标签。

步骤106,从相应的测试数据集中按照预定规则选择测试数据作为标签替换值。

步骤107,利用标签替换值对标签进行替换,以生成测试样本。在测试数据集中选择测试数据标签替换值替换标签,生成测试样本。例如,测试数据集中包括两个测试数据{text-align,overflow},则生成的测试样本可以是<body style=“test-align:90px”>和<body style= “overflow:90px”>,其余未识别为可变异点的文本内容不做改变。在选择测试数据作为标签替换值时,预定规则可以是随机在测试数据集中选择测试数据替换,也可以是按照预定顺序依次选择测试数据进行替换直至选择全部测试数据为止。

本发明的测试样本生成方法,通过可变异点的识别,针对性的生成测试样本,使得可以根据测试需求生成测试样本,避免了大量无效测试样本的产生,提高了测试效率。

图2为本发明一种测试样本生成的方法另一实施例示意图。优选的,本实施例的方法由本发明内的测试样本生成的装置执行。在本实施例中,以如下html格式样本种子文本为例进行说明:

如图2所示,本实施例的方法步骤如下:

步骤201,判断样本种子文本的样本种子类型为html格式样本种子类型。

步骤202,根据样本种子类型选择相应的语法解析算法,利用LR分析法对样本种子文本进行解析,得到样本种子文本的语法结构。选择html语法解析算法对样本种子文本进行解析,得到样本种子文本的语法结构如下:

——doctype

————element

——————element

————————styletype

——————————stylename:stylevalue

——————————stylename:stylevalue

——————element

————————styletype

——————————stylename:stylevalue

其中,得到的语法结构包括元信息,元信息包括名称、语法成分类型和上下文结构等内容。

步骤203,根据语法结构从规则库中获取语法规则。例如其中一条语法规则为styletype[stylename]:stylevalue。表示具有stylename:stylevalue结构的句型,其中styletype语法成分类型为父节点,可变异点是stylename,其上下文结构即为上述语法中结构。

步骤204,从语法结构中提取元信息。将上述语法结构中的元信息进行提取。

步骤205,将元信息与语法规则进行匹配。

步骤206,若匹配成功,将元信息作为可变异点并保存可变异点的位置和类型。

例如其中字段:

以及

<body style=”width:100%;”>

对应的语法结构即为:styletype[stylename]:stylevalue,在进行匹配时,元信息中,div和body style对应的语法成分类型(styletype)为父节点,position、height和width为名称(stylename),absolute、 20px和100%为取值(stylevalue)。其上下文结构即为styletype[stylename]:stylevalue,其中position、height和width即为可变异点。保存position、height和width的位置和类型。

步骤207,根据可变异点的位置和类型,将可变异点替换为相应类型的标签,以生成样本种子母版。即将每个可变异点按照可变异点的类型分别标注标签。例如,根据保存的position、height和width的位置和类型将可变异点替换为相应类型的标签cs,生成如下所示的样本种子母版。

其中,cs为stylename对应的标签。

本发明中语法规则并不限定为仅对一种类型的可变异点进行标签替换,可以为多个。例如,在识别可变异点时,除了stylename作为可变异点,还可以将stylevalue也作为可变异点。当stylevalue也作为可变异点时,与stylename对应的标签不同,生成的样本种子母版如下:

其中,cs为stylename对应的标签,va为stylevalue对应的标签。

步骤208,根据标签的类型,从相应的测试数据中按照预定规则选择测试数据作为标签替换值。以stylename为可变异点为例,其对应的标签为cs,针对该类型的标签,有相应的测试数据集。在一个实施例中,测试数据集中包括测试数据text-align,overflow,其中预定规则可以为随机从测试数据集中选取测试数据作为标签替换值,也可以是依次选择,还可以按照其他的预定规则进行选取。

步骤209,利用标签替换值对标签进行替换,以生成测试样本。

例如,生成的一个测试样本如下:

然后重复步骤208,循环替换标签值,以生成大量有效的测试数据。

当存在多种类型的标签时,例如还有标签cs和va时,cs和va分 别具有相应的测试数据集,选取测试数据时,分别从各自相应的测试数据集中选取测试数据进行标签替换,得到测试样本。

本发明的测试样本生成方法,通过可变异点的识别,针对性的生成测试样本,使得可以根据测试需求生成大量有效的测试样本,避免了无效测试样本的产生,从而提高了测试效率。

图3为本发明测试样本生成的装置一个实施例的示意图。如图3所示,其中具体实施例详见方法实施例中对附图1-2的描述,这里不再赘述。本实施例的测试样本生成的装置包括:

语法解析单元301用于判断样本种子文本的样本种子类型;根据样本种子类型选择相应的语法解析算法,对样本种子文本进行解析,得到样本种子文本的语法结构。

在一个实施例中,在对样本种子文本进行解析时,可以选用LR分析法等语法分析方法,对样本种子文件进行解析,得到样本种子文本的语法结构。

本领域技术人员通过本发明可以了解的是,当测试其他类型的软件、系统时,样本种子类型即为其对应的文件格式类型。

可变异点识别单元302用于根据语法结构从规则库中获取语法规则;根据语法规则识别样本种子文本的可变异点。本发明中语法规则并不限定为仅对一种类型的可变异点进行标签替换,可以为多个。

在一个实施例中,可变异点识别单元302具体用于从语法结构中提取元信息;将元信息与语法规则进行匹配;若匹配成功,则将元信息作为可变异点并保存可变异点的位置和类型。其中元信息包括名称、语法成分类型和上下文结构。

标签标注单元303用于将可变异点替换为标签,以生成样本种子母版。

在一个实施例中,标签标注单元303具体用于根据可变异点的位置和类型,将可变异点替换为相应类型的标签,以生成样本种子母版。当存在多种类型的可变异点时,将每种类型的可变异点分别替换为相应的标签,生成样本种子母版。

测试样本生成单元304用于从相应的测试数据集中按照预定规则选择测试数据作为标签替换值;利用标签替换值对标签进行替换,以生成测试样本。当存在多种类型的标签时,每种类型的标签分别具有相应的测试数据集,选取测试数据时,分别从各自相应的测试数据集中选取测试数据进行标签替换,得到测试样本。

在一个实施例中,测试样本生成单元304具体用于根据标签的类型,从相应的测试数据集中按照预定规则选择测试数据作为标签替换值。还用于从相应的测试数据集中按照预定规则继续选择测试数据作为标签替换值,然后执行利用标签替换值对标签进行替换以生成测试样本。

本发明的测试样本生成方法和装置,通过可变异点的识别,针对性的生成测试样本,使得可以根据测试需求生成大量有效的测试样本,避免了无效测试样本的产生,从而提高了测试效率。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1