2021年渗透测试行动红蓝对抗 关于云原生漏洞检测

2021年初,我们在CIS2021上分享了一话题,叙述了我们近些年在红蓝对抗演习中遇到的云原生企业架构,以及我们在服务网格攻防场景中沉淀的一些方法论。回顾阿里云蓝军近几年在云原生安全方面的探索和沉淀,2018年开始正式投入攻防场景中的无服务器和容器排列技术的前期研究,并服务于一批阿里云基础设施和产品的相关沉淀。在最近的内外红蓝对抗演练中,阿里云蓝军多次依靠云原生场景中的漏洞挖掘和漏洞利用,从而突破防御进入内网或突破核心目标;特别是2020年的一次云安全演习,突破了层层对峙,通过云原有的安全问题进入内网。


在本文中,我们将重点关注攻防对抗中沉淀的漏洞,并分享我们在许多攻防场景中遇到的与云相关的漏洞挖掘和利用的示例。CNCF(CloudNativeComputingFoundatiOn)在对云原生定义的叙述中提到,“云原生的代表性技术包括容器、服务网格、微服务、不可变基础设施和声明性API”。


我们今天讲的漏洞和利用技术,也是紧紧围绕上述技术和云原生相关技术演化而来的各种技术架构,包括但不限于容器、服务网格、微服务、不可变基础设施、声明式API、无服务架构、函数计算、DevOps等。,涉及R&D团队使用的一些云原生开源组件,以及自行研究和二次开发过程中常见的安全问题。不要对“云原生安全”这一概念做过多的延伸和扩展,提及所有安全漏洞都是在腾讯蓝军内外攻防演练和漏洞挖掘中积累的实际利用经验。


大多数情况下,我们遇到的内网并不是完全基于容器技术构建的,所以内网的起点不一定是权限有限的容器,但攻击方向和目标是相似的:为了获得特定目标的权限、资金和数据,我们一般需要控制更多甚至所有的容器、主机和集群。还有,由于行业内云原生实践的快速发展,虽然Kubernetes安排的所有容器网络和架构在进入内网后都不一定联系,但是基于云原生技术的新漏洞和利用技术往往可以帮助蓝军打开局面。


比如当我们得到kubeconfig文件(通常位于~/。kube/config文件目录),那样我们就具有了管控Kubernetes集群的全部能力,具体可以做的事情后面会详细讨论。如果此时集群没有设置严格的安全策略,目标企业的HIDS没有根据容器的特性进行一定的策略优化,那样创建一个可以获得NODE权限的POD可能是一个不错的选择,因为只有这样获得的shell才能更方便地在容器的父机上收集信息,例如,strace父机器的sshd进程抓取我们想要的用户名和密码,使用tcpdump等抓取内网系统的管理员登录状态。当前运行的容器通常没有这些权限。

分享: