一种静态扫描方法、装置及计算机可读存储介质制造方法及图纸

技术编号:24497493 阅读:23 留言:0更新日期:2020-06-13 03:37
本申请提供了一种静态扫描方法、装置及计算机可读存储介质,该静态扫描方法包括:从待测应用的应用清单中,获取待测应用的目标配置信息;从预设的测试用例库中,匹配所有对应于目标配置信息的目标测试用例;基于目标测试用例对待测应用进行静态扫描。通过本申请方案的实施,利用待测应用的配置信息对测试用例进行选择,一方面可以优化测试用例的数量,有效减少了整体扫描的时间,另一方面则还可以增强测试用例的有效性,有效提高了扫描结果的准确性。

A static scanning method, device and computer readable storage medium

【技术实现步骤摘要】
一种静态扫描方法、装置及计算机可读存储介质
本申请涉及电子
,尤其涉及一种静态扫描方法、装置及计算机可读存储介质。
技术介绍
在开发应用软件时,为了保证所开发的应用软件的功能在终端操作系统上运行正常,通常在开发出应用软件对应的代码时,需要对代码进行检测分析,以分析代码是否满足规范性、安全性、可靠性、可维护性等指标。在实际应用中,通常采用静态扫描来进行代码检测分析,静态扫描是指在不运行代码的方式下,通过词法分析、语法分析、控制流、数据流分析等技术对程序代码进行检测分析。目前,相关技术通常会将所有测试规则均导入到静态扫描工具中来进行代码检测分析,从而进行静态扫描过程中,每个测试用例都需要在全局代码中进行匹配,但往往很多测试用例在当前的测试环境下并不具备可利用性,也即并不会在静态扫描中产生效果,反而,一方面会造成静态扫描耗时长,另一方面还会造成扫描结果的准确性较为有限。
技术实现思路
本申请实施例提供了一种静态扫描方法、装置及计算机可读存储介质,至少能够解决相关技术中在对应用软件进行静态扫描时,扫描耗时较长以及扫描结果的准确性较为有限的问题。本申请实施例第一方面提供了一种静态扫描方法,包括:从待测应用的应用清单中,获取所述待测应用的目标配置信息;从预设的测试用例库中,匹配所有对应于所述目标配置信息的目标测试用例;基于所述目标测试用例对所述待测应用进行静态扫描。本申请实施例第二方面提供了一种静态扫描装置,包括:获取模块,用于从待测应用的应用清单中,获取所述待测应用的目标配置信息;匹配模块,用于从预设的测试用例库中,匹配所有对应于所述目标配置信息的目标测试用例;扫描模块,用于基于所述目标测试用例对所述待测应用进行静态扫描。本申请实施例第三方面提供了一种电子装置,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,实现上述本申请实施例第一方面提供的静态扫描方法中的各步骤。本申请实施例第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,实现上述本申请实施例第一方面提供的静态扫描方法中的各步骤。由上可见,根据本申请方案所提供的静态扫描方法、装置及计算机可读存储介质,从待测应用的应用清单中,获取待测应用的目标配置信息;从预设的测试用例库中,匹配所有对应于目标配置信息的目标测试用例;基于目标测试用例对待测应用进行静态扫描。通过本申请方案的实施,利用待测应用的配置信息对测试用例进行选择,一方面可以优化测试用例的数量,有效减少了整体扫描的时间,另一方面则还可以增强测试用例的有效性,有效提高了扫描结果的准确性。附图说明图1为本申请第一实施例提供的静态扫描方法的基本流程示意图;图2为本申请第一实施例提供的一种测试用例匹配方法的流程示意图;图3为本申请第一实施例提供的一种测试用例去重方法的流程示意图;图4为本申请第一实施例提供的一种配置信息获取方法的流程示意图;图5为本申请第二实施例提供的静态扫描方法的细化流程示意图;图6为本申请第三实施例提供的一种静态扫描装置的程序模块示意图;图7为本申请第三实施例提供的另一种静态扫描装置的程序模块示意图;图8为本申请第四实施例提供的电子装置的结构示意图。具体实施方式为使得本申请的专利技术目的、特征、优点能够更加的明显和易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而非全部实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。静态扫描指的是静态源代码扫描,是近年被人提及较多的软件应用安全解决方案之一,它是指在软件工程中,程序员在写好源代码后,无需经过编译器编译,而直接使用一些扫描工具对其进行扫描,找出代码当中存在的一些语义缺陷、安全漏洞的解决方案。通过静态扫描,测试人员只需接收静态扫描的扫描报告,即可得出代码层面的风险及出现的问题,将测试工作前置,可以缩短测试周期,使得代码风险降至最低。在实际应用中,静态扫描的具体实现方式包括但不限于以下两种:方式一、模式匹配:匹配代码编译过程中的token流、抽象语法树(AST)和中间代码,根据经验认知某些样式的代码为漏洞。方式二、数据流分析:数据流分析技术基于控制流图(CFG),按照某种方式扫面控制流图的每一条指令,试图理解指令行为,以此判断程序中存在的漏洞。应当说明的是,对于模式匹配的方式,可以包括词法分析、语法分析和中间代码分析。其中,词法分析阶段是编译过程的第一个阶段,是编译的基础,这个阶段的任务是从左到右逐个字符地读入源程序,即对构成源程序的字符流进行扫描然后根据构词规则识别单词(也称单词符号或符号),即可以扫描、识别单词且对识别出的单词给出定性、定长的处理。而语法分析是编译过程的一个逻辑阶段,主要任务是在词法分析的基础上将单词序列组合成各类语法短语,如程序、语句、表达式等等。语法分析程序判断程序在结构上是否正确。为了解决相关技术中在对应用软件进行静态扫描时,扫描耗时较长以及扫描结果的准确性较为有限的缺陷,本申请第一实施例提供了一种静态扫描方法,如图1为本实施例提供的静态扫描方法的基本流程图,该静态扫描方法包括以下的步骤:步骤101、从待测应用的应用清单中,获取待测应用的目标配置信息。具体的,在本实施例中,从待测应用的安装包中解析应用清单,在安卓系统中,应用清单表现为APK文件中的AndroidMainfest.xml,应用清单包含了应用的配置信息,系统需要根据清单中的内容运行程序代码。本实施例通过对应用清单进行深度分析,从中解析有效配置信息以对测试用例进行优化。在本实施例的一些实施方式中,在从待测应用的应用清单中,获取待测应用的目标配置信息之前,还包括:获取待测应用的测试属性;判断测试属性是否满足预设触发条件;在满足触发条件时,触发从待测应用的应用清单中,获取待测应用的目标配置信息。具体的,在实际应用中,可以在触发本实施例的静态扫描流程之前,设置一触发条件,该触发条件关联于待测应用的测试属性,例如测试次数、测试项目等,仅在测试属性满足条件时才触发该静态扫描流程,从而可以提高本实施例的静态扫描方法与实际测试场景的适用性,且可以避免盲目触发本实施例的静态扫描方法所带来的可能的处理性能浪费和准确性降低。步骤102、从预设的测试用例库中,匹配所有对应于目标配置信息的目标测试用例。具体的,在本实施例中,测试用例库中包括所有可用的测试用例,然而并非所有测试用例均可在对当前待测应用的测试过程中有效利用,基于此,本实施例基于对应于待测应用的目标配置信息,来从测试用例库中挑选有效的目标测试用例,以保证所使用的测试数量较为精简、有效性较高。步骤103、基于目标测试用例对待测应本文档来自技高网...

【技术保护点】
1.一种静态扫描方法,其特征在于,包括:/n从待测应用的应用清单中,获取所述待测应用的目标配置信息;/n从预设的测试用例库中,匹配所有对应于所述目标配置信息的目标测试用例;/n基于所述目标测试用例对所述待测应用进行静态扫描。/n

【技术特征摘要】
1.一种静态扫描方法,其特征在于,包括:
从待测应用的应用清单中,获取所述待测应用的目标配置信息;
从预设的测试用例库中,匹配所有对应于所述目标配置信息的目标测试用例;
基于所述目标测试用例对所述待测应用进行静态扫描。


2.根据权利要求1所述的静态扫描方法,其特征在于,所述目标配置信息包括权限申请信息和/或可导出组件配置信息;
所述从预设的测试用例库中,匹配所有对应于所述目标配置信息的目标测试用例包括:
获取预设的测试用例库中,所有测试用例所要求的权限和/或可导出组件;
将所述所要求的权限和/或可导出组件,与所述权限申请信息和/或可导出组件配置信息进行匹配;
将具有匹配结果的测试用例确定为目标测试用例。


3.根据权利要求1所述的静态扫描方法,其特征在于,所述基于所述目标测试用例对所述待测应用进行静态扫描之后,还包括:
获取静态扫描完成所得到的检测报告中的可疑代码缺陷;
根据所述可疑代码缺陷的缺陷属性,获取对应的复检策略;
采用所述复检策略对所述待测应用的所述可疑代码缺陷进行复检。


4.根据权利要求1所述的静态扫描方法,其特征在于,所述基于所述目标测试用例对所述待测应用进行静态扫描之后,还包括:
获取静态扫描完成所得到的检测报告中的真实代码缺陷;
根据所述真实代码缺陷的缺陷属性,获取对应的修复策略;
采用所述修复策略对所述待测应用的所述真实代码缺陷进行修复。


5.根据权利要求1至4中任意一项所述的静态扫描方法,其特征在于,所述基于所述目标测试用例对所述待测应用进行静态扫描之前,还包括:
获取所有目标测试用例的功能属性;
将所有的所述功能属性之间进行相关度比对;
对各...

【专利技术属性】
技术研发人员:彭冬炜
申请(专利权)人:OPPO广东移动通信有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1