渗透测试方法、装置、计算机设备及存储介质与流程

专利2022-06-29  43


本发明涉及计算机技术领域,尤其涉及一种渗透测试方法、装置、计算机设备及存储介质。



背景技术:

在对待测试系统进行渗透测试过程中,需使用多种不同的分析测试工具进行测试,不同的分析测试工具的工作原理、功能、测试方式等都存在区别,因此待测试系统中不同的模块及测试阶段适用不同的分析测试工具,待测试系统中可能包含各种各样的漏洞,传统渗透测试方法均是通过人工选择的方式选择得到所需的分析测试工具,以完成对待测试系统的渗透测试,然而人工选择的方式需耗费大量时间,且无法准确、高效地选择得到与待测试系统相匹配的分析测试工具,导致无法对待测试系统所包含的安全隐患进行全覆盖测试。因而,现有的渗透测试方法存在无法对待测试系统所包含的安全隐患进行全覆盖测试的问题。



技术实现要素:

本发明实施例提供了一种渗透测试方法、装置、计算机设备及存储介质,旨在解决现有技术方法所存在的无法对待测试系统所包含的安全隐患进行全覆盖测试的问题。

第一方面,本发明实施例提供了一种渗透测试方法,其包括:

若接收到指向信息,根据预置的信息扫描模型对与所述指向信息对应的待测试系统进行扫描以获取所述待测试系统的特征信息;

根据预置的关键字匹配库获取预置的漏洞信息库中与所述特征信息相匹配的目标漏洞;

根据预置的渗透测试模型对所述待测试系统的特征信息进行系统测试以得到系统测试结果;

若系统测试结果为测试通过,根据所述目标漏洞对所述待测试系统进行验证以得到第一漏洞验证结果;

根据所述目标漏洞及所述漏洞信息库对所述待测试系统进行扩展验证以得到第二漏洞验证结果;

根据所述第一漏洞验证结果及所述第二漏洞验证结果生成所述待测试系统的测试报告并进行反馈。

第二方面,本发明实施例提供了一种渗透测试装置,其包括:

特征信息获取单元,用于若接收到指向信息,根据预置的信息扫描模型对与所述指向信息对应的待测试系统进行扫描以获取所述待测试系统的特征信息;

目标漏洞获取单元,用于根据预置的关键字匹配库获取预置的漏洞信息库中与所述特征信息相匹配的目标漏洞;

系统测试结果获取单元,用于根据预置的渗透测试模型对所述待测试系统的特征信息进行系统测试以得到系统测试结果;

第一漏洞验证单元,用于若系统测试结果为测试通过,根据所述目标漏洞对所述待测试系统进行验证以得到第一漏洞验证结果;

第二漏洞验证单元,用于根据所述目标漏洞及所述漏洞信息库对所述待测试系统进行扩展验证以得到第二漏洞验证结果;

测试报告生成单元,用于根据所述第一漏洞验证结果及所述第二漏洞验证结果生成所述待测试系统的测试报告并进行反馈。

第三方面,本发明实施例又提供了一种计算机设备,其包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的渗透测试方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,其中所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行上述第一方面所述的渗透测试方法。

本发明实施例提供了一种渗透测试方法、装置、计算机设备及存储介质。根据信息扫描模型对与指向信息对应的待测试系统进行扫描仪获取对应的特征信息,根据关键字匹配库获取漏洞信息库中与特征信息相匹配的目标漏洞,根据渗透测试模型对待测试系统的特征信息进行系统测试以得到系统测试结果,若系统测试为通过,根据目标漏洞对待测试系统进行验证得到第一漏洞验证结果,根据目标漏洞及漏洞信息库对待测试系统进行扩展验证得到第二漏洞验证结果,根据第一漏洞验证结果及第二漏洞验证结果生成测试报告。通过上述方法,可提高对待测试系统所包含安全隐患进行渗透测试的覆盖面,大幅提高了渗透测试的效率及准确性。

附图说明

为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的渗透测试方法的流程示意图;

图2为本发明实施例提供的渗透测试方法的子流程示意图;

图3为本发明实施例提供的渗透测试方法的另一子流程示意图;

图4为本发明实施例提供的渗透测试方法的另一子流程示意图;

图5为本发明实施例提供的渗透测试方法的另一子流程示意图;

图6为本发明实施例提供的渗透测试方法的另一子流程示意图;

图7为本发明实施例提供的渗透测试方法的另一流程示意图;

图8为本发明实施例提供的渗透测试装置的示意性框图;

图9为本发明实施例提供的计算机设备的示意性框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

请参阅图1,图1是本发明实施例提供的渗透测试方法的流程示意图。该渗透测试方法应用于用户终端中,该方法通过安装于用户终端中的应用软件进行执行,用户终端即是用于执行渗透测试方法以对数据信息进行同步的终端设备,例如台式电脑、笔记本电脑、平板电脑或手机等。

如图1所示,该方法包括步骤s110~s160。

s110、若接收到指向信息,根据预置的信息扫描模型对与所述指向信息对应的待测试系统进行扫描以获取所述待测试系统的特征信息。

若接收到用户所输入的指向信息,根据预置的信息扫描模型对与所述指向信息对应的待测试系统进行扫描以获取所述待测试系统的特征信息。其中,所述信息扫描模型包括参数扫描规则、服务器扫描规则及源码信息获取规则,所述特征信息包括参数信息、服务器信息及源代码信息。指向信息即是用于获取待测试系统具体位置的信息,指向信息可以是待测试系统的网络地址或待测试系统的存储地址。

在一实施例中,如图2所示,步骤s110包括子步骤s111、s112和s113。

s111、根据所述参数扫描规则对所述待测试系统进行扫描以获取所述待测试系统所配置的参数信息。

根据所述参数扫描规则对所述待测试系统进行扫描以获取所述待测试系统所配置的参数信息。具体的,参数扫描规则即是用于对待测试系统中所配置的参数进行扫描的规则,参数扫描规则中包含多个扫描关键字,通过扫描关键字即可获取待测试系统中与扫描关键字相匹配的参数,作为待测试系统的参数信息。参数扫描规则可对待测试系统的ip地址、端口、开发框架、系统类型、开发语言、系统组件等参数进行扫描得到参数信息。开发框架即是待测试系统开发所使用的程序框架,例如struts框架、thinkphp框架;系统类型即是待测试系统所适用的系统,例如linux系统、windows系统;开发语言即是待测试系统开发所使用的程序语言,例如java语音、python语音、php语音、javascript语音;系统组件即是待测试系统中所包含的程序组件,例如mq(消息队列)、zk、sql(structuredquerylanguage,结构化查询语言)。

例如,参数扫描规则中对ip地址这一参数进行扫描的扫描关键字为“ipaddress”,根据该扫描关键字对待测试系统进行扫描得到对应的内容为“ipaddress:153.xx.xx.03”,则得到待测试系统中与该扫描关键词对应的参数为“153.xx.xx.03”。

s112、根据所述服务器扫描规则对存储所述待测试系统的服务器进行扫描以获取所述待测试系统的服务器信息。

根据所述服务器扫描规则对存储所述待测试系统的服务器进行扫描以获取所述待测试系统的服务器信息。具体的,服务器扫描规则即是用于对待测试系统所部署的服务器进行扫描的规则,待测试系统部署于至少一台服务器上,则对所部署的所有服务器进行扫描即可得到待测试系统的服务器信息,服务器扫描规则可对服务器的交互端口、服务器运行信息等参数进行扫描,得到服务器信息。其中,交互端口即是服务器与外部设备进行交互的端口,服务器运行信息即是服务器的数据流量、cpu占比、内存占比等信息。

s113、根据所述源码信息获取规则获取与所述待测试系统对应的源代码信息。

根据所述源码信息获取规则获取与所述待测试系统对应的源代码信息。源码信息获取规则即是用于获取源代码信息的规则,若待测试系统包含相应的程序代码,则可直接获取对应的源代码信息,若待测试系统不包含相应的程序代码,则可参数信息在github等开放代码仓库查找源码信息,或调用第三方服务商查询与待测试系统使用同源https证书的网站,并获取对应的程序代码作为源代码信息。

s120、根据预置的关键字匹配库获取预置的漏洞信息库中与所述特征信息相匹配的目标漏洞。

根据预置的关键字匹配库获取预置的漏洞信息库中与所述特征信息相匹配的目标漏洞,所述关键字匹配库中包含多个预置的关键字。

在一实施例中,如图3所示,步骤s120包括子步骤s121和s122。

s121、获取所述关键字匹配库中与所述特征信息相匹配的关键字作为目标关键字。

获取所述关键字匹配库中与所述特征信息相匹配的关键字作为目标关键字。获取所述关键字匹配库中与所述特征信息相匹配的关键字作为目标关键字。关键字匹配库由各种系统常见的关键字所组成,待测试系统的特征信息由待测试系统的参数信息、服务器信息及源代码信息组成,特征信息均为文本类型的信息,将获取包含于特征信息中的关键字作为目标关键字。

s122、获取所述漏洞信息库中与所述目标关键字相匹配的漏洞作为目标漏洞。

获取所述漏洞信息库中与所述目标关键字相匹配的漏洞作为目标漏洞。漏洞信息库中包含多个漏洞,每一漏洞对应一个或多个漏洞关键字,将获取到的目标关键字与每一漏洞对应的漏洞关键字进行匹配,获取包含于目标关键字的漏洞关键字对应的漏洞,并根据获取到的漏洞的运行时长、命中率对漏洞进行排序筛选,得到运行时长大于平均运行时长且命中率大于平均命中率的漏洞作为目标漏洞。每一漏洞中包含相应的运行参数,以及对应的漏洞运行结果,若某一系统根据漏洞的运行参数进行运行,所得接口返回数据与该漏洞的漏洞运行结果相对应,则该系统中存在该漏洞。

在获取漏洞信息库中与特征信息相匹配的目标漏洞之前,还可根据预置的漏洞信息爬取程序爬取到的漏洞以生成漏洞信息库,具体的,根据漏洞信息爬取程序从预置爬取地址中获取对应的漏洞,生成漏洞信息库,每一漏洞对应一个或多个漏洞关键字,预置爬取地址可以是国家信息安全漏洞共享平台或反计算机病毒对应的网络地址。

s130、根据预置的渗透测试模型对所述待测试系统的特征信息进行系统测试以得到系统测试结果。

根据预置的渗透测试模型对所述待测试系统的特征信息进行系统测试以得到系统测试结果。渗透测试模型即是用于对待测试系统进行渗透测试的模型,所述渗透测试模型中包括框架验证规则、代码审计规则。

在一实施例中,如图4所示,步骤s130包括子步骤s131和s132。

s131、判断所述待测试系统的参数信息及服务器信息是否满足所述框架验证规则以得到是否验证通过的框架验证结果。

判断所述待测试系统的参数信息及服务器信息是否满足所述框架验证规则以得到框架验证结果,若待测试系统满足框架验证规则,则框架验证结果为验证通过;否则框架验证结果为验证不通过。框架验证规则中包含危险情报信息,危险情报信息可以是危险交互端口、含漏洞的系统组件等,框架验证规则即是用于对待测试系统除去程序代码的整体框架进行验证的规则,也即是对待测试系统的参数信息及服务器信息是否包含危险情报信息进行验证的规则,若待测试系统不包含危险情报信息,则判断得到待测试系统满足框架验证规则,也即是框架验证结果为通过;否则判断得到待测试系统不满足框架验证规则,框架验证结果为不通过。

例如,危险情报信息中的危险交互端口包含:危险端口1、危险端口2,若待测试系统的服务器信息中交互端口包含危险端口1,则框架验证结果为验证未通过。

s132、若所述框架验证结果为验证通过,判断所述待测试系统的源代码信息是否满足所述代码审计规则以得到是否测试通过的系统测试结果。

若所述框架验证结果为验证通过,判断所述待测试系统的源代码信息是否满足所述代码审计规则以得到是否测试通过的系统测试结果。代码审计规则中包含危险代码,危险代码包含若干条易被渗透的代码段,危险代码也即是已知的具有较高风险的程序代码,代码审计规则即是用于对待测试系统的源代码信息是否包含危险代码进行审计的规则,通过对源代码信息中是否包含与危险代码相匹配的代码段进行判断,以判断源代码信息是否满足代码审计规则,若源代码信息中包含危险代码,则待测试系统不满足代码审计规则,得到测试不通过的系统测试结果,否则待测试系统满足代码审计规则,得到测试通过的系统测试结果。

s140、若系统测试结果为测试通过,根据所述目标漏洞对所述待测试系统进行验证以得到第一漏洞验证结果。

若系统测试结果为测试通过,根据所述目标漏洞对所述待测试系统进行验证以得到第一漏洞验证结果。若系统测试结果为测试通过,则需根据目标漏洞对待测试系统进行进一步验证,目标漏洞可以是一个或多个。

在一实施例中,如图5所示,步骤s140包括子步骤s141和s142。

s141、根据所述目标漏洞的运行参数对所述待测试系统进行运行,并获取所述待测试系统的第一接口返回数据。

根据所述目标漏洞的运行参数对所述待测试系统进行运行,并获取所述待测试系统的第一接口返回数据。漏洞信息库中的每一漏洞均包含对应的运行参数以及漏洞运行结果,待测试系统可根据每一目标漏洞中的运行参数进行运行,并获取待测试系统对应接口返回的数据信息,并获取每一目标漏洞对应的第一接口返回数据。

s142、对所述第一接口返回数据是否与所述目标漏洞的漏洞运行结果一致进行验证以得到是否包含目标漏洞的第一漏洞验证结果。

对所述第一接口返回数据是否与所述目标漏洞的漏洞运行结果一致进行验证以得到是否包含目标漏洞的第一漏洞验证结果。获取待测试系统根据目标漏洞进行运行后对应的第一接口返回数据,并将待测试系统开始运行至获取第一接口返回数据之间的时间记录为该目标漏洞的运行时长,判断目标漏洞的漏洞运行结果是否与第一接口返回数据一致,若一致,则对应的第一漏洞验证结果为所述待测试系统包含该目标漏洞;若不一致,则第一漏洞验证结果为所述待测试系统不包含该目标漏洞。

例如,某一目标漏洞的运行参数为修改待测试系统的邮箱信息,漏洞运行结果为“修改成功”,若第一接口返回数据为“修改成功”,则第一漏洞验证结果为待测试系统包含该目标漏洞。

s150、根据所述目标漏洞及所述漏洞信息库对所述待测试系统进行扩展验证以得到第二漏洞验证结果。

根据所述目标漏洞及所述漏洞信息库对所述待测试系统进行扩展验证以得到第二漏洞验证结果。待测试系统中若包含一个漏洞,则待测试系统中还可能存在与该漏洞相关联的其他漏洞,则可根据目标漏洞获取漏洞信息库中对应的关联漏洞对待测试系统进行扩展验证,得到第二漏洞验证结果。

在一实施例中,如图6所示,步骤s150包括子步骤s151、s152和s153。

s151、若所述第一漏洞验证结果为包含目标漏洞,获取所述漏洞信息库中与所述目标漏洞相关联的漏洞以得到关联漏洞。

若所述第一漏洞验证结果为包含目标漏洞,获取所述漏洞信息库中与所述目标漏洞相关联的漏洞以得到关联漏洞。具体的,漏洞信息库中的每一漏洞均与其它漏洞存在关联关系,若待测试系统中包含目标漏洞,则可根据漏洞之间的关联关系获取漏洞信息库中与目标漏洞相关联的漏洞作为关联漏洞;若待测试系统中不包含任意一个目标漏洞,则获取到的关联漏洞为零。

s152、根据所述关联漏洞的运行参数对所述待测试系统进行运行,并获取所述待测试系统的第二接口返回数据。

根据所述关联漏洞的运行参数对所述待测试系统进行运行,并获取所述待测试系统的第二接口返回数据。具体的,关联漏洞可以为一个或多个,依次根据管理漏洞的运行参数对待测试系统进行运行,并获取每一关联漏洞对应的第二接口返回数据。

s153、对所述第二接口返回数据是否与所述关联漏洞的运行结果一致进行验证以得到是否包含关联漏洞的第二漏洞验证结果。

对所述第二接口返回数据是否与所述关联漏洞的运行结果一致进行验证以得到是否包含关联漏洞的第二漏洞验证结果。获取待测试系统根据关联漏洞进行运行后对应的第二接口返回数据,并将待测试系统开始运行至获取第二接口返回数据之间的时间记录为该关联漏洞的运行时长,判断关联漏洞的漏洞运行结果是否与第二接口返回数据一致,若一致,则对应的第二漏洞验证结果为所述待测试系统包含该关联漏洞;若不一致,则第二漏洞验证结果为所述待测试系统不包含该关联漏洞。

例如,某一目标漏洞的运行参数为修改待测试系统的邮箱信息,第一漏洞验证结果为待测试系统包含目标漏洞,获取到一个与该目标漏洞相关联的关联漏洞,关联漏洞的运行参数为通过修改后的邮箱找回密码以对用户密码进行修改,漏洞运行结果为“修改成功”,若第二接口返回数据为“修改成功”,则第二漏洞验证结果为待测试系统包含该关联漏洞。

s160、根据所述第一漏洞验证结果及所述第二漏洞验证结果生成所述待测试系统的测试报告并进行反馈。

根据所述第一漏洞验证结果及所述第二漏洞验证结果生成所述待测试系统的测试报告并进行反馈。根据第一漏洞验证结果中待测试系统所包含的目标漏洞,以及第二漏洞验证结果中待测试系统所包含的关联漏洞,获取待测试系统中所包含的所有漏洞,根据待测试系统所包含漏洞的特征或类型对漏洞进行归类以生成待测试系统的测试报告。具体的,对待测试系统所包含的漏洞进行归类后,获取每一类别所包含的漏洞数量,根据预置目标类别数量获取漏洞数量较多的一个或多个类别生成待测试系统的测试报告,若目标类别数量为一个,则获取漏洞数量最多的一个类别生成测试报告;若目标类别数量为多个,则获取漏洞数量最多的多个类别,根据获取到的漏洞类别为待测试系统添加标签得到与待测试系统对应的肖像属性,并以此作为可展示的测试报告。

例如,待测试系统所包含的漏洞共有8个,其中4个漏洞的类别为弱口令漏洞,3个为失效访问控制漏洞,目标类别数量为两个,则获取“弱口令漏洞”及“失效访问控制漏洞”两个类别为待测试系统添加标签,以生成待测试系统的测试报告。

在一实施例中,如图7所示,步骤s160之后还包括步骤s170。

s170、根据所述第一漏洞验证结果及所述第二漏洞验证结果对所述漏洞信息库进行更新。

根据所述第一漏洞验证结果及所述第二漏洞验证结果对所述漏洞信息库进行更新。具体的,第一漏洞验证结果中包含目标漏洞对应的渗透结果及运行时长,第二漏洞验证结果中包含关联漏洞对应的渗透结果及运行时长,根据目标漏洞或关联漏洞的渗透结果对漏洞信息库中对应的漏洞的命中率进行修正,根据目标漏洞或关联漏洞的运行时长对漏洞信息库中对应的漏洞的运行时长进行修正,以对漏洞信息库进行更新,再次获取目标漏洞时则可根据更新后的漏洞信息库中漏洞的运行时长、命中率,对漏洞进行排序筛选。

例如,第一漏洞验证结果为待测试系统包含目标漏洞,则该目标漏洞的渗透结果为渗透成功,目标漏洞的运行时长为2.3秒,漏洞信息库中对应漏洞的命中率为45/80=56.25%,根据该目标漏洞的身体结果对该漏洞的命中率进行修正,得到修正后的命中率为(45 1)/(80 1)=56.79%;漏洞信息库中对应漏洞的运行时长为226/80=2.825秒,得到修正后的运行时长为(226 2.3)/(80 1)=2.819秒。

在本发明实施例所提供的渗透测试方法中,根据信息扫描模型对与指向信息对应的待测试系统进行扫描仪获取对应的特征信息,根据关键字匹配库获取漏洞信息库中与特征信息相匹配的目标漏洞,根据渗透测试模型对待测试系统的特征信息进行系统测试以得到系统测试结果,若系统测试为通过,根据目标漏洞对待测试系统进行验证得到第一漏洞验证结果,根据目标漏洞及漏洞信息库对待测试系统进行扩展验证得到第二漏洞验证结果,根据第一漏洞验证结果及第二漏洞验证结果生成测试报告。通过上述方法,可提高对待测试系统所包含安全隐患进行渗透测试的覆盖面,大幅提高了渗透测试的效率及准确性。

本发明实施例还提供一种渗透测试装置,该渗透测试装置用于执行前述渗透测试方法的任一实施例。具体地,请参阅图8,图8是本发明实施例提供的渗透测试装置的示意性框图。该渗透测试装置可以配置于用户终端中。

如图8所示,渗透测试装置100包括特征信息获取单元110、目标漏洞获取单元120、系统测试结果获取单元130、第一漏洞验证单元140、第二漏洞验证单元150和测试报告生成单元160。

特征信息获取单元110,用于若接收到指向信息,根据预置的信息扫描模型对与所述指向信息对应的待测试系统进行扫描以获取所述待测试系统的特征信息。

其他发明实施例中,所述特征信息获取单元110包括子单元:参数信息获取单元111、服务器信息获取单元112和源代码信息获取单元113。

参数信息获取单元111,用于根据所述参数扫描规则对所述待测试系统进行扫描以获取所述待测试系统所配置的参数信息;服务器信息获取单元112,用于根据所述服务器扫描规则对存储所述待测试系统的服务器进行扫描以获取所述待测试系统的服务器信息;源代码信息获取单元113,用于根据所述源码信息获取规则获取与所述待测试系统对应的源代码信息。

目标漏洞获取单元120,用于根据预置的关键字匹配库获取预置的漏洞信息库中与所述特征信息相匹配的目标漏洞。

其他发明实施例中,所述目标漏洞获取单元120包括子单元:目标关键字获取单元121和漏洞匹配单元122。

目标关键字获取单元121,用于获取所述关键字匹配库中与所述特征信息相匹配的关键字作为目标关键字;漏洞匹配单元122,用于获取所述漏洞信息库中与所述目标关键字相匹配的漏洞作为目标漏洞。

系统测试结果获取单元130,用于根据预置的渗透测试模型对所述待测试系统的特征信息进行系统测试以得到系统测试结果。

其他发明实施例中,所述系统测试结果获取单元130包括子单元:框架验证单元131和代码审计单元132。

框架验证单元131,用于判断所述待测试系统的参数信息及服务器信息是否满足所述框架验证规则以得到是否验证通过的框架验证结果;代码审计单元132,用于若所述框架验证结果为验证通过,判断所述待测试系统的源代码信息是否满足所述代码审计规则以得到是否测试通过的系统测试结果。

第一漏洞验证单元140,用于若系统测试结果为测试通过,根据所述目标漏洞对所述待测试系统进行验证以得到第一漏洞验证结果。

其他发明实施例中,所述第一漏洞验证单元140包括子单元:第一接口返回数据获取单元141和第一接口返回数据验证单元142。

第一接口返回数据获取单元141,用于根据所述目标漏洞的运行参数对所述待测试系统进行运行,并获取所述待测试系统的第一接口返回数据;第一接口返回数据验证单元142,用于对所述第一接口返回数据是否与所述目标漏洞的漏洞运行结果一致进行验证以得到是否包含目标漏洞的第一漏洞验证结果。

第二漏洞验证单元150,用于根据所述目标漏洞及所述漏洞信息库对所述待测试系统进行扩展验证以得到第二漏洞验证结果。

其他发明实施例中,所述第二漏洞验证单元150包括子单元:关联漏洞获取单元151、第二接口返回数据获取单元151和第二接口返回数据验证单元152。

关联漏洞获取单元151,用于若所述第一漏洞验证结果为包含目标漏洞,获取所述漏洞信息库中与所述目标漏洞相关联的漏洞以得到关联漏洞;第二接口返回数据获取单元151,用于根据所述关联漏洞的运行参数对所述待测试系统进行运行,并获取所述待测试系统的第二接口返回数据;第二接口返回数据验证单元152,用于对所述第二接口返回数据是否与所述关联漏洞的运行结果一致进行验证以得到是否包含关联漏洞的第二漏洞验证结果。

测试报告生成单元160,用于根据所述第一漏洞验证结果及所述第二漏洞验证结果生成所述待测试系统的测试报告并进行反馈。

其他发明实施例中,所述渗透测试装置100还包括子单元:漏洞信息库更新单元170。

漏洞信息库更新单元170,用于根据所述第一漏洞验证结果及所述第二漏洞验证结果对所述漏洞信息库进行更新。

在本发明实施例所提供的渗透测试装置用于执行上述渗透测试方法,根据信息扫描模型对与指向信息对应的待测试系统进行扫描仪获取对应的特征信息,根据关键字匹配库获取漏洞信息库中与特征信息相匹配的目标漏洞,根据渗透测试模型对待测试系统的特征信息进行系统测试以得到系统测试结果,若系统测试为通过,根据目标漏洞对待测试系统进行验证得到第一漏洞验证结果,根据目标漏洞及漏洞信息库对待测试系统进行扩展验证得到第二漏洞验证结果,根据第一漏洞验证结果及第二漏洞验证结果生成测试报告。通过上述方法,可提高对待测试系统所包含安全隐患进行渗透测试的覆盖面,大幅提高了渗透测试的效率及准确性。

上述渗透测试装置可以实现为计算机程序的形式,该计算机程序可以在如图9所示的计算机设备上运行。

请参阅图9,图9是本发明实施例提供的计算机设备的示意性框图。

参阅图9,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。

该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032被执行时,可使得处理器502执行渗透测试方法。

该处理器502用于提供计算和控制能力,支撑整个计算机设备500的运行。

该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行渗透测试方法。

该网络接口505用于进行网络通信,如提供数据信息的传输等。本领域技术人员可以理解,图9中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下功能:若接收到指向信息,根据预置的信息扫描模型对与所述指向信息对应的待测试系统进行扫描以获取所述待测试系统的特征信息;根据预置的关键字匹配库获取预置的漏洞信息库中与所述特征信息相匹配的目标漏洞;根据预置的渗透测试模型对所述待测试系统的特征信息进行系统测试以得到系统测试结果;若系统测试结果为测试通过,根据所述目标漏洞对所述待测试系统进行验证以得到第一漏洞验证结果;根据所述目标漏洞及所述漏洞信息库对所述待测试系统进行扩展验证以得到第二漏洞验证结果;根据所述第一漏洞验证结果及所述第二漏洞验证结果生成所述待测试系统的测试报告并进行反馈。

在一实施例中,处理器502在执行若接收到指向信息,根据预置的信息扫描模型对与所述指向信息对应的待测试系统进行扫描以获取所述待测试系统的特征信息的步骤时,执行如下操作:根据所述参数扫描规则对所述待测试系统进行扫描以获取所述待测试系统所配置的参数信息;根据所述服务器扫描规则对存储所述待测试系统的服务器进行扫描以获取所述待测试系统的服务器信息;根据所述源码信息获取规则获取与所述待测试系统对应的源代码信息。

在一实施例中,处理器502在执行根据预置的关键字匹配库获取预置的漏洞信息库中与所述特征信息相匹配的目标漏洞的步骤时,执行如下操作:获取所述关键字匹配库中与所述特征信息相匹配的关键字作为目标关键字;获取所述漏洞信息库中与所述目标关键字相匹配的漏洞作为目标漏洞。

在一实施例中,处理器502在执行根据预置的渗透测试模型对所述待测试系统的特征信息进行系统测试以得到系统测试结果的步骤时,执行如下操作:判断所述待测试系统的参数信息及服务器信息是否满足所述框架验证规则以得到是否验证通过的框架验证结果;若所述框架验证结果为验证通过,判断所述待测试系统的源代码信息是否满足所述代码审计规则以得到是否测试通过的系统测试结果。

在一实施例中,处理器502在执行若系统测试结果为测试通过,根据所述目标漏洞对所述待测试系统进行验证以得到第一漏洞验证结果的步骤时,执行如下操作:根据所述目标漏洞的运行参数对所述待测试系统进行运行,并获取所述待测试系统的第一接口返回数据;对所述第一接口返回数据是否与所述目标漏洞的漏洞运行结果一致进行验证以得到是否包含目标漏洞的第一漏洞验证结果。

在一实施例中,处理器502在执行根据所述目标漏洞及所述漏洞信息库对所述待测试系统进行扩展验证以得到第二漏洞验证结果的步骤时,执行如下操作:若所述第一漏洞验证结果为包含目标漏洞,获取所述漏洞信息库中与所述目标漏洞相关联的漏洞以得到关联漏洞;根据所述关联漏洞的运行参数对所述待测试系统进行运行,并获取所述待测试系统的第二接口返回数据;对所述第二接口返回数据是否与所述关联漏洞的运行结果一致进行验证以得到是否包含关联漏洞的第二漏洞验证结果。

在一实施例中,处理器502在执行根据所述第一漏洞验证结果及所述第二漏洞验证结果生成所述待测试系统的测试报告并进行反馈的步骤之后,还执行如下操作:根据所述第一漏洞验证结果及所述第二漏洞验证结果对所述漏洞信息库进行更新。

本领域技术人员可以理解,图9中示出的计算机设备的实施例并不构成对计算机设备具体构成的限定,在其他实施例中,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图9所示实施例一致,在此不再赘述。

应当理解,在本发明实施例中,处理器502可以是中央处理单元(centralprocessingunit,cpu),该处理器502还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

在本发明的另一实施例中提供计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质。该计算机可读存储介质存储有计算机程序,其中计算机程序被处理器执行时实现以下步骤:若接收到指向信息,根据预置的信息扫描模型对与所述指向信息对应的待测试系统进行扫描以获取所述待测试系统的特征信息;根据预置的关键字匹配库获取预置的漏洞信息库中与所述特征信息相匹配的目标漏洞;根据预置的渗透测试模型对所述待测试系统的特征信息进行系统测试以得到系统测试结果;若系统测试结果为测试通过,根据所述目标漏洞对所述待测试系统进行验证以得到第一漏洞验证结果;根据所述目标漏洞及所述漏洞信息库对所述待测试系统进行扩展验证以得到第二漏洞验证结果;根据所述第一漏洞验证结果及所述第二漏洞验证结果生成所述待测试系统的测试报告并进行反馈。

在一实施例中,所述若接收到指向信息,根据预置的信息扫描模型对与所述指向信息对应的待测试系统进行扫描以获取所述待测试系统的特征信息的步骤,包括:根据所述参数扫描规则对所述待测试系统进行扫描以获取所述待测试系统所配置的参数信息;根据所述服务器扫描规则对存储所述待测试系统的服务器进行扫描以获取所述待测试系统的服务器信息;根据所述源码信息获取规则获取与所述待测试系统对应的源代码信息。

在一实施例中,所述根据预置的关键字匹配库获取预置的漏洞信息库中与所述特征信息相匹配的目标漏洞的步骤,包括:获取所述关键字匹配库中与所述特征信息相匹配的关键字作为目标关键字;获取所述漏洞信息库中与所述目标关键字相匹配的漏洞作为目标漏洞。

在一实施例中,所述根据预置的渗透测试模型对所述待测试系统的特征信息进行系统测试以得到系统测试结果的步骤,包括:判断所述待测试系统的参数信息及服务器信息是否满足所述框架验证规则以得到是否验证通过的框架验证结果;若所述框架验证结果为验证通过,判断所述待测试系统的源代码信息是否满足所述代码审计规则以得到是否测试通过的系统测试结果。

在一实施例中,所述若系统测试结果为测试通过,根据所述目标漏洞对所述待测试系统进行验证以得到第一漏洞验证结果的步骤,包括:根据所述目标漏洞的运行参数对所述待测试系统进行运行,并获取所述待测试系统的第一接口返回数据;对所述第一接口返回数据是否与所述目标漏洞的漏洞运行结果一致进行验证以得到是否包含目标漏洞的第一漏洞验证结果。

在一实施例中,所述根据所述目标漏洞及所述漏洞信息库对所述待测试系统进行扩展验证以得到第二漏洞验证结果的步骤,包括:若所述第一漏洞验证结果为包含目标漏洞,获取所述漏洞信息库中与所述目标漏洞相关联的漏洞以得到关联漏洞;根据所述关联漏洞的运行参数对所述待测试系统进行运行,并获取所述待测试系统的第二接口返回数据;对所述第二接口返回数据是否与所述关联漏洞的运行结果一致进行验证以得到是否包含关联漏洞的第二漏洞验证结果。

在一实施例中,所述根据所述第一漏洞验证结果及所述第二漏洞验证结果生成所述待测试系统的测试报告并进行反馈的步骤之后,还包括:根据所述第一漏洞验证结果及所述第二漏洞验证结果对所述漏洞信息库进行更新。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本发明所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个计算机可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

而前述的存储介质为实体的、非瞬时性的存储介质,例如可以是u盘、移动硬盘、只读存储器(read-onlymemory,rom)、磁碟或者光盘等各种可以存储程序代码的实体存储介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。


技术特征:

1.一种渗透测试方法,应用于用户终端,其特征在于,包括:

若接收到指向信息,根据预置的信息扫描模型对与所述指向信息对应的待测试系统进行扫描以获取所述待测试系统的特征信息;

根据预置的关键字匹配库获取预置的漏洞信息库中与所述特征信息相匹配的目标漏洞;

根据预置的渗透测试模型对所述待测试系统的特征信息进行系统测试以得到系统测试结果;

若系统测试结果为测试通过,根据所述目标漏洞对所述待测试系统进行验证以得到第一漏洞验证结果;

根据所述目标漏洞及所述漏洞信息库对所述待测试系统进行扩展验证以得到第二漏洞验证结果;

根据所述第一漏洞验证结果及所述第二漏洞验证结果生成所述待测试系统的测试报告并进行反馈。

2.根据权利要求1所述的渗透测试方法,其特征在于,所述信息扫描模型包括参数扫描规则、服务器扫描规则及源码信息获取规则,所述特征信息包括参数信息、服务器信息及源代码信息,所述根据预置的信息扫描模型对与所述指向信息对应的待测试系统进行扫描以获取所述待测试系统的特征信息,包括:

根据所述参数扫描规则对所述待测试系统进行扫描以获取所述待测试系统所配置的参数信息;

根据所述服务器扫描规则对存储所述待测试系统的服务器进行扫描以获取所述待测试系统的服务器信息;

根据所述源码信息获取规则获取与所述待测试系统对应的源代码信息。

3.根据权利要求1所述的渗透测试方法,其特征在于,所述根据预置的关键字匹配库获取预置的漏洞信息库中与所述特征信息相匹配的目标漏洞,包括:

获取所述关键字匹配库中与所述特征信息相匹配的关键字作为目标关键字;

获取所述漏洞信息库中与所述目标关键字相匹配的漏洞作为目标漏洞。

4.根据权利要求2所述的渗透测试方法,其特征在于,所述根据预置的渗透测试模型对所述待测试系统的特征信息进行系统测试以得到系统测试结果,包括:

判断所述待测试系统的参数信息及服务器信息是否满足所述框架验证规则以得到是否验证通过的框架验证结果;

若所述框架验证结果为验证通过,判断所述待测试系统的源代码信息是否满足所述代码审计规则以得到是否测试通过的系统测试结果。

5.根据权利要求1所述的渗透测试方法,其特征在于,所述根据所述目标漏洞对所述待测试系统进行验证以得到第一漏洞验证结果,包括:

根据所述目标漏洞的运行参数对所述待测试系统进行运行,并获取所述待测试系统的第一接口返回数据;

对所述第一接口返回数据是否与所述目标漏洞的漏洞运行结果一致进行验证以得到是否包含目标漏洞的第一漏洞验证结果。

6.根据权利要求1所述的渗透测试方法,其特征在于,所述根据所述目标漏洞及所述漏洞信息库对所述待测试系统进行扩展验证以得到第二漏洞验证结果,包括:

若所述第一漏洞验证结果为包含目标漏洞,获取所述漏洞信息库中与所述目标漏洞相关联的漏洞以得到关联漏洞;

根据所述关联漏洞的运行参数对所述待测试系统进行运行,并获取所述待测试系统的第二接口返回数据;

对所述第二接口返回数据是否与所述关联漏洞的运行结果一致进行验证以得到是否包含关联漏洞的第二漏洞验证结果。

7.根据权利要求1所述的渗透测试方法,其特征在于,所述根据所述第一漏洞验证结果及所述第二漏洞验证结果生成所述待测试系统的测试报告并进行反馈之后,还包括:

根据所述第一漏洞验证结果及所述第二漏洞验证结果对所述漏洞信息库进行更新。

8.一种渗透测试装置,其特征在于,包括:

特征信息获取单元,用于若接收到指向信息,根据预置的信息扫描模型对与所述指向信息对应的待测试系统进行扫描以获取所述待测试系统的特征信息;

目标漏洞获取单元,用于根据预置的关键字匹配库获取预置的漏洞信息库中与所述特征信息相匹配的目标漏洞;

系统测试结果获取单元,用于根据预置的渗透测试模型对所述待测试系统的特征信息进行系统测试以得到系统测试结果;

第一漏洞验证单元,用于若系统测试结果为测试通过,根据所述目标漏洞对所述待测试系统进行验证以得到第一漏洞验证结果;

第二漏洞验证单元,用于根据所述目标漏洞及所述漏洞信息库对所述待测试系统进行扩展验证以得到第二漏洞验证结果;

测试报告生成单元,用于根据所述第一漏洞验证结果及所述第二漏洞验证结果生成所述待测试系统的测试报告并进行反馈。

9.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的渗透测试方法。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行如权利要求1至7任一项所述的渗透测试方法。

技术总结
本发明公开了渗透测试方法、装置、计算机设备及存储介质。方法包括:根据信息扫描模型对与指向信息对应的待测试系统进行扫描仪获取对应的特征信息,根据关键字匹配库获取漏洞信息库中与特征信息相匹配的目标漏洞,根据渗透测试模型对待测试系统的特征信息进行系统测试以得到系统测试结果,若系统测试为通过,根据目标漏洞对待测试系统进行验证得到第一漏洞验证结果,根据目标漏洞及漏洞信息库对待测试系统进行扩展验证得到第二漏洞验证结果,根据第一漏洞验证结果及第二漏洞验证结果生成测试报告。本发明基于漏洞验证技术,可提高对待测试系统所包含安全隐患进行渗透测试的覆盖面,大幅提高了渗透测试的效率及准确性。

技术研发人员:李山秋
受保护的技术使用者:深圳壹账通智能科技有限公司
技术研发日:2020.01.09
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-22001.html

最新回复(0)