检测目标软件的方法和装置与流程

文档序号:12837081阅读:257来源:国知局
检测目标软件的方法和装置与流程

本发明涉及互联网安全领域,具体而言,涉及一种检测目标软件的方法和装置。



背景技术:

现有的软件测试方案可以采用模拟测试方法,例如在浏览器软件中添加新的代码之后,对于漏洞挖掘工程师来说,这是浏览器的一个新的攻击面,也已经有工程师对这部分代码进行模糊测试试图寻找浏览器软件的安全缺陷和漏洞,但是目前的模糊测试方法还是使用传统的针对文件进行模糊测试的方法:

第一种方法是基于变异的模糊测试方法,具体实现步骤如下:1)收集大量的样本文件;2)对样本文件进行变异;3)将变异后的测试文件输入到目标软件,观察是否有异常发生,若观测到异常则报告发现安全缺陷。

另一种方法是基于生成的模糊测试方法,这种方法的测试样本文件是在了解文件格式的基础上对文件的各个字段的数值进行变异生成的,除此以外其它步骤与基于变异的模糊测试方法类似。因此,基于变异的模糊测试方法和基于生成的模糊测试方法都只是将关注点放在目标软件对文件格式的解析和编解码处理过程上。

针对现有的模糊测试方法只关注目标软件对文件格式的解析和编解码处理过程,导致测试效率低的技术问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种检测目标软件的方法和装置,以至少解决现有的模糊测试方法只关注目标软件对文件格式的解析和编解码处理过程,导致测试效率低的技术问题。

根据本发明实施例的一个方面,提供了一种检测目标软件的方法,包括:获取目标测试用例,其中,目标测试用例包括变异后的测试文件;监控在目标软件中运行目标测试用例;如果监控到异常,则确定目标软件存在安全漏洞。

根据本发明实施例的另一方面,还提供了一种检测目标软件的装置,包括:第一获取单元,用于获取目标测试用例,其中,所述目标测试用例包括变异后的测试文件; 监控单元,用于监控在目标软件中运行目标测试用例;第一确定单元,用于如果监控到异常,则确定目标软件存在安全漏洞。

在本发明实施例中,可以获取变异后的测试文件,在获取到变异后的测试文件之后,获取包含变异后的测试文件的目标测试用例,实时监控目标软件中运行该目标测试用例是否异常,如果监控到异常,则确定所述目标软件存在安全漏洞。

容易注意到,本发明上述检测目标软件是否存在安全漏洞的方法中,所采用的目标测试用例中包含了变异后的测试文件,即用于进行测试的目标测试用例中需要添加对应的变异后的测试文件,例如变异后的视频测试用例,该视频测试用例与目标测试用例中的功能测试用例相关联。基于此种测试用例,监控在该目标软件中运行该目标测试用例的情况,进而确定该目标软件是否存在安全漏洞。因此,通过本申请实施例所提供的方案,可以实现在现有的基于变异的模糊测试方法的基础上,将关注点放在目标软件对变异后的测试文件所对应的事件的处理过程,即测试过程的关注点主要放在目标软件对变异后的测试文件的处理过程,能够测试浏览器软件的更多代码流程,可发现目标软件的事件处理逻辑漏洞及多线程处理相关的安全缺陷和漏洞。

由此,本发明提供的上述方案解决了现有的模糊测试方法只关注目标软件对文件格式的解析和编解码处理过程,导致测试效率低的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本申请实施例的一种检测目标软件的方法的计算机终端的硬件结构框图;

图2是根据本发明实施例一的一种检测目标软件的方法的流程图;

图3是根据本发明实施例一的一种可选的检测目标软件的方法的流程图;

图4是根据本发明实施例一的一种可选的生成html测试用例的方法的流程图;

图5是根据本发明实施例二的一种检测目标软件的装置的示意图;

图6是根据本发明实施例二的一种可选的检测目标软件的装置的示意图;

图7是根据本发明实施例二的一种可选的检测目标软件的装置的示意图;

图8是根据本发明实施例二的一种可选的检测目标软件的装置的示意图;

图9是根据本发明实施例二的一种可选的检测目标软件的装置的示意图;

图10是根据本发明实施例二的一种可选的检测目标软件的装置的示意图;以及

图11是根据本申请实施例的一种计算机终端的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:

漏洞:是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。

模糊测试(fuzzing):是一种漏洞挖掘的技术手段,其通过向目标软件提供非预期的输入并通过监视异常结果来发现软件缺陷和漏洞。

html5标准:html5是html最新的修订版本,2014年10月由万维网联盟(w3c)完成标准制定。html5的目标是取代1999年所制定的html4.01和xhtml1.0标准从而符合当代的网页应用的需求。

视频元素,一种可以在html5标准中新添加的标签,使得网页不再需要类似flash的控件进行视频的播放,暂停,快进等操作。

变异操作:包括改变样本文件的某些字节,例如在任意位置插入或删除字符等。

变异后的测试文件:进行变异操作之后的测试文件。

测试用例:是为特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试目标软件路径或核实是否满足特定需求。

异常:在问到或软件操作中的任何与期望违背的结果。

实施例1

根据本发明实施例,还提供了一种检测目标软件的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是根据本申请实施例的一种检测目标软件的方法的计算机终端的硬件结构框图。如图1所示,计算机终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的目标软件的方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的目标软件的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(networkinterfacecontroller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

在上述运行环境下,本申请提供了如图2所示的目标软件的方法。图2是根据本 发明实施例一的一种检测目标软件的方法的流程图,如图2所示的方法可以包括如下步骤:

步骤s22,获取目标测试用例,其中,目标测试用例包括变异后的测试文件。

可选的,上述的变异后的测试文件可以是视频测试用例、音频测试用例等渲染在目标网页中具有特定标识功能的对象,上述的目标测试用例可以是html测试用例。

本发明通过在html5标准中新添加视频元素,使得网页不再需要类似flash的控件进行视频的播放、暂停和快进等操作。在html5标准中引入视频元素,相应的需要在运行该html的目标软件(例如浏览器)中添加新的代码,本发明通过将变异后的测试文件(例如视频测试用例)添加至html测试用例中来进行模拟测试,用于测试运行添加了视频元素的代码的html5的目标软件(例如浏览器)是否存在攻击面。

结合图3所示的一种可选的方案中,可以基于视频文件的变异生成视频测试用例,基于文件变异是传统的针对文件格式的模糊测试方法,都是对输入的原有文件做字段变换,例如,字段增加,字段减少等操作。可以生成包含视频测试用例的html测试用例,即生成与视频测试用例相关联的html测试用例,在html测试用例中,除了可以添加代码使得浏览器能够解析视频测试用例之外,还可以随机做以下两种操作:添加视频的缩放,快进等操作,以及添加视频的事件处理函数操作并在事件处理函数操作中添加危险操作。

此处需要说明的是,可以在html测试用例中随机做上述两种操作中的任意一种操作,即在html测试用例中添加视频的缩放,快进等操作,或者在html测试用例中在添加视频的事件处理函数操作并在事件处理函数操作中添加危险操作;也可以同时做上述两种操作,即在html测试用例中添加视频的缩放,快进等操作,和添加视频的事件处理函数操作并在事件处理函数操作中添加危险操作。

步骤s24,监控在目标软件中运行目标测试用例。

步骤s26,如果监控到异常,则确定目标软件存在安全漏洞。

可选的,上述的目标软件可以是浏览器或用于打开html测试用例的应用软件。在本申请上述实施例中,可以采用python的winappbg模块来监控浏览器或应用软件运行过程中的异常信息。

在一种可选的方案中,可以监控在浏览器中运行html测试用例,结合图3所示的示例可知,浏览器按照html测试用例中添加的操作对html测试用例中包含的视频测试用例进行解析,如果浏览器进程在解析html测试用例时,监控到异常,即浏览器按 照html测试用例中的操作对视频测试用例进行操作,出现异常,则确定浏览器存在安全漏洞,可以保存相关的测试用例,包括html测试用例和相关的视频文件测试用例。

本申请上述实施例一公开的方案中,可以获取变异后的测试文件,在获取到变异后的测试文件之后,获取包含变异后的测试文件的目标测试用例,实时监控目标软件中运行该目标测试用例是否异常,如果监控到异常,则确定目标软件存在安全漏洞。

容易注意到,本发明上述检测目标软件是否存在安全漏洞的方法中,所采用的目标测试用例中包含了变异后的测试文件,即用于进行测试的目标测试用例中需要添加对应的变异后的测试文件,例如变异后的视频测试用例,该视频测试用例与目标测试用例中的功能测试用例相关联。基于此种测试用例,监控在该目标软件中运行该目标测试用例的情况,进而确定该目标软件是否存在安全漏洞。因此,通过本申请实施例所提供的方案,可以实现在现有的基于变异的模糊测试方法的基础上,将关注点放在目标软件对变异后的测试文件所对应的事件的处理过程,即测试过程的关注点主要放在目标软件对变异后的测试文件的处理过程,能够测试浏览器软件的更多。

由此,本申请提供的上述实施例一的方案解决了现有的模糊测试方法只关注目标软件对文件格式的解析和编解码处理过程,导致测试效率低的技术问题。

在本申请上述实施例中,在目标测试用例为网页测试用例的情况下,获取包含变异后的测试文件的目标测试用例,步骤s22,获取目标测试用例,可以包括如下步骤:

步骤s242,创建测试元素,并将测试元素与变异后的测试文件相关联。

可选的,上述的测试元素可以是视频元素。在本申请上述实施例中,测试元素可以为添加至目标测试用例的代码中的标签,标签的标签信息可以包括:变异后的测试文件的文件名称、文件大小的测试文件中的用例的基本信息。

在一种可选的方案中,测试元素可以是添加到html测试用例中的视频测试用例的标签,包括视频测试用例的文件名称,文件大小。

步骤s244,通过在目标测试用例中添加测试元素所对应的数据,得到包含变异后的测试文件的目标测试用例。

可选的,上述测试元素所对应的数据可以是测试元素的操作或者事件处理函数所对应的数据。

在一种可选的方案中,可以创建一个视频元素,将视频元素与视频测试用例相关联,并在html测试用例中添加视频元素的操作或者事件处理函数所对应的数据,生成包含视频测试用例的html测试用例。上述视频元素可以作为一个标签添加在html测 试用例中,用于在目标软件中运行html测试用例时,解析模块会根据该标签所包含的标签信息调用并解析相应的视频测试用例,得到测试结果。例如浏览器在解析html测试用例时,可以根据html测试用例的代码中的视频元素,调用与视频元素相关联的视频测试用例,实现对视频测试用例的解析。

在本申请上述实施例中,在步骤s242,创建测试元素,并将测试元素与变异后的测试文件相关联之后,上述方法还可以包括如下步骤:

步骤s2462,根据随机整数的mod计算结果,确定待添加至目标测试用例中的数据。

可选的,上述的随机整数可以在生成html测试用例的过程中随机产生。

步骤s2464,在mod计算结果满足第一预设条件的情况下,待添加至目标测试用例中的数据至少包括如下与测试元素相关联的元素参数:测试元素的属性、测试元素的属性类型、测试元素的事件和测试元素的至少一个危险操作。

可选的,上述的第一预设条件可以是mod计算结果不等于0。

步骤s2466,在mod计算结果满足第二预设条件的情况下,待添加至目标测试用例中的数据至少包括如下任意一个或多个与测试元素相关联的元素参数:测试元素的快进操作、后退操作、画面大小缩放操作和全屏操作。

可选的,上述的第二预设条件可以是mod计算结果等于0。

在一种可选的方案中,通过计算随机整数mod2的值,得到mod计算结果,并根据mod计算结果确定待添加至html测试用例中的数据,例如当case=(随机整数mod2)的值为不等于0时,可以在html测试用例中添加视频元素的属性、测试元素的属性类型、测试元素的事件和测试元素的至少一个危险操作;当case=(随机整数mod2)的值为0时,可以在html测试用例中添加视频元素的快进操作,后退操作,画面大小缩放操作和全屏操作等。

此处需要说明的是,结合图3和图4所示的实施例可知,图3所示的实施例中,测试次数是与需要添加至目标测试用例中的元素参数对应的操作内容相关,系统会遍历测试元素对应的多种类型的测试内容(例如快进操作、后退操作、放大或缩小操作等),对每种该类型的测试内容都进行至少一次测试,因此,一种可选方案中,每完成一次测试则会累加当前测试总次数,当累加的当前测试总次数大于等于预设的测试用次数时,系统可以确定所有的测试内容都至少测试了一次,本次测试可以结束。其中,每种类型的测试内容的添加和监控过程都可以是一样的。

一种可选方案中以图4所示的实施例为例可知,由于测试人员期望对多种类型的测试用例分别进行单独的测试(例如快进操作、后退操作、放大或缩小操作等),因此,需要完成每种类型的测试内容添加至目标测试用例中。本发明提供的上述方案可以实现,根据html语言提供的随机整数的mod计算结果,来确定待添加至目标测试用例中的数据,目的在于可以遍历得到每种类型测试内容,并添加到相应的html测试用例中,从而完成后续的测试工作。

由上可知,图4所提供的方案中,添加至目标测试用例(例如html测试用例)中的元素参数是依次顺序完成的,即完成一次添加之后就进行测试,本次测试结束之后再进行下一个元素参数的操作内容,如此循环,直至所有的测试内容都完成,或者测试次数达到一定的值才结束测试流程。该过程中,添加的次序不限。

在本申请的另外一个实施例中,除了可以实现上述图4所示的添加方案,还可以提供一种将待添加至目标测试用例(例如html测试用例)中的所有元素参数的操作内容一次性全部添加完成,然后再进行顺序测试,测试顺序不限。由此可知,在步骤s242,创建测试元素,并将测试元素与变异后的测试文件相关联之后,上述方法还可以包括如下步骤:

步骤s248,获取待添加至目标测试用例中的如下任意一个或多个数据:测试元素的属性、测试元素的属性类型、测试元素的事件、测试元素的至少一个危险操作、测试元素的快进操作、后退操作、画面大小缩放操作和全屏操作。

由此可知,在另外一种可选的方案中,可以在html测试用例中添加上述的全部数据,即在html测试用例中添加测试元素的属性、测试元素的属性类型、测试元素的事件、测试元素的至少一个危险操作、测试元素的快进操作、后退操作、画面大小缩放操作和全屏操作。

在本申请上述实施例中,步骤s244,通过在目标测试用例中添加测试元素所对应的数据,得到包含变异后的测试文件的目标测试用例,可以包括如下步骤:

步骤s2442,从预存的位置获取一个或多个与测试元素关联的元素参数。

可选的,上述的预存的位置可以为初始化时指定的位置。

步骤s2444,在目标测试用例中添加一个或多个元素参数所对应的数据。

可选的,在本申请上述实施例中,元素参数至少包括如下任意一个多个参数:测试元素的属性、测试元素的属性类型、测试元素的事件和测试元素的危险操作。

仍旧结合图4所示的一种可选的方案中,可以在初始化的过程中指定视频元素的 属性和属性类型的预存的位置为数组a,视频元素的事件的预存的位置为数组b,视频元素的危险操作的预存的位置为数组c,可以从数组a中随机选择一个或多个视频元素关联的属性或者属性类型,在html测试用例中添加一个或多个属性或者属性类型所对应的数据;可以从数组b中随机选择一个或多个视频元素关联的事件,在html测试用例中添加一个或多个事件所对应的数据;可以从数组c中随机选择一个或多个视频元素关联的危险操作,在html测试用例中添加一个或多个危险操作所对应的数据。

在本申请上述实施例中,在步骤s2444,目标测试用例中添加一个或多个元素参数所对应的数据,可以包括如下任意一种或多种添加操作:

步骤s24442,根据获取到的测试元素的属性和属性类型在目标测试用例中添加测试元素的属性赋值操作。

步骤s24444,根据获取到的测试元素的事件在目标测试用例中添加测试元素的事件处理操作。

步骤s24446,根据获取到的测试元素的至少一个危险操作在目标测试用例中的测试元素的事件处理函数中添加至少一个危险操作。

在一种可选的方案中,从数组a中随机选择一个或多个视频元素关联的属性或者属性类型之后,可以在html测试用例中添加视频元素的属性赋值操作;从数组b中随机选择一个或多个视频元素关联的事件之后,可以在html测试用例中添加视频元素的事件处理操作;从数组c中随机选择一个或多个视频元素关联的危险操作之后,可以在html测试用例中在视频元素的事件处理函数中添加至少一个危险操作。

在本申请上述实施例中,步骤s2444,在目标测试用例中添加一个或多个元素参数所对应的数据,可以包括如下任意一种或多种添加操作:

步骤s24448,在目标测试用例中添加测试元素的快进操作、后退操作、画面大小缩放操作和全屏操作。

在一种可选的方案中,当满足第一条件时,可以在html测试用例中添加视频元素的快进操作;当满足第二条件时,在html测试用例中添加视频元素的后退操作;当满足第三条件时,在html测试用例中添加视频元素的画面大小缩放操作;当满足第四条件时,在html测试用例中添加视频元素的全屏操作。

在另一种可选的方案中,可以直接在html测试用例中添加视频元素的快进操作,后退操作,画面大小缩放操作和全屏操作。

在本申请上述实施例中,在步骤s26,监控在目标软件中运行目标测试用例之前, 上述方法还可以包括如下步骤:

步骤s28,启动自动化脚本执行打开浏览器进程或应用软件进程,解析html测试用例的操作命令。

在一种可选的方案中,可以采用python脚本执行打开浏览器进程解析html测试用例的操作命令。

在本申请上述实施例中,在目标测试用例中添加的目标代码还可以包括:用于使得目标软件解析变异后的测试文件的代码。

此处需要说明的是,生成的html测试用例中除了包含视频测试用例之外,还包含视频元素的操作或者事件处理函数等。

下面结合图3和图4对详细介绍本申请的一种优选的实施例。

如图3所示,提供了一种可选的检测目标软件的方法,该方法可以包括如下步骤s31至步骤s311:

步骤s31,开始。

可选的,开始启动漏洞检测功能。

步骤s32,初始化测试总次数和当前测试次数。

可选的,在开始漏洞检测之后,可以初始化测试总次数为n,并初始化当前测试次数cur为1。

步骤s33,判断当前测试次数是否小于等于测试总次数。

可选的,在当前测试次数cur小于等于测试总次数n的情况下,进入步骤s34;在cur大于n的情况下,进入步骤s311。

步骤s34,使用基于文件的变异来生成视频测试用例。

可选的,可以使用传统的基于变异的模式测试方法,对视频进行字段变换,生成视频测试用例。

步骤s35,生成包含视频测试用例的html测试用例。

可选的,可以生成与视频测试用例相关联的html测试用例。

步骤s36,使用自动化脚本操控浏览器解析html测试用例。

步骤s37,监控浏览器的运行状态。

步骤s38,判断是否发现异常。

可选的,如果发现异常,则进入步骤s39;如果没有发现异常,则进入步骤s310。

步骤s39,保存视频测试用例和html测试用例。

可选的,如果发现异常,则确定浏览器存在安全漏洞,可以保存视频测试用例和html测试用例。

步骤s310,当前测试次数加1。

可选的,如果发现异常,则在保存相关测试用例之后,将当前测试次数cur加1;如果没有异常,则直接将前测试次数cur加1。

此处需要说明的是,当前测试次数加1之后,进入步骤s33,继续进行漏洞检测。

步骤s311,结束。

可选的,在cur大于n的情况下,停止漏洞检测。

如图4所示,提供了一种可选的生成html测试用例的方法,该方法可以包括如下步骤s41至步骤s418:

步骤s41,开始。

可选的,在执行如图3所示的使用基于文件的变异来生成视频测试用例之后,开始生成html测试用例。

步骤s42,初始化。

可选的,可以从浏览器官方文档枚举视频元素的属性和属性类型,保存在数组a中;从浏览器官方文档枚举视频元素的事件,保存在数组b;列举危险操作(比如清空视频内容,清空htmldom树操作),保存在数组c。

步骤s43,创建一个视频元素,将该视频元素与视频测试用例相关联。

步骤s44,计算case值。

可选的,在将视频元素与视频测试关联之后,可以通过随机整数mod2计算得到case值。

步骤s45,判断case值是否等于0。

可选的,当case值等于0时,进入步骤s46;当case值不等于0,例如case值为1时,进入步骤s415。

步骤s46,计算operation-case值。

可选的,当case值为0时,可以通过随机整数mod4计算得到operation-case值。

步骤s47,判断operation-case值是否等于0。

可选的,当operation-case值等于0时,进入步骤s48;当operation-case值不等于0时,进入步骤s49。

步骤s48,添加视频元素的快进操作。

可选的,当operation-case值等于0时,在html测试用例中添加视频元素的快进操作。

此处需要说明的是,在添加视频元素的快进操作之后,进入步骤s418。

步骤s49,判断operation-case值是否等于1。

可选的,当operation-case值不等于0时,判断operation-case值是否等于1,当operation-case值等于1时,进入步骤s410;当operation-case值不等于1时,进入步骤s411。

步骤s410,添加视频元素的后退操作。

可选的,当operation-case值等于1时,在html测试用例中添加视频元素的后退操作。

此处需要说明的是,在添加视频元素的后退操作之后,进入步骤s418。

步骤s411,判断operation-case值是否等于2。

可选的,当operation-case值不等于1时,判断operation-case值是否等于2,当operation-case值等于2时,进入步骤s412;当operation-case值不等于2时,进入步骤s413。

步骤s412,添加视频元素的画面大小缩放操作。

可选的,当operation-case值等于2时,在html测试用例中添加视频元素的画面大小缩放操作。

此处需要说明的是,在添加视频元素的画面大小缩放操作之后,进入步骤s418。

步骤s413,判断operation-case值是否等于3。

可选的,当operation-case值不等于2时,判断operation-case值是否等于3,当operation-case值等于3时,进入步骤s414;当operation-case值不等于3时,则进入步骤s418。

步骤s414,添加视频元素的全屏操作。

可选的,当operation-case值等于3时,在html测试用例中添加视频元素的全屏操作。

此处需要说明的是,在添加视频元素的全屏操作之后,进入步骤s418。

步骤s415,从数组a中随机选择一个属性,添加视频元素的属性赋值操作。

步骤s416,从数组b中随机选择一个事件,添加视频元素的事件处理操作。

步骤s417,从数组c中随机选择一个危险操作,在视频元素的事件处理函数中添加危险操作。

可选的,当case为1时,可以从数组a中随机选择一个属性,在html测试用例中添加视频元素的属性赋值操作;可以从数组b中随机选择一个事件,在html测试用例中添加视频元素的事件处理操作;从数组c中随机选择一个危险操作,在html测试用例中在视频元素的事件处理函数中添加危险操作。

步骤s418,结束。

可选的,完成生成html测试用例的过程,进入如图3所示的方法中的步骤s36。

通过上述步骤所提供的方案,可以在传统的基于变异的模糊检测方法的基础上,将关注点放在目标软件对视频事件的处理过程,可发现检测目标软件的逻辑漏洞及多线程处理相关的安全漏洞。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的基于分库分表的任务传输方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出 来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例2

根据本发明实施例,还提供了一种检测目标软件的装置,如图5所示,该装置包括:第一获取单元51,监控单元53和第一确定单元55。

其中,第一获取单元51用于获取目标测试用例,其中,目标测试用例包括变异后的测试文件;监控单元53用于监控在目标软件中运行目标测试用例;第一确定单元55用于如果监控到异常,则确定目标软件存在安全漏洞。

可选的,上述的变异后的测试文件可以是视频测试用例,上述的目标测试用例可以是html测试用例,上述的目标软件可以是浏览器或用于打开html测试用例的应用软件。在本申请上述实施例中,监控单元55还用于采用python的winappbg模块来监控浏览器或应用软件运行过程中的异常信息。

此处需要说明的是,可以在html测试用例中随机做上述两种操作中的任意一种操作,即在html测试用例中添加视频的缩放,快进等操作,或者在html测试用例中在添加视频的事件处理函数操作并在事件处理函数操作中添加危险操作;也可以同时做上述两种操作,即在html测试用例中添加视频的缩放,快进等操作,和添加视频的事件处理函数操作并在事件处理函数操作中添加危险操作。

此处还需要说明的是,上述第一获取单元51,监控单元53和第一确定单元55对应于实施例一中的步骤s22至步骤s26,三个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中。

本申请上述实施例二公开的方案中,可以获取变异后的测试文件,在获取到变异后的测试文件之后,获取包含变异后的测试文件的目标测试用例,实时监控目标软件中运行该目标测试用例是否异常,如果监控到异常,则确定目标软件存在安全漏洞。

容易注意到,本发明上述检测目标软件是否存在安全漏洞的装置中,所采用的目标测试用例中包含了变异后的测试文件,即用于进行测试的目标测试用例中需要添加对应的变异后的测试文件,例如变异后的视频测试用例,该视频测试用例与目标测试用例中的功能测试用例相关联。基于此种测试用例,监控在该目标软件中运行该目标测试用例的情况,进而确定该目标软件是否存在安全漏洞。因此,通过本申请实施例所提供的方案,可以实现在现有的基于变异的模糊测试方法的基础上,将关注点放在 目标软件对变异后的测试文件所对应的事件的处理过程,即测试过程的关注点主要放在目标软件对变异后的测试文件的处理过程,能够测试浏览器软件的更多。

由此,本申请提供的上述实施例二的方案解决了现有的模糊测试方法只关注目标软件对文件格式的解析和编解码处理过程,导致测试效率低的技术问题。

在本申请上述实施例中,如图6所示,在目标测试用例为网页测试用例的情况下,上述第一获取单元51可以包括:创建模块61和处理模块63。

其中,创建模块61用于创建测试元素,并将测试元素与变异后的测试文件相关联;处理模块63用于通过在目标测试用例中添加测试元素所对应的数据,得到包含变异后的测试文件的目标测试用例。

可选的,上述的测试元素可以是视频元素,上述测试元素所对应的数据可以是测试元素的操作或者事件处理函数所对应的数据。在本申请上述实施例中,测试元素可以为添加至目标测试用例的代码中的标签,标签的标签信息包括:变异后的测试文件的文件名称、文件大小。

此处需要说明的是,上述创建模块61和处理模块63对应于实施例一中的步骤s242至步骤s244,两个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中。

在本申请上述实施例中,如图7所示,上述装置还可以包括:第二确定单元71,第一添加单元73和第二添加单元75。

其中,第二确定单元71用于根据随机整数的mod计算结果,确定待添加至目标测试用例中的数据;第一添加单元73用于在mod计算结果满足第一预设条件的情况下,待添加至目标测试用例中的数据至少包括如下与测试元素相关联的元素参数:测试元素的属性、测试元素的属性类型、测试元素的事件和测试元素的至少一个危险操作;第二添加单元75用于在mod计算结果满足第二预设条件的情况下,待添加至目标测试用例中的数据至少包括如下任意一个或多个与测试元素相关联的元素参数:测试元素的快进操作、后退操作、画面大小缩放操作和全屏操作。

可选的,上述的随机整数可以在生成html测试用例的过程中随机产生,上述的第一预设条件可以是1,上述的第二预设条件可以是0。

此处需要说明的是,上述第二确定单元71,第一添加单元73和第二添加单元75对应于实施例一中的步骤s2462至步骤s2466,三个模块与对应的步骤所实现的示例 和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中。

在本申请上述实施例中,如图8所示,上述装置还可以包括:第二获取单元81。

其中,第二获取单元81用于获取待添加至目标测试用例中的如下任意一个或多个数据;测试元素的属性、测试元素的属性类型、测试元素的事件、测试元素的至少一个危险操作、测试元素的快进操作、后退操作、画面大小缩放操作和全屏操作。

此处需要说明的是,上述第二获取模块81对应于实施例一中的步骤s248,该模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中。

在本申请上述实施例中,如图9所示,上述处理模块63可以包括:获取子模块91和添加子模块93。

其中,获取子模块91用于从预存的位置获取一个或多个与测试元素关联的元素参数;添加子模块93用于在目标测试用例中添加一个或多个元素参数所对应的数据。

可选的,上述的预存的位置可以为初始化时指定的位置,在本申请上述实施例中,元素参数至少包括如下任意一个多个参数:测试元素的属性、测试元素的属性类型、测试元素的事件和测试元素的危险操作。

此处需要说明的是,上述获取子模块91和添加子模块93对应于实施例一中的步骤s2442至步骤s2444,两个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中。

在本申请上述实施例中,如图10所示,上述添加子模块93可以包括如下任意一个或多个模块:第一添加重子模块101,第二添加重子模块103和第三添加重子模块105。

其中,第一添加重子模块101用于根据获取到的测试元素的属性和属性类型在目标测试用例中添加测试元素的属性赋值操作;第二添加重子模块103用于根据获取到的测试元素的事件在目标测试用例中添加测试元素的事件处理操作;第三添加重子模块105用于根据获取到的测试元素的至少一个危险操作在目标测试用例中的测试元素的事件处理函数中添加至少一个危险操作。

此处需要说明的是,上述第一添加重子模块101,第二添加重子模块103和第三 添加重子模块105对应于实施例一中的步骤s24442至步骤s24446,三个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中。

在本申请上述实施例中,上述添加子模块93还可以用于在目标测试用例中添加如下任意一种或多种添加操作:测试元素的快进操作、后退操作、画面大小缩放操作和全屏操作。

此处需要说明的是,上述添加子模块93对应于实施例一中的步骤s24448,该模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中。

在本申请上述实施例中,上述装置还可以包括:解析模块。

其中,解析模块用于启动自动化脚本执行打开浏览器进程或应用软件进程,解析html测试用例的操作命令。

此处需要说明的是,上述解析模块对应于实施例一中的步骤s28,该模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中。

在本申请上述实施例中,上述处理模块63还可以用于在目标测试用例中添加用于使得目标软件解析变异后的测试文件的代码。

此处需要说明的是,生成的html测试用例中除了包含视频测试用例之外,还包含视频元素的操作或者事件处理函数等。

实施例3

本发明的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。

可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。

在本实施例中,上述计算机终端可以执行检测目标软件的方法中以下步骤的程序代码:获取目标测试用例,其中,目标测试用例包括变异后的测试文件;监控在目标软件中运行目标测试用例;如果监控到异常,则确定目标软件存在安全漏洞。

可选地,图11是根据本申请实施例的一种计算机终端的结构框图。如图11所示,该计算机终端a可以包括:一个或多个(图中仅示出一个)处理器111、存储器113、以及传输装置115。

其中,存储器113可用于存储软件程序以及模块,如本发明实施例中的检测目标软件的方法和装置对应的程序指令/模块,处理器111通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的检测目标软件的方法。存储器113可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器113可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端a。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

处理器111可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:获取目标测试用例,其中,目标测试用例包括变异后的测试文件;监控在目标软件中运行目标测试用例;如果监控到异常,则确定目标软件存在安全漏洞。

可选的,上述处理器111还可以执行如下步骤的程序代码:在目标测试用例为网页测试用例的情况下,创建测试元素,并将测试元素与变异后的测试文件相关联;通过在目标测试用例中添加测试元素所对应的数据,得到包含变异后的测试文件的目标测试用例。

可选的,上述处理器111还可以执行如下步骤的程序代码:根据随机整数的mod计算结果,确定待添加至目标测试用例中的数据;在mod计算结果满足第一预设条件的情况下,待添加至目标测试用例中的数据至少包括如下与测试元素相关联的元素参数:测试元素的属性、测试元素的属性类型、测试元素的事件和测试元素的至少一个危险操作;在mod计算结果满足第二预设条件的情况下,待添加至目标测试用例中的数据至少包括如下任意一个或多个与测试元素相关联的元素参数:测试元素的快进操作、后退操作、画面大小缩放操作和全屏操作。

可选的,上述处理器111还可以执行如下步骤的程序代码:获取待添加至目标测试用例中的如下任意一个或多个数据;测试元素的属性、测试元素的属性类型、测试元素的事件、测试元素的至少一个危险操作、测试元素的快进操作、后退操作、画面大小缩放操作和全屏操作。

可选的,上述处理器111还可以执行如下步骤的程序代码:从预存的位置获取一个或多个与测试元素关联的元素参数;在目标测试用例中添加一个或多个元素参数所 对应的数据。

可选的,上述处理器111还可以执行如下步骤的程序代码:根据获取到的测试元素的属性和属性类型在目标测试用例中添加测试元素的属性赋值操作;根据获取到的测试元素的事件在目标测试用例中添加测试元素的事件处理操作;根据获取到的测试元素的至少一个危险操作在目标测试用例中的测试元素的事件处理函数中添加至少一个危险操作。

可选的,上述处理器111还可以执行如下步骤的程序代码:在目标测试用例中添加测试元素的快进操作、后退操作、画面大小缩放操作和全屏操作。

可选的,上述处理器111还可以执行如下步骤的程序代码:变异后的测试文件为视频测试用例,目标测试用例为html测试用例,目标软件为浏览器或用于打开html测试用例的应用软件。

可选的,上述处理器111还可以执行如下步骤的程序代码:在监控在目标软件中运行目标测试用例之前,启动自动化脚本执行打开浏览器进程或应用软件进程,解析html测试用例的操作命令。

可选的,上述处理器111还可以执行如下步骤的程序代码:采用python的winappbg模块来监控浏览器或应用软件运行过程中的异常信息。

可选的,上述处理器111还可以执行如下步骤的程序代码:在目标测试用例中添加的目标代码还包括:用于使得目标软件解析变异后的测试文件的代码。

可选的,上述处理器111还可以执行如下步骤的程序代码:测试元素为添加至目标测试用例的代码中的标签,标签的标签信息包括:变异后的测试文件的文件名称、文件大小。

采用本发明实施例,可以获取变异后的测试文件,在获取到变异后的测试文件之后,获取包含变异后的测试文件的目标测试用例,实时监控目标软件中运行该目标测试用例是否异常,如果监控到异常,则确定目标软件存在安全漏洞。

容易注意到,本发明上述用于执行检测目标软件是否存在安全漏洞的方法的计算机系统中,所采用的目标测试用例中包含了变异后的测试文件,即用于进行测试的目标测试用例中需要添加对应的变异后的测试文件,例如变异后的视频测试用例,该视频测试用例与目标测试用例中的功能测试用例相关联。基于此种测试用例,监控在该目标软件中运行该目标测试用例的情况,进而确定该目标软件是否存在安全漏洞。因此,通过本申请实施例所提供的方案,可以实现在现有的基于变异的模糊测试方法的 基础上,将关注点放在目标软件对变异后的测试文件所对应的事件的处理过程,即测试过程的关注点主要放在目标软件对变异后的测试文件的处理过程,能够测试浏览器软件的更多。

由此,本发明提供的上述实施例的方案解决了现有的模糊测试方法只关注目标软件对文件格式的解析和编解码处理过程,导致测试效率低的技术问题。

本领域普通技术人员可以理解,图11所示的结构仅为示意,计算机终端也可以是智能手机(如android手机、ios手机等)、平板电脑、掌声电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图11其并不对上述电子装置的结构造成限定。例如,计算机终端a还可包括比图11中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图11所示不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。

实施例4

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的基于分库分表的任务传输方法所执行的程序代码。

可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:获取目标测试用例,其中,目标测试用例包括变异后的测试文件;监控在目标软件中运行目标测试用例;如果监控到异常,则确定目标软件存在安全漏洞。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在目标测试用例为网页测试用例的情况下,创建测试元素,并将测试元素与变异后的测试文件相关联;通过在目标测试用例中添加测试元素所对应的数据,得到包含变异后的测试文件的目标测试用例。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:根据随机整数的mod计算结果,确定待添加至目标测试用例中的数据;在mod计算结果满足第一预设条件的情况下,待添加至目标测试用例中的数据至少包括如下与测试元素相关联的元素参数:测试元素的属性、测试元素的属性类型、测试元素的事件和 测试元素的至少一个危险操作;在mod计算结果满足第二预设条件的情况下,待添加至目标测试用例中的数据至少包括如下任意一个或多个与测试元素相关联的元素参数:测试元素的快进操作、后退操作、画面大小缩放操作和全屏操作。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:获取待添加至目标测试用例中的如下任意一个或多个数据;测试元素的属性、测试元素的属性类型、测试元素的事件、测试元素的至少一个危险操作、测试元素的快进操作、后退操作、画面大小缩放操作和全屏操作。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:从预存的位置获取一个或多个与测试元素关联的元素参数;在目标测试用例中添加一个或多个元素参数所对应的数据。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:根据获取到的测试元素的属性和属性类型在目标测试用例中添加测试元素的属性赋值操作;根据获取到的测试元素的事件在目标测试用例中添加测试元素的事件处理操作;根据获取到的测试元素的至少一个危险操作在目标测试用例中的测试元素的事件处理函数中添加至少一个危险操作。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在目标测试用例中添加测试元素的快进操作、后退操作、画面大小缩放操作和全屏操作。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:变异后的测试文件为视频测试用例,目标测试用例为html测试用例,目标软件为浏览器或用于打开html测试用例的应用软件。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在监控在目标软件中运行目标测试用例之前,启动自动化脚本执行打开浏览器进程或应用软件进程,解析html测试用例的操作命令。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:采用python的winappbg模块来监控浏览器或应用软件运行过程中的异常信息。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在目标测试用例中添加的目标代码还包括:用于使得目标软件解析变异后的测试文件的代码。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码: 测试元素为添加至目标测试用例的代码中的标签,标签的标签信息包括:变异后的测试文件的文件名称、文件大小。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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