CN113535577B - 基于知识图谱的应用测试方法、装置、电子设备和介质 - Google Patents
基于知识图谱的应用测试方法、装置、电子设备和介质 Download PDFInfo
- Publication number
- CN113535577B CN113535577B CN202110847050.3A CN202110847050A CN113535577B CN 113535577 B CN113535577 B CN 113535577B CN 202110847050 A CN202110847050 A CN 202110847050A CN 113535577 B CN113535577 B CN 113535577B
- Authority
- CN
- China
- Prior art keywords
- information
- test script
- attribute
- application
- vulnerability
- 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
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/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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
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
技术领域
本公开涉及金融技术领域,更具体地,涉及一种基于知识图谱的应用测试方法、应用测试装置、电子设备、计算机可读存储介质和计算机程序产品。
背景技术
随着技术的发展,在安全测试整个流程中,引入了一些自动化收集和扫描方法来提升信息收集效率和判断效率,同时也针对不同情况的漏洞,建立起脚本库,可以根据不同情况的漏洞,选择执行响应的脚本完成测试,提升安全测试效率和水平。
发明内容
有鉴于此,本公开提供了一种能够提高测试质量和测试效率、自动化程度高的基于知识图谱的应用测试方法、应用测试装置、电子设备、计算机可读存储介质和计算机程序产品。
本公开的一个方面提供了一种基于知识图谱的应用测试方法,所述应用测试方法在电子设备上执行,且包括:获取应用的特征信息;获取与所述特征信息对应的漏洞信息;获取测试脚本;根据所述特征信息、所述漏洞信息和所述测试脚本构建知识图谱,其中,所述知识图谱包括所述特征信息和所述漏洞信息之间的第一属性,以及所述漏洞信息和所述测试脚本之间的第二属性;根据所述第一属性和所述第二属性,选取针对所述应用的有效测试脚本;执行所述有效测试脚本;以及输出执行结果。
根据本公开实施例的基于知识图谱的应用测试方法,通过第一属性将漏洞信息与特征信息联系起来,通过第二属性将测试脚本与漏洞信息联系起来,从而建立知识图谱,通过知识图谱可以精准获得针对被测试应用的有效测试脚本,由此可以提升测试质量和测试效率,同时还可以降低对测试人员的依赖程度,从而可以节省人力、减少人为出错的概率。另外,本公开输入应用地址,即可完成全流程测试,自动化程度高。
在一些实施例中,所述获取测试脚本包括:获取带有标记的测试脚本,所述根据所述第一属性和所述第二属性,选取针对所述应用的有效测试脚本后还包括:根据所述标记剔除针对一个所述漏洞信息具有多个与该漏洞信息具有所述第二属性的所述有效测试脚本中的低效脚本。
在一些实施例中,所述标记包括执行次数和质量,所述低效脚本包括执行次数相对较少和质量低的所述有效测试脚本。
在一些实施例中,所述根据所述特征信息、所述漏洞信息和所述测试脚本构建知识图谱包括:分别建立所述特征信息、所述漏洞信息和所述测试脚本的实体;以所述特征信息为第一实体,以所述漏洞信息为第二实体,建立从所述第一实体到所述第二实体的第一向量边,所述第一向量边具有第一属性;以及以所述测试脚本为第三实体,建立从所述第二实体到所述第三实体的第二向量边,所述第二向量边具有第二属性。
在一些实施例中,所述第一属性为所述漏洞信息与所述特征信息的对应关系。
在一些实施例中,所述第二属性为所述测试脚本与所述漏洞信息的对应关系。
在一些实施例中,所述特征信息为m个,所述漏洞信息为n个,所述测试脚本为t个,m、n和t均为大于等于1的整数,所述根据所述第一属性和所述第二属性,选取针对所述应用的有效测试脚本包括:以一个所述特征信息为起始点,获取与该特征信息有第一向量边连接的全部所述漏洞信息;根据与该特征信息有第一向量边连接的全部所述漏洞信息,获取与全部所述漏洞信息有第二向量边连接的全部所述测试脚本,与全部所述漏洞信息有第二向量边连接的全部所述测试脚本为特征测试脚本;重复上述步骤,直至m个所述特征信息均作为起始点获取到所述特征测试脚本;以及将与每个所述特征信息对应的特征测试脚本求并集得到针对所述应用的有效测试脚本。
在一些实施例中,所述获取应用的特征信息包括:获取应用的框架信息、编程语言、载体框架信息和载体服务器中的至少一个。
在一些实施例中,执行所述有效测试脚本后还包括:存储执行结果。
本公开的另一个方面提供了一种基于知识图谱的应用测试装置,包括:第一获取模块,所述第一获取模块用于获取应用的特征信息;第二获取模块,所述第二获取模块用于获取与所述特征信息对应的漏洞信息;第三获取模块,所述第三获取模块用于获取带有标记的测试脚本;图谱构建模块,所述图谱构建模块根据所述特征信息、所述漏洞信息和所述测试脚本构建知识图谱,其中,所述知识图谱包括所述特征信息和所述漏洞信息之间的第一属性,以及所述漏洞信息和所述测试脚本之间的第二属性;脚本选取模块,所述脚本选取模块根据所述第一属性和所述第二属性,选取针对所述应用的有效测试脚本;脚本执行模块,所述脚本执行模块用于执行所述有效测试脚本;以及结果输出模块,所述结果输出模块用于输出执行结果。
本公开的另一方面提供了一种电子设备,包括一个或多个处理器以及一个或多个存储器,其中,所述存储器用于存储可执行指令,所述可执行指令在被所述处理器执行时,实现如上所述方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法
本公开的另一方面提供了一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的可以应用方法、装置的示例性系统架构;
图2示意性示出了根据本公开实施例的基于知识图谱的应用测试方法的流程图;
图3示意性示出了根据本公开实施例的获取应用的特征信息的流程图;
图4示意性示出了根据本公开实施例的根据特征信息、漏洞信息和测试脚本构建的知识图谱示意图;
图5示意性示出了根据本公开实施例的根据特征信息、漏洞信息和测试脚本构建知识图谱的流程图;
图6示意性示出了根据本公开实施例的根据第一属性和第二属性,选取针对应用的有效测试脚本的流程图;
图7示意性示出了根据本公开实施例的获取测试脚本的流程图;
图8示意性示出了根据本公开实施例的基于知识图谱的应用测试装置的结构框图;
图9示意性示出了根据本公开另一个实施例的基于知识图谱的应用测试装置的结构框图;
图10示意性示出了根据本公开实施例的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。在本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。
随着技术的发展,在安全测试整个流程中,引入了一些自动化收集和扫描方法来提升信息收集效率和判断效率,同时也针对不同情况的漏洞,建立起脚本库,可以根据不同情况的漏洞,选择执行响应的脚本完成测试,提升安全测试效率和水平。
相关的技术方案中,虽然在每个阶段的信息收集、分析方面都做了自动化处理,提升了效率。但是测试脚本未得到有效管理,也即当脚本库中有大量水平参差不齐的脚本,且面对一个Web应用的不同漏洞组合时,可能有成百上千个测试脚本可供选择,或者同时也需要为了这种漏洞组合编写不同的脚本。另外,虽然各个阶段的自动化水平达到了,但是在测试流程中的关键节点,仍然需要测试人员来分析和开展,这高度依赖安全测试人员测试水平,导致测试成本高,并且测试质量难以保证。
本公开的实施例提供了一种基于知识图谱的应用测试方法、应用测试装置、电子设备、计算机可读存储介质和计算机程序产品。基于知识图谱的应用测试方法可以在电子设备上执行,且包括:获取应用的特征信息;获取与特征信息对应的漏洞信息;获取测试脚本;根据特征信息、漏洞信息和测试脚本构建知识图谱,其中,知识图谱包括特征信息和漏洞信息之间的第一属性,以及漏洞信息和测试脚本之间的第二属性;根据第一属性和第二属性,选取针对应用的有效测试脚本;执行有效测试脚本;以及输出执行结果。
需要说明的是,本公开的基于知识图谱的应用测试方法、应用测试装置、电子设备、计算机可读存储介质和计算机程序产品可用于金融领域,也可用于除金融领域之外的任意领域,这里对本公开的领域不做限定。
图1示意性示出了根据本公开实施例的可以应用基于知识图谱的应用测试方法、应用测试装置、电子设备、计算机可读存储介质和计算机程序产品的示例性系统架构100。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本公开实施例所提供的基于知识图谱的应用测试方法一般可以由服务器105执行。相应地,本公开实施例所提供的应用测试装置一般可以设置于服务器105中。本公开实施例所提供的基于知识图谱的应用测试方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的应用测试装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
以下将基于图1描述的场景,通过图2~图7对本公开实施例的基于知识图谱的应用测试方法进行详细描述。
图2示意性示出了根据本公开实施例的基于知识图谱的应用测试方法的流程图,应用测试方法可以在电子设备上执行。
如图2所示,该实施例的基于知识图谱的应用测试方法包括操作S210~操作S270。
在操作S210,获取应用的特征信息,这里,应用可以包括但不限于网页应用(WebApp)、原生应用(Native App)或混合应用(Hybrid App),本文以网页应用为例进行说明,但是并不能理解为对本公开的限制。作为一种可实施的方式,如图3所示,操作S210获取应用的特征信息包括操作S211:获取应用的框架信息、编程语言、载体框架信息和载体服务器中的至少一个。以网页应用为例,应用的特征信息可以理解为应用的框架信息、编程语言、应用基于的网页框架信息和网页服务器中的至少一个。
在操作S220,获取与特征信息对应的漏洞信息。可以理解的是,一个特征信息可以有对应的一个漏洞信息,也可以有对应的多个漏洞信息,例如两个漏洞信息、三个漏洞信息或四个漏洞信息等等,当然某些特征信息也可以没有漏洞信息。其中,漏洞信息被不法分子利用可能威胁应用的安全性能,例如网银应用的架构信息对应的漏洞信息如果被不法分子利用,有可能导致客户的财产受到损失。漏洞信息本身也有可能导致应用不能正常使用。
在操作S230,获取测试脚本,其中,在测试过程中,测试脚本可以用于发现漏洞信息,由此可以提示测试人员和开发人员特征信息中的漏洞信息,使得开发人员可以及时修复漏洞。
在操作S240,如图4所示,根据特征信息、漏洞信息和测试脚本构建知识图谱,其中,知识图谱包括特征信息和漏洞信息之间的第一属性,以及漏洞信息和测试脚本之间的第二属性。
作为一种可实施的方式,如图5所示,操作S240根据特征信息、漏洞信息和测试脚本构建知识图谱包括操作S241~操作S243。
在操作S241,分别建立特征信息、漏洞信息和测试脚本的实体。
在操作S242,以特征信息为第一实体,以漏洞信息为第二实体,建立从第一实体到第二实体的第一向量边,第一向量边具有第一属性。
在操作S243,以测试脚本为第三实体,建立从第二实体到第三实体的第二向量边,第二向量边具有第二属性。
具体地,第一属性为漏洞信息与特征信息的对应关系。第二属性为测试脚本与漏洞信息的对应关系。由此,通过具有第一属性的第一向量边可以将特征信息和漏洞信息建立起连接关系,使得在知识图谱中,特征信息和与其对应的漏洞信息可以有直观的连接关系;通过具有第二属性的第二向量边可以将漏洞信息和测试脚本建立起连接关系,使得在知识图谱中,漏洞信息和与其对应的测试脚本可以有直观的连接关系。
在操作S250,根据第一属性和第二属性,选取针对应用的有效测试脚本。其中,特征信息可以为m个,漏洞信息可以为n个,测试脚本可以为t个,m、n和t均为大于等于1的整数,作为一种可能实施的方式,如图6所示,操作S250根据第一属性和第二属性,选取针对应用的有效测试脚本包括操作S251~操作S254。
在操作S251,以一个特征信息为起始点,获取与该特征信息有第一向量边连接的全部漏洞信息。
在操作S252,根据与该特征信息有第一向量边连接的全部漏洞信息,获取与全部漏洞信息有第二向量边连接的全部测试脚本,与全部漏洞信息有第二向量边连接的全部测试脚本为特征测试脚本。
在操作S253,重复上述步骤,直至m个特征信息均作为起始点获取到特征测试脚本。
在操作S254,将与每个特征信息对应的特征测试脚本求并集得到针对应用的有效测试脚本。
由此,通过操作S251~操作S254可以便于实现根据第一属性和第二属性,选取针对应用的有效测试脚本
在操作S260,执行有效测试脚本。
在操作S270,输出执行结果。
下面以一个具体的网页应用举例说明,结合图4,应用可以为银行的网银App,网银App的特征信息包括网页框架(具体可为React框架)、网页服务器(具体可为Nginx服务器)、应用框架(具体可为Spring框架)和应用编程语言(具体可为Java语言)。
以React框架为起始点,通过第一属性,也即通过漏洞信息与特征信息的对应关系,找到与React框架对应的漏洞信息,与React框架对应的漏洞信息具体可以为xss漏洞,通过第二属性,也即通过测试脚本与漏洞信息的对应关系,找到与xss漏洞对应的测试脚本,与xss漏洞对应的测试脚本具体可以为EXP1,因此,将EXP1作为React框架的特征测试脚本。
以Nginx服务器为起始点,通过第一属性,也即通过漏洞信息与特征信息的对应关系,找到与Nginx服务器对应的漏洞信息,与Nginx服务器对应的漏洞信息具体可以为CVE1漏洞,通过第二属性,也即通过测试脚本与漏洞信息的对应关系,找到与CVE1漏洞对应的测试脚本,与CVE1漏洞对应的测试脚本具体可以为EXP2和EXP3,因此,将EXP2和EXP3作为Nginx服务器的特征测试脚本。
以Spring框架为起始点,通过第一属性,也即通过漏洞信息与特征信息的对应关系,找到与Spring框架对应的漏洞信息,与Spring框架对应的漏洞信息具体可以为CVExxx漏洞和SQL injection漏洞,通过第二属性,也即通过测试脚本与漏洞信息的对应关系,找到与CVExxx漏洞对应的测试脚本,与CVExxx漏洞对应的测试脚本具体可以为EXP4;还要找到与SQL injection漏洞对应的测试脚本,与SQL injection漏洞对应的测试脚本具体可以为EXP5。因此,将EXP4和EXP5作为Spring框架的特征测试脚本。
以Java语言为起始点,通过第一属性,也即通过漏洞信息与特征信息的对应关系,找到与Java语言对应的漏洞信息,与Java语言对应的漏洞信息具体可以为SQL injection漏洞,通过第二属性,也即通过测试脚本与漏洞信息的对应关系,找到与SQL injection漏洞对应的测试脚本,与SQL injection漏洞对应的测试脚本具体可以为EXP5,因此,将EXP5作为Java语言的特征测试脚本。
综上,将与React框架对应的特征测试脚本EXP1、与Nginx服务器对应的特征测试脚本EXP2和EXP3、与Spring框架对应的特征测试脚本EXP4和EXP5以及与Java语言对应的特征测试脚本EXP5求并集得到针对网银App的有效测试脚本:EXP1、EXP2、EXP3、EXP4和EXP5。
由此可以执行EXP1、EXP2、EXP3、EXP4和EXP5,进而可以得到执行结果并输出。
根据本公开实施例的基于知识图谱的应用测试方法,通过第一属性将漏洞信息与特征信息联系起来,通过第二属性将测试脚本与漏洞信息联系起来,从而建立知识图谱,通过知识图谱可以精准获得针对被测试应用的有效测试脚本,由此可以提升测试质量和测试效率,同时还可以降低对测试人员的依赖程度,从而可以节省人力、减少人为出错的概率。另外,本公开输入应用地址,即可完成全流程测试,自动化程度高。
图7示意性示出了根据本公开实施例的获取测试脚本的流程图。
操作S230获取测试脚本包括操作S231。
在操作S231,获取带有标记的测试脚本。
如图2所示,操作S250根据第一属性和第二属性,选取针对应用的有效测试脚本后还包括操作S280:根据标记剔除针对一个漏洞信息具有多个与该漏洞信息具有第二属性的有效测试脚本中的低效脚本。作为一些具体的示例,标记可以包括执行次数和质量,低效脚本包括执行次数相对较少和质量低的有效测试脚本。
继续用网银App举例说明,参考图4,针对CVE1漏洞信息的有效测试脚本可以为EXP2和EXP3,EXP2的标记为执行3次和质量低,EXP3的标记为执行5次和质量高,根据EXP2的标记和EXP3的标记比较EXP2和EXP3,其中EXP2的执行次数少于EXP3,EXP2为质量低的脚本,EXP3为质量高的脚本,由此,与EXP3相比,确定EXP2为低效脚本,进而可以剔除EXP2,仅将EXP3作为针对CVE1漏洞信息的有效测试脚本。通过剔除低效脚本,可以在顺利完成测试的同时提升测试效率和提高测试质量。
根据本公开的一些实施例,如图2所示,操作S260执行有效测试脚本后还包括操作S290:存储执行结果。由此,可以将存储后的执行结果作为经验数据,以便后期的回顾与学习。
基于上述基于知识图谱的应用测试方法,本公开还提供了一种基于知识图谱的应用测试装置10。以下将结合图8对基于知识图谱的应用测试装置10进行详细描述。
图8示意性示出了根据本公开实施例的基于知识图谱的应用测试装置10的结构框图。
基于知识图谱的应用测试装置10包括第一获取模块1、第二获取模块2、第三获取模块3、图谱构建模块4、脚本选取模块5、脚本执行模块6和结果输出模块7。
第一获取模块1用于执行操作S210:获取应用的特征信息。其中,第一获取模块1可以从安装应用的移动端获取应用的特征信息;第一获取模块1也可以从应用的服务器端获取应用的特征信息;第一获取模块1还可以从安装应用的移动端和服务器段同时获取应用的特征信息。
第二获取模块2用于执行操作S220:获取与特征信息对应的漏洞信息。与特征信息对应的漏洞信息可以存储在移动端,也可以存储在服务器端,第二获取模块2可以从存储有漏洞信息的移动端和/或服务器端获取漏洞信息。当然漏洞信息还可以存在于浏览器的网站上,第二获取模块2可以从网站上搜索漏洞信息并下载获取。
第三获取模块3用于执行操作S230:获取带有标记的测试脚本。测试脚本可以为测试人员上传至移动端和/或服务器端的脚本库中的测试脚本。
图谱构建模块4执行操作S240:根据特征信息、漏洞信息和测试脚本构建知识图谱,其中,知识图谱包括特征信息和漏洞信息之间的第一属性,以及漏洞信息和测试脚本之间的第二属性。
脚本选取模块5执行操作S250:根据第一属性和第二属性,选取针对应用的有效测试脚本。
脚本执行模块6用于执行操作S260:执行有效测试脚本。
结果输出模块7用于执行操作S270:输出执行结果。
由于上述基于知识图谱的应用测试装置10是基于应用测试方法设置的,因此上述基于知识图谱的应用测试装置10的有益效果与基于知识图谱的应用测试方法的相同,这里不再赘述。
另外,根据本公开的实施例,第一获取模块1、第二获取模块2、第三获取模块3、图谱构建模块4、脚本选取模块5、脚本执行模块6和结果输出模块7中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。
根据本公开的实施例,第一获取模块1、第二获取模块2、第三获取模块3、图谱构建模块4、脚本选取模块5、脚本执行模块6和结果输出模块7中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。
或者,第一获取模块1、第二获取模块2、第三获取模块3、图谱构建模块4、脚本选取模块5、脚本执行模块6和结果输出模块7中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
下面参照图9详细描述根据本公开实施例的基于知识图谱的应用测试装置20。值得理解的是,下述描述仅是示例性说明,而不是对本公开的具体限制。
基于知识图谱的应用测试装置20的主要功能模块包括WEB应用信息收集模块21、漏洞管理模块22、EXP脚本管理模块23、知识图谱构建模块24、脚本执行模块25和测试结果展示模块26。
WEB应用信息收集模块21根据WEB应用提供的WEB地址,通过扫描器,获取该应用的应用指纹信息,同时存储到数据库中。应用指纹信息一般包括:Web框架信息、编程语言、Web服务器、各类框架等信息。
漏洞管理模块22用于存储通过各个渠道收集的漏洞信息。
EXP脚本管理模块23用于存储、新增、修改EXP脚本,记录每个脚本具体针对哪些漏洞,被执行次数等情况。同时,测试人员可通过该模块人工标记该脚本质量。
知识图谱构建模块24主要基于知识图谱技术,将应用指纹信息、漏洞信息、EXP脚本以图数据库形式存储,建立图谱关系。知识关系的建立是基于应用指纹信息和漏洞信息的关系,基于安全测试人员以往使用EXP脚本进行测试的效果。三者建立关系后,一旦获得新的应用指纹信息,可以通过知识图谱,进行关联分析,从而筛选出最适合的EXP测试脚本,提交至脚本执行模块25执行。
知识图谱构建模块24主要包含两部分功能:一部分功能为关系抽取与表示:将应用指纹信息、漏洞信息和EXP脚本以实体进行存储,通过建立漏洞发生的条件,利用漏洞的脚本等关系,构建关系图谱。
另一部分功能为关联分析:判断指纹信息、漏洞信息和EXP脚本,根据一些判断规则(属性等),选取n个EXP脚本执行。
脚本执行模块25负责从知识图谱构建模块24中获得脚本清单,依次执行,将结果存储在系统中。所有脚本执行结果,通过测试结果展示模块26进行展示,供测试人员编写报告,开展后续测试参考。
图10示意性示出了根据本公开实施例的适于实现基于知识图谱的应用测试方法的电子设备的方框图。
如图10所示,根据本公开实施例的电子设备900包括处理器901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。处理器901例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器901还可以包括用于缓存用途的板载存储器。处理器901可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 903中,存储有电子设备900操作所需的各种程序和数据。处理器901、ROM902以及RAM 903通过总线904彼此相连。处理器901通过执行ROM 902和/或RAM 903中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 902和RAM 903以外的一个或多个存储器中。处理器901也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备900还可以包括输入/输出(I/O)接口905,输入/输出(I/O)接口905也连接至总线904。电子设备900还可以包括连接至I/O接口905的以下部件中的一项或多项:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至输入/输出(I/O)接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 902和/或RAM 903和/或ROM 902和RAM 903以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例的方法。
在该计算机程序被处理器901执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分909被下载和安装,和/或从可拆卸介质911被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被处理器901执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (8)
1.一种基于知识图谱的应用测试方法,所述应用测试方法在电子设备上执行,其特征在于,包括:
获取应用的特征信息,其中,所述应用的特征信息包括应用的框架信息、编程语言、载体框架信息和载体服务器中的至少一个;
获取与所述特征信息对应的漏洞信息;
获取测试脚本,其中,所述获取测试脚本包括获取带有标记的测试脚本;
根据所述特征信息、所述漏洞信息和所述测试脚本构建知识图谱,其中,所述知识图谱包括所述特征信息和所述漏洞信息之间的第一属性,以及所述漏洞信息和所述测试脚本之间的第二属性,所述第一属性为所述漏洞信息与所述特征信息的对应关系,所述第二属性为所述测试脚本与所述漏洞信息的对应关系;
根据所述第一属性和所述第二属性,选取针对所述应用的有效测试脚本;
根据所述标记剔除针对一个所述漏洞信息具有多个、与该漏洞信息具有所述第二属性的所述有效测试脚本中的低效脚本;
执行所述有效测试脚本;以及
输出执行结果。
2.根据权利要求1所述的基于知识图谱的应用测试方法,其特征在于,所述标记包括执行次数和质量,所述低效脚本包括执行次数相对较少和质量低的所述有效测试脚本。
3.根据权利要求1所述的基于知识图谱的应用测试方法,其特征在于,所述根据所述特征信息、所述漏洞信息和所述测试脚本构建知识图谱包括:
分别建立所述特征信息、所述漏洞信息和所述测试脚本的实体;
以所述特征信息为第一实体,以所述漏洞信息为第二实体,建立从所述第一实体到所述第二实体的第一向量边,所述第一向量边具有第一属性;以及
以所述测试脚本为第三实体,建立从所述第二实体到所述第三实体的第二向量边,所述第二向量边具有第二属性。
4.根据权利要求1所述的基于知识图谱的应用测试方法,其特征在于,所述特征信息为m个,所述漏洞信息为n个,所述测试脚本为t个,m、n和t均为大于等于1的整数,所述根据所述第一属性和所述第二属性,选取针对所述应用的有效测试脚本包括:
以一个所述特征信息为起始点,获取与该特征信息有第一向量边连接的全部所述漏洞信息;
根据与该特征信息有第一向量边连接的全部所述漏洞信息,获取与全部所述漏洞信息有第二向量边连接的全部所述测试脚本,与全部所述漏洞信息有第二向量边连接的全部所述测试脚本为特征测试脚本;
重复上述步骤,直至m个所述特征信息均作为起始点获取到所述特征测试脚本;以及
将与每个所述特征信息对应的特征测试脚本求并集得到针对所述应用的有效测试脚本。
5.根据权利要求1所述的基于知识图谱的应用测试方法,其特征在于,执行所述有效测试脚本后还包括:存储执行结果。
6.一种基于知识图谱的应用测试装置,其特征在于,包括:
第一获取模块,所述第一获取模块用于获取应用的特征信息,其中,所述应用的特征信息包括应用的框架信息、编程语言、载体框架信息和载体服务器中的至少一个;
第二获取模块,所述第二获取模块用于获取与所述特征信息对应的漏洞信息;
第三获取模块,所述第三获取模块用于获取带有标记的测试脚本,其中,所述获取测试脚本包括获取带有标记的测试脚本;
图谱构建模块,所述图谱构建模块根据所述特征信息、所述漏洞信息和所述测试脚本构建知识图谱,其中,所述知识图谱包括所述特征信息和所述漏洞信息之间的第一属性,以及所述漏洞信息和所述测试脚本之间的第二属性,所述第一属性为所述漏洞信息与所述特征信息的对应关系,所述第二属性为所述测试脚本与所述漏洞信息的对应关系;
脚本选取模块,所述脚本选取模块根据所述第一属性和所述第二属性,选取针对所述应用的有效测试脚本;
根据所述标记剔除针对一个所述漏洞信息具有多个、与该漏洞信息具有所述第二属性的所述有效测试脚本中的低效脚本;
脚本执行模块,所述脚本执行模块用于执行所述有效测试脚本;以及
结果输出模块,所述结果输出模块用于输出执行结果。
7.一种电子设备,其特征在于,包括:
一个或多个处理器;
一个或多个存储器,用于存储可执行指令,所述可执行指令在被所述处理器执行时,实现根据权利要求1~5中任一项所述的方法。
8.一种计算机可读存储介质,其特征在于,所述存储介质上存储有可执行指令,该指令被处理器执行时实现根据权利要求1~5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110847050.3A CN113535577B (zh) | 2021-07-26 | 2021-07-26 | 基于知识图谱的应用测试方法、装置、电子设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110847050.3A CN113535577B (zh) | 2021-07-26 | 2021-07-26 | 基于知识图谱的应用测试方法、装置、电子设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113535577A CN113535577A (zh) | 2021-10-22 |
CN113535577B true CN113535577B (zh) | 2022-07-19 |
Family
ID=78120922
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110847050.3A Active CN113535577B (zh) | 2021-07-26 | 2021-07-26 | 基于知识图谱的应用测试方法、装置、电子设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113535577B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114969759B (zh) * | 2022-06-07 | 2024-04-05 | 中国软件评测中心(工业和信息化部软件与集成电路促进中心) | 工业机器人系统的资产安全评估方法、装置、终端及介质 |
US11763007B1 (en) * | 2023-04-19 | 2023-09-19 | Citibank, N.A. | Systems and methods for performing vulnerability assessment on partially functional applications |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109101410A (zh) * | 2017-06-20 | 2018-12-28 | 北京明略软件系统有限公司 | 一种风险驱动测试方法和装置以及计算机可读存储介质 |
CN110688456A (zh) * | 2019-09-25 | 2020-01-14 | 北京计算机技术及应用研究所 | 一种基于知识图谱的漏洞知识库构建方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017520842A (ja) * | 2014-06-13 | 2017-07-27 | ザ・チャールズ・スターク・ドレイパー・ラボラトリー・インコーポレイテッド | ソフトウェア分析のためのシステムおよび方法 |
CN110221978B (zh) * | 2019-06-03 | 2023-03-14 | 北京丁牛科技有限公司 | 测试用例生成方法及装置 |
CN110888808B (zh) * | 2019-11-16 | 2023-01-31 | 云南湾谷科技有限公司 | 一种基于知识图谱的Web智能化测试的方法 |
CN111930623B (zh) * | 2020-08-10 | 2023-07-25 | 中国工商银行股份有限公司 | 一种测试案例构建方法、装置及电子设备 |
-
2021
- 2021-07-26 CN CN202110847050.3A patent/CN113535577B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109101410A (zh) * | 2017-06-20 | 2018-12-28 | 北京明略软件系统有限公司 | 一种风险驱动测试方法和装置以及计算机可读存储介质 |
CN110688456A (zh) * | 2019-09-25 | 2020-01-14 | 北京计算机技术及应用研究所 | 一种基于知识图谱的漏洞知识库构建方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113535577A (zh) | 2021-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113535577B (zh) | 基于知识图谱的应用测试方法、装置、电子设备和介质 | |
CN112817831A (zh) | 应用性能监测方法、装置、计算机系统和可读存储介质 | |
CN112965916A (zh) | 页面测试方法、页面测试装置、电子设备及可读存储介质 | |
CN115080433A (zh) | 基于流量回放的测试方法及装置 | |
CN113918864A (zh) | 网站页面的测试方法、测试系统、装置、电子设备及介质 | |
CN113362173A (zh) | 防重机制验证方法、验证系统、电子设备及存储介质 | |
CN116483888A (zh) | 程序评估方法及装置、电子设备和计算机可读存储介质 | |
CN111930629A (zh) | 页面测试方法、装置、电子设备及存储介质 | |
CN115203178A (zh) | 数据质检方法、装置、电子设备及存储介质 | |
CN115292187A (zh) | 无编码的页面自动测试方法、装置、电子设备和介质 | |
CN114637689A (zh) | 应用评估方法、装置、设备及存储介质 | |
CN114691527A (zh) | 单元测试案例生成方法、装置、设备、介质和程序产品 | |
CN114625667A (zh) | 页面测试方法、装置、设备、存储介质和程序产品 | |
CN114301713A (zh) | 风险访问检测模型的训练方法、风险访问检测方法及装置 | |
CN114281704A (zh) | 一种网站测试方法、装置、电子设备和介质 | |
CN113127858A (zh) | 异常检测模型训练方法、异常检测方法及装置 | |
CN115629983A (zh) | 测试用例集生成方法、装置、设备、介质 | |
CN114116519A (zh) | 接口测试方法、装置、电子设备和存储介质 | |
CN114840435A (zh) | 数据流向的确定方法、装置、设备、存储介质和程序产品 | |
CN116894004A (zh) | 信息展示方法及装置、电子设备和计算机可读存储介质 | |
CN116594876A (zh) | 一种接口测试方法、装置、设备及存储介质 | |
CN116467214A (zh) | 一种代码质量检测方法、装置、设备及存储介质 | |
CN117435472A (zh) | 一种页面测试方法、装置、设备及介质 | |
CN114201410A (zh) | 测试用例被执行程度的监测方法、装置、设备、介质 | |
CN114817007A (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 |