CN113176968B - 基于接口参数分类的安全测试方法、装置及存储介质 - Google Patents

基于接口参数分类的安全测试方法、装置及存储介质 Download PDF

Info

Publication number
CN113176968B
CN113176968B CN202110572105.4A CN202110572105A CN113176968B CN 113176968 B CN113176968 B CN 113176968B CN 202110572105 A CN202110572105 A CN 202110572105A CN 113176968 B CN113176968 B CN 113176968B
Authority
CN
China
Prior art keywords
interface
classification
information
parameter
test
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.)
Active
Application number
CN202110572105.4A
Other languages
English (en)
Other versions
CN113176968A (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.)
Ping An International Smart City Technology Co Ltd
Original Assignee
Ping An International Smart City Technology Co Ltd
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 Ping An International Smart City Technology Co Ltd filed Critical Ping An International Smart City Technology Co Ltd
Priority to CN202110572105.4A priority Critical patent/CN113176968B/zh
Publication of CN113176968A publication Critical patent/CN113176968A/zh
Application granted granted Critical
Publication of CN113176968B publication Critical patent/CN113176968B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1608Error detection by comparing the output signals of redundant hardware
    • G06F11/1625Error detection by comparing the output signals of redundant hardware in communications, e.g. transmission, interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及安全测试技术领域,提供一种基于接口参数分类的安全测试方法、电子设备、装置及存储介质,其中的方法包括:获取待测试接口的接口文档,并提取所述接口文档中的参数分类信息;根据预设的分类规则对所述参数分类信息进行分类,以得到分类结果;自预设的测试用例集内获取与所述分类结果相匹配的实时测试用例,并通过所述实时测试用例对所述待测试接口进行安全渗透测试,以得到所述待测试接口的测试响应结果;根据所述测试响应结果判断所述待测试接口是否存在安全漏洞。本发明提供的技术方案既能够解决现有的接口安全测试方法的针对性低,无法接近真实使用场景,存在盲测、漏测等现象的问题。

Description

基于接口参数分类的安全测试方法、装置及存储介质
技术领域
本发明涉及安全测试技术领域,尤其涉及一种基于接口参数分类的安全测试方法、装置、电子设备及存储介质。
背景技术
在计算机软件测试过程中,对于某一软件来说,由于该软件使用的场景多种多样,因此,为保证该软件上线时适配各类场景,需要对该软件的接口进行安全测试。
目前的接口安全测试通常采用人工的测试方法,然而,采用人工测试存在安全测试数据准备周期长、且容易出错及存在漏检的情况;并且,由于安全渗透测试执行时间长,因此经常出现与项目交互周期存在相冲突情况。
除此之外,在现有的接口安全测试方法中,还存在以下的不足之处:
1、现有的接口安全测试方法没有自动识别参数分类及其对应的位置的功能:如在HTTP请求接口时,不能判定有哪些参数归属于request header,有哪些参数归属于requestbody。
2、现有的接口安全测试方法没无法自动识别参数类型:如在HTTP请求接口时,由于当前软件开发的众多化,接口参数的类型定义难以做明确的归类,不能实现对各参数的类型进行分类。
由于现有的接口安全测试方法存在以上两个技术问题,因此在执行接口安全测试的时候,容易导致测试时无法接近真实使用场景,存在盲测、漏测等现象,无法对接口进行针对性的进行安全渗透测试。
基于此,亟需一种具有针对性的接口安全渗透测试方法。
发明内容
本发明提供一种基于接口参数分类的安全测试方法、装置、电子设备以及存储介质,其主要目的在于解决现有的接口安全测试方法的针对性低,无法接近真实使用场景,存在盲测、漏测等现象的问题。
为实现上述目的,本发明提供一种基于接口参数分类的安全测试方法,该方法包括如下步骤:
获取待测试接口的接口文档,并提取所述接口文档中的参数分类信息;
根据预设的分类规则对所述参数分类信息进行分类,以得到分类结果;
自预设的测试用例集内获取与所述分类结果相匹配的实时测试用例,并通过所述实时测试用例对所述待测试接口进行安全渗透测试,以得到所述待测试接口的测试响应结果;
根据所述测试响应结果判断所述待测试接口是否存在安全漏洞。
优选地,所述提取接口文档中的参数分类信息包括:
根据预设的正则解析方法对所述接口文档中保存所有接口信息进行解析,以提取出所述接口文档中的所述参数分类信息。
优选地,所述参数分类信息包括请求参数分类信息和业务参数分类信息;并且,所述根据预设的分类规则对所述参数分类信息进行分类,以得到分类结果包括:
根据预设的关键字匹配分类规则对所述请求参数分类信息进行分类,以得到请求参数分类结果;
根据预设的映射分类规则对所述业务参数分类信息进行分类,以得到业务参数分类结果。
优选地,所述请求参数分类信息包括接口headers信息和接口http method信息;并且,所述根据预设的关键字匹配分类规则对所述请求参数分类信息进行分类,以得到请求参数分类结果包括:
通过所述关键字匹配分类规则对所述接口headers信息进行分类,以得到headers信息分类结果;
通过所述关键字匹配分类规则对所述http method信息进行分类,以得到method信息分类结果;
对所述headers信息分类结果和所述method信息分类结果进行组合,以得到所述请求参数分类结果。
优选地,所述业务参数分类信息包括所述待测试接口的参数列表中的所有参数列表信息;并且,所述根据预设的映射分类规则对所述业务参数分类信息进行分类,以得到业务参数分类结果包括:
根据预设的映射关系分别映射出各参数列表信息的键值类型;
根据所述键值类型确定各参数列表信息的业务参数分类结果。
优选地,所述自预设的测试用例集内获取与所述分类结果相匹配的实时测试用例,并通过所述实时测试用例对所述待测试接口进行安全渗透测试,以得到所述待测试接口的测试响应结果包括:
根据所述请求参数分类结果和各参数列表信息的业务参数分类结果遍历所述测试用例集的所有测试用例,以得到所有的与所述请求参数分类结果以及各参数列表信息的业务参数分类结果相匹配的实时测试用例;其中,各实时测试用例的请求方式与所述请求参数分类结果对应,各实时测试用例的业务类型与相应的参数列表信息的业务参数分类结果对应;
依次通过各实时测试用例对所述待测试接口进行安全渗透测试,以得到所述待测试接口与各实时测试用例相对应的测试响应结果。
优选地,测试响应结果包括产生通过响应和未产生通过响应;并且,所述根据所述测试响应结果判断所述待测试接口是否存在安全漏洞包括:
若所述待测试接口在各实时测试用例下的测试响应结果均为未产生通过响应,则判断所述待测试接口不存在安全漏洞;
否则,判断所述待测试接口存在安全漏洞。
此外,本发明还提供一种基于接口参数分类的安全测试装置,该装置包括:
参数获取单元,用于获取待测试接口的接口文档,并提取所述接口文档中的参数分类信息;
参数分类单元,用于根据预设的分类规则对所述参数分类信息进行分类,以得到分类结果;
测试单元,用于自预设的测试用例集内获取与所述分类结果相匹配的实时测试用例,并通过所述实时测试用例对所述待测试接口进行安全渗透测试,以得到所述待测试接口的测试响应结果;
漏洞判断单元,用于根据所述测试响应结果判断所述待测试接口是否存在安全漏洞。
另一方面,本发明还提供一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现前述的基于接口参数分类的安全测试方法中的步骤。
此外,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现前述的基于接口参数分类的安全测试方法中的步骤。
本发明提出的基于接口参数分类的安全测试方法、装置、电子设备以及可读存储介质,通过对请求参数分类信息以及业务参数分类信息进行自动化分类,再通过根据分类结果针对性的执行所对应的测试用例,能够显示减少以往安全测试方案里的盲测带来的效能弊端;与此同时,本方案增加了请求参数的分类,从而更加贴近于实际业务覆盖的场景,能够弥补盲测的漏测情况的发生;此外,本发明提出的基于接口参数分类的安全测试方法,也将原本接口安全测试领域的测试方法简单化,对于接口层自动化渗透,显著提高了软件测试质量,扩大了测试有效覆盖面,将接口安全测试的执行顺序提前,更加有效地提高项目交互质量。
附图说明
图1为根据本发明实施例的基于接口参数分类的安全测试方法的较佳实施例流程图;
图2为根据本发明实施例的基于接口参数分类的安全测试装置的模块示意图;
图3为根据本发明实施例的提供的实现基于接口参数分类的安全测试方法的电子设备的内部结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
在下面的描述中,出于说明的目的,为了提供对一个或多个实施例的全面理解,阐述了许多具体细节。然而,很明显,也可以在没有这些具体细节的情况下实现这些实施例。
以下将结合附图对本申请的具体实施例进行详细描述。
实施例1
为了说明本发明提供的基于接口参数分类的安全测试方法,图1示出了根据本发明提供的基于接口参数分类的安全测试方法的流程。
如图1所示,本发明提供的基于接口参数分类的安全测试方法,包括:
S110:获取待测试接口的接口文档,并提取所述接口文档中的参数分类信息。
具体地,所述接口文档中保存有所述待测试接口的所有接口信息。因此,在导入获取待测试接口的接口文档后,需要通过预设的正则解析方法对所述接口文档中的所有的接口信息进行正则解析,以提取出与对所述待测试接口进行参数分类的相关的参数分类信息;需要说明的是,所述参数分类信息用于后续对所述待测试接口进行参数分类,接口文档中其余的接口信息在本发明中的后续处理过程中不会使用,因此,不需要获取其余的接口信息。
需要进一步说明的是,所述接口文档中保存有所述待测试接口的所有接口信息,详细信息包括接口url、接口headers信息、接口http method信息、参数列表信息等等,而与待测试接口进行参数分类的参数分类信息只包括:接口headers信息、接口http method信息以及参数列表信息,为保证工作效率,本发明只需要提取出接口文档中的接口headers信息、接口http method信息以及参数列表信息即可,后续通过这三类信息实现对所述待测试接口的参数分类。
具体地,对于http method信息、参数列表信息以及接口headers信息的提取,均可以通过预设的正则解析方法对待测试接口的接口文档进行正则解析的方式进行获取。
需要说明的是,正则解析方法是一种现有的数据提取方法,主要过程为:通过httpmethod信息、参数列表信息以及接口headers信息这三类信息中数据的特性(例如,数据中包含特殊字符、数据中字符串的位数、数据分布形式,数据中数字排列顺序、数据中的关键字等等,只要能够唯一代表该类信息即可),预先设定相应的正则表达式,在数据提取过程中,若该接口文档中的接口信息与预先设定的正则表达式相匹配,则确定该信息为所需的http method信息或参数列表信息或接口headers信息。
例如,若所述待测试接口的接口文档中的某一信息包含字符串:“http method”,则确定该接口信息为所述待测试接口的http method信息;若所述待测试接口的接口文档中的某一信息的数据分布形式为列表形式,则确定该信息为所述待测试接口的参数列表信息;若所述待测试接口的接口文档中的某一信息包含字符串:“headers”,则确定该信息为所述待测试接口的接口headers信息。
S120:根据预设的分类规则对所述参数分类信息进行分类,以得到分类结果。
需要说明的是,待测试接口的参数分类信息可分为两类,一类与所述待测试接口的请求相关,记为请求参数分类信息,包括http method信息(请求方式信息)和接口headers信息;另一类与业务相关,记为业务参数分类信息,包括参数列表信息。
具体地,预设的分类规则主要包括关键字匹配分类规则和映射分类规则,其中,关键字匹配分类规则用于对参数分类信息进行分类,映射分类规则用于对业务参数分类信息进行分类,下面详细介绍这两类分类信息的具体分类方式,其中,请求参数分类信息的分类结果记为请求参数分类结果,业务参数分类信息的分类结果记为业务参数分类结果。
所述根据预设的分类规则对所述参数分类信息进行分类,以得到分类结果包括:
根据预设的关键字匹配分类规则对所述请求参数分类信息进行分类,以得到请求参数分类结果;
根据预设的映射分类规则对所述业务参数分类信息进行分类,以得到业务参数分类结果。
更为具体地,所述根据预设的关键字匹配分类规则对所述请求参数分类信息进行分类,以得到请求参数分类结果包括:
通过所述关键字匹配分类规则对所述接口headers信息进行分类,以得到headers信息分类结果;
通过所述关键字匹配分类规则对所述http method信息进行分类,以得到method信息分类结果;
对所述headers信息分类结果和所述method信息分类结果进行组合,以得到所述请求参数分类结果。
需要说明的是,对于请求参数分类信息,http method信息可分为POST、GET、DELETE、HEAD、PUT、OPTIONS、PATCH、TRACE、CONNECT九类,在实际请求过程中,每一次的接口请求,均对应一种http method信息类型。因此,可以通过关键字匹配的方式对http method信息进行分类,例如,可以通过POST、GET、DELETE、HEAD、PUT、OPTIONS、PATCH、TRACE、CONNECT这九个英文字符串分别对http method信息中的所有字符串进行遍历,若httpmethod信息中包含字符串:“POST”,则确定http method信息的分类结果为POST型,若httpmethod信息中包含字符串:“GET”,则确定http method信息的分类结果为GET型,若httpmethod信息中包含字符串:“DELETE”,则确定http method信息的分类结果为DELETE型,通过这种字符串型关键字的匹配,即可实现http method信息。
此外,对于接口headers信息(接口请求头信息),分类类型包括Accept、Accept-Charse、Accept-Encoding、Accept-Datetime等等,接口headers信息是与http method信息相对应的信息,对于待测试接口的接口文档中的任何一个历史请求,均存在与之对应的http method信息和headers信息。因此,可以通过待测试接口的接口文档中的http method信息与headers信息的分类组合方式,确定请求参数分类结果。例如,http method信息的分类类型有9种,接口headers信息的分类类型有10中,若每一种接口headers信息均有与之对应的9种http method信息,则分类组合方式共有90种。最后,基于所有的分类组合方式对实现上述请求参数分类信息的最终分类,得到请求参数分类结果(如上示例,分类结果即分为90种)。
具体地,所述根据预设的映射分类规则对所述业务参数分类信息进行分类,以得到业务参数分类结果包括:
根据预设的映射关系分别映射出各参数列表信息的键值类型;
根据所述键值类型确定各参数列表信息的业务参数分类结果。
需要说明的是,对于业务参数分类信息,由于其只包含参数列表信息,因此,对参数列表信息进行的分类信息即为业务参数分类信息的分类结果(即业务参数分类结果)。此外,由于参数列表信息中包含了整个表格中的多个业务参数信息,包括更新状态信息、查询业务信息、header token信息、转账信息等等,在实际进行分类的过程中,需要对整个表格中的各个业务参数信息分别进行分类,以得到各业务参数信息的分类类型,其中,整个表格中的所有业务参数信息的分类类型共同构成了业务参数分类结果。
需要说明的是,对于参数列表信息中的每一类业务参数信息需要预先分别为其设定相应的映射关系,每一类业务参数信息通过该映射关系映射一种key_Type(键值类型),例如,若该业务参数信息的类型为自增型int类型,则其映射key_Type1,若该业务参数信息的类型为时间戳值类型,则其映射为key_Type1,若该业务参数信息的类型为数字类型,则其映射为key_Type3。
下面详细介绍参数列表信息的具体分类过程:
依次自所述参数列表信息中获取各业务参数信息;
基于预设的映射关系对各业务参数信息进行正则解析处理,以获取与各业务参数信息对应的key_Type;
对各业务参数信息与其对应的key_Type进行归一化处理,以得到各业务参数信息与其key_Type相关联的接口参数列表的参数字典,如:
{key|value:key_Type},其中,key|valu为业务参数信息的参数值,key_Type值具体可为[int(包括自增和自减),float,bool,string,timestamp,uuid,date,file,ip,mail,phone]中的其一或多个(在与多种key_Type匹配时)。
需要说明的是,在得到参数列表信息的参数字典后,即实现了参数列表信息的最终分类,即二级分类。
S130:自预设的测试用例集内获取与所述分类结果相匹配的实时测试用例,并通过所述实时测试用例对所述待测试接口进行安全渗透测试,以得到所述待测试接口的测试响应结果。
具体地,所述自预设的测试用例集内获取与所述分类结果相匹配的实时测试用例,并通过所述实时测试用例对所述待测试接口进行安全渗透测试,以得到所述待测试接口的测试响应结果包括:
根据所述请求参数分类结果和各参数列表信息的业务参数分类结果遍历所述测试用例集的所有测试用例,以得到所有的与所述请求参数分类结果以及各参数列表信息的业务参数分类结果相匹配的实时测试用例;其中,各实时测试用例的请求方式与所述请求参数分类结果对应,各实时测试用例的业务类型与相应的参数列表信息的业务参数分类结果对应;
依次通过各实时测试用例对所述待测试接口进行安全渗透测试,以得到所述待测试接口与各实时测试用例相对应的测试响应结果。
需要说明的是,对于预设测试用例集的建立,记步骤S120中的请求参数分类信息的所有分类类型为m种,业务参数分类信息中业务参数信息的所有分类类型有n种,而在接口的实际请求访问过程中,每一种业务参数信息均有可能对应所有种类的请求参数分类信息,因此,就会产生最多m*n种,则可相应的设定m*n组测试用例,在设定测试用例的过程中,测试用例的请求方式可根据相应类型的请求参数分类信息设定,测试用例的实际测试参数可根据相应类型的业务参数信息设定,例如,某组测试用例对应的请求参数分类信息的类型为POST、Accept,业务参数信息类型为自增型int类型,数值为21001,则可设定一系列请求类型为非POST、非Accept,且业务参数信息类型为非自增型int类型的测试用例,组成一组测试用例;重复上述过程,则可形成m*n组测试用例,将其存入预设的数据集接口形成预设测试用例集。
需要说明的是,由于预设测试用例集中存储有与所有分类结果对应的测试用例组,因此根据步骤S120中的分类结果(包括一级分类结果和二级分类结果,)遍历预设测试用例集Cases{key_Type},即可得到相匹配测试用例,最后根据相匹配测试用例建立实时测试用例集。
需要说明的是,预设测试用例集在建立过程,需要先使用同上述S120步骤相类似的步骤,确定所有接口的所有一级分类结果和二级分类结果(具体过程在此不再赘述)。然后,调整各二级分类结果下的业务参数信息,形成与该历史请求相对应的一组调整历史请求,记为该历史请求的一组测试用例,基于同样的方法,将针对本地系统内所有接口的所有历史请求均建立出一组测试用例,并将所有的测试用例按照一级分类结果、二级分类结果保存至预设数据库,即可得到预设测试用例集。
S140:根据所述测试响应结果判断所述待测试接口是否存在安全漏洞。
具体地,测试响应结果包括产生通过响应和未产生通过响应;并且,所述根据所述测试响应结果判断所述待测试接口是否存在安全漏洞包括:
若所述待测试接口在各实时测试用例下的测试响应结果均为未产生通过响应,则判断所述待测试接口不存在安全漏洞;
否则,判断所述待测试接口存在安全漏洞。
具体地,所述待测试接口在某一个实时测试用例的测试过程中,若该实时测试用例直接通过该待测试接口并能够产生相应,则判定所述待测试接口存在安全漏洞,如果存在安全漏洞则退出当前待测接口的测试并自动记录上报安全漏洞;否则(即该待测试接口未产生相应),则执行下一个与二级分类结果对应的实时测试用例至执行结束,跳转渗透分析下一参数并重复以上步骤,直至所述实时测试用例集内的所有实时测试用例测试后均未存在安全漏洞,则判定待测试接口通过安全测试,不存在安全漏洞。
此外,需要说明的是,在实际测试过程中,有时导入的文件为多个接口的接口文档,此时则需要先对接口文档中的接口信息进行分类,以区分哪些接口信息属于第一接口的信息,哪些属于其他接口的信息。
具体的分类方法为通过正则解析方法对各接口信息进行解析,以确定接口信息的分属接口。需要说明的是,该正则解析方法与上述步骤S110中的解析方法的原理相同,需要先根据不同接口的接口信息的特性设置正则表达式,然后通过正则表达式提取出该接口文档中各接口的接口信息。当各接口的接口信息确定后,即可通过上述步骤S110至S140实现各接口的安全测试。
下面结合示例对其分类测试过程进行进一步说明:
在实际使用过程,可以通过参数值分类的方式,将requests请求中的请求参数通过其输入值的不同类型进行分类以及测试,例如:对于下表中的请求参数:
如在Example_1中id的值为21001,可猜测id可能是自增型int类型,在得到这个id后我们让系统自动注入非int类型的值,通过接口的返回验证是否存在接口层漏洞问题;如status参数值为1,可猜测为是数字类型[-1,0,1,2,3,4,…],我们得到status之后通过自动遍历数字类型及非数字类型的用例,观察接口层是否存在漏洞问题。
如在Example_2中queryTime参数值可猜测是一个时间戳值类型,ques参数值为字符串类型,得知分类[dateTime,String]之后,让系统遍历这两种类型的安全渗透用例,通过其接口返回结果判断是否存在接口漏洞问题。
如在Example_3中的token参数,通过其值分类为[token],通过md5、uuid4或不同权限的用户登陆自动执行替换令牌,渗透测试其token的安全漏洞。
如在Example_4中money的值猜测是number型的值,在获取此分类后,执行对应的渗透用例,如-1、2147484649等等,通过接口返回判断是否存在安全漏洞问题。
在分类器中分成两部分:request method分类[GET,POST,DELETE]、parameters分类[id型,time型,random型,string型,token型,status型,文件后缀型,number型,……]。不同的参数类型值均有对应的测试用例用于测试其接口层的安全型。通过分类能够更精确的去执行渗透,在执行层面更有针对性,效率更高。
通过上述具体实施例可知,本发明提出的基于接口参数分类的安全测试方法,通过对请求参数分类信息以及业务参数分类信息进行自动化分类,再通过根据分类结果针对性的执行所对应的测试用例,能够显示减少以往安全测试方案里的盲测带来的效能弊端;与此同时,本方案增加了请求参数的分类,从而更加贴近于实际业务覆盖的场景,能够弥补盲测的漏测情况的发生;此外,本发明提出的基于接口参数分类的安全测试方法,也将原本接口安全测试领域的测试方法简单化,对于接口层自动化渗透,显著提高了软件测试质量,扩大了测试有效覆盖面,将接口安全测试的执行顺序提前,更加有效地提高项目交互质量。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
如图2所示,本发明还提供一种基于接口参数分类的安全测试装置100,该装置可以安装于电子设备中。根据实现的功能,该基于接口参数分类的安全测试装置100可以包括参数获取单元101、参数分类单元102、测试单元103、漏洞判断单元104。本发明提供的上述单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
在本实施例中,关于各模块/单元的功能如下:
参数获取单元101,用于获取待测试接口的接口文档,并提取所述接口文档中的参数分类信息;
参数分类单元102,用于根据预设的分类规则对所述参数分类信息进行分类,以得到分类结果;
测试单元103,用于自预设的测试用例集内获取与所述分类结果相匹配的实时测试用例,并通过所述实时测试用例对所述待测试接口进行安全渗透测试,以得到所述待测试接口的测试响应结果;
漏洞判断单元104,用于根据所述测试响应结果判断所述待测试接口是否存在安全漏洞。
此外,所述参数分类信息包括请求参数分类信息和业务参数分类信息,并且,所述参数分类单元102包括关键字匹配单元和映射分类单元,其中,关键字匹配单元用于根据预设的关键字匹配分类规则对所述请求参数分类信息进行分类,以得到请求参数分类结果;映射分类单元用于根据预设的映射分类规则对所述业务参数分类信息进行分类,以得到业务参数分类结果。
另外,所述请求参数分类信息包括接口headers信息和接口http method信息;并且,关键字匹配单元包括:
关键字第一匹配单元,用于通过所述关键字匹配分类规则对所述接口headers信息进行分类,以得到headers信息分类结果;
关键字第二匹配单元,用于通过所述关键字匹配分类规则对所述http method信息进行分类,以得到method信息分类结果;
分类组合单元,用于对所述headers信息分类结果和所述method信息分类结果进行组合,以得到所述请求参数分类结果。
此外,所述业务参数分类信息包括所述待测试接口的参数列表中的所有参数列表信息;并且,所述映射分类单元包括:
键值类型确定单元,用于根据预设的映射关系分别映射出各参数列表信息的键值类型;
业务参数分类单元,用于根据所述键值类型确定各参数列表信息的业务参数分类结果。
另外,所述测试单元103包括:实时用例获取单元,用于根据所述请求参数分类结果和各参数列表信息的业务参数分类结果遍历所述测试用例集的所有测试用例,以得到所有的与所述请求参数分类结果以及各参数列表信息的业务参数分类结果相匹配的实时测试用例;其中,各实时测试用例的请求方式与所述请求参数分类结果对应,各实时测试用例的业务类型与相应的参数列表信息的业务参数分类结果对应;
用例测试单元,用于依次通过各实时测试用例对所述待测试接口进行安全渗透测试,以得到所述待测试接口在各实时测试用例下的测试响应结果。
如图3所示,本发明还提供一种基于接口参数分类的安全测试方法的电子设备1。
该电子设备1可以包括处理器10、存储器11和总线,还可以包括存储在存储器11中并可在所述处理器10上运行的计算机程序,如基于接口参数分类的安全测试程序12。
其中,所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。所述存储器11在一些实施例中可以是电子设备1的内部存储单元,例如该电子设备1的移动硬盘。所述存储器11在另一些实施例中也可以是电子设备1的外部存储设备,例如电子设备1上配备的插接式移动硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(SecureDigital,SD)卡、闪存卡(Flash Card)等。进一步地,所述存储器11还可以既包括电子设备1的内部存储单元也包括外部存储设备。所述存储器11不仅可以用于存储安装于电子设备1的应用软件及各类数据,例如基于接口参数分类的安全测试程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
所述处理器10在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器10是所述电子设备的控制核心(Control Unit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器11内的程序或者模块(例如基于接口参数分类的安全测试程序等),以及调用存储在所述存储器11内的数据,以执行电子设备1的各种功能和处理数据。
所述总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器11以及至少一个处理器10等之间的连接通信。
图3仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图3示出的结构并不构成对所述电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
例如,尽管未示出,所述电子设备1还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器10逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备1还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
进一步地,所述电子设备1还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该电子设备1与其他电子设备之间建立通信连接。
可选地,该电子设备1还可以包括用户接口,用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备1中处理的信息以及用于显示可视化的用户界面。
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
所述电子设备1中的所述存储器11存储的基于接口参数分类的安全测试程序12是多个指令的组合,在所述处理器10中运行时,可以实现:
获取待测试接口的接口文档,并提取所述接口文档中的参数分类信息;
根据预设的分类规则对所述参数分类信息进行分类,以得到分类结果;
自预设的测试用例集内获取与所述分类结果相匹配的实时测试用例,并通过所述实时测试用例对所述待测试接口进行安全渗透测试,以得到所述待测试接口的测试响应结果;
根据所述测试响应结果判断所述待测试接口是否存在安全漏洞。
具体地,所述处理器10对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。需要强调的是,为进一步保证上述基于接口参数分类的安全测试的私密和安全性,上述测试用例集中的测试用例存储于本服务器集群所处区块链的节点中。
进一步地,所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)。
本发明实施例还提供一种计算机可读存储介质,所述存储介质可以是非易失性的,也可以是易失性的,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现:
获取待测试接口的接口文档,并提取所述接口文档中的参数分类信息;
根据预设的分类规则对所述参数分类信息进行分类,以得到分类结果;
自预设的测试用例集内获取与所述分类结果相匹配的实时测试用例,并通过所述实时测试用例对所述待测试接口进行安全渗透测试,以得到所述待测试接口的测试响应结果;
根据所述测试响应结果判断所述待测试接口是否存在安全漏洞。
具体地,所述计算机程序被处理器执行时具体实现方法可参考实施例基于接口参数分类的安全测试方法中相关步骤的描述,在此不赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

Claims (7)

1.一种基于接口参数分类的安全测试方法,应用于电子装置,其特征在于,所述方法包括:
获取待测试接口的接口文档,并提取所述接口文档中的参数分类信息;
根据预设的分类规则对所述参数分类信息进行分类,以得到分类结果;
自预设的测试用例集内获取与所述分类结果相匹配的实时测试用例,并通过所述实时测试用例对所述待测试接口进行安全渗透测试,以得到所述待测试接口的测试响应结果;
根据所述测试响应结果判断所述待测试接口是否存在安全漏洞;其中,所述参数分类信息包括请求参数分类信息和业务参数分类信息,所述请求参数分类信息包括接口headers信息和接口http method信息;所述业务参数分类信息包括所述待测试接口的参数列表中的所有参数列表信息;所述根据预设的分类规则对所述参数分类信息进行分类,以得到分类结果包括:
通过关键字匹配分类规则对所述接口headers信息进行分类,以得到headers信息分类结果;
通过所述关键字匹配分类规则对所述http method信息进行分类,以得到method信息分类结果;
对所述headers信息分类结果和所述method信息分类结果进行组合,以得到请求参数分类结果;
并且,所述根据预设的分类规则对所述参数分类信息进行分类,以得到分类结果还包括:根据预设的映射关系分别映射出各参数列表信息的键值类型;根据所述键值类型确定各参数列表信息的业务参数分类结果。
2.根据权利要求1所述的基于接口参数分类的安全测试方法,其特征在于,所述提取接口文档中的参数分类信息包括:
根据预设的正则解析方法对所述接口文档中保存的所有接口信息进行解析,以提取出所述接口文档中的所述参数分类信息。
3.根据权利要求1所述的基于接口参数分类的安全测试方法,其特征在于,所述自预设的测试用例集内获取与所述分类结果相匹配的实时测试用例,并通过所述实时测试用例对所述待测试接口进行安全渗透测试,以得到所述待测试接口的测试响应结果包括:
根据所述请求参数分类结果和各参数列表信息的业务参数分类结果遍历所述测试用例集的所有测试用例,以得到所有的与所述请求参数分类结果以及各参数列表信息的业务参数分类结果相匹配的实时测试用例;其中,各实时测试用例的请求方式与所述请求参数分类结果对应,各实时测试用例的业务类型与相应的参数列表信息的业务参数分类结果对应;
依次通过各实时测试用例对所述待测试接口进行安全渗透测试,以得到所述待测试接口与各实时测试用例相对应的测试响应结果。
4.根据权利要求3所述的基于接口参数分类的安全测试方法,其特征在于,测试响应结果包括产生通过响应和未产生通过响应;并且,所述根据所述测试响应结果判断所述待测试接口是否存在安全漏洞包括:
若所述待测试接口在各实时测试用例下的测试响应结果均为未产生通过响应,则判断所述待测试接口不存在安全漏洞;
否则,判断所述待测试接口存在安全漏洞。
5.一种基于接口参数分类的安全测试装置,其特征在于,包括:
参数获取单元,用于获取待测试接口的接口文档,并提取所述接口文档中的参数分类信息;
参数分类单元,用于根据预设的分类规则对所述参数分类信息进行分类,以得到分类结果;其中,所述参数分类信息包括请求参数分类信息和业务参数分类信息,所述请求参数分类信息包括接口headers信息和接口http method信息;所述业务参数分类信息包括所述待测试接口的参数列表中的所有参数列表信息;所述根据预设的分类规则对所述参数分类信息进行分类,以得到分类结果包括:
通过关键字匹配分类规则对所述接口headers信息进行分类,以得到headers信息分类结果;
通过所述关键字匹配分类规则对所述http method信息进行分类,以得到method信息分类结果;
对所述headers信息分类结果和所述method信息分类结果进行组合,以得到请求参数分类结果;
并且,所述根据预设的分类规则对所述参数分类信息进行分类,以得到分类结果还包括:根据预设的映射关系分别映射出各参数列表信息的键值类型;根据所述键值类型确定各参数列表信息的业务参数分类结果;
测试单元,用于自预设的测试用例集内获取与所述分类结果相匹配的实时测试用例,并通过所述实时测试用例对所述待测试接口进行安全渗透测试,以得到所述待测试接口的测试响应结果;
漏洞判断单元,用于根据所述测试响应结果判断所述待测试接口是否存在安全漏洞。
6.一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述基于接口参数分类的安全测试方法的步骤。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4中任一项所述的基于接口参数分类的安全测试方法中的步骤。
CN202110572105.4A 2021-05-25 2021-05-25 基于接口参数分类的安全测试方法、装置及存储介质 Active CN113176968B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110572105.4A CN113176968B (zh) 2021-05-25 2021-05-25 基于接口参数分类的安全测试方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110572105.4A CN113176968B (zh) 2021-05-25 2021-05-25 基于接口参数分类的安全测试方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN113176968A CN113176968A (zh) 2021-07-27
CN113176968B true CN113176968B (zh) 2023-08-18

Family

ID=76928207

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110572105.4A Active CN113176968B (zh) 2021-05-25 2021-05-25 基于接口参数分类的安全测试方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN113176968B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114637690B (zh) * 2022-05-09 2023-04-11 北京航天驭星科技有限公司 一种api渗透测试方法、系统、电子设备及存储介质
CN115695267B (zh) * 2022-10-28 2024-05-03 北京鼎泰智源科技有限公司 一种面向数据接口的测试和验证方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106470132A (zh) * 2015-08-19 2017-03-01 阿里巴巴集团控股有限公司 水平权限测试方法及装置
CN111679989A (zh) * 2020-06-16 2020-09-18 贝壳技术有限公司 接口健壮性测试方法、装置、电子设备及存储介质
CN112000566A (zh) * 2019-05-27 2020-11-27 腾讯科技(深圳)有限公司 测试用例的生成方法及装置
CN112597018A (zh) * 2020-12-22 2021-04-02 未来电视有限公司 接口测试用例生成方法、装置、设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9218269B2 (en) * 2012-09-07 2015-12-22 Red Hat Israel, Ltd. Testing multiple target platforms

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106470132A (zh) * 2015-08-19 2017-03-01 阿里巴巴集团控股有限公司 水平权限测试方法及装置
CN112000566A (zh) * 2019-05-27 2020-11-27 腾讯科技(深圳)有限公司 测试用例的生成方法及装置
CN111679989A (zh) * 2020-06-16 2020-09-18 贝壳技术有限公司 接口健壮性测试方法、装置、电子设备及存储介质
CN112597018A (zh) * 2020-12-22 2021-04-02 未来电视有限公司 接口测试用例生成方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN113176968A (zh) 2021-07-27

Similar Documents

Publication Publication Date Title
CN103888490B (zh) 一种全自动的web客户端人机识别的方法
CN113176968B (zh) 基于接口参数分类的安全测试方法、装置及存储介质
CN104615760A (zh) 钓鱼网站识别方法和系统
CN111339151B (zh) 在线考试方法、装置、设备及计算机存储介质
CN111767573A (zh) 数据库安全管理方法、装置、电子设备及可读存储介质
CN112989348A (zh) 攻击检测方法、模型训练方法、装置、服务器及存储介质
CN111696663A (zh) 疾病风险的分析方法、装置、电子设备及计算机存储介质
CN111798162A (zh) 基于神经网络的风险监测方法及装置
CN115174205A (zh) 一种网络空间安全实时监测方法、系统及计算机存储介质
CN115119197B (zh) 基于大数据的无线网络风险分析方法、装置、设备及介质
CN112085611A (zh) 数据异步核验方法、装置、电子设备及存储介质
CN114157634B (zh) 唯一账号识别方法、装置、设备及存储介质
CN111651652B (zh) 基于人工智能的情感倾向识别方法、装置、设备及介质
CN114036068A (zh) 基于隐私安全的更新检测方法、装置、设备及存储介质
CN111651167A (zh) 调度任务依赖关系识别方法、装置及计算机可读存储介质
CN112612451B (zh) 接口生成方法、装置、设备及计算机可读存储介质
CN113626533B (zh) 一种紫外线功率检测方法、装置及电子设备
CN113886493B (zh) 系统日志安全查询方法、装置、设备及存储介质
CN109558418A (zh) 一种自动识别信息的方法
CN114978766B (zh) 基于大数据的隐私安全保护方法、装置、设备及介质
CN115001805B (zh) 单点登录方法、装置、设备及存储介质
CN111193685B (zh) 校验日志信息真伪的方法、装置、设备和介质
CN114866333A (zh) 暴力破解请求的智能识别方法、装置、电子设备及介质
CN113608931A (zh) 应用资源更新的容错处理方法、装置、设备及存储介质
CN115186282A (zh) 资源管理方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant