一种测试方法、装置、设备和存储介质
文献发布时间:2023-06-19 19:20:08
技术领域
本申请涉及信息安全技术领域,尤其涉及一种测试方法、装置、设备和存储介质。
背景技术
隐私计算是指在保护数据本身不对外泄露的前提下实现数据分析计算的技术集合,达到对数据“可用、不可见”的目的,在充分保护数据和隐私安全的前提下,实现数据价值的转化和释放。与传统数据使用方式相比,隐私计算的加密机制能够增强对于数据的保护、降低数据泄露风险
然而,隐私计算的相关协议作为一种安全协议,其本身的完整性、可用性等都需要进行验证,以确保协议的可靠,只有在实践中验证隐私计算协议的可用性,才可以真正的将隐私计算协议的相应算法用于工业界中。现阶段针对隐私计算协议的通用检测方案是进行单元测试,虽然单元测试在某些特定的程序状态下是有效的,但无法彻底测试几个程序状态之间的交互转换,导致隐私计算协议的可用性缺乏基础。
发明内容
本申请实施例期望提供一种测试方法、装置、设备和存储介质。
本申请的技术方案是这样实现的:
本申请第一方面的实施例提供一种测试方法,包括:
获取至少一种应用程序接口的变量特征;所述变量特征包括所述应用程序接口对应的函数变量和变量类型;
基于所述变量特征生成模糊测试数据集;
将所述模糊测试数据集作为隐私计算协议的输入变量,获取输出变量;
若所述输出变量存在异常,则确定所述隐私计算协议存在漏洞。
可选地,在所述获取至少一种应用程序接口的变量特征之前,所述方法包括:
基于所述应用程序接口对应的不同功能,对所述应用程序接口进行分类处理。
可选地,所述至少一种应用程序接口包括数据库类接口、协议命令执行接口、节点故障测试接口和并发测试接口中的至少之一。
可选地,所述获取至少一种应用程序接口的变量特征,包括:
确定与所述隐私计算协议相关的全部类型的应用程序接口;
获取全部类型的所述应用程序接口的变量特征。
可选地,所述将所述模糊测试数据集作为隐私计算协议的输入变量,获取输出变量,包括:
将所述模糊测试数据集中的第一数据集作为隐私计算协议的第一输入变量,得到第一输出变量;所述第一数据集为第一类应用程序接口对应的模糊测试数据集;所述第一类应用程序接口为所述应用程序接口中的任一类型应用程序接口。
可选地,所述基于所述变量特征生成模糊测试数据集,还包括:
基于所述变量特征对所述隐私计算协议进行模糊处理,生成模糊测试数据集。
可选地,所述基于所述变量特征生成模糊测试数据集,还包括:
基于所述变量特征对所述应用程序接口传递的消息内容进行模糊处理,生成模糊测试数据集。
本申请的第二方面的实施例提供一种测试装置,包括:
第一获取模块,用于获取至少一种应用程序接口的变量特征;所述变量特征包括所述应用程序接口对应的函数变量和变量类型;
生成模块,用于基于所述变量特征生成模糊测试数据集;
第二获取模块,用于将所述模糊测试数据集作为隐私计算协议的输入变量,获取输出变量;
确定模块,用于若所述输出变量存在异常,则确定所述隐私计算协议存在漏洞。
本申请的第三方面的实施例提供一种测试设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,所述处理器执行第一方面所述方法的步骤。
本申请的第四方面的实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现第一方面所述方法的步骤。
本申请实施例提供的一种测试方法、装置、设备和存储介质,其中,所述测试方法包括:获取至少一种应用程序接口的变量特征;所述变量特征包括所述应用程序接口对应的函数变量和变量类型;基于所述变量特征生成模糊测试数据集;将所述模糊测试数据集作为隐私计算协议的输入变量,获取输出变量;若所述输出变量存在异常,则确定所述隐私计算协议存在漏洞。采用本申请的技术方案,通过将模糊测试技术用在隐私计算领域,利用不同类型的应用程序接口的变量特征生成模糊测试数据集,完成模糊测试,从而基于输出结果可以准确判断出隐私计算协议是否存在漏洞,确保了隐私计算协议的可用性和可靠性。
附图说明
图1为本申请实施例提供的一种测试方法的流程示意图;
图2为本申请实施例提供的一种测试装置的结构示意图;
图3为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
此外,附图仅为本申请的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的步骤。例如,有的步骤还可以分解,而有的步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
在此使用的术语的目的仅在于描述具体实施例并且不作为本申请的限制。在此使用时,单数形式的“一”、“一个”和“所述/该”也意图包括复数形式,除非上下文清楚指出另外的方式。还应明白术语“组成”和/或“包括”,当在该说明书中使用时,确定所述特征、整数、步骤、操作、元件和/或部件的存在,但不排除一个或更多其它的特征、整数、步骤、操作、元件、部件和/或组的存在或添加。在此使用时,术语“和/或”包括相关所列项目的任何及所有组合。
隐私计算是涵盖众多学科的交叉融合技术,目前主流的隐私计算技术主要分为三大方向:第一类是以多方安全计算为代表的基于密码学的隐私计算技术;第二类是以联邦学习为代表的人工智能与隐私保护技术融合衍生的技术;第三类是以可信执行环境为代表的基于可信硬件的隐私计算技术。不同技术往往组合使用,在保证原始数据安全和隐私性的同时,完成对数据的计算和分析任务。然而,如何确保使用的隐私计算协议的安全性仍然是当前需要面临的难题。基于此,提出以下实施例。
在一些实施例中,请参阅图1,图1为本申请实施例提供的一种测试方法的流程示意图,该测试方法,包括:
S110,获取至少一种应用程序接口的变量特征;变量特征包括应用程序接口对应的函数变量和变量类型。
本实施例是基于模糊测试原理对隐私计算协议的安全性进行测试。模糊测试是一种软件测试技术,其核心思想是自动或半自动的生成随机数据输入到一个程序中,并监视程序异常,如崩溃,断言(assertion)失败等,以发现可能的程序错误。
根据隐私计算协议的特点,可以分类设计专有的计算协议测试接口集。隐私计算协议中的存储分片、三元组等信息,涉及到数据库的注入性测试和故障测试;启动计算命令等常用接口涉及接口测试;根据不同的隐私计算协议故障节点的容忍度,当故障节点数小于允许的最大故障节点数时仍能够有效实施隐私计算,因此应用程序接口还涉及节点故障注入测试;隐私计算协议需要消耗三元组,涉及到三元组异常注入测试、分片溢出翻转测试等。因此,可以对与隐私计算协议相关的应用程序接口进行分类。
在本实施例中,不同类型的应用程序接口可以分别对应一类变量特征,其函数变量和变量类型与测试的内容相关。
在一可选实施例中,在步骤S110获取至少一种应用程序接口的变量特征之前,所述方法包括:
基于应用程序接口对应的不同功能,对应用程序接口进行分类处理。
具体的,应用程序接口可以包括数据库类接口、协议命令执行接口、节点故障测试接口和并发测试接口。其中,数据库类接口,主要与测试分片、三元组、以及协议状态等相关的接口。协议命令执行接口,是与正常流程、异常分支流程测试、反转溢出类参数测试等相关的接口;节点故障测试接口,是与注入故障、网络、消息延时等相关的接口;并发测试接口,是与并行协议执行,参数下发、查询等相关的接口。
在一可选实施例中,至少一种应用程序接口包括数据库类接口、协议命令执行接口、节点故障测试接口和并发测试接口中的至少之一。
需要说明的是,上述各类应用程序接口都与隐私计算协议相关,在进行测试过程中,可以选取上述应用程序接口中的一类或多类进行测试,以提高测试效率,节省测试时间,也可以对相关的全部应用程序接口进行测试,以提高测试结果的准确性和可靠性。
在一可选实施例中,步骤S110,获取至少一种应用程序接口的变量特征,包括:
确定与隐私计算协议相关的全部类型的应用程序接口;
获取全部类型的应用程序接口的变量特征。
在本实施例中,对与隐私计算协议相关的全部应用程序接口进行测试,通过完成数据库的注入性测试和故障测试、接口测试、节点故障注入测试、三元组异常注入测试、分片溢出翻转测试等测试,获取全部类型的应用程序接口的变量特征,从而确保测试结果的准确性和可靠性。
S120,基于变量特征生成模糊测试数据集。
在本实施例中,每一组变量特征都可以作为一个测试用例。以单项变量特征为例,测试时一般采用“控制变量法”,避免其他参数对待测参数造成影响。上述实施例中的数据库类接口、协议命令执行接口、节点故障测试接口和并发测试接口可以分别对应一种类型的变量特征,进而生成模糊测试数据集。
在一可选实施例中,步骤S120,基于变量特征生成模糊测试数据集,还包括:
基于变量特征对隐私计算协议进行模糊处理,生成模糊测试数据集。
在本实施例中,基于变量特征对隐私计算协议进行模糊处理,生成相应的模糊测试数据集,可以提高测试覆盖率,发现更多的漏洞,以提高测试结果的准确性和可靠性。
在一可选实施例中,步骤S120,基于变量特征生成模糊测试数据集,还包括:
基于变量特征对应用程序接口传递的消息内容进行模糊处理,生成模糊测试数据集。
在本实施例中,选用RESTful(Representational State Transfer,表述性状态转移)应用接口模糊测试方法,保持整个报文消息体结构符合接口规范,针对报文消息体中的各字段展开针对性畸变,生成模糊测试用例,以被目标接口处理,进行深层次覆盖。RESTful应用程序接口的报文消息体中的字段、赋值范围、返回值均有明确的定义,并提供格式明确的配置文件。在OpenAPI规范中,要求使用JSON或YAML格式对接口进行定义,并给出了详细的接口、方法、请求、响应的参数定义,并提供了标准的格模板。通用的隐私计算协议都符合OpenAPI中的接口规范,因此选则RESTful API接口模糊测试方法可以适配所有的隐私计算协议。
本实施例基于变量特征对应用程序接口传递的消息内容进行模糊处理,生成相应的模糊测试数据集,可以提高测试覆盖率,发现更多的漏洞,以提高测试结果的准确性和可靠性。
S130,将模糊测试数据集作为隐私计算协议的输入变量,获取输出变量。
在本实施例中,可以将模糊测试数据集中的适配模糊测试数据逐一作为隐私计算代码的输入变量,驱动隐私计算代码运行,并对隐私计算代码的输出变量进行监测,获取输出变量。适配模糊测试数据为模糊测试数据集中与输入变量的变量类型相同的所有模糊测试数据。
在一可选实施例中,步骤S130,将模糊测试数据集作为隐私计算协议的输入变量,获取输出变量,包括:
将模糊测试数据集中的第一数据集作为隐私计算协议的第一输入变量,得到第一输出变量;第一数据集为第一类应用程序接口对应的模糊测试数据集;第一类应用程序接口为应用程序接口中的任一类型应用程序接口。
这里,第一数据集可以是数据库类接口对应的模糊测试数据集,也可以是协议命令执行接口对应的模糊测试数据集,还可以是节点故障测试接口或并发测试接口对应的模糊测试数据集。将所有类型的模糊测试数据集逐一作为输入,并分别获取对应的输出变量。
S140,若输出变量存在异常,则确定隐私计算协议存在漏洞。
若所有的输出变量均符合预期,则可以确定测试的隐私计算协议不存在漏洞;相应的,若存在一组或多组输出变量不符合预期,则可以确定测试的隐私计算协议存在漏洞。由于模糊测试数据集的覆盖范围较广,因此可以达到较高的测试覆盖率。
本申请实施例通过将模糊测试技术用在隐私计算领域,利用不同类型的应用程序接口的变量特征生成模糊测试数据集,完成模糊测试,从而基于输出结果可以准确判断出隐私计算协议是否存在漏洞,确保了隐私计算协议的可用性和可靠性。
在一些可选实施例中,请参阅图2,图2为本申请实施例提供的一种测试装置的结示意图;本申请实施例提供一种测试装置200,包括:
第一获取模块210,用于获取至少一种应用程序接口的变量特征;变量特征包括应用程序接口对应的函数变量和变量类型;
生成模块220,用于基于变量特征生成模糊测试数据集;
第二获取模块230,用于将模糊测试数据集作为隐私计算协议的输入变量,获取输出变量;
确定模块240,用于若输出变量存在异常,则确定隐私计算协议存在漏洞。
根据隐私计算协议的特点,可以分类设计专有的计算协议测试接口集。隐私计算协议中的存储分片、三元组等信息,涉及到数据库的注入性测试和故障测试;启动计算命令等常用接口涉及接口测试;根据不同的隐私计算协议故障节点的容忍度,当故障节点数小于允许的最大故障节点数时仍能够有效实施隐私计算,因此应用程序接口还涉及节点故障注入测试;隐私计算协议需要消耗三元组,涉及到三元组异常注入测试、分片溢出翻转测试等。因此,可以对与隐私计算协议相关的应用程序接口进行分类。
在本实施例中,不同类型的应用程序接口可以分别对应一类变量特征,其函数变量和变量类型与测试的内容相关。应用程序接口可以包括数据库类接口、协议命令执行接口、节点故障测试接口和并发测试接口。其中,数据库类接口,主要与测试分片、三元组、以及协议状态等相关的接口。协议命令执行接口,是与正常流程、异常分支流程测试、反转溢出类参数测试等相关的接口;节点故障测试接口,是与注入故障、网络、消息延时等相关的接口;并发测试接口,是与并行协议执行,参数下发、查询等相关的接口。每一组变量特征都可以作为一个测试用例。以单项变量特征为例,测试时一般采用“控制变量法”,避免其他参数对待测参数造成影响。上述实施例中的数据库类接口、协议命令执行接口、节点故障测试接口和并发测试接口可以分别对应一种类型的变量特征,进而生成模糊测试数据集。
通过将模糊测试数据集中的适配模糊测试数据逐一作为隐私计算代码的输入变量,驱动隐私计算代码运行,并对隐私计算代码的输出变量进行监测,可以获取相应的输出变量。这里,适配模糊测试数据为模糊测试数据集中与输入变量的变量类型相同的所有模糊测试数据。若所有的输出变量均符合预期,则可以确定测试的隐私计算协议不存在漏洞;相应的,若存在一组或多组输出变量不符合预期,则可以确定测试的隐私计算协议存在漏洞。由于模糊测试数据集的覆盖范围较广,因此可以达到较高的测试覆盖率。
在一些可选实施例中,测试装置200还包括分类模块,分类模块用于:
基于应用程序接口对应的不同功能,对应用程序接口进行分类处理。
应用程序接口可以包括数据库类接口、协议命令执行接口、节点故障测试接口和并发测试接口。
在一可选实施例中,至少一种应用程序接口包括数据库类接口、协议命令执行接口、节点故障测试接口和并发测试接口中的至少之一。
在一可选实施例中,第一获取模块210具体用于:
确定与隐私计算协议相关的全部类型的应用程序接口;
获取全部类型的应用程序接口的变量特征。
在本实施例中,对与隐私计算协议相关的全部应用程序接口进行测试,通过完成数据库的注入性测试和故障测试、接口测试、节点故障注入测试、三元组异常注入测试、分片溢出翻转测试等测试,获取全部类型的应用程序接口的变量特征,从而确保测试结果的准确性和可靠性。
在一可选实施例中,第二获取模块230具体用于:
将模糊测试数据集中的第一数据集作为隐私计算协议的第一输入变量,得到第一输出变量;第一数据集为第一类应用程序接口对应的模糊测试数据集;第一类应用程序接口为应用程序接口中的任一类型应用程序接口。
这里,第一数据集可以是数据库类接口对应的模糊测试数据集,也可以是协议命令执行接口对应的模糊测试数据集,还可以是节点故障测试接口或并发测试接口对应的模糊测试数据集。将所有类型的模糊测试数据集逐一作为输入,并分别获取对应的输出变量。
在一可选实施例中,生成模块220具体用于:
基于变量特征对隐私计算协议进行模糊处理,生成模糊测试数据集。
在一可选实施例中,生成模块220具体还用于:
基于变量特征对应用程序接口传递的消息内容进行模糊处理,生成模糊测试数据集。
基于变量特征分别对隐私计算协议和应用程序接口传递的消息内容进行模糊处理,生成相应的模糊测试数据集,可以提高测试覆盖率,发现更多的漏洞,以提高测试结果的准确性和可靠性。
本申请实施例通过将模糊测试技术用在隐私计算领域,利用不同类型的应用程序接口的变量特征生成模糊测试数据集,完成模糊测试,从而基于输出结果可以准确判断出隐私计算协议是否存在漏洞,确保了隐私计算协议的可用性和可靠性。
这里需要指出的是:以上测试装置实施例的描述,与上述测试方法实施例的描述是类似的,具有同测试方法实施例相似的有益效果。对于本申请测试装置实施例中未披露的技术细节,请参照本申请测试方法实施例的描述而理解,在此不再一一赘述。
在一些实施例中,本申请实施例提供一种电子设备,请参阅图3,图3为本申请实施例提供的一种电子设备的结构示意图,该电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,所述处理器执行上述测试方法的步骤。
该电子设备可以是终端、服务器或者类似的运算装置。该电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central ProcessingUnits,CPU),包括但不限于微处理器MCU或可编程逻辑器件FPGA、用于存储数据的存储器,一个或一个以上存储应用程序或数据的存储介质(例如一个或一个以上海量存储设备)。其中,存储器和存储介质可以是短暂存储或持久存储。存储在存储介质的程序可以包括一个或一个以上模块,每个模块可以包括对电子设备中的一系列指令操作。更进一步地,中央处理器可以设置为与存储介质通信,在电子设备上执行存储介质中的一系列指令操作。电子设备还可以包括一个或一个以上电源,一个或一个以上有线或无线网络接口,一个或一个以上输入输出接口,和/或,一个或一个以上操作系统,例如Windows Server,Mac OS X,Unix,Linux,FreeBSD等等。输入输出接口可以用于经由一个网络接收或者发送数据。上述的网络具体实例可包括电子设备的通信供应商提供的无线网络。
在一个实例中,输入输出接口包括一个网络适配器(Network InterfaceController,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个示例性实施例中,输入输出接口可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
本领域普通技术人员可以理解,图3所示的结构仅为示意,其并不对上述电子设备的结构造成限定。例如,电子设备还可包括比图3中所示更多或者更少的组件,或者具有与图3所示不同的配置。
在一些实施例中,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现上述测试方法的步骤。
这里需要指出的是:以上电子设备实施例和存储介质实施例的描述,与上述测试方法实施例的描述是类似的,具有同测试方法实施例相似的有益效果。对于本申请电子设备实施例和存储介质实施例中未披露的技术细节,请参照本申请测试方法实施例的描述而理解,在此不再一一赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的测试方法、装置、设备和存储介质可以通过其他的方式实现。以上所描述的方法、装置、电子设备和存储介质实施例仅仅是示意性的。
本申请实施例中记载的一种测试方法、装置、电子设备和存储介质只以本申请所述实施例为例,但不仅限于此,只要涉及到该测试方法、装置、电子设备和存储介质均在本申请的保护范围。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
- 一种备份特性测试方法、装置、设备及存储介质
- 一种硬盘测试方法、装置、设备以及计算机可读存储介质
- 一种测试方法、装置、电子设备和存储介质
- 一种快照特性测试方法、装置、设备及存储介质
- 一种性能测试方法、装置、电子设备以及存储介质
- 存储设备自动测试方法、装置、存储设备及存储介质
- 一种存储设备链路的测试方法、装置、设备、存储介质