本发明专利技术提供了一种基于路径反馈的Javascript引擎模糊测试方法和装置,涉及网络安全的技术领域,包括:获取Javascript引擎的测试样本集;对测试样本集中的各个待突变测试样本进行突变,得到突变样本,并将突变样本发送给Javascript引擎,以使Javascript引擎基于突变样本进行模糊测试;获取突变样本在模糊测试过程中的执行路径位图;若监测到Javascript引擎基于突变样本进行模糊测试的过程中,Javascript引擎未崩溃,则基于执行路径位图判断突变样本是否为突变有效样本;若是,则将突变有效样本添加至所述测试样本集,利用添加之后的测试样本集对Javascript引擎进行模糊测试,解决了现有Javascript引擎模糊测试方法中无法确定出突变有效样本,导致基于突变有效样本进行Javascript引擎模糊测试的效率较低技术问题。
【技术实现步骤摘要】
一种基于路径反馈的Javascript引擎模糊测试方法和装置
本专利技术涉及网络安全
,尤其是涉及一种基于路径反馈的Javascript引擎模糊测试方法和装置。
技术介绍
目前浏览器作为通向网络的门径,其安全性受到越来越的关注。而作为浏览器的主要部件,Javascript引擎的安全性也备受关注。由于Javascript引擎的特性,基于Javascript引擎的漏洞开发漏洞利用工具相对会简单,带来的危害也会较其他漏洞严重。Chrome、firefox、Edge、IE等主流浏览器都实现了各自的Javascript引擎,不同的实现使得不同的Javascript引擎的脆弱点各不相同。不同的脆弱点要求在进行模糊测试时,需要根据不同的浏览器引擎针对性的开发模糊测试工具。同时,如何高效率的对Javascript引擎进行模糊测试,提高发现Javascript引擎漏洞的可能性,成为当下的重点问题。针对上述问题,还未提出有效的解决方案。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种基于路径反馈的Javascript引擎模糊测试方法和装置,以缓解了现有Javascript引擎模糊测试方法获取到突变有效样本的数量少,导致基于突变有效样本进行Javascript引擎模糊测试时,测试出Javascript引擎漏洞的可能性较低的技术问题。第一方面,本专利技术实施例提供了一种基于路径反馈的Javascript引擎模糊测试方法,该方法包括:获取Javascript引擎的测试样本集;对所述测试样本集中的各个待突变测试样本进行突变,得到突变样本,并将所述突变样本发送给所述Javascript引擎,以使所述Javascript引擎基于所述突变样本进行模糊测试;获取所述突变样本在所述模糊测试过程中的执行路径位图;若监测到所述Javascript引擎基于所述突变样本进行模糊测试的过程中,所述Javascript引擎未崩溃,则基于所述执行路径位图判断所述突变样本是否为突变有效样本;若是,则将所述突变有效样本添加至所述测试样本集,并利用添加之后的所述测试样本集对所述Javascript引擎进行模糊测试。进一步地,对所述测试样本集中的各个待突变测试样本进行突变,得到突变样本包括:获取所述待突变测试样本的数据格式;基于所述数据格式和Javascript语法的Protobuf转化技术,对所述待突变测试样本执行反序列化操作,得到所述待突变测试样本的反序列化数据;对所述反序列化数据执行突变操作,得到所述突变样本。进一步地,所述反序列化数据中包含多个节点,多个节点中的部分节点或全部节点包含子节点;对所述反序列化数据执行突变操作,得到所述突变样本包括:确定所述反序列化数据中的目标节点,其中,所述目标节点为所述多个节点中不包含子节点的节点;对各个所述目标节点中的节点数据执行突变操作,得到所述突变样本。进一步地,所述方法还包括:若所述突变样本在进行模糊测试之后得到测试结果,则基于所述执行路径位图判断所述突变样本是否为新崩溃样本,其中,所述新的崩溃样本;若所述突变样本不是新崩溃样本,则丢弃所述突变样本。进一步地,所述方法还包括:若所述突变样本是所述新崩溃样本,则保存所述突变样本。进一步地,所述方法还包括:若所述突变样本不是所述突变有效样本,则丢弃所述突变样本。第二方面,本专利技术实施例提供了一种基于路径反馈的Javascript引擎模糊测试装置,该装置包括:获取单元,样本生成单元,路径反馈单元,崩溃监测单元和执行单元,其中,所述获取单元用于获取Javascript引擎的测试样本集;所述样本生成单元用于对所述测试样本集中的各个待突变测试样本进行突变,得到突变样本,并将所述突变样本发送给所述Javascript引擎,以使所述Javascript引擎基于所述突变样本进行模糊测试;所述路径反馈单元用于获取所述突变样本在所述模糊测试过程中的执行路径位图;所述崩溃监测单元用于若监测到所述Javascript引擎基于所述突变样本进行模糊测试的过程中,所述Javascript引擎未崩溃,则基于所述执行路径位图判断所述突变样本是否为突变有效样本;;所述执行单元用于若所述突变样本为突变有效样本,则将所述突变有效样本添加至所述测试样本集,并利用添加之后的所述测试样本集对所述Javascript引擎进行模糊测试。进一步地,所述样本生成单元还用于:基于所述数据格式和Javascript语法的Protobuf转化技术,对所述待突变测试样本执行反序列化操作,得到所述待突变测试样本的反序列化数据;对所述反序列化数据执行突变操作,得到所述突变样本。进一步地,所述样本生成单元还用于:对所述反序列化数据执行突变操作,得到所述突变样本包括:确定所述反序列化数据中的目标节点,其中,所述目标节点为所述多个节点中不包含子节点的节点;对各个所述目标节点中的节点数据执行突变操作,得到所述突变样本,其中,所述突变操作包括以下至少一种:随机删除,随机添加,随机修改。进一步地,所述执行单元还用于:若监测到所述Javascript引擎基于所述突变样本进行模糊测试的过程中,所述Javascript引擎崩溃,则基于所述执行路径位图判断所述突变样本是否为新的崩溃样本,其中,所述崩溃样本为在所述Javascript引擎基于突变样本进行模糊测试的过程中,引发所述Javascript引擎崩溃的突变样本;若所述突变样本不是新的崩溃样本,则丢弃所述突变样本。在本专利技术实施例中,首先,获取Javascript引擎的测试样本集,并对测试样本集中的各个待突变测试样本进行突变,得到突变样本,然后,将突变样本发送给Javascript引擎,以使Javascript引擎基于突变样本进行模糊测试;接着,获取突变样本在模糊测试过程中的执行路径位图;最后,若监测到Javascript引擎基于突变样本进行模糊测试的过程中,Javascript引擎未崩溃,则基于执行路径位图判断突变样本是否为突变有效样本,并将所述突变有效样本添加至所述测试样本集,并利用添加之后的所述测试样本集对Javascript引擎进行模糊测试。本专利技术通过对测试样本集中的待突变测试样本进行突变,得到突变样本,并通过突变样本在模糊测试过程中的执行路径位图,确定出突变样本突变有效样本添加到测试样本集中,并通过测试样本集对Javascript引擎进行模糊测试,进而解决了现有Javascript引擎模糊测试方法中无法确定出突变有效样本,导致基于突变有效样本进行Javascript引擎模糊测试的效率较低,进而导致测试出Javascript引擎漏洞的可能性较低的技术问题。从而实现了提高了Javascript引擎模糊测试的效率,进而提高了发现Javascript引擎漏洞的可能性技术效果。本专利技术的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。为使本专利技术的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。附图说明为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显本文档来自技高网...
【技术保护点】
1.一种基于路径反馈的Javascript引擎模糊测试方法,其特征在于,包括:获取Javascript引擎的测试样本集;对所述测试样本集中的各个待突变测试样本进行突变,得到突变样本,并将所述突变样本发送给所述Javascript引擎,以使所述Javascript引擎基于所述突变样本进行模糊测试;获取所述突变样本在所述模糊测试过程中的执行路径位图;若监测到所述Javascript引擎基于所述突变样本进行模糊测试的过程中,所述Javascript引擎未崩溃,则基于所述执行路径位图判断所述突变样本是否为突变有效样本;若是,则将所述突变有效样本添加至所述测试样本集,并利用添加之后的所述测试样本集对所述Javascript引擎进行模糊测试。
【技术特征摘要】
1.一种基于路径反馈的Javascript引擎模糊测试方法,其特征在于,包括:获取Javascript引擎的测试样本集;对所述测试样本集中的各个待突变测试样本进行突变,得到突变样本,并将所述突变样本发送给所述Javascript引擎,以使所述Javascript引擎基于所述突变样本进行模糊测试;获取所述突变样本在所述模糊测试过程中的执行路径位图;若监测到所述Javascript引擎基于所述突变样本进行模糊测试的过程中,所述Javascript引擎未崩溃,则基于所述执行路径位图判断所述突变样本是否为突变有效样本;若是,则将所述突变有效样本添加至所述测试样本集,并利用添加之后的所述测试样本集对所述Javascript引擎进行模糊测试。2.根据权利要求1所述的方法,其特征在于,对所述测试样本集中的各个待突变测试样本进行突变,得到突变样本包括:获取所述待突变测试样本的数据格式;基于所述数据格式和Javascript语法的Protobuf转化技术,对所述待突变测试样本执行反序列化操作,得到所述待突变测试样本的反序列化数据;对所述反序列化数据执行突变操作,得到所述突变样本。3.根据权利要求2所述的方法,其特征在于,所述反序列化数据中包含多个节点,多个节点中的部分节点或全部节点包含子节点;对所述反序列化数据执行突变操作,得到所述突变样本包括:确定所述反序列化数据中的目标节点,其中,所述目标节点为所述多个节点中不包含子节点的节点;对各个所述目标节点中的节点数据执行突变操作,得到所述突变样本,其中,所述突变操作包括以下至少一种:随机删除,随机添加,随机修改。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:若监测到所述Javascript引擎基于所述突变样本进行模糊测试的过程中,所述Javascript引擎崩溃,则基于所述执行路径位图判断所述突变样本是否为新的崩溃样本,其中,所述崩溃样本为在所述Javascript引擎基于突变样本进行模糊测试的过程中,引发所述Javascript引擎崩溃的突变样本;若所述突变样本不是新的崩溃样本,则丢弃所述突变样本。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:若所述突变样本是所述新的崩溃样本,则保存所述突变样本。...
【专利技术属性】
技术研发人员:熊文彬,范渊,
申请(专利权)人:杭州安恒信息技术股份有限公司,
类型:发明
国别省市:浙江,33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。