CN109951455A - 一种自动化渗透测试方法及系统 - Google Patents
一种自动化渗透测试方法及系统 Download PDFInfo
- Publication number
- CN109951455A CN109951455A CN201910150155.6A CN201910150155A CN109951455A CN 109951455 A CN109951455 A CN 109951455A CN 201910150155 A CN201910150155 A CN 201910150155A CN 109951455 A CN109951455 A CN 109951455A
- Authority
- CN
- China
- Prior art keywords
- planning
- network
- penetration
- information
- file
- 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.)
- Pending
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种自动化渗透测试方法及系统,方法包括:获取网络渗透过程中的网络场景信息,以及漏洞库信息,将网络渗透过程中的网络场景信息转换为符合规划领域定义语言语法规范的文件;将漏洞库信息转换为符合规划领域定义语言语法规范的文件;基于网络渗透过程中的网络场景信息和漏洞库信息分别转换得到的符合规划领域定义语言语法规范的文件和规划算法,自动进行渗透路径规划,输出渗透路径规划路径;基于输出的渗透路径规划路径,在仿真场景中自动执行渗透路径规划路径,输出执行结果。本发明能够实现网络场景的形式化、渗透路径智能规划以及自动执行,提升了渗透测试的效率。
Description
技术领域
本发明涉及渗透测试技术领域,尤其涉及一种自动化渗透测试方法及系统。
背景技术
在网络安全问题日益严峻的今天,不同国家地区之间发生的网络冲突对国家安全产生了严重影响。渗透测试是为了证明网络防御按照预期计划正常运行而提供的一种机制,可以有效的对系统的部署情况进行巩固。
目前,渗透测试主要依靠人工完成,专业人员在已知场景具体配置信息的基础上,通过传统渗透测试手段进行测试并记录可行渗透路径。手工测试的效率与场景复杂度密切相关,同时渗透测试任务的数量变化也影响着对测试人员的需求。由统计结果可知,近几年专业测试人员数量增长缓慢,无法满足渗透测试不断增加的需求。同时,由于网络场景越来越复杂,测试人员在指定时间内能完成测试任务的平均数量也在不断减少。
综上所述,目前渗透测试以手工操作为主,在网络系统数量和规模不断增加的现状下,出现了安全测试人员数量不足以及渗透计划设计不完善、执行效率降低等问题,严重影响了渗透测试的效果。
因此,如何有效的提高渗透测试的自动化程度,进而提高渗透测试效率,是一项亟待解决的问题。
发明内容
有鉴于此,本发明提供了一种自动化渗透测试方法,能够实现网络场景的形式化、渗透路径智能规划以及自动执行,提升了渗透测试的效率。
本发明提供了
一种自动化渗透测试方法,包括:
获取网络渗透过程中的网络场景信息,以及漏洞库信息;
将所述网络渗透过程中的网络场景信息转换为符合规划领域定义语言语法规范的文件;
将所述漏洞库信息转换为符合规划领域定义语言语法规范的文件;
基于所述网络渗透过程中的网络场景信息和所述漏洞库信息分别转换得到的符合规划领域定义语言语法规范的文件和规划算法,自动进行渗透路径规划,输出渗透路径规划路径;
基于输出的所述渗透路径规划路径,在仿真场景中自动执行所述渗透路径规划路径,输出执行结果。
优选地,所述方法还包括:
基于输出的所述执行结果优化规划算法。
优选地,所述将所述网络渗透过程中的网络场景信息转换为符合规划领域定义语言语法规范的文件包括:
将所述网络渗透过程中的网络场景拓扑信息和节点描述信息导出为可扩展标记语言文件;
将导出的所述网络渗透过程中的网络场景拓扑信息和节点描述信息的可扩展标记语言文件转换为符合规划领域定义语言语法规范的文件。
优选地,所述网络场景拓扑信息包括:子网的数量、各个子网之间的连通关系、各个子网中网络设备的数量与类型。
优选地,所述基于输出的所述渗透路径规划路径,在仿真场景中自动执行所述渗透路径规划路径,输出执行结果包括:
利用脚本语言进行编程实现对渗透工具的自动化调用以及渗透测试各阶段的自动化衔接,基于输出的所述渗透路径规划路径,在仿真场景中自动执行所述渗透路径规划路径,输出执行结果。
一种自动化渗透测试系统,包括:
数据获取模块,用于获取网络渗透过程中的网络场景信息,以及漏洞库信息;
规划领域定义语言转换器,用于将所述网络渗透过程中的网络场景信息转换为符合规划领域定义语言语法规范的文件;
所述规划领域定义语言转换器,还用于将所述漏洞库信息转换为符合规划领域定义语言语法规范的文件;
攻击路径规划器,用于基于所述网络渗透过程中的网络场景信息和所述漏洞库信息分别转换得到的符合规划领域定义语言语法规范的文件和规划算法,自动进行渗透路径规划,输出渗透路径规划路径;
路径执行器,用于基于输出的所述渗透路径规划路径,在仿真场景中自动执行所述渗透路径规划路径,输出执行结果。
优选地,所述系统还包括:
优化模块,用于基于输出的所述执行结果优化规划算法。
优选地,所述规划领域定义语言转换器在执行将所述网络渗透过程中的网络场景信息转换为符合规划领域定义语言语法规范的文件时,具体用于:
将所述网络渗透过程中的网络场景拓扑信息和节点描述信息导出为可扩展标记语言文件;
将导出的所述网络渗透过程中的网络场景拓扑信息和节点描述信息的可扩展标记语言文件转换为符合规划领域定义语言语法规范的文件。
优选地,所述网络场景拓扑信息包括:子网的数量、各个子网之间的连通关系、各个子网中网络设备的数量与类型。
优选地,所述路径执行器在执行基于输出的所述渗透路径规划路径,在仿真场景中自动执行所述渗透路径规划路径,输出执行结果时,具体用于:
利用脚本语言进行编程实现对渗透工具的自动化调用以及渗透测试各阶段的自动化衔接,基于输出的所述渗透路径规划路径,在仿真场景中自动执行所述渗透路径规划路径,输出执行结果。
综上所述,本发明提供了一种自动化渗透测试方法,首先获取网络渗透过程中的网络场景信息,以及漏洞库信息,然后将网络渗透过程中的网络场景信息转换为符合规划领域定义语言语法规范的文件,将漏洞库信息转换为符合规划领域定义语言语法规范的文件,基于网络渗透过程中的网络场景信息和漏洞库信息分别转换得到的符合规划领域定义语言语法规范的文件和规划算法,自动进行渗透路径规划,输出渗透路径规划路径,最后基于输出的渗透路径规划路径,在仿真场景中自动执行所述渗透路径规划路径,输出执行结果。本发明将获取到的网络场景信息和漏洞库信息通过规划领域定义语言进行规划化描述,既解决了网络场景的形式化问题又为后续的自动路径规划提供了基础依据,同时,根据规划所得到的规划路径,通过自动化工具在仿真场景中能够实现路径的自动执行,从而整体实现了网络场景的形式化、渗透路径智能规划以及自动执行,进而提升了渗透测试的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明公开的一种自动化渗透测试方法实施例1的流程图;
图2为本发明公开的一种自动化渗透测试方法实施例2的流程图;
图3为本发明公开的一种自动化渗透测试系统实施例1的结构示意图;
图4为本发明公开的一种自动化渗透测试系统实施例2的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,为本发明公开的一种自动化渗透测试方法实施例1的流程图,可以包括以下步骤:
S101、获取网络渗透过程中的网络场景信息,以及漏洞库信息;
当需要实现自动化渗透测试时,首先获取用于生成渗透路径规划路径的数据,即获取网络渗透过程中的网络场景信息和漏洞库信息。
S102、将网络渗透过程中的网络场景信息转换为符合规划领域定义语言语法规范的文件;
当获取到网络渗透过程中的网络场景信息后,进一步对获取到的网络渗透过程中的网络场景信息进行转换,转换为符合人工智能规划领域定义语言规范的描述文件;根据语法规范可以定义元素转化的对应关系,进而能够通过程序对大量数据进行批量转换。
S103、将漏洞库信息转换为符合规划领域定义语言语法规范的文件;
同时,当获取到漏洞库信息后,进一步对获取到的漏洞库信息进行转换,转换为符合人工智能规划领域定义语言规范的描述文件。
S104、基于网络渗透过程中的网络场景信息和所述漏洞库信息分别转换得到的符合规划领域定义语言语法规范的文件和规划算法,自动进行渗透路径规划,输出渗透路径规划路径;
当得到网络场景信息对应的符合规划领域定义语言语法规范的文件,以及漏洞库信息对应的符合规划领域定义语言语法规范的文件后,进一步根据网络渗透过程中的网络场景信息和漏洞库信息分别转换得到的符合规划领域定义语言语法规范的文件,自动调用路径规划器并设置不同的搜索算法进行攻击路径的智能规划,然后输出渗透路径规划路径。
S105、基于输出的渗透路径规划路径,在仿真场景中自动执行渗透路径规划路径,输出执行结果。
当通过自动路径规划得到渗透路径规划路径后,进一步在仿真场景中自动的对规划得到的渗透路径规划路径进行执行,最后输出各个渗透路径规划路径的执行结果。
综上所述,在上述实施例中,将获取到的网络场景信息和漏洞库信息通过规划领域定义语言进行规划化描述,既解决了网络场景的形式化问题又为后续的自动路径规划提供了基础依据,同时,根据规划所得到的规划路径,通过自动化工具在仿真场景中能够实现路径的自动执行,从而整体实现了网络场景的形式化、渗透路径智能规划以及自动执行,进而提升了渗透测试的效率。
如图2所示,为本发明公开的一种自动化渗透测试方法实施例2的流程图,可以包括以下步骤:
S201、获取网络渗透过程中的网络场景信息,以及漏洞库信息;
当需要实现自动化渗透测试时,首先获取用于生成渗透路径规划路径的数据,即获取网络渗透过程中的网络场景信息和漏洞库信息。
具体的,在获取漏洞库信息时,可以通过收集Metasploit漏洞库中漏洞的详细信息,包括漏洞执行的前提条件以及执行成功的效果等。另外,为了提高描述的准确性,还可以结合SCAP漏洞库中关于漏洞的CPE描述以及CVSS评分等相关数据。即,对于一个漏洞,收集了漏洞名称、对应的CVE编号、CPE信息、CVSS评分、面向的平台、需要设置的参数以及在Metasploit中对应的路径等信息。
S202、将网络渗透过程中的网络场景拓扑信息和节点描述信息导出为可扩展标记语言文件;
在网络场景中,需要获取的网络场景信息包括网络场景拓扑信息和节点描述信息。具体的,网络场景拓扑信息主要包括子网的数量、各个子网之间的连通关系、各个子网中网络设备的数量与类型等有关网络骨干结构的信息。通过网络场景的XML描述文件,将网络渗透过程中的网络场景拓扑信息和节点描述信息导出为可扩展标记语言文件。
S203、将导出的网络渗透过程中的网络场景拓扑信息和节点描述信息的可扩展标记语言文件转换为符合规划领域定义语言语法规范的文件;
当获取到导出的网络渗透过程中的网络场景拓扑信息和节点描述信息的可扩展标记语言文件后,进一步对获取到的可扩展标记语言文件进行转换,转换为符合转换为符合人工智能规划领域定义语言规范的描述文件;根据语法规范可以定义元素转化的对应关系,进而能够通过程序对大量数据进行批量转换。
具体的,PDDL是规划领域定义语言(Planning Domain DefinitionLanguage)的简称,是一种进行智能规划问题描述的标准语言,在智能规划过程中该语言同时起到了建模和通信语言的作用。一个要求解的规划问题必须用形式化语言(如PDDL)来进行描述,才能作为智能规划的有效输入被接收。
S204、将漏洞库信息转换为符合规划领域定义语言语法规范的文件;
同时,当获取到漏洞库信息后,进一步对获取到的漏洞库信息进行转换,转换为符合人工智能规划领域定义语言规范的描述文件。
S205、基于网络渗透过程中的网络场景信息和漏洞库信息分别转换得到的符合规划领域定义语言语法规范的文件和规划算法,自动进行渗透路径规划,输出渗透路径规划路径;
当得到网络场景信息对应的符合规划领域定义语言语法规范的文件,以及漏洞库信息对应的符合规划领域定义语言语法规范的文件后,进一步根据网络渗透过程中的网络场景信息和漏洞库信息分别转换得到的符合规划领域定义语言语法规范的文件,自动调用路径规划器并设置不同的搜索算法进行攻击路径的智能规划,然后输出渗透路径规划路径。
具体的,本发明在实现渗透路径规划路径的智能规划时,可以采用FastDownward规划器。Fast Downward规划器需要域描述文件domain.pddl与问题描述文件problem.pddl进行自动规划,在本发明中,域描述文件对应的是漏洞库信息描述文件,而问题描述文件对应的是网络场景信息描述文件,FastDownward可根据输入的PDDL文件,根据选定的启发式与搜索算法,FastDownward即可根据已知条件在场景中寻找可行渗透路径,并选取代价最小的路径输出。选取多个规划器与搜索算法的组合,可以增加路径分析的覆盖程度,提高规划成功率。规划结果会以动作序列的形式产生,一个动作序列即代表一个渗透路径,可以将其导出为路径规划文件。根据路径规划文件,可以进一步在仿真场景中自动化执行渗透路径,测试规划效果。Fast Downward规划器采用多值规划任务的方式分析问题,运行效率与成功率均较高。
S206、基于输出的渗透路径规划路径,在仿真场景中自动执行渗透路径规划路径,输出执行结果;
为实现网络场景以及渗透路径执行的仿真,本发明对网络场景中的节点设备进行了模拟,并通过自动化调用的方式在仿真场景中调用相关工具执行渗透计划。在自动执行渗透路径规划路径时,需要完成的工作包括网络仿真场景的生成,自动化的漏洞配置和执行,以及在执行过程中还包括内网拓展等。
具体的,当前已经有很多较为成熟的网络仿真器,包括NS2、NS3等完全模拟型的仿真器,还有CORE等基于LXC虚拟容器的模拟器。在具体的实现过程中,为了后续更好地进行渗透路径的仿真测试,可以选择能够对真实计算机网络进行仿真的模拟器。同时,为了能够对真实网络有较好的仿真效果,仿真器还应该有较好的扩展性,能够接入多种操作系统。将攻击主机接入仿真场景并利用工具进行渗透测试操作时,要求能够得到真实的反馈或shell连接。
在得到渗透规划路径并生成仿真场景之后,需要在仿真场景中自动执行渗透路径,这需要将渗透路径中指定的漏洞利用操作转化为在仿真场景中的真实行为。目前已经有了一些较为成熟的渗透测试工具及框架,包括Nmap,Nessus等网络安全扫描器,Metasploit等漏洞测试框架。通过研究发现,上述工具均开放了编程接口,可以使用python等脚本语言自动化控制。
因此,自动化渗透过程可以利用脚本语言进行编程,实现对渗透工具的自动化调用以及渗透测试各阶段的自动化衔接。其中的关键步骤是对于所要利用漏洞的参数配置以及回连shell的接收和保持。漏洞需要配置的参数包括目标IP、目标OS版本、软件版本等,这些参数变化较大,要求在信息收集以及主机扫描阶段进行记录然后提取利用。为了后续的内网拓展等操作顺利进行,可以选取Meterpreter模块作为首选payload模块。
在渗透测试过程中,当控制一台主机之后,需要对被控主机能够到达的网络进行探测以及进一步的渗透,因此,还需要以被控主机为据点进行内网拓展。因为目标网络通常在内网,由于路由问题,攻击机无法直接访问到内网机器,但是通过内网中已经占领的主机则可以较为容易地访问其他内网。
S207、基于输出的执行结果优化规划算法。
当在仿真场景中自动执行渗透路径规划路径输出执行结果后,还可以进一步将输出的执行结果反馈给路径规划器,为规划算法的优化提供依据。同时,输出的执行结果也可以对实际的渗透测试提供重要依据。
综上所述,本发明可以利用统一的规则对复杂多变的网络场景进行形式化描述,增加网络场景的可观察性与可分析性,并为自动化攻击路径规划提供规范的数据,便于进一步的算法设计与优化。利用智能规划算法根据网络场景信息进行对渗透测试路径进行智能规划,提高渗透测试的效率。利用仿真器对网络场景以及攻击路径进行仿真,可以对自动化攻击理论进行理想状况下的验证,增加理论的可靠性并为改进方案提供依据。将渗透攻击的各个环节用自动化的方式实现,最大限度地降低人机交互,探索了自动化渗透攻击中的路径规划以及路径执行问题。
如图3所示,为本发明公开的一种自动化渗透测试系统实施例1的结构示意图,系统可以包括:
数据获取模块301,用于获取网络渗透过程中的网络场景信息,以及漏洞库信息;
当需要实现自动化渗透测试时,首先获取用于生成渗透路径规划路径的数据,即获取网络渗透过程中的网络场景信息和漏洞库信息。
规划领域定义语言转换器302,用于将网络渗透过程中的网络场景信息转换为符合规划领域定义语言语法规范的文件;
当获取到网络渗透过程中的网络场景信息后,进一步对获取到的网络渗透过程中的网络场景信息进行转换,转换为符合人工智能规划领域定义语言规范的描述文件;根据语法规范可以定义元素转化的对应关系,进而能够通过程序对大量数据进行批量转换。
规划领域定义语言转换器302,还用于将漏洞库信息转换为符合规划领域定义语言语法规范的文件;
同时,当获取到漏洞库信息后,进一步对获取到的漏洞库信息进行转换,转换为符合人工智能规划领域定义语言规范的描述文件。
攻击路径规划器303,用于基于网络渗透过程中的网络场景信息和所述漏洞库信息分别转换得到的符合规划领域定义语言语法规范的文件和规划算法,自动进行渗透路径规划,输出渗透路径规划路径;
当得到网络场景信息对应的符合规划领域定义语言语法规范的文件,以及漏洞库信息对应的符合规划领域定义语言语法规范的文件后,进一步根据网络渗透过程中的网络场景信息和漏洞库信息分别转换得到的符合规划领域定义语言语法规范的文件,自动调用路径规划器并设置不同的搜索算法进行攻击路径的智能规划,然后输出渗透路径规划路径。
路径执行器304,用于基于输出的渗透路径规划路径,在仿真场景中自动执行渗透路径规划路径,输出执行结果。
当通过自动路径规划得到渗透路径规划路径后,进一步在仿真场景中自动的对规划得到的渗透路径规划路径进行执行,最后输出各个渗透路径规划路径的执行结果。
综上所述,在上述实施例中,将获取到的网络场景信息和漏洞库信息通过规划领域定义语言进行规划化描述,既解决了网络场景的形式化问题又为后续的自动路径规划提供了基础依据,同时,根据规划所得到的规划路径,通过自动化工具在仿真场景中能够实现路径的自动执行,从而整体实现了网络场景的形式化、渗透路径智能规划以及自动执行,进而提升了渗透测试的效率。
如图4所示,为本发明公开的一种自动化渗透测试系统实施例2的结构示意图,系统可以包括:
数据获取模块401,用于获取网络渗透过程中的网络场景信息,以及漏洞库信息;
当需要实现自动化渗透测试时,首先获取用于生成渗透路径规划路径的数据,即获取网络渗透过程中的网络场景信息和漏洞库信息。
具体的,在获取漏洞库信息时,可以通过收集Metasploit漏洞库中漏洞的详细信息,包括漏洞执行的前提条件以及执行成功的效果等。另外,为了提高描述的准确性,还可以结合SCAP漏洞库中关于漏洞的CPE描述以及CVSS评分等相关数据。即,对于一个漏洞,收集了漏洞名称、对应的CVE编号、CPE信息、CVSS评分、面向的平台、需要设置的参数以及在Metasploit中对应的路径等信息。
规划领域定义语言转换器402,用于将网络渗透过程中的网络场景拓扑信息和节点描述信息导出为可扩展标记语言文件;
在网络场景中,需要获取的网络场景信息包括网络场景拓扑信息和节点描述信息。具体的,网络场景拓扑信息主要包括子网的数量、各个子网之间的连通关系、各个子网中网络设备的数量与类型等有关网络骨干结构的信息。通过网络场景的XML描述文件,将网络渗透过程中的网络场景拓扑信息和节点描述信息导出为可扩展标记语言文件。
规划领域定义语言转换器402,还用于将导出的网络渗透过程中的网络场景拓扑信息和节点描述信息的可扩展标记语言文件转换为符合规划领域定义语言语法规范的文件;
当获取到导出的网络渗透过程中的网络场景拓扑信息和节点描述信息的可扩展标记语言文件后,进一步对获取到的可扩展标记语言文件进行转换,转换为符合转换为符合人工智能规划领域定义语言规范的描述文件;根据语法规范可以定义元素转化的对应关系,进而能够通过程序对大量数据进行批量转换。
具体的,PDDL是规划领域定义语言(Planning Domain DefinitionLanguage)的简称,是一种进行智能规划问题描述的标准语言,在智能规划过程中该语言同时起到了建模和通信语言的作用。一个要求解的规划问题必须用形式化语言(如PDDL)来进行描述,才能作为智能规划的有效输入被接收。
规划领域定义语言转换器402,还用于将漏洞库信息转换为符合规划领域定义语言语法规范的文件;
同时,当获取到漏洞库信息后,进一步对获取到的漏洞库信息进行转换,转换为符合人工智能规划领域定义语言规范的描述文件。
攻击路径规划器403,用于基于网络渗透过程中的网络场景信息和漏洞库信息分别转换得到的符合规划领域定义语言语法规范的文件和规划算法,自动进行渗透路径规划,输出渗透路径规划路径;
当得到网络场景信息对应的符合规划领域定义语言语法规范的文件,以及漏洞库信息对应的符合规划领域定义语言语法规范的文件后,进一步根据网络渗透过程中的网络场景信息和漏洞库信息分别转换得到的符合规划领域定义语言语法规范的文件,自动调用路径规划器并设置不同的搜索算法进行攻击路径的智能规划,然后输出渗透路径规划路径。
具体的,本发明在实现渗透路径规划路径的智能规划时,可以采用FastDownward规划器。Fast Downward规划器需要域描述文件domain.pddl与问题描述文件problem.pddl进行自动规划,在本发明中,域描述文件对应的是漏洞库信息描述文件,而问题描述文件对应的是网络场景信息描述文件,FastDownward可根据输入的PDDL文件,根据选定的启发式与搜索算法,FastDownward即可根据已知条件在场景中寻找可行渗透路径,并选取代价最小的路径输出。选取多个规划器与搜索算法的组合,可以增加路径分析的覆盖程度,提高规划成功率。规划结果会以动作序列的形式产生,一个动作序列即代表一个渗透路径,可以将其导出为路径规划文件。根据路径规划文件,可以进一步在仿真场景中自动化执行渗透路径,测试规划效果。Fast Downward规划器采用多值规划任务的方式分析问题,运行效率与成功率均较高。
路径执行器404,用于基于输出的渗透路径规划路径,在仿真场景中自动执行渗透路径规划路径,输出执行结果;
为实现网络场景以及渗透路径执行的仿真,本发明对网络场景中的节点设备进行了模拟,并通过自动化调用的方式在仿真场景中调用相关工具执行渗透计划。在自动执行渗透路径规划路径时,需要完成的工作包括网络仿真场景的生成,自动化的漏洞配置和执行,以及在执行过程中还包括内网拓展等。
具体的,当前已经有很多较为成熟的网络仿真器,包括NS2、NS3等完全模拟型的仿真器,还有CORE等基于LXC虚拟容器的模拟器。在具体的实现过程中,为了后续更好地进行渗透路径的仿真测试,可以选择能够对真实计算机网络进行仿真的模拟器。同时,为了能够对真实网络有较好的仿真效果,仿真器还应该有较好的扩展性,能够接入多种操作系统。将攻击主机接入仿真场景并利用工具进行渗透测试操作时,要求能够得到真实的反馈或shell连接。
在得到渗透规划路径并生成仿真场景之后,需要在仿真场景中自动执行渗透路径,这需要将渗透路径中指定的漏洞利用操作转化为在仿真场景中的真实行为。目前已经有了一些较为成熟的渗透测试工具及框架,包括Nmap,Nessus等网络安全扫描器,Metasploit等漏洞测试框架。通过研究发现,上述工具均开放了编程接口,可以使用python等脚本语言自动化控制。
因此,自动化渗透过程可以利用脚本语言进行编程,实现对渗透工具的自动化调用以及渗透测试各阶段的自动化衔接。其中的关键步骤是对于所要利用漏洞的参数配置以及回连shell的接收和保持。漏洞需要配置的参数包括目标IP、目标OS版本、软件版本等,这些参数变化较大,要求在信息收集以及主机扫描阶段进行记录然后提取利用。为了后续的内网拓展等操作顺利进行,可以选取Meterpreter模块作为首选payload模块。
在渗透测试过程中,当控制一台主机之后,需要对被控主机能够到达的网络进行探测以及进一步的渗透,因此,还需要以被控主机为据点进行内网拓展。因为目标网络通常在内网,由于路由问题,攻击机无法直接访问到内网机器,但是通过内网中已经占领的主机则可以较为容易地访问其他内网。
优化模块405,用于基于输出的执行结果优化规划算法。
当在仿真场景中自动执行渗透路径规划路径输出执行结果后,还可以进一步将输出的执行结果反馈给路径规划器,为规划算法的优化提供依据。同时,输出的执行结果也可以对实际的渗透测试提供重要依据。
综上所述,本发明可以利用统一的规则对复杂多变的网络场景进行形式化描述,增加网络场景的可观察性与可分析性,并为自动化攻击路径规划提供规范的数据,便于进一步的算法设计与优化。利用智能规划算法根据网络场景信息进行对渗透测试路径进行智能规划,提高渗透测试的效率。利用仿真器对网络场景以及攻击路径进行仿真,可以对自动化攻击理论进行理想状况下的验证,增加理论的可靠性并为改进方案提供依据。将渗透攻击的各个环节用自动化的方式实现,最大限度地降低人机交互,探索了自动化渗透攻击中的路径规划以及路径执行问题。
本文中应用了具体的个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种自动化渗透测试方法,其特征在于,包括:
获取网络渗透过程中的网络场景信息,以及漏洞库信息;
将所述网络渗透过程中的网络场景信息转换为符合规划领域定义语言语法规范的文件;
将所述漏洞库信息转换为符合规划领域定义语言语法规范的文件;
基于所述网络渗透过程中的网络场景信息和所述漏洞库信息分别转换得到的符合规划领域定义语言语法规范的文件和规划算法,自动进行渗透路径规划,输出渗透路径规划路径;
基于输出的所述渗透路径规划路径,在仿真场景中自动执行所述渗透路径规划路径,输出执行结果。
2.根据权利要求1所述的方法,其特征在于,还包括:
基于输出的所述执行结果优化规划算法。
3.根据权利要求1所述的方法,其特征在于,所述将所述网络渗透过程中的网络场景信息转换为符合规划领域定义语言语法规范的文件包括:
将所述网络渗透过程中的网络场景拓扑信息和节点描述信息导出为可扩展标记语言文件;
将导出的所述网络渗透过程中的网络场景拓扑信息和节点描述信息的可扩展标记语言文件转换为符合规划领域定义语言语法规范的文件。
4.根据权利要求3所述的方法,其特征在于,所述网络场景拓扑信息包括:子网的数量、各个子网之间的连通关系、各个子网中网络设备的数量与类型。
5.根据权利要求1所述的方法,其特征在于,所述基于输出的所述渗透路径规划路径,在仿真场景中自动执行所述渗透路径规划路径,输出执行结果包括:
利用脚本语言进行编程实现对渗透工具的自动化调用以及渗透测试各阶段的自动化衔接,基于输出的所述渗透路径规划路径,在仿真场景中自动执行所述渗透路径规划路径,输出执行结果。
6.一种自动化渗透测试系统,其特征在于,包括:
数据获取模块,用于获取网络渗透过程中的网络场景信息,以及漏洞库信息;
规划领域定义语言转换器,用于将所述网络渗透过程中的网络场景信息转换为符合规划领域定义语言语法规范的文件;
所述规划领域定义语言转换器,还用于将所述漏洞库信息转换为符合规划领域定义语言语法规范的文件;
攻击路径规划器,用于基于所述网络渗透过程中的网络场景信息和所述漏洞库信息分别转换得到的符合规划领域定义语言语法规范的文件和规划算法,自动进行渗透路径规划,输出渗透路径规划路径;
路径执行器,用于基于输出的所述渗透路径规划路径,在仿真场景中自动执行所述渗透路径规划路径,输出执行结果。
7.根据权利要求6所述的系统,其特征在于,还包括:
优化模块,用于基于输出的所述执行结果优化规划算法。
8.根据权利要求6所述的系统,其特征在于,所述规划领域定义语言转换器在执行将所述网络渗透过程中的网络场景信息转换为符合规划领域定义语言语法规范的文件时,具体用于:
将所述网络渗透过程中的网络场景拓扑信息和节点描述信息导出为可扩展标记语言文件;
将导出的所述网络渗透过程中的网络场景拓扑信息和节点描述信息的可扩展标记语言文件转换为符合规划领域定义语言语法规范的文件。
9.根据权利要求8所述的系统,其特征在于,所述网络场景拓扑信息包括:子网的数量、各个子网之间的连通关系、各个子网中网络设备的数量与类型。
10.根据权利要求6所述的系统,其特征在于,所述路径执行器在执行基于输出的所述渗透路径规划路径,在仿真场景中自动执行所述渗透路径规划路径,输出执行结果时,具体用于:
利用脚本语言进行编程实现对渗透工具的自动化调用以及渗透测试各阶段的自动化衔接,基于输出的所述渗透路径规划路径,在仿真场景中自动执行所述渗透路径规划路径,输出执行结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910150155.6A CN109951455A (zh) | 2019-02-28 | 2019-02-28 | 一种自动化渗透测试方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910150155.6A CN109951455A (zh) | 2019-02-28 | 2019-02-28 | 一种自动化渗透测试方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109951455A true CN109951455A (zh) | 2019-06-28 |
Family
ID=67008127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910150155.6A Pending CN109951455A (zh) | 2019-02-28 | 2019-02-28 | 一种自动化渗透测试方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109951455A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110880983A (zh) * | 2019-08-14 | 2020-03-13 | 奇安信科技集团股份有限公司 | 基于场景的渗透测试方法及装置、存储介质、电子装置 |
CN110933041A (zh) * | 2019-11-06 | 2020-03-27 | 西安四叶草信息技术有限公司 | 渗透测试方法及相关装置 |
CN111783105A (zh) * | 2020-07-08 | 2020-10-16 | 国家计算机网络与信息安全管理中心 | 渗透测试方法、装置、设备及存储介质 |
CN113824680A (zh) * | 2021-07-26 | 2021-12-21 | 北京墨云科技有限公司 | 一种网络安全分析方法、装置、计算机设备及存储介质 |
CN117828608A (zh) * | 2023-12-25 | 2024-04-05 | 中国电子技术标准化研究院 | 系统漏洞识别方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070204347A1 (en) * | 2001-07-10 | 2007-08-30 | Core Sdi, Inc. | Automated computer system security compromise |
CN102468985A (zh) * | 2010-11-01 | 2012-05-23 | 北京神州绿盟信息安全科技股份有限公司 | 针对网络安全设备进行渗透测试的方法和系统 |
CN103457957A (zh) * | 2013-09-17 | 2013-12-18 | 北京信息科技大学 | 一种具有自适应功能的网络渗透测试系统及方法 |
CN105871885A (zh) * | 2016-05-11 | 2016-08-17 | 南京航空航天大学 | 一种网络渗透测试方法 |
-
2019
- 2019-02-28 CN CN201910150155.6A patent/CN109951455A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070204347A1 (en) * | 2001-07-10 | 2007-08-30 | Core Sdi, Inc. | Automated computer system security compromise |
CN102468985A (zh) * | 2010-11-01 | 2012-05-23 | 北京神州绿盟信息安全科技股份有限公司 | 针对网络安全设备进行渗透测试的方法和系统 |
CN103457957A (zh) * | 2013-09-17 | 2013-12-18 | 北京信息科技大学 | 一种具有自适应功能的网络渗透测试系统及方法 |
CN105871885A (zh) * | 2016-05-11 | 2016-08-17 | 南京航空航天大学 | 一种网络渗透测试方法 |
Non-Patent Citations (2)
Title |
---|
张驰: "融合Petri网的自动渗透测试技术研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
邢倩倩: "《基于智能规划的网络安全风险评估》", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110880983A (zh) * | 2019-08-14 | 2020-03-13 | 奇安信科技集团股份有限公司 | 基于场景的渗透测试方法及装置、存储介质、电子装置 |
CN110933041A (zh) * | 2019-11-06 | 2020-03-27 | 西安四叶草信息技术有限公司 | 渗透测试方法及相关装置 |
CN111783105A (zh) * | 2020-07-08 | 2020-10-16 | 国家计算机网络与信息安全管理中心 | 渗透测试方法、装置、设备及存储介质 |
CN111783105B (zh) * | 2020-07-08 | 2024-03-29 | 国家计算机网络与信息安全管理中心 | 渗透测试方法、装置、设备及存储介质 |
CN113824680A (zh) * | 2021-07-26 | 2021-12-21 | 北京墨云科技有限公司 | 一种网络安全分析方法、装置、计算机设备及存储介质 |
CN117828608A (zh) * | 2023-12-25 | 2024-04-05 | 中国电子技术标准化研究院 | 系统漏洞识别方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109951455A (zh) | 一种自动化渗透测试方法及系统 | |
CN112052608B (zh) | 一种作战推演仿真与效能评估一体化集成方法 | |
CN104793076B (zh) | 智能自动测试系统及测试方法 | |
Kristensen et al. | The practitioner’s guide to coloured Petri nets | |
EP1530847B1 (en) | Method and system for configuration control in telecommunications networks | |
CN105871885B (zh) | 一种网络渗透测试方法 | |
CN103746882B (zh) | 智能变电站站控层测试的方法 | |
CN110048904B (zh) | 一种针对5g核心网中用户平面功能网元的测试系统和方法 | |
CN113067728A (zh) | 一种网络安全攻防试验平台 | |
CN109218139B (zh) | 网关测试系统 | |
CN109739755A (zh) | 一种基于程序追踪和混合执行的模糊测试系统 | |
CN102141962A (zh) | 一种安全性分布式测试框架系统及其测试方法 | |
CN101888318B (zh) | 一种通信系统性能指标测试的系统和方法 | |
CN108460199B (zh) | Cni建模系统 | |
CN108923999A (zh) | 一种网游服务器性能自动化测试方法及系统 | |
CN110134795A (zh) | 生成验证问题组的方法、装置、计算机设备和存储介质 | |
CN105760300B (zh) | 一种stk/utk业务的自动化测试方法及测试系统 | |
CN105975396A (zh) | 一种自动化测试用例生成方法与系统 | |
CN117131508A (zh) | 一种智能物联终端容器的自动化渗透攻击测试方法和系统 | |
CN110245273A (zh) | 一种获取app业务特征库的方法及相应的装置 | |
CN102111801B (zh) | 第三代移动通信网网络管理接口的测试方法及系统 | |
CN113485433A (zh) | 输电线路的巡检方法与装置 | |
CN111930078A (zh) | 一种面向核控系统的网络测试装置 | |
CN110163201A (zh) | 图像测试方法和装置、存储介质及电子装置 | |
CN109870927A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190628 |