CON318 | Kubernetes 安全:如何解决 Kubernets 的主要漏洞
关键字: [Amazon Web Services re:Invent 2023, Amazon EKS, Kubernetes Security, Kubernetes Vulnerabilities, Kubernetes Attack Vectors, Securing Kubernetes Clusters, Hardening Kubernetes]
本文字数: 2300, 阅读完需: 12 分钟
视频
导读
本次分享介绍了 Kubernetes 体系结构的基本原理及常见攻击向量、Amazon Elastic Kubernetes Service 为解决这些问题提供的安全控制、客户可以实施的降低风险策略,以及改进开源 Kubernete 的契机。
演讲精华
以下是小编为您整理的本次演讲的精华,共2000字,阅读时间大约是10分钟。如果您想进一步了解演讲内容或者观看演讲全文,请观看演讲完整视频或者下面的演讲原文。
麦卡·豪斯勒(Mica Hausler)是亚马逊云科技(Amazon Web Services)的一名资深工程师,具有超过四年的工作经验。在演讲开始时,他向观众介绍了背景,并请他们设想一下,作为一名Kubernetes管理员,突然收到关于其集群的重大安全问题的紧急警报。该警报来自公司的安全团队,声称有些外部研究人员已经发现他们可以简单地通过curl访问您的集群Kubernetes API端点并检索其所有机密信息——这是一个严重的问题!
这让人生畏,因为您立刻意识到报告中的域名指向了在特定亚马逊云科技区域运行的一个生产EKS集群。端点甚至包含该EKS集群的唯一标识符。最令人担忧的是,对/api/v1/secrets路径的请求根本不需要任何身份验证。这意味着所有的秘密,包括GitHub和SendGrid密钥等凭证,都在向外暴露。
首先,您需要迅速核实是否真的是您的一个受影响EKS集群。您使用亚马逊云科技的命令行界面来列出那个地区内的EKS集群,并通过描述它们来获取端点名称。通过匹配报告中的集群名称,您可以肯定这是您的一个生产EKS集群受到了这种安全配置错误的影响。现在您需要迅速行动以限制损害并防止任何进一步的机密泄露。
由于这是一个紧急操作事件,您首先关注的是缓解问题而不是确定根本原因。查看Kubernetes角色绑定,您发现了可疑的“cluster-system:anonymous”绑定,它授予内置的“system:anonymous”用户完整的“cluster-admin”权限。这个危险的角色绑定允许任何未经验证的用户访问整个Kubernetes API,解释了为什么秘密会暴露出去。您立即删除了这个角色绑定以防止任何其他秘密泄露。
为了找出这是如何发生的,您在CloudWatch日志中使用洞察查询搜索Kubernetes审计日志中以查找添加未授权角色绑定的创建事件。在日志中,您看到了创建它的IAM用户的显示访问密钥ID。通过查询CloudTrail日志,您可以追踪IAM用户回具体到哪个工程师承担了IAM角色并实际上创建了那个过度允许的绑定。
这个现实生活中的例子展示了意外Kubernetes配置错误可能导致的关键安全事件的最坏情况,尽管这种情况非常有可能发生。Mica随后概述了在典型的架构中,包括开发者、CI/CD管道、类似ECR的容器注册表、Kubernetes集群以及各种亚马逊云科技的服务(如存储、缓存、数据库和负载均衡)时,操作Kubernetes集群可能需要考虑的一些常见威胁。
广泛使用的CIA安全模型将保密性、完整性和可用性视为信息安全的三个关键支柱。在这个框架下,一些示例性的威胁建模问题包括:
- 可用性:哪些网络需要访问应用程序和Kubernetes API服务器?
- 完整性:哪些用户和进程需要访问数据和对软件供应链的访问?
- 保密性:哪些用户和进程必须能够访问敏感数据和计算资源?
保护Kubernetes的安全面临的基本挑战在于其极度互联的本质。大多数漏洞的最终评级都是高严重性,因为如此多的组件相互连接。评估潜在威胁的其他关键问题包括:
- 是否在容器中运行任意、不受信任的代码?实际上,容器是否能提供强大的安全边界?
- 应用程序是否向任意、未知的网络发出出站请求?
- 哪些特定的网络、用户和过程需要访问Kubernetes API服务器?
此外,Mica提供了一些常见的Kubernetes安全问题的具体例子,并针对与Kubernetes相关的OWASP顶级10个最关键的网络应用漏洞中的一些提出了建议的缓解措施:
-
破裂的访问控制:授予超出最小权限原则的用户和容器过多权限;容器在节点上特权升级以获得比预期更多的权限;已知Kubernetes错误可以完全绕过授权检查(始终假设某些错误存在)。缓解措施包括使用精确的、最小权限的RBAC角色,限制集群范围权限,使用令牌请求CSI驱动程序。
-
安全配置错误:保持启用的危险默认设置,如Kubelet的匿名认证;允许容器绕过容器隔离而挂载主机Docker套接字。缓解措施包括不要向system:masters组添加用户,严格限制来自容器对主机的访问。
记录非节点Pod状态的变化,限制Kubernetes API的外出访问,并确保集群的持续更新。
Mica详细解释了一些可能导致访问控制问题的常见配置错误,其中包括:
-
过度授权pod对Amazon Web Services(亚马逊云科技)的访问权限。一种常见的做法是通过侧车代理处理Amazon Web Services API令牌请求,而非每个pod自行获取令牌。然而,这通常会赋予代理为该集群中的任何服务帐户创建令牌的权利,从而将范围从仅该节点扩展到整个集群。一个更安全的设计是使用Kubernetes 1.20中新增的新令牌请求CSI功能,其中Kubelet可以提供特定于该pod且无任何集群范围的权限的令牌。
-
尝试将开发者访问限制为只能创建pod,而操作员访问限制为创建自定义资源。开发者角色被赋予了对“核心”Kubernetes资源的广泛访问权限。然而,这无意中使他们能够模拟任何用户,因为根据默认设置,这包括Kubernetes RBAC的“模仿”动词。相反,你应该明确列出允许的动词(如get、list、create、update、delete)以及pod、configmaps等资源,而不包括有风险的模仿动词。
针对这些安全配置错误的一个典型例子是将Kubelet的匿名身份验证设置为启用状态,而Kubelet负责实际运行pod。在默认情况下,Kubelet允许未经验证的用户自由检索日志甚至执行进入pod的操作。尽管EKS提供了更安全的默认配置,但严格限制来自pod的主机访问仍被视为一个最佳实践。
保持节点和容器镜像的更新,在应用补丁的活跃支持版本上保持更新,并制定积极升级Kubernetes版本的计划。
下面是一些演讲现场的精彩瞬间:
系统主管这个角色能够不受限制地访问系统资源,因此在使用时必须谨慎。
领导者在推动容器和机器图像更新以保持最新的同时,也强调了对运行环境的安全性。
要确保您的Kubernetes集群始终处于受支持的状态,以便维持安全。
演讲者详细阐述了攻击者如何通过Kubernetes获得未授权网络访问的方法,并强调了保护Kubernetes API的重要性。
开启CloudWatch日志记录功能,并对非节点补丁设置警报,以便及时发现潜在问题。
领导者建议您阅读一篇关于某个重要主题的文档,以便了解更多相关信息。
总结
在此次具有洞察力的演讲中,Mica Hausler针对保护Kubernetes集群提供了关键指导。他以一个令人毛骨悚然的事件作为引子,讲述了某位匿名用户如何获得了对公司Kubernetes秘密的完全访问权限。接着,Hausler分析了常见的威胁,包括保密性、完整性和可用性泄露等问题。他建议限制对Kubernetes API和数据平面的网络访问,以确保安全性。
在后续内容中,Hausler深入探讨了攻击矢量和缓解措施。他详细解释了破损的访问控制、安全配置错误、过时的组件、不足的日志记录/监控以及服务器端请求伪造等风险。为了保护集群,他建议使用最新的Kubernetes版本,限制API服务器的访问,启用审计日志,并应用基于角色的访问控制。Hausler强调了最小特权和默认安全的重要性。他的结论是采用最佳实践,如容器安全策略、加密技术以及利用亚马逊云科技的IAM角色和GuardDuty等工具。
演讲原文
想了解更多精彩完整内容吗?立即访问re:Invent 官网中文网站!
2023亚马逊云科技re:Invent全球大会 - 官方网站
点击此处,一键获取亚马逊云科技全球最新产品/服务资讯!
点击此处,一键获取亚马逊云科技中国区最新产品/服务资讯!
即刻注册亚马逊云科技账户,开启云端之旅!
【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用”
亚马逊云科技是谁?
亚马逊云科技(Amazon Web Services)是全球云计算的开创者和引领者,自 2006 年以来一直以不断创新、技术领先、服务丰富、应用广泛而享誉业界。亚马逊云科技可以支持几乎云上任意工作负载。亚马逊云科技目前提供超过 200 项全功能的服务,涵盖计算、存储、网络、数据库、数据分析、机器人、机器学习与人工智能、物联网、移动、安全、混合云、虚拟现实与增强现实、媒体,以及应用开发、部署与管理等方面;基础设施遍及 31 个地理区域的 99 个可用区,并计划新建 4 个区域和 12 个可用区。全球数百万客户,从初创公司、中小企业,到大型企业和政府机构都信赖亚马逊云科技,通过亚马逊云科技的服务强化其基础设施,提高敏捷性,降低成本,加快创新,提升竞争力,实现业务成长和成功。