一种面向云原生应用的自动化渗透测试方法及系统

文档序号:34934448发布日期:2023-07-28 09:12阅读:26来源:国知局
一种面向云原生应用的自动化渗透测试方法及系统

本发明涉及计算机网络安全领域,具体涉及一种基于自动化的面向云原生应用的渗透测试方法及系统。


背景技术:

1、近些年来,越来越的应用开始逐渐走向云平台。云为载体的应用在发展了十多年后,已经逐步从一开始应用直接上云来解决物理硬件短缺问题转变为从设计之初就根据云上特点进行设计开发的云原生模式。云原生和微服务的出现促使安全左移,但是即使这样并没有让企业在面对新型云原生体系安全威胁时变得轻松,云原生的出现和相关应用的大范围使用反而增加了企业内部业务安全的风险,再加之为云原生容器化后做支撑的容器编排平台kubernetes也存在很多组件安全问题,使得云原生应用相关的安全问题会变得极其棘手。

2、云原生应用渗透测试困难,漏洞难以及时准确检测的关键在于其分布在传统的网络系统中,但是对其支持和维护相关编排系统的逻辑和传统网络逻辑是不一样的。传统的网络终端设备和应用是独立存在于真实物理机或者是传统虚拟机中,其运行和管理逻辑是很多年不变的,而云原生应用其运行以微服务为基础,以容器为平台,以kubernetes为代表的编排系统为管理平台。云原生应用的部署逻辑和管理逻辑的创新导致了传统渗透测试辅助难以有效应对其可能存在的漏洞问题。

3、云原生应用广泛采用分布式集群化部署,人工测试难以对漏洞进行有效的检测及验证。安全测试员人需要针对云原生应用所运行依赖的容器进行内核及其系统配置文件安全性检测,还要对容器的所依赖的镜像仓库进行监测,对仓库中的镜像进行扫描,这些将大大延长安全测试人员的测试周期。不但如此,对于容器编排系统,安全测试人员还需要检测海量的自动化api安全性。现有的工具和辅助性的自动化渗透测试框架难以胜任上述检测需求,实用性较差。


技术实现思路

1、针对上述问题,本发明提出了一种基于自动化的面向云原生应用的渗透测试方法及系统,以解决现有技术和框架无法自动化地对云原生应用中潜在的应用和编排系统进行有效检测的问题。

2、为达到上述目的,本发明采取的具体技术方案是:

3、一种面向云原生应用的自动化渗透测试方法,包括以下步骤:

4、1)识别目标云原生应用上运行的服务并进行信息收集,收集的信息包括服务指纹信息、端口开放信息和可利用漏洞信息,生成可用信息数据库;

5、2)根据可用信息数据库提取高价值信息,并归类为高危端口、敏感页面title和可疑的低版本服务漏洞三类;

6、3)对高价值信息进一步处理,筛选服务上的可用漏洞,并对可用漏洞按照漏洞危害程度和漏洞所在位置进行排序分类;

7、4)根据筛选出的可用漏洞,基于传统渗透测试中的横向移动技术,针对云原生编排系统的网络特征和容器的部署特征,实现在同node节点下的不同容器之间以及不同node节点之间的横向移动;

8、5)结合传统容器持久化技术和编排系统的任务劫持技术,实现对云原生应用所在系统的持久化监测和控制。

9、进一步地,步骤1)中信息收集的步骤包括:通过分析云原生应用及其编排系统kubernetes与传统应用在暴露端口上的区别,以及运维系统在用户登录控制页面上的差异,来进行信息搜集。

10、进一步地,步骤1)中在分析所述暴露端口时主要扫描自动化api端口,该自动化api端口的信息包括:

11、6443端口:kubernetes控制组件api server的核心端口,采用https协议,在某些情况下也使用http协议,端口为8080;

12、10248端口:kubernetes组件中检查kubelet健康状态的端口;

13、10250端口:kubernetes组件中面向api server提供服务的https端口;

14、8001端口:dashboard所在端口,为kubernetes管理员提供图形化的管理界面;和/或

15、2379端口:etc组件为客户端和服务端留作通讯的端口。

16、进一步地,步骤1)中在扫描端口时,对发现的传统端口也进行测试,测试步骤包括:

17、将传统端口分为web端口和非web端口,该web端口包括传统cms端口,该非web端口为系统服务类;

18、根据icmp、udp及其smb协议对传统端口进行扫描,将根据icmp、udp协议扫描的结果取并集,再与根据smb协议扫描的结果进行相减,将相减后的扫描结果作为后续步骤的输入。

19、进一步地,步骤3)中筛选服务上的可用漏洞的步骤包括:将可疑的漏洞目标与漏洞验证poc进行测试比对,验证成功的漏洞即为可用漏洞。

20、进一步地,步骤3)中根据漏洞危害程度,云原生安全涉及的漏洞包括开发过程中存在的代码级别的漏洞、编排系统与容器的配置错误以及传统的提权漏洞。

21、进一步地,步骤3)中漏洞所在位置包括外部网络位置和内部网络位置。

22、进一步地,步骤4)中同node节点下不同容器之间的横向移动通过访问localhost实现;不同node节点之间的横向移动是通过访问cidr块实现。

23、进一步地,步骤5)中对云原生应用所在系统的持久化包括应用容器中的持久化和控制节点中的控制持久化,应用容器中的持久化是根据容器中linux服务容器含有计划任务能够进行周期性运行控制指令实现,控制节点中的控制持久化是根据控制节点对集群的高权限控制来实现。

24、进一步地,步骤5)中通过拉取第三方恶意镜像并用以部署恶意容器作为后门,并在已控制的容器中部署恶意计划任务,实现对云原生应用所在系统的持久化监测和控制。

25、一种面向云原生应用的自动化渗透测试系统,包括:

26、信息搜集模块,用于识别目标云原生应用上运行的服务并进行信息收集,收集的信息包括服务指纹信息、端口开放信息和可利用漏洞信息,生成可用信息数据库;根据可用信息数据库提取高价值信息,并归类为高危端口、敏感页面title和可疑的低版本服务漏洞三类;

27、漏洞筛选模块,用于对高价值信息进一步处理,筛选服务上的可用漏洞,并对可用漏洞按照漏洞危害程度和漏洞所在位置进行排序分类;

28、横向移动模块,基于传统渗透测试中的横向移动技术构建,用于利用筛选出的可用漏洞,根据云原生编排系统的网络特征和容器的部署特征,实现在同node节点下的不同容器之间以及不同node节点之间的横向移动;

29、持久化控制模块,用于结合传统容器持久化技术和编排系统的任务劫持技术,通过拉取第三方恶意镜像并用以部署恶意容器作为后门,并在已控制的容器中部署恶意计划任务,实现对云原生应用所在系统的持久化监测和控制。

30、本发明的有益效果如下:

31、本发明在目标扫描和漏洞识别验证中针对性地进行了设计,对云原生应用的自动化识别率得到了显著提高。本发明在漏洞的验证中从两个维度来对漏洞进行筛选以便于程序选定下一步渗透测试的目标,从而克服了自动化渗透测试中程序自主决策渗透测试下一步计划的难题。本发明将全流程的渗透测试都进行了自动设计,在横向移动时针对性地利用云原生编排系统的业务和网络特性进行容器间的扩大化攻击,并且在完全控制后植入能够长期控制应用的后门。本发明整体大大降低了人工对云原生应用的渗透测试和评估时间,提高了渗透测试效率,节省了人力。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1