CN114676066A - 目标应用的安全测试方法及其装置、电子设备及存储介质 - Google Patents
目标应用的安全测试方法及其装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114676066A CN114676066A CN202210441664.6A CN202210441664A CN114676066A CN 114676066 A CN114676066 A CN 114676066A CN 202210441664 A CN202210441664 A CN 202210441664A CN 114676066 A CN114676066 A CN 114676066A
- Authority
- CN
- China
- Prior art keywords
- tool
- test
- application
- security
- detection
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/366—Software debugging using diagnostics
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种目标应用的安全测试方法及其装置、电子设备及存储介质,涉及金融科技领域,其中,该测试方法包括:接收对目标应用进行安全测试的测试任务,其中,测试任务包括预先配置的工具信息和测试基础信息,测试基础信息至少包括:测试时间点和目标应用的应用标识,响应测试任务,接入与工具信息对应的多个安全检测工具,在到达测试时间点的情况下,调度安全检测工具分别扫描目标应用,得到多份检测报告,分析多份检测报告中的展现要素信息,得到应用测试结果。本发明解决了相关技术中采用手动逐一调度多个安全检测工具,工作效率低下的技术问题。
Description
技术领域
本发明涉及金融科技领域,具体而言,涉及一种目标应用的安全测试方法及其装置、电子设备及存储介质。
背景技术
在安全测试中,存在多种安全检测工具,各个安全检测工具使用相对独立,安全测试人员在安全测试时需要手动逐一触发工具扫描,需要学习各个安全检测工具的使用说明,操作较为复杂,安全测试门槛较高,同时,每个安全检测工具扫描完成后都会形成一份独立的安全检测报告。
相关技术中,由于各个安全检测工具使用相对独立,缺乏多种测试工具的编排调度,主要依赖手工测试,安全测试人员需要学会使用各种工具,需要学会设计安全测试场景,需要对各个安全检测工具的扫描原理和扫描时机有充分的认识,可能会出现由于某些测试人员疏忽延误测试时机的情况,同时,还存在手工操作复杂,且无法开展快速迭代扫描等问题。并且,各安全检测工具存在测试项重叠的现象,而各安全检测工具的检测结果无法共享使用,无法给应用提供全面的检测报告,开发人员需要对每个安全检测工具产生的检测报告逐一分析,工作效率较低。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种目标应用的安全测试方法及其装置、电子设备及存储介质,以至少解决相关技术中采用手动逐一调度多个安全检测工具,工作效率低下的技术问题。
根据本发明实施例的一个方面,提供了一种目标应用的安全测试方法,包括:接收对目标应用进行安全测试的测试任务,其中,所述测试任务包括预先配置的工具信息和测试基础信息,所述测试基础信息至少包括:测试时间点和目标应用的应用标识;响应所述测试任务,接入与所述工具信息对应的多个安全检测工具;在到达所述测试时间点的情况下,调度所述安全检测工具分别扫描所述目标应用,得到多份检测报告;分析所述多份检测报告中的展现要素信息,得到应用测试结果。
可选地,在接收对目标应用进行安全测试的测试任务之前,还包括:接收任务创建指令,并响应所述任务创建指令,创建初始测试任务;接收所述应用标识、所述测试时间点以及工具选取指令,生成所述测试任务,其中,所述工具选取指令为在客户端界面展示所有的安全检测工具的工具简介后,接收到的外部工具所选取的工具指令。
可选地,响应所述测试任务,接入与所述工具信息对应的多个安全检测工具的步骤,包括:基于所述工具信息,确定每个待接入的安全检测工具的工具环境配置和服务参数配置;基于每个待接入的安全检测工具的所述工具环境配置和所述服务参数配置,采用预先配置的安全工具启动接口,分别接入多个安全检测工具。
可选地,所述多个安全检测工具包括:静态应用安全检测服务工具,通过扫描所述目标应用的源代码,得到代码语义信息和依赖关系;动态应用安全检测服务工具,通过向所述目标应用注入预设故障,并对注入故障后的所述目标应用运行过程进行扫描,得到应用故障测试信息;交互式应用检测服务工具,通过向测试服务器安装插桩组件,并通过所述插桩组件获取应用服务请求、代码数据流和代码控制流,并进行测试流量改造,检测所述目标应用的运营状态,得到风险点信息;自定义安全检测服务工具,为预先指定的安全工具提供调度场景定制服务及工具启动参数配置服务。
可选地,所述静态应用安全检测服务工具对接源代码管理***,调用场景是代码提交入库阶段;所述动态应用安全检测服务工具对接持续构建工具,调用场景是代码交付后的测试阶段;所述交互式应用检测服务工具调用场景是代码交付后的测试阶段。
可选地,在分析所述多份检测报告中的展现要素信息,得到应用测试结果之前,还包括:对所述多份测试报告中进行合并处理和去重处理,确定对应于所述目标应用的缺陷类型和应用问题;基于每个所述缺陷类型和每个所述应用问题的出现次数,对不同的缺陷类型和应用问题进行加权处理,并对加权处理后的缺陷类型和应用问题进行排序,得到排序结果;展示所述排序结果。
可选地,所述展现要素信息包括下述至少之一:应用标识、漏洞缺陷分类、漏洞等级、风险描述、修复建议、问题定位、问题来源。
根据本发明实施例的另一方面,还提供了一种目标应用的安全测试装置,包括:接收单元,用于接收对目标应用进行安全测试的测试任务,其中,所述测试任务包括预先配置的工具信息和测试基础信息,所述测试基础信息至少包括:测试时间点和目标应用的应用标识;接入单元,用于响应所述测试任务,接入与所述工具信息对应的多个安全检测工具;调度单元,用于在到达所述测试时间点的情况下,调度所述安全检测工具分别扫描所述目标应用,得到多份检测报告;分析单元,用于分析所述多份检测报告中的展现要素信息,得到应用测试结果。
可选地,所述测试装置还包括:第一创建模块,用于在接收对目标应用进行安全测试的测试任务之前,接收任务创建指令,并响应所述任务创建指令,创建初始测试任务;第一生成模块,用于接收所述应用标识、所述测试时间点以及工具选取指令,生成所述测试任务,其中,所述工具选取指令为在客户端界面展示所有的安全检测工具的工具简介后,接收到的外部工具所选取的工具指令。
可选地,所述接入单元包括:第一确定模块,用于基于所述工具信息,确定每个待接入的安全检测工具的工具环境配置和服务参数配置;第一接入模块,用于基于每个待接入的安全检测工具的所述工具环境配置和所述服务参数配置,采用预先配置的安全工具启动接口,分别接入多个安全检测工具。
可选地,所述多个安全检测工具包括:静态应用安全检测服务工具,通过扫描所述目标应用的源代码,得到代码语义信息和依赖关系;动态应用安全检测服务工具,通过向所述目标应用注入预设故障,并对注入故障后的所述目标应用运行过程进行扫描,得到应用故障测试信息;交互式应用检测服务工具,通过向测试服务器安装插桩组件,并通过所述插桩组件获取应用服务请求、代码数据流和代码控制流,并进行测试流量改造,检测所述目标应用的运营状态,得到风险点信息;自定义安全检测服务工具,为预先指定的安全工具提供调度场景定制服务及工具启动参数配置服务。
可选地,所述静态应用安全检测服务工具对接源代码管理***,调用场景是代码提交入库阶段;所述动态应用安全检测服务工具对接持续构建工具,调用场景是代码交付后的测试阶段;所述交互式应用检测服务工具调用场景是代码交付后的测试阶段。
可选地,所述测试装置还包括:第二确定模块,用于在分析所述多份检测报告中的展现要素信息,得到应用测试结果之前,对所述多份测试报告中进行合并处理和去重处理,确定对应于所述目标应用的缺陷类型和应用问题;第一排序模块,用于基于每个所述缺陷类型和每个所述应用问题的出现次数,对不同的缺陷类型和应用问题进行加权处理,并对加权处理后的缺陷类型和应用问题进行排序,得到排序结果;第一展示模块,用于展示所述排序结果。
可选地,所述展现要素信息包括下述至少之一:应用标识、漏洞缺陷分类、漏洞等级、风险描述、修复建议、问题定位、问题来源。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述所述的目标应用的安全测试方法。
根据本发明实施例的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述所述的目标应用的安全测试方法。
在本公开中,接收对目标应用进行安全测试的测试任务,其中,测试任务包括预先配置的工具信息和测试基础信息,测试基础信息至少包括:测试时间点和目标应用的应用标识,响应测试任务,接入与工具信息对应的多个安全检测工具,在到达测试时间点的情况下,调度安全检测工具分别扫描目标应用,得到多份检测报告,分析多份检测报告中的展现要素信息,得到应用测试结果。在本申请中,可以基于测试任务中的工具信息,接入对应的多个安全检测工具,在到达测试时间点时,调度安全检测工具分别扫描目标应用,并分析得到的多份检测报告,从而得到应用测试结果,能够实现将各个独立的安全检测工具进行自动化编排调度,降低安全测试人员的学习成本以及使用门槛,实现快速自动化安全扫描功能,并获取全面的应用测试结果,有利于工作效率的提高,进而解决了相关技术中采用手动逐一调度多个安全检测工具,工作效率低下的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的目标应用的安全测试方法的流程图;
图2是根据本发明实施例的一种可选的缺陷趋势统计的示意图;
图3是根据本发明实施例的一种可选的目标应用的安全测试装置的示意图;
图4是根据本发明实施例的一种用于目标应用的安全测试方法的电子设备(或移动设备)的硬件结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,本公开中的目标应用的安全测试方法及其装置可用于金融科技领域在对目标应用进行安全测试的情况下,也可用于除金融科技领域之外的任意领域在对目标应用进行安全测试的情况下,本公开中对目标应用的安全测试方法及其装置的应用领域不做限定。
需要说明的是,本公开所涉及的相关信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。例如,本***和相关用户或机构间设置有接口,在获取相关信息之前,需要通过接口向前述的用户或机构发送获取请求,并在接收到前述的用户或机构反馈的同意信息后,获取相关信息。
本发明下述各实施例可应用于各种对目标应用进行安全测试的***/应用/设备中。本发明可以组合各种安全检测工具的检测能力,提供各类安全检测工具的编排调度,并对于同一应用使用不同检测工具检测出的相同缺陷问题通过合并、去重等方式进行数据加工,从而提供针对定向安全问题的交叉验证能力,提供给应用全面的应用测试结果,有利于工作效率的提高。
下面结合各个实施例来详细说明本发明。
实施例一
根据本发明实施例,提供了一种目标应用的安全测试方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种可选的目标应用的安全测试方法的流程图,如图1所示,该方法包括如下步骤:
步骤S101,接收对目标应用进行安全测试的测试任务,其中,测试任务包括预先配置的工具信息和测试基础信息,测试基础信息至少包括:测试时间点和目标应用的应用标识。
步骤S102,响应测试任务,接入与工具信息对应的多个安全检测工具。
步骤S103,在到达测试时间点的情况下,调度安全检测工具分别扫描目标应用,得到多份检测报告。
步骤S104,分析多份检测报告中的展现要素信息,得到应用测试结果。
通过上述步骤,可以接收对目标应用进行安全测试的测试任务,其中,测试任务包括预先配置的工具信息和测试基础信息,测试基础信息至少包括:测试时间点和目标应用的应用标识,响应测试任务,接入与工具信息对应的多个安全检测工具,在到达测试时间点的情况下,调度安全检测工具分别扫描目标应用,得到多份检测报告,分析多份检测报告中的展现要素信息,得到应用测试结果。在本发明实施例中,可以基于测试任务中的工具信息,接入对应的多个安全检测工具,在到达测试时间点时,调度安全检测工具分别扫描目标应用,并分析得到的多份检测报告,从而得到应用测试结果,能够实现将各个独立的安全检测工具进行编排调度,降低安全测试人员的学习成本以及使用门槛,实现快速自动化安全扫描功能,并获取全面的应用测试结果,有利于工作效率的提高,进而解决了相关技术中采用手动逐一调度多个安全检测工具,工作效率低下的技术问题。
下面结合上述各步骤对本发明实施例进行详细说明。
在本发明实施例中,一种可选的,在接收对目标应用进行安全测试的测试任务之前,还包括:接收任务创建指令,并响应任务创建指令,创建初始测试任务;接收应用标识、测试时间点以及工具选取指令,生成测试任务,其中,工具选取指令为在客户端界面展示所有的安全检测工具的工具简介后,接收到的外部工具所选取的工具指令。
在本发明实施例中,可以先接收任务创建指令,创建初始测试任务,然后接收目标应用的应用标识,需要测试目标应用的测试时间点以及工具选取指令,该工具选取指令为客户在客户端界面看到展示所有的安全检测工具的工具简介后,通过外部工具(例如,键盘、鼠标、遥控器等)选取的工具指令,之后,生成测试任务。
步骤S101,接收对目标应用进行安全测试的测试任务,其中,测试任务包括预先配置的工具信息和测试基础信息,测试基础信息至少包括:测试时间点和目标应用的应用标识。
在本发明实施例中,可以先通过安全工具注册服务对各个安全检测工具进行注册,梳理各个安全检测工具的环境配置、服务配置等必要的输入参数(即预先配置各个安全检测工具的工具信息),安全测试***可以根据客户提供的输入参数,提供统一的界面供客户进行安全工具扫描配置,以生成当前测试任务的工具信息,之后,获取当前测试任务的测试基础信息,该测试基础信息至少包括:测试时间点和目标应用的应用标识等,然后,接收对目标应用进行安全测试的测试任务,以完成对目标应用的安全测试。
步骤S102,响应测试任务,接入与工具信息对应的多个安全检测工具。
可选的,响应测试任务,接入与工具信息对应的多个安全检测工具的步骤,包括:基于工具信息,确定每个待接入的安全检测工具的工具环境配置和服务参数配置;基于每个待接入的安全检测工具的工具环境配置和服务参数配置,采用预先配置的安全工具启动接口,分别接入多个安全检测工具。
在本发明实施例中,可以基于测试任务中的工具信息,在安全测试***中接入对应的多个安全检测工具,具体为:可以根据工具信息,确定每个待接入的安全检测工具的工具环境配置和服务参数配置,然后,基于每个待接入的安全检测工具的工具环境配置和服务参数配置,采用安全测试***中预先配置的安全工具启动接口,分别接入多个安全检测工具,完成多个安全检测工具的接入。
可选的,多个安全检测工具包括:静态应用安全检测服务工具,通过扫描目标应用的源代码,得到代码语义信息和依赖关系;动态应用安全检测服务工具,通过向目标应用注入预设故障,并对注入故障后的目标应用运行过程进行扫描,得到应用故障测试信息;交互式应用检测服务工具,通过向测试服务器安装插桩组件,并通过插桩组件获取应用服务请求、代码数据流和代码控制流,并进行测试流量改造,检测目标应用的运营状态,得到风险点信息;自定义安全检测服务工具,为预先指定的安全工具提供调度场景定制服务及工具启动参数配置服务。
在本发明实施例中,由于各个安全检测工具检测原理不同,适用的调度场景也不同,安全测试***可以将各类安全检测工具划分为SAST(Static Application SecurityTesting)安全检测服务工具(即静态应用安全检测服务工具)、DAST(Dynamic ApplicationSecurity Testing)安全检测服务工具(即动态应用安全检测服务工具)、IAST(Interactive Application Security Testing)安全检测服务工具(即交互式应用检测服务工具)、自定义安全检测服务工具等,其中,静态应用安全检测服务工具,也称为“白盒测试”,该安全检测工具主要是通过扫描源代码发现代码中的已知漏洞,从语义上理解程序代码,以及依赖关系(即通过扫描目标应用的源代码,得到代码语义信息和依赖关系);动态应用安全检测服务工具,也称为“黑盒测试”,该安全测试工具不像SAST那样从源代码中发现漏洞,而是在应用运行时,通过注入故障的方式进行安全测试(即通过向目标应用注入预设故障,并对注入故障后的目标应用运行过程进行扫描,得到应用故障测试信息);交互式应用检测服务工具,也称为“灰盒测试”,该安全测试工具综合了SAST和DAST的检测技术,在被测试服务器中安装插桩agent,在应用程序运行时获取请求和代码数据流代码控制流,然后进行测试流量改造,检测运营与攻击情况,从而发现风险点(即通过向测试服务器安装插桩组件,并通过插桩组件获取应用服务请求、代码数据流和代码控制流,并进行测试流量改造,检测目标应用的运营状态,得到风险点信息);自定义安全检测服务工具,为预先指定的安全工具提供调度场景定制服务及工具启动参数配置服务。
可选的,静态应用安全检测服务工具对接源代码管理***,调用场景是代码提交入库阶段;动态应用安全检测服务工具对接持续构建工具,调用场景是代码交付后的测试阶段;交互式应用检测服务工具调用场景是代码交付后的测试阶段。
在本发明实施例中,静态应用安全检测服务工具主要调用场景是代码提交入库阶段,该工具与源代码管理***(如Git等)、持续构建工具(如Jenkins)进行对接,可获取拟提交版本库的代码包,并提供给SAST安全检测服务工具,以便对代码开展自动化安全扫描。
动态应用安全检测服务工具主要调用场景是代码交付后的测试阶段,该工具与持续构建工具(如Jenkins)进行对接,在版本交付时定时触发DAST安全检测服务工具,对测试环境中运行的程序进行自动化安全扫描。
交互式应用检测服务工具主要调用场景是测试阶段,该工具提供插桩脚本配置等功能,可在测试人员进行应用功能测试的同时,同步进行深度业务安全测试。
步骤S103,在到达测试时间点的情况下,调度安全检测工具分别扫描目标应用,得到多份检测报告。
在本发明实施例中,安全测试***中的检测报告分析模块可以为各个安全检测工具提供统一的报告推送接口,对各工具提供的缺陷类型进行统一编码,接入到本***的各安全检测工具需要在工具扫描完成后或按某个约定时间定时将检测报告推送给***中(即当到达测试任务中提供的测试时间点时,安全测试***可以调度安全检测工具分别扫描目标应用,得到多份检测报告),该报告中包含应用名、缺陷类型、风险描述、问题定位等信息。
可选的,在分析多份检测报告中的展现要素信息,得到应用测试结果之前,还包括:对多份测试报告中进行合并处理和去重处理,确定对应于目标应用的缺陷类型和应用问题;基于每个缺陷类型和每个应用问题的出现次数,对不同的缺陷类型和应用问题进行加权处理,并对加权处理后的缺陷类型和应用问题进行排序,得到排序结果;展示排序结果。
在本发明实施例中,安全测试***可以将各安全检测工具推送的测试报告进行合并、去重(即对多份测试报告中进行合并处理和去重处理,确定对应于目标应用的缺陷类型和应用问题),并对于多个安全检测工具检测出的同一问题进行加权处理,如果某个漏洞只是某一个安全检测工具扫描出来的,则权重可以设为预设值(如,设置该预设值为1),如果是2个安全检测工具扫描出来的,权重可以设置为2倍的预设值,依次类推(即基于每个缺陷类型和每个应用问题的出现次数,对不同的缺陷类型和应用问题进行加权处理),安全分析报告中按照权重、漏洞级别进行排序展现,优先显示权重高、及漏洞级别高的漏洞(即对加权处理后的缺陷类型和应用问题进行排序,得到排序结果,并展示排序结果)。
步骤S104,分析多份检测报告中的展现要素信息,得到应用测试结果。可选的,展现要素信息包括下述至少之一:应用标识、漏洞缺陷分类、漏洞等级、风险描述、修复建议、问题定位、问题来源。
在本发明实施例中,检测报告中展现要素可以包括:应用名(即应用标识)、漏洞缺陷分类、漏洞等级、风险描述、修复建议、问题定位、问题来源(即哪个安全检测工具扫描出的问题)、权重、及扫描出问题对应的安全检测工具提供的原始报告中其他具体信息等,同时安全测试***提供报告导出功能,通过分析多份检测报告中的展现要素信息,可以得到应用测试结果。
另一种可选的,安全测试***还可以提供统计分析模块,为用户提供统计分析功能,***可为用户提供某个扫描周期内,某个应用或全部应用的缺陷的趋势统计、缺陷分类TopN等,还可以统计缺陷数、缺陷密度排名最多的应用。
图2是根据本发明实施例的一种可选的缺陷趋势统计的示意图,如图2所示,包括:缺陷数和缺陷密度两条曲线,其中,以时间为横坐标(统计从3.16到3.22,每天的曲线变化),以缺陷数(个)(统计0到500000,单位为100000)为纵坐标,统计缺陷数曲线变化;以时间为横坐标(统计从3.16到3.22,每天的曲线变化),以缺陷密度(%)(统计0到15,单位为3)为纵坐标,统计缺陷密度曲线变化。
本发明实施例中,客户可在安全测试***中点击某个安全任务,进行工具检测模板配置,通过推拽的方式将需要使用的安全检测工具组件放到本次安全检测任务执行流程中,并在***中配置每个安全检测工具组件的必要输入信息,***将根据用户的配置定时触发相应的安全工具扫描,从而实现各个安全工具的有效编排调度,完成工具的自动化扫描工作。
下面结合另一种可选的具体实施方式进行详细说明。
本发明实施例提供了一种可以进行各类安全检测工具的编码调度,并汇聚各安全检测工具结果的安全测试***,该安全测试***可组合各种安全工具检测能力,提供各类安全检测工具的编排调度,并对于同一应用使用不同检测工具检测出的相同缺陷问题通过合并、去重等方式进行数据加工,从而提供针对定向安全问题的交叉验证能力,提供给应用全面的安全检测分析报告,具体如下:
安全测试***主要包括:安全任务管理模块、安全工具接入与调度模块、检测报告分析模块及统计分析模块,其中,
安全任务管理模块,主要用于进行安全任务的创建、安全任务的执行及安全任务的关闭。
安全工具接入与调度模块是本***中一个重要的模块,***提供统一的工具组件接入服务,并可针对各个工具组件进行扫描调度配置功能。安全工具接入与调度模块可提供安全工具注册服务。
该安全工具注册服务具体的作用为:各个安全检测工具如需接入到本***中,需要按照统一接入流程进行二次开发,梳理各个安全工具环境配置、服务配置等必要的输入参数,并提供安全工具启动接口,本***会根据提供的输入参数,提供统一的界面供客户进行安全工具扫描配置。
由于各个安全工具检测原理不同,适用的调度场景也不同,***将各类安全工具划分为SAST安全检测服务模块、DAST安全检测服务模块、IAST安全检测服务模块、自定义安全检测服务模块四个模块,其中,
(1)SAST(Static Application Security Testing)静态应用安全检测服务模块,也称为“白盒测试”模块,该模块中注册的安全工具主要是通过扫描源代码发现代码中的已知漏洞,从语义上理解程序代码,以及依赖关系。此类安全工具主要调用场景是代码提交入库阶段。该模块与源代码管理***(如Git等)、持续构建工具(如Jenkins)进行对接,可获取拟提交版本库的代码包,并提供给SAST安全检测服务模块,以便对代码开展自动化安全扫描。
(2)DAST(Dynamic Application Security Testing)动态应用安全检测服务模块,也称为“黑盒测试”模块,该模块中注册的安全工具不像SAST那样从源代码中发现漏洞,而是在应用运行时,通过注入故障的方式进行安全测试。工具主要调用场景是代码交付后的测试阶段。该模块与持续构建工具(如Jenkins)进行对接,在版本交付时定时触发DAST安全检测服务模块,对测试环境中运行的程序进行自动化安全扫描。
(3)IAST(Interactive Application Security Testing)交互式应用检测服务模块,也称为“灰盒测试”模块,该模块中注册的安全工具综合了SAST和DAST的检测技术,在被测试服务器中安装插桩agent,在应用程序运行时获取请求和代码数据流代码控制流,然后进行测试流量改造,检测运营与攻击情况,从而发现风险点。工具主要调用场景是测试阶段,该模块提供插桩脚本配置等功能,可在测试人员进行应用功能测试的同时,同步进行深度业务安全测试。
(4)自定义安全检测服务模块为某些安全工具提供了一种可根据工具自身特点定制调度场景及配置特殊启动参数的能力。
本实施例中,客户可在***中点击某个安全任务,进行工具检测模板配置,通过推拽的方式将需要使用的安全检测工具组件放到本次安全检测任务执行流程中,并在***中配置每个安全检测工具组件的必要输入信息,***将根据用户的配置定时触发相应的安全工具扫描,从而实现各个安全工具的有效编排调度,完成工具的自动化扫描工作。
检测报告分析模块为各个安全工具提供统一的报告推送接口,对各工具提供的缺陷类型进行统一编码,接入到本***的各安全检测工具需要在工具扫描完成后或按某个约定时间定时将检测报告推送给***中,报告中包括:应用名、缺陷类型、风险描述、问题定位等信息。***将对各检测工具推送的报告进行合并、去重,并对于多个检测工具检测出的同一问题进行加权处理,如果某个漏洞只是某一个安全检测工具扫描出来的,则权重可设为1(可根据具体情况进行设置),如果是2个安全检测工具扫描出来的,权重可设为2,依次类推。安全分析报告中按照权重、漏洞级别进行排序展现,优先显示权重高、及漏洞级别高的漏洞。安全检测分析报告中展现要素包括:应用名、漏洞缺陷分类、漏洞等级、风险描述、修复建议、问题定位、问题来源(哪个安全工具扫描出的问题)、权重、及扫描出问题对应的安全工具提供的原始报告中其他具体信息等,同时,***还提供报告导出功能。
统计分析模块,可以为用户提供统计分析功能,***可为用户提供某个扫描周期内,某个应用或全部应用的缺陷的趋势统计、缺陷分类TopN,还可以统计缺陷数、缺陷密度排名最多的应用。
在本发明实施例中,可将各个相对独立的安全检测工具有效的进行编排调度,可大幅降低安全测试人员学习成本,降低使用门槛,可开展快速自动化安全扫描。同时,可提供给客户一个全面的应用安全检测分析报告,避免了重复问题确认的工作。
实施例二
本实施例中提供的一种目标应用的安全测试装置包含了多个实施单元,每个实施单元对应于上述实施例一中的各个实施步骤。
图3是根据本发明实施例的一种可选的目标应用的安全测试装置的示意图,如图3所示,该测试装置可以包括:接收单元30,接入单元31,调度单元32,分析单元33,其中,
接收单元30,用于接收对目标应用进行安全测试的测试任务,其中,测试任务包括预先配置的工具信息和测试基础信息,测试基础信息至少包括:测试时间点和目标应用的应用标识;
接入单元31,用于响应测试任务,接入与工具信息对应的多个安全检测工具;
调度单元32,用于在到达测试时间点的情况下,调度安全检测工具分别扫描目标应用,得到多份检测报告;
分析单元33,用于分析多份检测报告中的展现要素信息,得到应用测试结果。
上述测试装置,可以通过接收单元30接收对目标应用进行安全测试的测试任务,其中,测试任务包括预先配置的工具信息和测试基础信息,测试基础信息至少包括:测试时间点和目标应用的应用标识,通过接入单元31响应测试任务,接入与工具信息对应的多个安全检测工具,通过调度单元32在到达测试时间点的情况下,调度安全检测工具分别扫描目标应用,得到多份检测报告,通过分析单元33分析多份检测报告中的展现要素信息,得到应用测试结果。在本发明实施例中,可以基于测试任务中的工具信息,接入对应的多个安全检测工具,在到达测试时间点时,调度安全检测工具分别扫描目标应用,并分析得到的多份检测报告,从而得到应用测试结果,能够实现将各个独立的安全检测工具进行编排调度,降低安全测试人员的学习成本以及使用门槛,实现快速自动化安全扫描功能,并获取全面的应用测试结果,有利于工作效率的提高,进而解决了相关技术中采用手动逐一调度多个安全检测工具,工作效率低下的技术问题。
可选的,测试装置还包括:第一创建模块,用于在接收对目标应用进行安全测试的测试任务之前,接收任务创建指令,并响应任务创建指令,创建初始测试任务;第一生成模块,用于接收应用标识、测试时间点以及工具选取指令,生成测试任务,其中,工具选取指令为在客户端界面展示所有的安全检测工具的工具简介后,接收到的外部工具所选取的工具指令。
可选的,接入单元包括:第一确定模块,用于基于工具信息,确定每个待接入的安全检测工具的工具环境配置和服务参数配置;第一接入模块,用于基于每个待接入的安全检测工具的工具环境配置和服务参数配置,采用预先配置的安全工具启动接口,分别接入多个安全检测工具。
可选的,多个安全检测工具包括:静态应用安全检测服务工具,通过扫描目标应用的源代码,得到代码语义信息和依赖关系;动态应用安全检测服务工具,通过向目标应用注入预设故障,并对注入故障后的目标应用运行过程进行扫描,得到应用故障测试信息;交互式应用检测服务工具,通过向测试服务器安装插桩组件,并通过插桩组件获取应用服务请求、代码数据流和代码控制流,并进行测试流量改造,检测目标应用的运营状态,得到风险点信息;自定义安全检测服务工具,为预先指定的安全工具提供调度场景定制服务及工具启动参数配置服务。
可选的,静态应用安全检测服务工具对接源代码管理***,调用场景是代码提交入库阶段;动态应用安全检测服务工具对接持续构建工具,调用场景是代码交付后的测试阶段;交互式应用检测服务工具调用场景是代码交付后的测试阶段。
可选的,测试装置还包括:第二确定模块,用于在分析多份检测报告中的展现要素信息,得到应用测试结果之前,对多份测试报告中进行合并处理和去重处理,确定对应于目标应用的缺陷类型和应用问题;第一排序模块,用于基于每个缺陷类型和每个应用问题的出现次数,对不同的缺陷类型和应用问题进行加权处理,并对加权处理后的缺陷类型和应用问题进行排序,得到排序结果;第一展示模块,用于展示排序结果。
可选的,展现要素信息包括下述至少之一:应用标识、漏洞缺陷分类、漏洞等级、风险描述、修复建议、问题定位、问题来源。
上述的测试装置还可以包括处理器和存储器,上述接收单元30,接入单元31,调度单元32,分析单元33等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
上述处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来分析多份检测报告中的展现要素信息,得到应用测试结果。
上述存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:接收对目标应用进行安全测试的测试任务,其中,测试任务包括预先配置的工具信息和测试基础信息,测试基础信息至少包括:测试时间点和目标应用的应用标识,响应测试任务,接入与工具信息对应的多个安全检测工具,在到达测试时间点的情况下,调度安全检测工具分别扫描目标应用,得到多份检测报告,分析多份检测报告中的展现要素信息,得到应用测试结果。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述的目标应用的安全测试方法。
根据本发明实施例的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,存储器用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述的目标应用的安全测试方法。
图4是根据本发明实施例的一种用于目标应用的安全测试方法的电子设备(或移动设备)的硬件结构框图。如图4所示,电子设备可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、键盘、电源和/或相机。本领域普通技术人员可以理解,图4所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子设备还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种目标应用的安全测试方法,其特征在于,包括:
接收对目标应用进行安全测试的测试任务,其中,所述测试任务包括预先配置的工具信息和测试基础信息,所述测试基础信息至少包括:测试时间点和目标应用的应用标识;
响应所述测试任务,接入与所述工具信息对应的多个安全检测工具;
在到达所述测试时间点的情况下,调度所述安全检测工具分别扫描所述目标应用,得到多份检测报告;
分析所述多份检测报告中的展现要素信息,得到应用测试结果。
2.根据权利要求1所述的安全测试方法,其特征在于,在接收对目标应用进行安全测试的测试任务之前,还包括:
接收任务创建指令,并响应所述任务创建指令,创建初始测试任务;
接收所述应用标识、所述测试时间点以及工具选取指令,生成所述测试任务,其中,所述工具选取指令为在客户端界面展示所有的安全检测工具的工具简介后,接收到的外部工具所选取的工具指令。
3.根据权利要求1所述的安全测试方法,其特征在于,响应所述测试任务,接入与所述工具信息对应的多个安全检测工具的步骤,包括:
基于所述工具信息,确定每个待接入的安全检测工具的工具环境配置和服务参数配置;
基于每个待接入的安全检测工具的所述工具环境配置和所述服务参数配置,采用预先配置的安全工具启动接口,分别接入多个安全检测工具。
4.根据权利要求1至3中任意一项所述的安全测试方法,其特征在于,所述多个安全检测工具包括:
静态应用安全检测服务工具,通过扫描所述目标应用的源代码,得到代码语义信息和依赖关系;
动态应用安全检测服务工具,通过向所述目标应用注入预设故障,并对注入故障后的所述目标应用运行过程进行扫描,得到应用故障测试信息;
交互式应用检测服务工具,通过向测试服务器安装插桩组件,并通过所述插桩组件获取应用服务请求、代码数据流和代码控制流,并进行测试流量改造,检测所述目标应用的运营状态,得到风险点信息;
自定义安全检测服务工具,为预先指定的安全工具提供调度场景定制服务及工具启动参数配置服务。
5.根据权利要求4所述的安全测试方法,其特征在于,所述静态应用安全检测服务工具对接源代码管理***,调用场景是代码提交入库阶段;所述动态应用安全检测服务工具对接持续构建工具,调用场景是代码交付后的测试阶段;所述交互式应用检测服务工具调用场景是代码交付后的测试阶段。
6.根据权利要求1所述的安全测试方法,其特征在于,在分析所述多份检测报告中的展现要素信息,得到应用测试结果之前,还包括:
对所述多份测试报告中进行合并处理和去重处理,确定对应于所述目标应用的缺陷类型和应用问题;
基于每个所述缺陷类型和每个所述应用问题的出现次数,对不同的缺陷类型和应用问题进行加权处理,并对加权处理后的缺陷类型和应用问题进行排序,得到排序结果;
展示所述排序结果。
7.根据权利要求1所述的安全测试方法,其特征在于,所述展现要素信息包括下述至少之一:应用标识、漏洞缺陷分类、漏洞等级、风险描述、修复建议、问题定位、问题来源。
8.一种目标应用的安全测试装置,其特征在于,包括:
接收单元,用于接收对目标应用进行安全测试的测试任务,其中,所述测试任务包括预先配置的工具信息和测试基础信息,所述测试基础信息至少包括:测试时间点和目标应用的应用标识;
接入单元,用于响应所述测试任务,接入与所述工具信息对应的多个安全检测工具;
调度单元,用于在到达所述测试时间点的情况下,调度所述安全检测工具分别扫描所述目标应用,得到多份检测报告;
分析单元,用于分析所述多份检测报告中的展现要素信息,得到应用测试结果。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至7中任意一项所述的目标应用的安全测试方法。
10.一种电子设备,其特征在于,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至7中任意一项所述的目标应用的安全测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210441664.6A CN114676066A (zh) | 2022-04-25 | 2022-04-25 | 目标应用的安全测试方法及其装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210441664.6A CN114676066A (zh) | 2022-04-25 | 2022-04-25 | 目标应用的安全测试方法及其装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114676066A true CN114676066A (zh) | 2022-06-28 |
Family
ID=82080628
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210441664.6A Pending CN114676066A (zh) | 2022-04-25 | 2022-04-25 | 目标应用的安全测试方法及其装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114676066A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117421253A (zh) * | 2023-12-19 | 2024-01-19 | 深圳市智慧城市科技发展集团有限公司 | 接口安全测试方法、装置、设备及存储介质 |
-
2022
- 2022-04-25 CN CN202210441664.6A patent/CN114676066A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117421253A (zh) * | 2023-12-19 | 2024-01-19 | 深圳市智慧城市科技发展集团有限公司 | 接口安全测试方法、装置、设备及存储介质 |
CN117421253B (zh) * | 2023-12-19 | 2024-04-02 | 深圳市智慧城市科技发展集团有限公司 | 接口安全测试方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106339312B (zh) | Api测试方法和*** | |
CN105094783B (zh) | 安卓应用稳定性测试的方法及装置 | |
US7895565B1 (en) | Integrated system and method for validating the functionality and performance of software applications | |
EP2572294B1 (en) | System and method for sql performance assurance services | |
US9135714B1 (en) | Method and system for integrating a graphical user interface capture for automated test and retest procedures | |
CN114546738B (zh) | 服务器通用测试方法、***、终端及存储介质 | |
CN108509344B (zh) | 日切跑批测试方法、设备及可读存储介质 | |
CN110569159A (zh) | 挡板生成方法、装置、设备及计算机存储介质 | |
CN111679977B (zh) | 一种基于Jest的React项目单元测试方法、设备及存储介质 | |
CN113434396A (zh) | 接口测试方法、装置、设备、存储介质及程序产品 | |
CN113238930A (zh) | 软件***的测试方法、装置、终端设备和存储介质 | |
CN113792341A (zh) | 应用程序的隐私合规自动化检测方法、装置、设备及介质 | |
CN114238134A (zh) | 一种测试结果展示方法、装置、设备及存储介质 | |
CN111858354A (zh) | 自动生成测试报告的方法、装置、存储介质及电子设备 | |
EP3734460B1 (en) | Probabilistic software testing via dynamic graphs | |
CN114676066A (zh) | 目标应用的安全测试方法及其装置、电子设备及存储介质 | |
CN117493188A (zh) | 接口测试方法及装置、电子设备及存储介质 | |
CN108427645B (zh) | 无命令行接口自动测试平台中实现无人值守的方法及*** | |
CN111382071A (zh) | 一种用户行为数据测试方法及*** | |
CN108563578B (zh) | Sdk兼容性检测方法、装置、设备及可读存储介质 | |
CN113934642B (zh) | 一种基于动静态结合的软件兼容性测试方法 | |
CN113672497B (zh) | 无埋点事件的生成方法、装置、设备及存储介质 | |
CN115480940A (zh) | 一种财务比率指标页面化调用方法、装置及介质 | |
CN114238110A (zh) | 软件应用测试方法、装置、设备及存储介质 | |
CN113791980A (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 |