CN111274133B - 一种静态扫描方法、装置及计算机可读存储介质 - Google Patents
一种静态扫描方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111274133B CN111274133B CN202010052991.3A CN202010052991A CN111274133B CN 111274133 B CN111274133 B CN 111274133B CN 202010052991 A CN202010052991 A CN 202010052991A CN 111274133 B CN111274133 B CN 111274133B
- Authority
- CN
- China
- Prior art keywords
- application
- tested
- target
- test case
- configuration information
- 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
Links
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/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- 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/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/425—Lexical analysis
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供了一种静态扫描方法、装置及计算机可读存储介质,该静态扫描方法包括:从待测应用的应用清单中,获取待测应用的目标配置信息;从预设的测试用例库中,匹配所有对应于目标配置信息的目标测试用例;基于目标测试用例对待测应用进行静态扫描。通过本申请方案的实施,利用待测应用的配置信息对测试用例进行选择,一方面可以优化测试用例的数量,有效减少了整体扫描的时间,另一方面则还可以增强测试用例的有效性,有效提高了扫描结果的准确性。
Description
技术领域
本申请涉及电子技术领域,尤其涉及一种静态扫描方法、装置及计算机可读存储介质。
背景技术
在开发应用软件时,为了保证所开发的应用软件的功能在终端操作系统上运行正常,通常在开发出应用软件对应的代码时,需要对代码进行检测分析,以分析代码是否满足规范性、安全性、可靠性、可维护性等指标。
在实际应用中,通常采用静态扫描来进行代码检测分析,静态扫描是指在不运行代码的方式下,通过词法分析、语法分析、控制流、数据流分析等技术对程序代码进行检测分析。目前,相关技术通常会将所有测试规则均导入到静态扫描工具中来进行代码检测分析,从而进行静态扫描过程中,每个测试用例都需要在全局代码中进行匹配,但往往很多测试用例在当前的测试环境下并不具备可利用性,也即并不会在静态扫描中产生效果,反而,一方面会造成静态扫描耗时长,另一方面还会造成扫描结果的准确性较为有限。
发明内容
本申请实施例提供了一种静态扫描方法、装置及计算机可读存储介质,至少能够解决相关技术中在对应用软件进行静态扫描时,扫描耗时较长以及扫描结果的准确性较为有限的问题。
本申请实施例第一方面提供了一种静态扫描方法,包括:
从待测应用的应用清单中,获取所述待测应用的目标配置信息;
从预设的测试用例库中,匹配所有对应于所述目标配置信息的目标测试用例;
基于所述目标测试用例对所述待测应用进行静态扫描。
本申请实施例第二方面提供了一种静态扫描装置,包括:
获取模块,用于从待测应用的应用清单中,获取所述待测应用的目标配置信息;
匹配模块,用于从预设的测试用例库中,匹配所有对应于所述目标配置信息的目标测试用例;
扫描模块,用于基于所述目标测试用例对所述待测应用进行静态扫描。
本申请实施例第三方面提供了一种电子装置,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,实现上述本申请实施例第一方面提供的静态扫描方法中的各步骤。
本申请实施例第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,实现上述本申请实施例第一方面提供的静态扫描方法中的各步骤。
由上可见,根据本申请方案所提供的静态扫描方法、装置及计算机可读存储介质,从待测应用的应用清单中,获取待测应用的目标配置信息;从预设的测试用例库中,匹配所有对应于目标配置信息的目标测试用例;基于目标测试用例对待测应用进行静态扫描。通过本申请方案的实施,利用待测应用的配置信息对测试用例进行选择,一方面可以优化测试用例的数量,有效减少了整体扫描的时间,另一方面则还可以增强测试用例的有效性,有效提高了扫描结果的准确性。
附图说明
图1为本申请第一实施例提供的静态扫描方法的基本流程示意图;
图2为本申请第一实施例提供的一种测试用例匹配方法的流程示意图;
图3为本申请第一实施例提供的一种测试用例去重方法的流程示意图;
图4为本申请第一实施例提供的一种配置信息获取方法的流程示意图;
图5为本申请第二实施例提供的静态扫描方法的细化流程示意图;
图6为本申请第三实施例提供的一种静态扫描装置的程序模块示意图;
图7为本申请第三实施例提供的另一种静态扫描装置的程序模块示意图;
图8为本申请第四实施例提供的电子装置的结构示意图。
具体实施方式
为使得本申请的发明目的、特征、优点能够更加的明显和易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而非全部实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
静态扫描指的是静态源代码扫描,是近年被人提及较多的软件应用安全解决方案之一,它是指在软件工程中,程序员在写好源代码后,无需经过编译器编译,而直接使用一些扫描工具对其进行扫描,找出代码当中存在的一些语义缺陷、安全漏洞的解决方案。通过静态扫描,测试人员只需接收静态扫描的扫描报告,即可得出代码层面的风险及出现的问题,将测试工作前置,可以缩短测试周期,使得代码风险降至最低。
在实际应用中,静态扫描的具体实现方式包括但不限于以下两种:
方式一、模式匹配:匹配代码编译过程中的token流、抽象语法树(AST)和中间代码,根据经验认知某些样式的代码为漏洞。
方式二、数据流分析:数据流分析技术基于控制流图(CFG),按照某种方式扫面控制流图的每一条指令,试图理解指令行为,以此判断程序中存在的漏洞。
应当说明的是,对于模式匹配的方式,可以包括词法分析、语法分析和中间代码分析。其中,词法分析阶段是编译过程的第一个阶段,是编译的基础,这个阶段的任务是从左到右逐个字符地读入源程序,即对构成源程序的字符流进行扫描然后根据构词规则识别单词(也称单词符号或符号),即可以扫描、识别单词且对识别出的单词给出定性、定长的处理。而语法分析是编译过程的一个逻辑阶段,主要任务是在词法分析的基础上将单词序列组合成各类语法短语,如程序、语句、表达式等等。语法分析程序判断程序在结构上是否正确。
为了解决相关技术中在对应用软件进行静态扫描时,扫描耗时较长以及扫描结果的准确性较为有限的缺陷,本申请第一实施例提供了一种静态扫描方法,如图1为本实施例提供的静态扫描方法的基本流程图,该静态扫描方法包括以下的步骤:
步骤101、从待测应用的应用清单中,获取待测应用的目标配置信息。
具体的,在本实施例中,从待测应用的安装包中解析应用清单,在安卓系统中,应用清单表现为APK文件中的AndroidMainfest.xml,应用清单包含了应用的配置信息,系统需要根据清单中的内容运行程序代码。本实施例通过对应用清单进行深度分析,从中解析有效配置信息以对测试用例进行优化。
在本实施例的一些实施方式中,在从待测应用的应用清单中,获取待测应用的目标配置信息之前,还包括:获取待测应用的测试属性;判断测试属性是否满足预设触发条件;在满足触发条件时,触发从待测应用的应用清单中,获取待测应用的目标配置信息。
具体的,在实际应用中,可以在触发本实施例的静态扫描流程之前,设置一触发条件,该触发条件关联于待测应用的测试属性,例如测试次数、测试项目等,仅在测试属性满足条件时才触发该静态扫描流程,从而可以提高本实施例的静态扫描方法与实际测试场景的适用性,且可以避免盲目触发本实施例的静态扫描方法所带来的可能的处理性能浪费和准确性降低。
步骤102、从预设的测试用例库中,匹配所有对应于目标配置信息的目标测试用例。
具体的,在本实施例中,测试用例库中包括所有可用的测试用例,然而并非所有测试用例均可在对当前待测应用的测试过程中有效利用,基于此,本实施例基于对应于待测应用的目标配置信息,来从测试用例库中挑选有效的目标测试用例,以保证所使用的测试数量较为精简、有效性较高。
步骤103、基于目标测试用例对待测应用进行静态扫描。
具体的,本实施例在确定目标测试用例之后,可以将所有目标测试用例导入至静态代码扫描工具(例如TscSharp扫描工具等)对待测应用进行扫描分析,进而输出静态扫描检测报告。本实施例利用待测应用的配置信息对测试用例进行选择,一方面可以优化测试用例的数量,有效减少了整体扫描的时间,另一方面则还可以增强测试用例的有效性,有效提高了扫描结果的准确性。
在本实施例的一些实施方式中,目标配置信息包括权限申请信息和/或可导出组件配置信息。如图2所示为本实施例提供的一种测试用例匹配方法的流程示意图,相对应的,从预设的测试用例库中,匹配所有对应于目标配置信息的目标测试用例具体包括以下步骤:
步骤201、获取预设的测试用例库中,所有测试用例所要求的权限和/或可导出组件;
步骤202、将所要求的权限和/或可导出组件,与权限申请信息和/或可导出组件配置信息进行匹配;
步骤203、将具有匹配结果的测试用例确定为目标测试用例。
具体的,在实际应用中,某些测试需要权限申请(如获取网络信息、获取设备信息等),本实施例的权限申请信息用于确认权限是否正式申请,权限申请信息可以包括:获得询问的权限申请、弹窗的权限申请、直接的权限申请等;而可导出组件是作为程序攻击入口,根据可导出组件开展数据流和控制流分析,而某些测试用例(如Intent拒绝服务、Intent路径穿越等)需要在可导出组件上实现。本实施例针对各测试用例所要求的权限或可导出组件,与待测应用所配置的权限申请信息或可导出组件配置信息进行匹配,即可匹配出可有效利用的目标测试用例。
在本实施例的一些实施方式中,在基于目标测试用例对待测应用进行静态扫描之后,还包括:获取静态扫描完成所得到的检测报告中的可疑代码缺陷;根据可疑代码缺陷的缺陷属性,获取对应的复检策略;采用复检策略对待测应用的可疑代码缺陷进行复检。
具体的,在实际应用中,并非待测应用的程序代码中所有缺陷均可直接被确定,从而可能在静态扫描之后会测试出一些不确定是否真正存在缺陷的可疑代码缺陷,本实施例会分析可疑代码缺陷的缺陷属性来制定对应的复检策略,对可疑代码缺陷进行重复检测,以确定该缺陷是否真实存在。应当说明的是,本实施例的复检策略可以包括采用测试用例库中的所有测试用例,来对存在可疑代码缺陷的代码进行全库静态扫描,也可以是动态执行存在可疑代码缺陷的代码,采用相关测试用例进行动态验证等,在此不作唯一限定。
在本实施例的一些实施方式中,基于目标测试用例对待测应用进行静态扫描之后,还包括:获取静态扫描完成所得到的检测报告中的真实代码缺陷;根据真实代码缺陷的缺陷属性,获取对应的修复策略;采用修复策略对待测应用的真实代码缺陷进行修复。
具体的,在实际应用中,还可以对所测试出的代码缺陷进行智能修复,修复时所采用的修复策略基于缺陷属性确定,通过将代码检测和代码修复过程进行无缝衔接,可以有效提高待测应用的性能优化效率。应当说明的是,本实施例中的缺陷属性可以为缺陷类型、缺陷严重程度等。
如图3如本实施例提供的一种测试用例去重方法的流程示意图,在本实施例的一些实施方式中,在基于目标测试用例对待测应用进行静态扫描之前,还具体包括以下步骤:
步骤301、获取所有目标测试用例的功能属性;
步骤302、将所有的功能属性之间进行相关度比对;
步骤303、对各相关度超过预设的相关度阈值的目标测试用例组合进行去重处理。
具体的,在本实施例中,各测试用例均有其对应的测试功能用途,而测试用例库中不同测试用例的测试功能用途可能相同或相似,鉴于若一个测试用例的测试效果已足够对某一测试类目形成参考,那么采用多个测试用例进行相关测试则可能导致测试性能的浪费和测试效率的降低。基于此,本实施例在从测试用例库中提取出所有目标测试用例之后,还基于各目标测试用例的功能属性,在目标测试用例之间进行功能属性的相关度比对,并将相关度较高的目标测试用例所组成的集合进行去重处理,相对应的,在基于目标测试用例对待测应用进行静态扫描时,则是调用经过去重处理后所剩余的目标测试用例,对待测应用进行静态扫描,以进一步精简进行静态扫描所采用的测试用例的数量,在保证测试性能的同时,最大限度的保证测试效率和节约测试性能。
进一步地,在本实施例的一些实施方式中,对各相关度超过预设的相关度阈值的目标测试用例组合进行去重处理包括:获取各相关度超过预设的相关度阈值的目标测试用例组合中,所有目标测试用例的调用优先级;基于调用优先级的排序,对各目标测试用例组合进行去重处理。
具体的,本实施例在对相关度较高的目标测试用例所组成的集合进行去重处理时,可以基于各测试用例对应的调用优先级来进行,在实际应用中,调用优先级可以基于各测试用例在历史时间周期内的调用次数确定,也可以预先指定,在此不作唯一限定。本实施例在进行去重处理时,可以仅保留调用优先级最高的一个或多个目标测试用例,而将集合中的其它目标测试用例进行删除。
如图4如本实施例提供的一种配置信息获取方法的流程示意图,在本实施例的一些实施方式中,从待测应用的应用清单中,获取待测应用的目标配置信息具体包括以下步骤:
步骤401、确定待测应用的测试属性;
步骤402、基于测试属性确定对应于待测应用的目标配置信息类型;
步骤403、从待测应用的应用清单中,获取对应于目标配置信息类型的目标配置信息。
具体的,在实际应用中,待测应用的应用清单中可能包括多种不同类型的配置信息,为了保证本实施例所使用的目标测试用例的有效性,需要准确对目标配置信息进行确定,基于此,本实施例预先根据待测应用的测试属性来对应确定所需的目标配置信息,以提高所获取的目标配置信息与实际测试场景的适应性,保证了目标测试用例的有效性。
基于上述本申请实施例的技术方案,从待测应用的应用清单中,获取待测应用的目标配置信息;从预设的测试用例库中,匹配所有对应于目标配置信息的目标测试用例;基于目标测试用例对待测应用进行静态扫描。通过本申请方案的实施,利用待测应用的配置信息对测试用例进行选择,一方面可以优化测试用例的数量,有效减少了整体扫描的时间,另一方面则还可以增强测试用例的有效性,有效提高了扫描结果的准确性。
图5中的方法为本申请第二实施例提供的一种细化的静态扫描方法,该静态扫描方法包括:
步骤501、确定待测应用的测试属性,并基于测试属性确定对应于待测应用的目标配置信息类型。
步骤502、从待测应用的应用清单中,获取对应于目标配置信息类型的目标配置信息。
本实施例预先根据待测应用的测试属性来对应确定所需的目标配置信息,以提高所获取的目标配置信息与实际测试场景的适应性,保证了目标测试用例的有效性。
步骤503、从预设的测试用例库中,匹配所有对应于目标配置信息的目标测试用例。
在本实施例中,目标配置信息包括权限申请信息和/或可导出组件配置信息。本实施例可以针对各测试用例所要求的权限或可导出组件,与待测应用所配置的权限申请信息或可导出组件配置信息进行匹配,即可匹配出可有效利用的目标测试用例。
步骤504、获取所有目标测试用例的功能属性,并在所有目标测试用例之间进行功能属性的相关度比对。
步骤505、获取各相关度超过预设的相关度阈值的目标测试用例组合中,所有目标测试用例的调用优先级。
步骤506、基于调用优先级的排序,对各目标测试用例组合进行去重处理。
本实施例在从测试用例库中提取出所有目标测试用例之后,还基于各目标测试用例的功能属性,在目标测试用例之间进行功能属性的相关度比对,并将相关度较高的目标测试用例所组成的集合进行去重处理。
步骤507、调用经过去重处理后所剩余的目标测试用例,对待测应用进行静态扫描。
本实施例在基于待测应用的目标配置信息从测试用例库中筛选出目标测试用例之后,还进一步对相关度较高的目标测试用例进行去重,进一步精简了进行静态扫描所采用的测试用例的数量,从而可以在保证测试性能的同时,最大限度的保证测试效率和节约测试性能。
应当理解的是,本实施例中各步骤的序号的大小并不意味着步骤执行顺序的先后,各步骤的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成唯一限定。
本申请实施例公开了一种静态扫描方法,从待测应用的应用清单中,获取待测应用的目标配置信息;从预设的测试用例库中,匹配所有对应于目标配置信息的目标测试用例;基于目标测试用例对待测应用进行静态扫描。通过本申请方案的实施,利用待测应用的配置信息对测试用例进行选择,一方面可以优化测试用例的数量,有效减少了整体扫描的时间,另一方面则还可以增强测试用例的有效性,有效提高了扫描结果的准确性;并且,本申请基于待测应用的测试属性来对应确定所需的目标配置信息,可进一步增强所匹配出的测试用例的有效性;此外,本实施例基于目标测试用例之间的相关度比对结果进行目标测试用例的去重处理,进一步优化了测试用例的数量,减少了整体扫描时间和提高了扫描结果的准确性。
图6为本申请第三实施例提供的一种静态扫描装置。该静态扫描装置可用于实现前述实施例中的静态扫描方法。如图6所示,该静态扫描装置主要包括:
获取模块601,用于从待测应用的应用清单中,获取待测应用的目标配置信息;
匹配模块602,用于从预设的测试用例库中,匹配所有对应于目标配置信息的目标测试用例;
扫描模块603,用于基于目标测试用例对待测应用进行静态扫描。
在本实施例一些实施方式中,目标配置信息包括权限申请信息和/或可导出组件配置信息;相对应的,匹配模块602具体用于:获取预设的测试用例库中,所有测试用例所要求的权限和/或可导出组件;将所要求的权限和/或可导出组件,与权限申请信息和/或可导出组件配置信息进行匹配;将具有匹配结果的测试用例确定为目标测试用例。
如图7所示为本实施例提供的另一种静态扫描装置,在本实施例一些实施方式中,静态扫描装置还包括:复检模块604,用于:在基于目标测试用例对待测应用进行静态扫描之后,获取静态扫描完成所得到的检测报告中的可疑代码缺陷;根据可疑代码缺陷的缺陷属性,获取对应的复检策略;采用复检策略对待测应用的可疑代码缺陷进行复检。
请再次参阅图7,在本实施例的一些实施方式中,静态扫描装置还包括:修复模块605,用于在基于目标测试用例对待测应用进行静态扫描之后,获取静态扫描完成所得到的检测报告中的真实代码缺陷;根据真实代码缺陷的缺陷属性,获取对应的修复策略;采用修复策略对待测应用的真实代码缺陷进行修复。
请再次参阅图7,在本实施例的一些实施方式中,静态扫描装置还包括:去重模块606,用于在基于目标测试用例对待测应用进行静态扫描之前,获取所有目标测试用例的功能属性;将所有的功能属性之间进行相关度比对;对各相关度超过预设的相关度阈值的目标测试用例组合进行去重处理。相对应的,扫描模块603具体用于:调用经过去重处理后所剩余的目标测试用例,对待测应用进行静态扫描。
进一步地,在本实施例的一些实施方式中,去重模块606在对各相关度超过预设的相关度阈值的目标测试用例组合进行去重处理时,具体用于:获取各相关度超过预设的相关度阈值的目标测试用例组合中,所有目标测试用例的调用优先级;基于调用优先级的排序,对各目标测试用例组合进行去重处理。
在本实施例的另一些实施方式中,获取模块601具体用于:确定待测应用的测试属性;基于测试属性确定对应于待测应用的目标配置信息类型;从待测应用的应用清单中,获取对应于目标配置信息类型的目标配置信息。
应当说明的是,第一、二实施例中的静态扫描方法均可基于本实施例提供的静态扫描装置实现,所属领域的普通技术人员可以清楚的了解到,为描述的方便和简洁,本实施例中所描述的静态扫描装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
根据本实施例所提供的静态扫描装置,从待测应用的应用清单中,获取待测应用的目标配置信息;从预设的测试用例库中,匹配所有对应于目标配置信息的目标测试用例;基于目标测试用例对待测应用进行静态扫描。通过本申请方案的实施,利用待测应用的配置信息对测试用例进行选择,一方面可以优化测试用例的数量,有效减少了整体扫描的时间,另一方面则还可以增强测试用例的有效性,有效提高了扫描结果的准确性。
请参阅图8,图8为本申请第四实施例提供的一种电子装置。该电子装置可用于实现前述实施例中的静态扫描方法。如图8所示,该电子装置主要包括:
存储器801、处理器802、总线803及存储在存储器801上并可在处理器802上运行的计算机程序,存储器801和处理器802通过总线803连接。处理器802执行该计算机程序时,实现前述实施例中的静态扫描方法。其中,处理器的数量可以是一个或多个。
存储器801可以是高速随机存取记忆体(RAM,Random Access Memory)存储器,也可为非不稳定的存储器(non-volatile memory),例如磁盘存储器。存储器801用于存储可执行程序代码,处理器802与存储器801耦合。
进一步的,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是设置于上述各实施例中的电子装置中,该计算机可读存储介质可以是前述图8所示实施例中的存储器。
该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现前述实施例中的静态扫描方法。进一步的,该计算机可存储介质还可以是U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的可读存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上为对本申请所提供的静态扫描方法、装置及计算机可读存储介质的描述,对于本领域的技术人员,依据本申请实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。
Claims (9)
1.一种静态扫描方法,其特征在于,包括:
从待测应用的应用清单中,获取所述待测应用的目标配置信息;所述目标配置信息包括权限申请信息和/或可导出组件配置信息;
获取预设的测试用例库中,所有测试用例所要求的权限和/或可导出组件;
将所述所要求的权限和/或可导出组件,与所述权限申请信息和/或可导出组件配置信息进行匹配;
将具有匹配结果的测试用例确定为目标测试用例;
基于所述目标测试用例对所述待测应用进行静态扫描。
2.根据权利要求1所述的静态扫描方法,其特征在于,所述基于所述目标测试用例对所述待测应用进行静态扫描之后,还包括:
获取静态扫描完成所得到的检测报告中的可疑代码缺陷;
根据所述可疑代码缺陷的缺陷属性,获取对应的复检策略;
采用所述复检策略对所述待测应用的所述可疑代码缺陷进行复检。
3.根据权利要求1所述的静态扫描方法,其特征在于,所述基于所述目标测试用例对所述待测应用进行静态扫描之后,还包括:
获取静态扫描完成所得到的检测报告中的真实代码缺陷;
根据所述真实代码缺陷的缺陷属性,获取对应的修复策略;
采用所述修复策略对所述待测应用的所述真实代码缺陷进行修复。
4.根据权利要求1至3中任意一项所述的静态扫描方法,其特征在于,所述基于所述目标测试用例对所述待测应用进行静态扫描之前,还包括:
获取所有目标测试用例的功能属性;
将所有的所述功能属性之间进行相关度比对;
对各相关度超过预设的相关度阈值的目标测试用例组合进行去重处理;
所述基于所述目标测试用例对所述待测应用进行静态扫描包括:
调用经过去重处理后所剩余的所述目标测试用例,对所述待测应用进行静态扫描。
5.根据权利要求4所述的静态扫描方法,其特征在于,所述对各相关度超过预设的相关度阈值的目标测试用例组合进行去重处理包括:
获取各相关度超过预设的相关度阈值的目标测试用例组合中,所有目标测试用例的调用优先级;
基于所述调用优先级的排序,对各所述目标测试用例组合进行去重处理。
6.根据权利要求1至3中任意一项所述的静态扫描方法,其特征在于,所述从待测应用的应用清单中,获取所述待测应用的目标配置信息包括:
确定待测应用的测试属性;
基于所述测试属性确定对应于所述待测应用的目标配置信息类型;
从所述待测应用的应用清单中,获取对应于所述目标配置信息类型的目标配置信息。
7.一种静态扫描装置,其特征在于,包括:
获取模块,用于从待测应用的应用清单中,获取所述待测应用的目标配置信息;所述目标配置信息包括权限申请信息和/或可导出组件配置信息;
匹配模块,用于获取预设的测试用例库中,所有测试用例所要求的权限和/或可导出组件;将所要求的权限和/或可导出组件,与权限申请信息和/或可导出组件配置信息进行匹配;将具有匹配结果的测试用例确定为目标测试用例;
扫描模块,用于基于所述目标测试用例对所述待测应用进行静态扫描。
8.一种电子装置,包括:存储器、处理器及总线,其特征在于,所述总线用于实现所述存储器、处理器之间的连接通信;所述处理器用于执行存储在所述存储器上的计算机程序,所述处理器执行所述计算机程序时,实现权利要求1至6中任意一项所述方法中的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求1至6中的任意一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010052991.3A CN111274133B (zh) | 2020-01-17 | 2020-01-17 | 一种静态扫描方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010052991.3A CN111274133B (zh) | 2020-01-17 | 2020-01-17 | 一种静态扫描方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111274133A CN111274133A (zh) | 2020-06-12 |
CN111274133B true CN111274133B (zh) | 2023-07-25 |
Family
ID=71001096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010052991.3A Active CN111274133B (zh) | 2020-01-17 | 2020-01-17 | 一种静态扫描方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111274133B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528100A (zh) * | 2015-08-05 | 2017-03-22 | 通用电气公司 | 用于安全关键软件开发的基于模型的技术和过程的系统和方法 |
CN109408368A (zh) * | 2018-09-03 | 2019-03-01 | 深圳壹账通智能科技有限公司 | 一种测试辅助信息的输出方法、存储介质和服务器 |
CN109783354A (zh) * | 2018-12-14 | 2019-05-21 | 深圳壹账通智能科技有限公司 | 应用系统的功能测试方法、终端设备及介质 |
CN110096431A (zh) * | 2019-03-19 | 2019-08-06 | 深圳壹账通智能科技有限公司 | 页面权限测试方法、装置、计算机设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150026664A1 (en) * | 2013-07-17 | 2015-01-22 | International Business Machines Corporation | Method and system for automated test case selection |
-
2020
- 2020-01-17 CN CN202010052991.3A patent/CN111274133B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528100A (zh) * | 2015-08-05 | 2017-03-22 | 通用电气公司 | 用于安全关键软件开发的基于模型的技术和过程的系统和方法 |
CN109408368A (zh) * | 2018-09-03 | 2019-03-01 | 深圳壹账通智能科技有限公司 | 一种测试辅助信息的输出方法、存储介质和服务器 |
CN109783354A (zh) * | 2018-12-14 | 2019-05-21 | 深圳壹账通智能科技有限公司 | 应用系统的功能测试方法、终端设备及介质 |
CN110096431A (zh) * | 2019-03-19 | 2019-08-06 | 深圳壹账通智能科技有限公司 | 页面权限测试方法、装置、计算机设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
王泉 ; .规范化嵌入式软件自测试方法.计算机工程与设计.2013,(第10期),3480-3485. * |
Also Published As
Publication number | Publication date |
---|---|
CN111274133A (zh) | 2020-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101921052B1 (ko) | 바이너리에 대한 보안 취약점 및 그 원인 위치의 식별 방법 및 그 장치 | |
CN102054149B (zh) | 一种恶意代码行为特征提取方法 | |
US8549635B2 (en) | Malware detection using external call characteristics | |
US20040205411A1 (en) | Method of detecting malicious scripts using code insertion technique | |
CN108459954B (zh) | 应用程序漏洞检测方法和装置 | |
CN104899147A (zh) | 一种面向安全检查的代码静态分析方法 | |
Arzt et al. | Using targeted symbolic execution for reducing false-positives in dataflow analysis | |
KR101979329B1 (ko) | 바이너리의 취약점을 유발하는 입력데이터 위치 추적 방법 및 그 장치 | |
JP2019096292A (ja) | 自動化されたソフトウェアプログラム修復候補の選択 | |
KR101696694B1 (ko) | 역추적을 이용한 소스 코드 취약점 분석 방법 및 장치 | |
CN112131573A (zh) | 安全漏洞的检测方法、装置及存储介质 | |
CN114911711A (zh) | 一种代码缺陷分析方法、装置、电子设备及存储介质 | |
CN110287700B (zh) | 一种iOS应用安全分析方法及装置 | |
Ying et al. | Detecting buffer-overflow vulnerabilities in smart grid devices via automatic static analysis | |
CN111274133B (zh) | 一种静态扫描方法、装置及计算机可读存储介质 | |
KR102090229B1 (ko) | 바이너리에 대한 보안 취약점 및 그 원인 위치의 식별 방법 및 그 장치 | |
US11995192B2 (en) | System for static analysis of binary executable code and source code using fuzzy logic and method thereof | |
US20190205526A1 (en) | Binary image stack cookie protection | |
US11880470B2 (en) | System and method for vulnerability detection in computer code | |
CN115391230A (zh) | 一种测试脚本生成、渗透测试方法、装置、设备及介质 | |
CN115310087A (zh) | 一种基于抽象语法树的网站后门检测方法和系统 | |
CN114691197A (zh) | 代码分析方法、装置、电子设备和存储介质 | |
CN111625466B (zh) | 一种软件检测方法、装置及计算机可读存储介质 | |
CN113392016A (zh) | 对程序异常情况处理的规约生成方法、装置、设备及介质 | |
CN111190813B (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 |