Kubernetes 项目最近修补了一个危险的安全漏洞,这个漏洞允许狡猾的攻击者在主机上运行代码。该漏洞不会影响 Kubernetes 系统本身,而是会影响到 kubectl( Kube 控件),该控件是用于 Kubernetes 安装的官方命令行实用程序。安全研究人员在 kubectlcp(复制)操作中发现了一个安全漏洞,该操作用于将文件从容器传输到用户主机。
StackRox 联合创始人兼产品副总裁 Wei Lien Dang 认为该漏洞非常危险。Kubernetes 产品安全委员会委员 Joel Smith 表示此漏洞的详细信息与 CVE-2019-1002101 非常相似。建议安装 Kubernetes 的公司和开发人员将 kubectl 和 Kubernetes 升级到 1.12.9,1.13.6 或 1.14.2 或更高版本。
黑客可通过“复制”操作执行代码
Kubernetes 产品安全委员会委员 Joel Smith 说:“为了从容器中复制文件,Kubernetes 会在容器内运行 tar 以创建一个 tar 存档,再通过网络复制它,kubectl 最后会将其解压到用户的机器上。”
他说:“如果容器中的 tar 二进制文件是恶意的,那么它可以运行任何代码并输出恶意结果。当调用 kubectlcp 时,攻击者可以使用该 tar 将文件写入用户计算机上的任何路径,而仅受本地用户系统权限的限制。“但利用这个漏洞并不简单,因为攻击者需要首先将恶意文件放在 Kubernetes 容器中,然后等待 Kubernetes 管理员将这些文件传输到系统中。恶意文件会自动执行。然而,这种攻击还需要运气和一点社交手段才能成功。
主机侵入可能导致系统彻底被攻破
尽管如此,StackRox 联合创始人兼产品副总裁 Wei Lien Dang 认为该漏洞非常危险。Wei 在一封电子邮件中告诉外媒 ZDNet,“此漏洞令人担忧,因为它允许攻击者覆盖敏感文件路径或添加恶意程序文件,然后利用这些文件破坏 Kubernetes 环境的重要组成部分” 。
“这种类型的漏洞显示了客户端漏洞如何潜在地被用来破坏生产环境,特别是鉴于我们观察到人们并不总是遵循降低这种威胁的最佳实践……例如,用户可能正在生产节点上运行 kubectl,或者没有适当地基于角色的访问控制来限制对整个集群的访问权,或者用户使用了提升后的本地系统权限,”Wei 补充道。 “此外,该漏洞修复程序需要被升级到最新版的 kubectl 中,但这可能更难执行,因为它需要个人用户自己去升级。”
该漏洞目前已经打了两次补丁
该漏洞编号为 CVE-2019-11246,由 Atredis Partners 公司的 Charles Holmes 发现,是云原生计算基金会赞助的安全审计的一部分。“这个漏洞是之前披露的漏洞 (CVE-2019-1002101) 不完整修复之后留下的问题,”Wei 说,漏洞首次修复于今年 3 月。
“此漏洞的详细信息与 CVE-2019-1002101 非常相似。该问题的原始修复程序不完整,并且我们还发现了一种新的利用漏洞的方法,”Smith 说。
我们建议自行安装 Kubernetes 的公司和开发人员将 kubectl 和 Kubernetes 升级到 1.12.9,1.13.6 或 1.14.2 或更高版本。
谷歌云 K8S 同样脆弱
在安全报告中,Google Cloud 管理员表示,“所有 Google Kubernetes Engine (GKE) gcloud 版本都受到此漏洞的影响,因此我们建议您在 gcloud 补丁版本可用时升级到最新版本。”
目前,这个补丁还没有出来。“即将推出的补丁版本将包括此漏洞风险的缓解措施,”谷歌表示。谷歌建议 Google Cloud 客户留意该工具的更新日志,以下载与 kubectl 相关的安全修复程序。
作者介绍:
Catalin Cimpanu,ZDNet 的一名安全记者,报道主题包括:网络安全、数据违规、非法侵入等。此前,他曾担任 Bleeping Computer 和 Softpedia 的安全记者。现居住于罗马尼亚。
原文链接:
Kubernetes CLI tool security flaw lets attackers run code on host machine
评论