一种基于知识图谱的自动化渗透测试方法及系统转让专利

申请号 : CN202210791257.8

文献号 : CN114866358B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘京菊张悦侯冬冬周仕承王永杰杨国正张凯

申请人 : 中国人民解放军国防科技大学

摘要 :

本发明公开一种基于知识图谱的自动化渗透测试方法及系统,属于漏洞检测技术领域。所述方法包括:构建专家知识库,所述专家知识库包括弱口令知识库和漏洞知识库;其中,所述弱口令知识库存储有弱口令,所述漏洞知识库存储有漏洞信息和对应的漏洞检测方法;对位于测试网络的目标主机进行扫描,以获取所述目标主机的指纹信息,将所述指纹信息与所述漏洞知识库中的漏洞信息进行匹配,得到经匹配的漏洞和对应的漏洞检测方法;基于漏洞风险值对所述经匹配的漏洞进行排序,根据所述排序依次调用所述对应的漏洞检测方法对所述经匹配的漏洞进行检测。本发明公开的方法和系统用于提升漏洞分析过程中的效率和结果的准确性,减少人工分析的重复性劳动。

权利要求 :

1.一种基于知识图谱的自动化渗透测试方法,其特征在于,所述方法包括:

步骤S1、构建专家知识库,所述专家知识库包括弱口令知识库和漏洞知识库;其中,所述弱口令知识库存储有弱口令,所述漏洞知识库存储有漏洞信息和对应的漏洞检测方法;

其中,在所述步骤S1中,构建的所述漏洞知识库包括从漏洞数据中提取的漏洞名称、操作系统、服务名称、端口、漏洞检测工具、漏洞检测成功后的影响以及它们之间的关系语义,从而得到所述漏洞知识库的完整知识图谱;

步骤S2、对位于测试网络的目标主机进行扫描,以获取所述目标主机的指纹信息,将所述指纹信息与所述漏洞知识库中的漏洞信息进行匹配,得到经匹配的漏洞和对应的漏洞检测方法;

步骤S3、基于漏洞风险值对所述经匹配的漏洞进行排序,根据所述排序依次调用所述对应的漏洞检测方法对所述经匹配的漏洞进行检测;

其中,在所述步骤S3中,对所述经匹配的漏洞进行检测时,当所述经匹配的漏洞为弱口令漏洞时,调用所述弱口令知识库中存储的所述弱口令,对所述弱口令漏洞进行检测;当所述经匹配的漏洞不为弱口令漏洞时,直接利用从所述漏洞知识库匹配的所述漏洞检测方法执行漏洞检测。

2.根据权利要求1所述的一种基于知识图谱的自动化渗透测试方法,其特征在于,在所述步骤S1中:所述关系语义包括:

使用关系,表示所述漏洞数据中的漏洞与漏洞检测工具之间的关系,使用对应的所述漏洞检测工具对所述漏洞进行检测;

因果关系,表示所述漏洞与开启服务之间的关系,开启对应版本的所述服务将产生相应的漏洞;

跟随关系,表示所述服务与所述端口之间的关系,开启对应版本的所述服务,对应的所述端口会跟随着开启相应端口号;

隶属关系,表示所述操作系统与所述漏洞之间的关系,所述操作系统本身携带有所述漏洞;

因果关系,表示所述漏洞与漏洞检测成功后所得结果之间的关系,所述所得结果为漏洞检测成功后对当前网络造成的影响;

构建的所述弱口令知识库中存储的所述弱口令针对WebShell爆破、弱口令爆破以及子域爆破,用于对所述目标主机的WebShell入口、弱口令以及域名进行弱口令检测。

3.根据权利要求1所述的一种基于知识图谱的自动化渗透测试方法,其特征在于,在所述步骤S2中:利用扫描工具在当前权限允许的探测范围内对所述目标主机进行扫描,基于扫描提取出所述目标主机的指纹信息;其中:所述指纹信息包括所述目标主机的IP地址、端口、服务列表、操作系统版本、数据库版本、中间件版本号、后台登录入口、文件上传入口、WebShell、凭证信息以及弱口令;

通过所述指纹信息与所述漏洞知识库中的漏洞信息进行匹配得到的所述经匹配的漏洞包括所述目标主机的系统漏洞、Web应用漏洞以及不安全配置漏洞中的至少一种。

4.根据权利要求1所述的一种基于知识图谱的自动化渗透测试方法,其特征在于,在所述步骤S3中,所述漏洞风险值包括所述经匹配的漏洞的CVSS值,所述CVSS值为通用漏洞评分系统的评估值。

5.根据权利要求1所述的一种基于知识图谱的自动化渗透测试方法,其特征在于,所述方法还包括:步骤S4、在所述目标主机所处的所述测试网络中搭建代理,使得所述目标主机能够访问不同网段网络,并通过所述不同网段网络探测与所述目标主机关联的其他目标节点,并对所述其他目标节点执行同样的指纹提取、漏洞匹配和漏洞检测过程;

步骤S5、将对所述目标主机和所述其他目标节点的指纹提取结果、漏洞匹配结果、漏洞检测结果通过整合形成自动化渗透测试报告。

6.根据权利要求5所述的一种基于知识图谱的自动化渗透测试方法,其特征在于,在所述方法中:在对所述目标主机和所述其他目标节点执行所述指纹提取、漏洞匹配和漏洞检测过程时,建立任务列表,所述任务列表中存储待执行的任务,包括位于所述测试网络的目标主机和所述其他目标节点;

每执行一个所述待执行的任务,当执行到所述漏洞检测阶段时,为其开启一个检测线程,当所述检测线程开启后,跳转至下一待执行的任务。

7.一种基于知识图谱的自动化渗透测试系统,其特征在于,所述系统包括:

第一处理单元,被配置为,构建专家知识库,所述专家知识库包括弱口令知识库和漏洞知识库;其中,所述弱口令知识库存储有弱口令,所述漏洞知识库存储有漏洞信息和对应的漏洞检测方法;

其中,构建的所述漏洞知识库包括从漏洞数据中提取的漏洞名称、操作系统、服务名称、端口、漏洞检测工具、漏洞检测成功后的影响以及它们之间的关系语义,从而得到所述漏洞知识库的完整知识图谱;

第二处理单元,被配置为,对位于测试网络的目标主机进行扫描,以获取所述目标主机的指纹信息,将所述指纹信息与所述漏洞知识库中的漏洞信息进行匹配,得到经匹配的漏洞和对应的漏洞检测方法;

第三处理单元,被配置为,基于漏洞风险值对所述经匹配的漏洞进行排序,根据所述排序依次调用所述对应的漏洞检测方法对所述经匹配的漏洞进行检测;

其中,对所述经匹配的漏洞进行检测时,当所述经匹配的漏洞为弱口令漏洞时,调用所述弱口令知识库中存储的所述弱口令,对所述弱口令漏洞进行检测;当所述经匹配的漏洞不为弱口令漏洞时,直接利用从所述漏洞知识库匹配的所述漏洞检测方法执行漏洞检测;

第四处理单元,被配置为,在所述目标主机所处的所述测试网络中搭建代理,使得所述目标主机能够访问不同网段网络,并通过所述不同网段网络探测与所述目标主机关联的其他目标节点,并调用所述第一处理单元、所述第二处理单元、所述第三处理单元对所述其他目标节点执行同样的指纹提取、漏洞匹配和漏洞检测过程;

第五处理单元,被配置为,将对所述目标主机和所述其他目标节点的指纹提取结果、漏洞匹配结果、漏洞检测结果通过整合形成自动化渗透测试报告。

8.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时,实现权利要求1至6中任一项所述的一种基于知识图谱的自动化渗透测试方法中的步骤。

9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现权利要求1至6中任一项所述的一种基于知识图谱的自动化渗透测试方法中的步骤。

说明书 :

一种基于知识图谱的自动化渗透测试方法及系统

技术领域

[0001] 本发明属于漏洞检测技术领域,尤其涉及一种基于知识图谱的自动化渗透测试方法及系统。

背景技术

[0002] 随着网络空间成为继海陆空天后的第五大活动空间,网络空间安全与国家安全、人民利益密切相关,维护网络安全迫在眉睫。网络安全情报充斥着海量的多源异构信息,因此如何从漏洞情报、威胁情报、资产情报中抽取出威胁主体、检测方法、防御措施等内容成为威胁分析的研究热点。2012年,谷歌率先提出知识图谱技术用于改善用户的搜索体验,面向信息收集和整合加工海量数据时利用知识图谱的图结构思想提升数据收集效率、内容匹配速度。知识图谱通过信息抽取、本体构建、关系提取、知识融合、知识推理等过程对海量文本进行分析处理,将分散的信息整合为高质量的知识集合,挖掘潜在知识,可用于智能化分析网络情报内容,提高威胁分析效率。目前知识图谱在智能问答、大数据分析、个性化推荐等其他领域也有着广泛的应用。
[0003] 目前较为知名的自动化渗透测试框架有DeepExploit(DE)、AutoPentest(AP)、MPACT等。DE框架由日本MBSD公司研发,是目前知名度较高的一款自动化渗透测试框架,DE框架通过RPC协议与Metasploit进行通信从而调用Metasploit进行渗透测试,其核心在于使用强化学习算法A3C(Asynchronous Advantage Actor‑Critic)算法,但是该框架可用性不高,效率低下,仅能支持有限数量的漏洞;AP框架针对目标网络基于MulVAL的自动生成攻击图,将攻击图作为强化学习算法DQN(Deep Q‑Learning Network)的输入进而获得最佳渗透测试路径,其本质仍是攻击图的扩展应用,构建攻击图过程复杂度高,实用性差;由Core Security Technologies公司研制开发的MPACT框架,具有多级智能体模式和自动化痕迹清理模块,并且拥有完善的向导功能,但该框架只能运行于Windows平台,适用场景有限。

发明内容

[0004] 本发明针对上述问题,提出了一种基于知识图谱的自动化渗透测试方案(包括方法、系统、电子设备以及计算机可读存储介质)。
[0005] 本发明第一方面公开了一种基于知识图谱的自动化渗透测试方法。所述方法包括:步骤S1、构建专家知识库,所述专家知识库包括弱口令知识库和漏洞知识库;其中,所述弱口令知识库存储有弱口令,所述漏洞知识库存储有漏洞信息和对应的漏洞检测方法;步骤S2、对位于测试网络的目标主机进行扫描,以获取所述目标主机的指纹信息,将所述指纹信息与所述漏洞知识库中的漏洞信息进行匹配,得到经匹配的漏洞和对应的漏洞检测方法;步骤S3、基于漏洞风险值对所述经匹配的漏洞进行排序,根据所述排序依次调用所述对应的漏洞检测方法对所述经匹配的漏洞进行检测。
[0006] 其中,在所述步骤S1中,构建的所述漏洞知识库包括从漏洞数据中提取的漏洞名称、操作系统、服务名称、端口、漏洞检测工具、漏洞检测成功后的影响以及它们之间的关系语义,从而得到所述漏洞知识库的完整知识图谱。
[0007] 其中,在所述步骤S3中,对所述经匹配的漏洞进行检测时,当所述经匹配的漏洞为弱口令漏洞时,调用所述弱口令知识库中存储的所述弱口令,对所述弱口令漏洞进行检测;当所述经匹配的漏洞不为弱口令漏洞时,直接利用从所述漏洞知识库匹配的所述漏洞检测方法执行漏洞检测。
[0008] 根据本发明第一方面的方法,在所述步骤S1中,所述关系语义包括:使用关系,表示所述漏洞数据中的漏洞与漏洞检测工具之间的关系,使用对应的所述漏洞检测工具对所述漏洞进行检测;因果关系,表示所述漏洞与开启服务之间的关系,开启对应版本的所述服务将产生相应的漏洞;跟随关系,表示所述服务与所述端口之间的关系,开启对应版本的所述服务,对应的所述端口会跟随着开启相应端口号;隶属关系,表示所述操作系统与所述漏洞之间的关系,所述操作系统本身携带有所述漏洞;因果关系,表示所述漏洞与漏洞检测成功后所得结果之间的关系,所述所得结果为漏洞检测成功后对当前网络造成的影响。
[0009] 构建的所述弱口令知识库中存储的所述弱口令针对WebShell爆破、弱口令爆破以及子域爆破,用于对所述目标主机的WebShell入口、弱口令以及域名进行弱口令检测。
[0010] 根据本发明第一方面的方法,在所述步骤S2中:利用扫描工具在当前权限允许的探测范围内对所述目标主机进行扫描,基于扫描提取出所述目标主机的指纹信息。其中:所述指纹信息包括所述目标主机的IP地址、端口、服务列表、操作系统版本、数据库版本、中间件版本号、后台登录入口、远程仓库地址、文件上传入口、WebShell、凭证信息以及弱口令。通过所述指纹信息与所述漏洞知识库中的漏洞信息进行匹配得到的所述经匹配的漏洞包括所述目标主机的系统漏洞、Web应用漏洞以及不安全配置漏洞中的至少一种。
[0011] 根据本发明第一方面的方法,在所述步骤S3中,所述漏洞风险值包括所述经匹配的漏洞的CVSS值,所述CVSS值为通用漏洞评分系统的评估值。
[0012] 根据本发明第一方面的方法,所述方法还包括:步骤S4、在所述目标主机所处的所述测试网络中搭建代理,使得所述目标主机能够访问不同网段网络,并通过所述不同网段网络探测与所述目标主机关联的其他目标节点,并对所述其他目标节点执行同样的指纹提取、漏洞匹配和漏洞检测过程;步骤S5、将对所述目标主机和所述其他目标节点的指纹提取结果、漏洞匹配结果、漏洞检测结果通过整合形成自动化渗透测试报告。
[0013] 根据本发明第一方面的方法,在所述方法中:在对所述目标主机和所述其他目标节点执行所述指纹提取、漏洞匹配和漏洞检测过程时,建立任务列表,所述任务列表中存储待执行的任务,包括位于所述测试网络的目标主机和位于所述不同网段网络的所述其他目标节点;每执行一个所述待执行的任务,当执行到所述漏洞检测阶段时,为其开启一个检测线程,当所述检测线程开启后,跳转至下一待执行的任务。
[0014] 本发明第二方面公开了一种基于知识图谱的自动化渗透测试系统。所述系统包括:第一处理单元,被配置为,构建专家知识库,所述专家知识库包括弱口令知识库和漏洞知识库;其中,所述弱口令知识库存储有弱口令,所述漏洞知识库存储有漏洞信息和对应的漏洞检测方法;第二处理单元,被配置为,对位于测试网络的目标主机进行扫描,以获取所述目标主机的指纹信息,将所述指纹信息与所述漏洞知识库中的漏洞信息进行匹配,得到经匹配的漏洞和对应的漏洞检测方法;第三处理单元,被配置为,基于漏洞风险值对所述经匹配的漏洞进行排序,根据所述排序依次调用所述对应的漏洞检测方法对所述经匹配的漏洞进行检测。
[0015] 其中,构建的所述漏洞知识库包括从漏洞数据中提取的漏洞名称、操作系统、服务名称、端口、漏洞检测工具、漏洞检测成功后的影响以及它们之间的关系语义,从而得到所述漏洞知识库的完整知识图谱。
[0016] 其中,所述第三处理单元具体被配置为:对所述经匹配的漏洞进行检测时,当所述经匹配的漏洞为弱口令漏洞时,调用所述弱口令知识库中存储的所述弱口令,对所述弱口令漏洞进行检测;当所述经匹配的漏洞不为弱口令漏洞时,直接利用从所述漏洞知识库匹配的所述漏洞检测方法执行漏洞检测。
[0017] 根据本发明第二方面的系统,所述关系语义包括:使用关系,表示所述漏洞数据中的漏洞与漏洞检测工具之间的关系,使用对应的所述漏洞检测工具对所述漏洞进行检测;因果关系,表示所述漏洞与开启服务之间的关系,开启对应版本的所述服务将产生相应的漏洞;跟随关系,表示所述服务与所述端口之间的关系,开启对应版本的所述服务,对应的所述端口会跟随着开启相应端口号;隶属关系,表示所述操作系统与所述漏洞之间的关系,所述操作系统本身携带有所述漏洞;因果关系,表示所述漏洞与漏洞检测成功后所得结果之间的关系,所述所得结果为漏洞检测成功后对当前网络造成的影响。
[0018] 构建的所述弱口令知识库中存储的所述弱口令针对WebShell爆破、弱口令爆破以及子域爆破,用于对所述目标主机的WebShell入口、弱口令以及域名进行弱口令检测。
[0019] 根据本发明第二方面的系统,所述第二处理单元具体被配置为:利用扫描工具在当前权限允许的探测范围内对所述目标主机进行扫描,基于扫描提取出所述目标主机的指纹信息。其中:所述指纹信息包括所述目标主机的IP地址、端口、服务列表、操作系统版本、数据库版本、中间件版本号、后台登录入口、远程仓库地址、文件上传入口、WebShell、凭证信息以及弱口令。通过所述指纹信息与所述漏洞知识库中的漏洞信息进行匹配得到的所述经匹配的漏洞包括所述目标主机的系统漏洞、Web应用漏洞以及不安全配置漏洞中的至少一种。
[0020] 根据本发明第二方面的系统,所述第三处理单元具体被配置为:所述漏洞风险值包括所述经匹配的漏洞对所述经匹配的漏洞的CVSS值,所述CVSS值为通用漏洞评分系统的评估值。
[0021] 根据本发明第二方面的系统,所述系统还包括:第四处理单元,被配置为,在所述目标主机所处的所述测试网络中搭建代理,使得所述目标主机能够访问不同网段网络,并通过所述不同网段网络探测与所述目标主机关联的其他目标节点,并调用所述第一处理单元、所述第二处理单元、所述第三处理单元对所述其他目标节点执行同样的指纹提取、漏洞匹配和漏洞检测过程;第五处理单元,被配置为,将对所述目标主机和所述其他目标节点的指纹提取结果、漏洞匹配结果、漏洞检测结果通过整合形成自动化渗透测试报告。
[0022] 根据本发明第二方面的系统,所述系统还包括第六处理单元,被配置为:在对所述目标主机和所述其他目标节点执行所述指纹提取、漏洞匹配和漏洞检测过程时,建立任务列表,所述任务列表中存储待执行的任务,包括位于所述测试网络的目标主机和所述其他目标节点;每执行一个所述待执行的任务,当执行到所述漏洞检测阶段时,为其开启一个检测线程,当所述检测线程开启后,跳转至下一待执行的任务。
[0023] 本发明第三方面公开了一种电子设备。所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时,实现本公开第一方面中任一项所述的一种基于知识图谱的自动化渗透测试方法中的步骤。
[0024] 本发明第四方面公开了一种计算机可读存储介质。所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现本公开第一方面中任一项所述的一种基于知识图谱的自动化渗透测试方法中的步骤。
[0025] 综上,本发明的技术方案主要包括前期漏洞信息收集、网络环境交互探测、漏洞分析、渗透测试、代理搭建和生成报告等阶段;主要核心功能是基于扫描器获得的原始信息自动化分析目标可能存在的漏洞,从而进行针对性的漏洞检测,最后整理生成渗透测试报告;关键优化技术为基于知识图谱的特点结合公开漏洞集的异构信息构建知识库;用于提升漏洞分析过程中的效率和结果的准确性,减少人工分析的重复性劳动。

附图说明

[0026] 为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0027] 图1为根据本发明实施例的一种基于知识图谱的自动化渗透测试方法的流程图。
[0028] 图2为根据本发明实施例的一种基于知识图谱的自动化渗透测试系统的结构图。
[0029] 图3为根据本发明实施例的一种电子设备的结构图。

具体实施方式

[0030] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例只是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0031] 本发明第一方面公开了一种基于知识图谱的自动化渗透测试方法。图1为根据本发明实施例的一种基于知识图谱的自动化渗透测试方法的流程图;如图1所示,所述方法包括:步骤S1、构建专家知识库,所述专家知识库包括弱口令知识库和漏洞知识库;其中,所述弱口令知识库存储有弱口令,所述漏洞知识库存储有漏洞信息和对应的漏洞检测方法;步骤S2、对位于测试网络的目标主机进行扫描,以获取所述目标主机的指纹信息,将所述指纹信息与所述漏洞知识库中的漏洞信息进行匹配,得到经匹配的漏洞和对应的漏洞检测方法;步骤S3、基于漏洞风险值对所述经匹配的漏洞进行排序,根据所述排序依次调用所述对应的漏洞检测方法对所述经匹配的漏洞进行检测。
[0032] 在专家知识库中,通过采集、整理、分析网络公开信息形成弱口令知识库和漏洞知识库,可用于支撑渗透测试期间漏洞智能分析、漏洞检测、弱口令检测。
[0033] 在一些实施例中,步骤S2‑S3可通过执行模块(单元)来实现。执行模块(单元)包含网络扫描模块,可用于对网络目标(目标主机)进行信息采集并解析生成指纹信息;智能分析模块,使用网络目标的型号信息、版本信息等多维指纹信息结合专家知识库进行模糊匹配并对漏洞优先级进行智能排序;漏洞检测模块,可用于针对网络目标的脆弱点进行检测;反向代理搭建模块,可用于搭建测试网络访问不同网段网络的跳板;报告生成模块,可根据输出渗透测试结果生成渗透测试报告。
[0034] 在所述步骤S1中:构建的所述漏洞知识库包括从漏洞数据中提取的漏洞名称、操作系统、服务名称、端口、漏洞检测工具、漏洞检测成功后的影响以及它们之间的关系语义,从而得到所述漏洞知识库的完整知识图谱。
[0035] 所述关系语义包括:使用关系,表示所述漏洞数据中的漏洞与漏洞检测工具之间的关系,使用对应的所述漏洞检测工具对所述漏洞进行检测;因果关系,表示所述漏洞与开启服务之间的关系,开启对应版本的所述服务将产生相应的漏洞;跟随关系,表示所述服务与所述端口之间的关系,开启对应版本的所述服务,对应的所述端口会跟随着开启相应端口号;隶属关系,表示所述操作系统与所述漏洞之间的关系,所述操作系统本身携带有所述漏洞;因果关系,表示所述漏洞与漏洞检测成功后所得结果之间的关系,所述所得结果为漏洞检测成功后对当前网络造成的影响。
[0036] 构建的所述弱口令知识库中存储的所述弱口令针对WebShell爆破、弱口令爆破以及子域爆破,用于对所述目标主机的WebShell入口、弱口令以及域名进行弱口令检测。
[0037] 在一些实施例中,弱口令知识库存储常见弱口令,用于漏洞检测遇到WebShell爆破、弱口令爆破、子域爆破等漏洞类型,能够对网络目标的WebShell入口、弱口令和域名进行弱口令检测。
[0038] 在一些实施例中,漏洞知识库用于存储漏洞信息和漏洞检测方法,模糊匹配多维指纹信息,从而生成所述网络目标的漏洞信息,并返回漏洞信息传和对应的漏洞检测方法。
[0039] 在一些实施例中,在知识图谱的模式层,构建知识图谱的本体元语模型;其中本体元语模型包括概念、关系、函数、公理和实例。从网络公开数据源获得漏洞数据,对所得数据进行数据清洗、数据提取,提取获得实体关系数据、实体数据和实体属性数据;对所获得数据进行数据融合,消除数据间的矛盾和歧义,并且使用知识推理将数据进行补全;最后,将补全后的漏洞数据对应本体元语模型存入知识图谱的数据层。其中,本体概念包括漏洞名称、操作系统、服务名称、端口号、漏洞检测工具、操作检测成功的影响。具体参见表1。
[0040] 表1 关系语义
[0041]
[0042] 在所述步骤S2中:利用扫描工具在当前权限允许的探测范围内对所述目标主机进行扫描,基于扫描提取出所述目标主机的指纹信息。其中:所述指纹信息包括所述目标主机的IP地址、端口、服务列表、操作系统版本、数据库版本、中间件版本号、后台登录入口、远程仓库地址、文件上传入口、WebShell、凭证信息以及弱口令。通过所述指纹信息与所述漏洞知识库中的漏洞信息进行匹配得到的所述经匹配的漏洞包括所述目标主机的系统漏洞、Web应用漏洞以及不安全配置漏洞中的至少一种。
[0043] 在一些实施例中,(通过调用前述提到的网络扫描模块)使用扫描工具探寻当前可探测范围,获得网络目标(目标主机)信息,对所述目标信息提取并分析为可用于漏洞检测的指纹信息。将所述指纹信息传送至漏洞知识库进行模糊匹配并生成所述漏洞信息,返回漏洞信息和对应的漏洞检测方法。
[0044] 在所述步骤S3中,所述漏洞风险值包括所述经匹配的漏洞的CVSS值,所述CVSS值为通用漏洞评分系统的评估值。
[0045] 在一些实施例中,(通过调用前述提到的智能分析模块)根据漏洞的CVSS值作为评估要素对所述漏洞进行排序,依据风险值由高到低的顺序,返回经排序的漏洞序列(至漏洞检测模块)。
[0046] 在所述步骤S3中,对所述经匹配的漏洞进行检测时,当所述经匹配的漏洞为弱口令漏洞时,调用所述弱口令知识库中存储的所述弱口令,对所述弱口令漏洞进行检测;当所述经匹配的漏洞不为弱口令漏洞时,直接利用从所述漏洞知识库匹配的所述漏洞检测方法执行漏洞检测。
[0047] 在一些实施例中,(通过调用前述提到的漏洞检测模块)接收智能分析模块漏洞序列,按照风险评估顺序由高到低检测漏洞,并将过程与结果传送至报告生成模块,当检测漏洞为弱口令漏洞时当前模块会与所述弱口令知识库进行交互。
[0048] 所述方法还包括:步骤S4、在所述目标主机所处的所述测试网络中搭建代理,使得所述目标主机能够访问不同网段网络,并通过所述不同网段网络探测与所述目标主机关联的其他目标节点,并对所述其他目标节点执行同样的指纹提取、漏洞匹配和漏洞检测过程;步骤S5、将对所述目标主机和所述其他目标节点的指纹提取结果、漏洞匹配结果、漏洞检测结果通过整合形成自动化渗透测试报告。
[0049] 在一些实施例中,(通过调用前述提到的代理搭建模块)对目标网络的关联网络进行探测,在测试网络主机中搭建代理使所述系统能够访问到不同网段网络主机,该模块使用go语言基于HTTP服务实现跨平台、跨架构编译和代理自动拉取和搭建,设置多层级流量转发机制,实现多级代理。
[0050] 在一些实施例中,报告生成模块用于接收网络扫描模块输出的指纹信息、智能分析模块输出的漏洞分析信息、漏洞检测模块传送的漏洞检测相关过程,整理生成所述网络目标的渗透测试报告。
[0051] 在所述方法中:在对所述目标主机和所述其他目标节点执行所述指纹提取、漏洞匹配和漏洞检测过程时,建立任务列表,所述任务列表中存储待执行的任务,包括位于所述测试网络的目标主机和所述其他目标节点;每执行一个所述待执行的任务,当执行到所述漏洞检测阶段时,为其开启一个检测线程,当所述检测线程开启后,跳转至下一待执行的任务。
[0052] 另外,在一些实施例中,知识图谱在图数据库中的存储以节点和关系的形式存储,通过节点及关系可以快速地匹配到需要搜索的实体节点。渗透测试路径生成依赖于网络中存在的漏洞,在生成路径时漏洞利用的依赖关系是重要的依据。本发明在图数据库存储知识图谱的基础上,设计了正向搜索的迭代构建渗透测试路径的算法。算法说明:首先,初始化主机节点队列,渗透测试人员在起始主机节点拥有完全操作权限;当主机节点队列不为空时,获取队列中的一个未被访问过的主机节点,扫描该主机的端口、服务、操作系统等指纹信息;根据主机指纹信息分析是否存在漏洞,若存在漏洞则进行漏洞检测;最后将该主机节点加入队列,并标记为已完成测试。
[0053] 在另一些实施例中,给出了渗透测试人员在执行渗透测试时的具体过程。
[0054] 1.初始化渗透测试人员拥有权限的主机节点队列。
[0055] 初始化渗透测试人员拥有权限的主机节点队列,渗透测试人员最初在主机节点拥有完全操作权限。
[0056] 2.使用扫描工具获取目标主机节点存入列表H,识别分析扫描信息,整理获得目标主机的指纹信息,将端口、服务、操作系统等指纹信息存入知识库。
[0057] 当渗透测试人员运行本申请所设计的自动化渗透测试系统时,该系统会自动调用扫描工具获取网络目标节点列表H,即当前未进行渗透测试的网络目标主机。使用命名实体识别智能算法处理目标主机的扫描信息,提取关键信息形成目标网络的指纹信息,将这些信息存入主机列表H,传送列表数据至智能分析模块,同时将指纹信息存入知识库用于后续漏洞分析。
[0058] 3.遍历目标主机节点列表H,查找该目标节点的端口、服务、操作系统等指纹信息,基于专家知识库针对目标节点的指纹信息进行智能分析匹配可能存在的漏洞,并智能排序存入该主机可能存在的漏洞列表V。
[0059] 智能分析模块接收步骤2所得目标主机节点列表H,结合目标节点对应的端口、服务、操作系统等指纹信息以及专家知识库对目标节点进行智能分析,生成可能存在的漏洞信息列表V。智能分析模块遍历漏洞信息列表V,以漏洞的漏洞类型和漏洞的CVSS值作为评估要素对所述漏洞进行排序,由高到低的风险值顺序将目标主机的关联漏洞存入漏洞列表V,将列表V传至漏洞检测模块。
[0060] 4.遍历漏洞列表V,根据漏洞类型选择对应方式进行漏洞检测,在检测过程中与专家知识库交互。
[0061] 漏洞检测模块按照存储顺序依次遍历漏洞列表V,根据漏洞类型选定线程类型,如弱口令检测线程、其他漏洞检测线程,开启线程后会继续遍历下一个漏洞,直至某个漏洞检测成功,或所有漏洞检测失败。步骤4包含以下步骤。
[0062] 4.1在弱口令检测时与弱口令知识库进行交互。
[0063] 针对弱口令漏洞开启的弱口令检测线程,访问专家知识库中的弱口令知识库进行弱口令爆破,并在首次爆破失败时采用双重爆破的方式保证系统的稳定性。此外针对弱口令传输流量大、代理模式需要模块迁移来维持系统稳定的问题,实现弱口令爆破模块可迁移。该线程执行完成后返回弱口令检测结果,传入报告生成模块形成渗透测试报告。
[0064] 4.2其他漏洞检测时使用漏洞知识库提供的检测方法进行漏洞检测。
[0065] 针对其他漏洞的类型,系统开启漏洞检测线程并依据专家知识库中漏洞知识库提供的漏洞检测方法,选定检测工具和检测载荷进行漏洞检测,检测完成后返回结果传入报告生成模块形成渗透测试报告。
[0066] 5.继续遍历H列表获得下一个目标节点,或者搭建代理继续扫描不同网段网络获取目标主机节点,将源主机节点标记为已访问。
[0067] 若漏洞检测模块检测获得当前目标主机的漏洞信息,将其移出未渗透测试成功的主机列表H,系统继续访问目标主机列表H中的下一个目标主机节点。或者基于当前已完成渗透测试的目标主机向不同网段网络搭建代理,对目标网络的关联网络进行探测。最后将源主机节点标记为已访问。
[0068] 6.将检测结果生成漏洞检测报告发送给渗透测试人员。
[0069] 接收所述网络扫描模块输出的指纹信息、智能分析模块输出的模糊匹配结果和排序列表、漏洞检测模块输出的检测结果形成漏洞检测报告。
[0070] 可见,本发明提出的方案中,其包含一个专家知识库,该知识库拥有两个先验知识库,分别是弱口令知识库和漏洞知识库。进一步地,构建漏洞相关的知识图谱用于提升渗透测试过程中基于指纹信息模糊分析漏洞时的分析效率;在构建知识图谱时,首先采集网络公开漏洞信息,提取漏洞概念、关系、函数、公理等元素并在知识图谱的模式层构建本体元语模型,对所得数据进行数据分析、知识融合消除数据间的矛盾和歧义,并对知识融合后的数据信息进行知识推理,将知识推理补全后的数据信息对应本体元语模型存入知识图谱的数据层。进一步地,可在渗透测试过程中基于网络扫描工具获得的目标主机指纹信息依据该知识图谱进行模糊匹配获得可能存在的漏洞以及漏洞检测方法,并且对网络扫描工具和漏洞检测工具之间的名称差异有较高的容错率,提升漏洞检测的效率。
[0071] 本发明第二方面公开了一种基于知识图谱的自动化渗透测试系统。图2为根据本发明实施例的一种基于知识图谱的自动化渗透测试系统的结构图;如图2所示,所述系统200包括:第一处理单元201,被配置为,构建专家知识库,所述专家知识库包括弱口令知识库和漏洞知识库;其中,所述弱口令知识库存储有弱口令,所述漏洞知识库存储有漏洞信息和对应的漏洞检测方法;第二处理单元202,被配置为,对位于测试网络的目标主机进行扫描,以获取所述目标主机的指纹信息,将所述指纹信息与所述漏洞知识库中的漏洞信息进行匹配,得到经匹配的漏洞和对应的漏洞检测方法;第三处理单元203,被配置为,基于漏洞风险值对所述经匹配的漏洞进行排序,根据所述排序依次调用所述对应的漏洞检测方法对所述经匹配的漏洞进行检测。
[0072] 根据本发明第二方面的系统,构建的所述漏洞知识库包括从漏洞数据中提取的漏洞名称、操作系统、服务名称、端口、漏洞检测工具、漏洞检测成功后的影响以及它们之间的关系语义,从而得到所述漏洞知识库的完整知识图谱。
[0073] 所述关系语义包括:使用关系,表示所述漏洞数据中的漏洞与漏洞检测工具之间的关系,使用对应的所述漏洞检测工具对所述漏洞进行检测;因果关系,表示所述漏洞与开启服务之间的关系,开启对应版本的所述服务将产生相应的漏洞;跟随关系,表示所述服务与所述端口之间的关系,开启对应版本的所述服务,对应的所述端口会跟随着开启相应端口号;隶属关系,表示所述操作系统与所述漏洞之间的关系,所述操作系统本身携带有所述漏洞;因果关系,表示所述漏洞与漏洞检测成功后所得结果之间的关系,所述所得结果为漏洞检测成功后对当前网络造成的影响。
[0074] 构建的所述弱口令知识库中存储的所述弱口令针对WebShell爆破、弱口令爆破以及子域爆破,用于对所述目标主机的WebShell入口、弱口令以及域名进行弱口令检测。
[0075] 根据本发明第二方面的系统,所述第二处理单元202具体被配置为:利用扫描工具在当前权限允许的探测范围内对所述目标主机进行扫描,基于扫描提取出所述目标主机的指纹信息。其中:所述指纹信息包括所述目标主机的IP地址、端口、服务列表、操作系统版本、数据库版本、中间件版本号、后台登录入口、文件上传入口、WebShell、凭证信息以及弱口令。通过所述指纹信息与所述漏洞知识库中的漏洞信息进行匹配得到的所述经匹配的漏洞包括所述目标主机的系统漏洞、Web应用漏洞以及不安全配置漏洞中的至少一种。
[0076] 根据本发明第二方面的系统,所述第三处理单元203具体被配置为:所述漏洞风险值包括所述经匹配的漏洞的CVSS值,所述CVSS值为通用漏洞评分系统的评估值。
[0077] 根据本发明第二方面的系统,所述第三处理单元203具体被配置为:对所述经匹配的漏洞进行检测时,当所述经匹配的漏洞为弱口令漏洞时,调用所述弱口令知识库中存储的所述弱口令,对所述弱口令漏洞进行检测;当所述经匹配的漏洞不为弱口令漏洞时,直接利用从所述漏洞知识库匹配的所述漏洞检测方法执行漏洞检测。
[0078] 根据本发明第二方面的系统,所述系统200还包括:第四处理单元204,被配置为,在所述目标主机所处的所述测试网络中搭建代理,使得所述目标主机能够访问不同网段网络,并通过所述不同网络网段探测与所述目标主机关联的其他目标节点,并调用所述第一处理单元201、所述第二处理单202元、所述第三处理单元203对所述其他目标节点执行同样的指纹提取、漏洞匹配和漏洞检测过程;第五处理单元205,被配置为,将对所述目标主机和所述其他目标节点的指纹提取结果、漏洞匹配结果、漏洞检测结果通过整合形成自动化渗透测试报告。
[0079] 根据本发明第二方面的系统,所述系统200还包括第六处理单元206,被配置为:在对所述目标主机和所述其他目标节点执行所述指纹提取、漏洞匹配和漏洞检测过程时,建立任务列表,所述任务列表中存储待执行的任务,包括位于所述测试网络的目标主机和所述其他目标节点;每执行一个所述待执行的任务,当执行到所述漏洞检测阶段时,为其开启一个检测线程,当所述检测线程开启后,跳转至下一待执行的任务。
[0080] 本发明第三方面公开了一种电子设备。所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时,实现本公开第一方面中任一项所述的一种基于知识图谱的自动化渗透测试方法中的步骤。
[0081] 图3为根据本发明实施例的一种电子设备的结构图,如图3所示,电子设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、近场通信(NFC)或其他技术实现。该电子设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该电子设备的输入装置可以是显示屏上覆盖的触摸层,也可以是电子设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0082] 本领域技术人员可以理解,图3中示出的结构,仅仅是与本公开的技术方案相关的部分的结构图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0083] 本发明第四方面公开了一种计算机可读存储介质。所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现本公开第一方面中任一项所述的一种基于知识图谱的自动化渗透测试方法中的步骤。
[0084] 综上,本发明的技术方案主要包括前期漏洞信息收集、网络环境交互探测、漏洞分析、渗透测试、代理搭建和生成报告等阶段;主要核心功能是基于扫描器获得的原始信息自动化分析目标可能存在的漏洞,从而进行针对性的漏洞检测,最后整理生成渗透测试报告;关键优化技术为基于知识图谱的特点结合公开漏洞集的异构信息构建知识库;用于提升漏洞分析过程中的效率和结果的准确性,减少人工分析的重复性劳动。
[0085] 请注意,以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。