基于网络靶场的自动化渗透测试方法及系统技术方案

技术编号:33389167 阅读:17 留言:0更新日期:2022-05-11 23:05
本发明专利技术提供一种基于网络靶场的自动化渗透测试方法及系统,所述方法包括以下步骤:获取待测试服务的运行配置信息,并使用识别决策树进行分类,根据识别结果将不同类别的运行配置信息发送至对应漏洞挖掘模块进行处理,挖掘潜在漏洞以及构建基础靶场;基于挖掘出的潜在漏洞以及获取的运行配置信息进行测试方案构建;执行测试方案,并判断测试是否通过。本发明专利技术通过漏洞的自动化挖掘以及网络靶场技术,节约对重复漏洞反复挖掘的时间,并且可以并行、不间断地、长期地进行多组不同环境的测试,快速地发现安全问题。地发现安全问题。地发现安全问题。

【技术实现步骤摘要】
基于网络靶场的自动化渗透测试方法及系统


[0001]本专利技术涉及自动化渗透测试,具体的说,涉及了一种基于网络靶场的自动化渗透测试方法及系统。

技术介绍

[0002]服务上线前总是需要进行安全性测试,而且测试涉及到许多方面,单靠网络安全人员进行测试很依赖于人员的经验能力,通常并不能全面的发现问题。与此同时技术与模块化的发展使得应用服务所用技术栈大多非常繁杂,语言、中间件、容器、操作系统、服务管理方式等都会有所不同,当然其结合方式也会存在许多差异,所以人力测试会越来越难以进行全面的分析和测试,而漏洞挖掘包括代码审计等发展至今,已经具备了进行自动化的技术经验积累,并且硬件性能的发展已经足以支撑全面的自动化渗透测试方案的构建与执行。
[0003]目前,自动化渗透测试方案要求人员具备足够的安全技术,且在实机运行环境中的测试,还存在因为测试数据以及各种渗透操作致使服务逐渐不可用的情况。
[0004]为了解决以上存在的问题,人们一直在寻求一种理想的技术解决方案。

技术实现思路

[0005]本专利技术的目的是针对现有技术的不足,从而提供了一种基于网络靶场的自动化渗透测试方法及系统。
[0006]为了实现上述目的,本专利技术第一方面提供一种基于网络靶场的自动化渗透测试方法,包括以下步骤:获取待测试服务的运行配置信息,使用识别决策树对运行配置信息进行识别分类,并根据识别结果将不同类别的运行配置信息发送至对应漏洞挖掘模块进行处理,潜在漏洞以及构建基础靶场;基于挖掘出的潜在漏洞、人工输入的待测试服务的运行配置信息以及检测出的待测试服务的运行配置信息进行测试方案构建,所述测试方案包括测试脚本和脚本执行环境构建方案;根据脚本执行环境构建方案生成所需靶场测试场景,将测试脚本上传至网络靶场中的目标测试场景节点,执行测试脚本,并将脚本执行结果输入至递归神经网络,判断测试是否通过。
[0007]本专利技术第二方面提供一种基于网络靶场的自动化渗透测试系统,包括:信息获取模块,用于获取待测试服务的运行配置信息;识别分类模块,使用识别决策树对运行配置信息进行识别分类,并根据识别结果将不同类别的运行配置信息发送至对应漏洞挖掘模块进行处理,挖掘潜在漏洞;测试方案构建模块,用于基于挖掘出的潜在漏洞、人工输入的待测试服务的运行配置信息以及检测出的待测试服务的运行配置信息进行测试方案构建,所述测试方案包括
测试脚本和脚本执行环境构建方案;网络靶场生成模块,用于基于运行配置信息生成基础靶场并根据脚本执行环境构建方案生成所需靶场测试场景;测试执行模块,将测试脚本上传至网络靶场中的目标测试场景节点,执行测试脚本;结果分析模块,将脚本执行结果输入至递归神经网络,判断测试是否通过。
[0008]基于上述,所述漏洞挖掘模块包括:事件型漏洞挖掘模块,用于对测试用例和/或接口文档进行事件型漏洞匹配,挖掘可能存在的事件型漏洞;通用型漏洞匹配模块,用于基于漏洞库对技术栈信息进行通用型漏洞匹配,挖掘可能存在的通用型漏洞;代码审计模块:用于对程序包进行逆向工程得到程序代码以及源代码进行审计,找出程序错误、漏洞和违反程序规范代码;端口扫描模块,用于对建立的基础靶场进行端口扫描,检测最终应用服务环境是否与获取的应用程序的服务与网络配置一致,并补充完善人工未输入的待测试服务的运行配置信息。
[0009]本专利技术相对现有技术具有突出的实质性特点和显著的进步,具体的说:本专利技术通过识别分类树对待测试服务的运行配置信息进行分类,并根据分类结果调用漏洞库、代码审计以及端口扫描模块进行漏洞的自动化挖掘,不仅可以为自动化渗透测试的全面性提供一定的保障,而且可以节约对重复漏洞反复挖掘的时间,同时节省对人力资源的消耗;引入网络靶场技术,构建基础靶场以及根据不同的漏洞挖掘结果生成测试脚本以及相应的靶场测试场景,并行、不间断地、长期地进行多组不同环境的测试,有助于更快速地发现更多安全问题。
[0010]通过检测模块对人工输入数据进行补充,使得当人员不具备足够的安全技术积累时,也能够对开发的应用程序进行较为完备的安全性测试。
附图说明
[0011]图1是本专利技术的流程示意。
具体实施方式
[0012]下面通过具体实施方式,对本专利技术的技术方案做进一步的详细描述。
[0013]实施例1如图1所示,本专利技术提出一种基于网络靶场的自动化渗透测试方法,包括以下步骤:获取待测试服务的运行配置信息,使用识别决策树对运行配置信息进行识别分类,并根据识别结果将不同类别的运行配置信息发送至对应漏洞挖掘模块进行处理,构建基础靶场以及挖掘潜在漏洞;基于挖掘出的潜在漏洞以及获取的运行配置信息进行测试方案构建,所述测试方
案包括测试脚本和脚本执行环境构建方案;根据脚本执行环境构建方案生成所需靶场测试场景,将测试脚本上传至网络靶场中的目标测试场景节点,执行测试脚本,并将脚本执行结果输入至递归神经网络,判断测试是否通过。
[0014]在具体实施时,脚本执行后获得的脚本执行结果包括但不限于response数据、控制台输出、日志、文件、网络数据包;获得脚本执行结果后,使用递归神经网络对脚本执行结果进行分类,可以检测测试通过情况,给出服务的漏洞及潜在漏洞集合。
[0015]具体的,待测试服务的运行配置信息包括所使用的技术栈信息、应用程序的服务与配置信息、已有的测试用例、源代码、程序包;其中,技术栈信息包括但不限于编程语言、中间件、数据库、操作系统等;应用程序的服务与配置信息包括但不限于操作系统镜像、开放的端口、程序路径、网络描述信息、中间件部署策略、安全策略、接口文档、应能被暴露的文件路径集合、服务列表等。
[0016]在具体实施时,待测试服务的运行配置信息可以由用户自定义输入,也可以由检测模块基于用户自定义输入的运行配置信息检测出待测试服务未明示的运行配置信息,例如技术栈信息、开放端口等,从而起到补充完善人工输入的作用,使得当人员不具备足够的安全技术积累时,也能够对开发的应用程序进行较为完备的安全性测试。
[0017]本实施例中,待测试服务的运行配置信息包括技术栈信息、程序包、源代码、测试用例、以及接口文档、开放端口、服务列表和网络描述信息,则根据识别结果将不同类别的运行配置信息发送至对应漏洞挖掘模块进行处理,挖掘潜在漏洞的具体步骤为:将识别出的程序包进行逆向工程得到程序代码,并将程序代码发送至代码审计模块进行审计,找出程序错误、漏洞和违反程序规范代码;将源代码发送至代码审计模块进行审计,找出程序错误、漏洞和违反程序规范代码;基于识别出的网络描述信息和服务列表建立基础靶场,所述基础靶场包括服务所需的基础服务节点、中间件节点等,不配置额外的网络环境;根据网络描述信息和服务列表对基础靶场进行端口扫描,检测服务环境的安全性;具体的,检测最终应用服务环境的开放端口是否与待测试服务的运行配置信息中的开放端口一致,若不一致,则服务环境是不安全性;将识别出的技术栈信息发送至通用型漏洞匹配模块,并根据漏洞库挖掘可能存在的通用型漏洞;将识别出的测试用例、接口文档发送至本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于网络靶场的自动化渗透测试方法,其特征在于,包括以下步骤:获取待测试服务的运行配置信息,使用识别决策树对运行配置信息进行识别分类,并根据识别结果将不同类别的运行配置信息发送至对应漏洞挖掘模块进行处理,挖掘潜在漏洞以及构建基础靶场;基于挖掘出的潜在漏洞以及获取的运行配置信息进行测试方案构建,所述测试方案包括测试脚本和脚本执行环境构建方案;根据脚本执行环境构建方案生成所需靶场测试场景,将测试脚本上传至网络靶场中的目标测试场景节点,执行测试脚本,并将脚本执行结果输入至递归神经网络,判断测试是否通过。2.根据权利要求1所述的一种基于网络靶场的自动化渗透测试方法,其特征在于,获取待测试服务的运行配置信息包括以下步骤:人工输入自定义的待测试服务的运行配置信息,通过检测模块对人工输入的运行配置信息进行检测,检测出待测试服务未明示的运行配置信息,补充完善人工输入的运行配置信息。3.根据权利要求1所述的一种基于网络靶场的自动化渗透测试方法,其特征在于:当待测试服务的运行配置信息包括技术栈信息、程序包、源代码、测试用例、以及接口文档、开放端口、服务列表和网络描述信息时,根据识别结果将不同类别的运行配置信息发送至对应漏洞挖掘模块进行处理,挖掘潜在漏洞的具体步骤为:将识别出的程序包进行逆向工程得到程序代码,并将程序代码发送至代码审计模块进行审计,找出程序错误、漏洞和违反程序规范代码;将源代码发送至代码审计模块进行审计,找出程序错误、漏洞和违反程序规范代码;基于识别出的网络描述信息和服务列表建立基础靶场,并对基础靶场进行端口扫描和进程扫描,检测最终应用服务环境的安全性;将识别出的技术栈信息发送至通用型漏洞匹配模块,并根据漏洞库挖掘可能存在的通用型漏洞;将识别出的测试用例、接口文档发送至事件型漏洞匹配模块,并根据漏洞库挖掘可能存在的事件型漏洞。4.根据权利要求1所述的一种基于网络靶场的自动化渗透测试方法,其特征在于:当待测试服务的运行配置信息包括技术栈信息、程序包、源代码、操作系统镜像以及接口文档时,根据识别结果将不同类别的运行配置信息发送至对应漏洞挖掘模块进行处理的具体步骤为:将识别出的程序包进行逆向工程得到程序代码,并将程序代码发送至代码审计模块进行审计,找出程序错误、漏洞和违反程序规范代码;将源代码发送至代码审计模块进行审计,找出程序错误、漏洞和违反程序规范代码;基于识别出的操作系统镜像建立基础靶场,并对基础靶场进行进程扫描检测出系统服务列表,对场景内节点使用端口扫描工具进行端口扫描,检测出开放的端口以及协议;将识别出的接口文档发送至事件型漏洞匹配模块,挖掘可能存在的事件型漏洞。5.根据权利要求1所述的基于网络靶场的自动化渗透测试方法,其特征在于,根据脚本

【专利技术属性】
技术研发人员:李茜锦王坤张植豪程航金亚峰刘亚静汪淼周天阳曾子懿朱俊虎
申请(专利权)人:郑州信大先进技术研究院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1