进击云原生

V1

2022/03/21阅读:58主题:前端之巅同款

在 Kubernetes 的 CRI-O 容器引擎中发现漏洞

在 Kubernetes 的 CRI-O 容器引擎中发现漏洞

鼓励在其环境中使用 Kubernetes 的 CRI-O 容器运行时的 Linux 管理员立即安装最新补丁以关闭严重漏洞。

此前,CrowdStrike 的安全研究人员在 CRI-O 中发现了该漏洞(跟踪为 CVE-2022-0811)。

它被称为“cr8escape”,它可以让攻击者逃离 Kubernetes 容器,获得对主机的 root 访问权限,并能够在集群中的任何位置移动。这将允许攻击者做任何事情,从执行恶意软件到复制数据和在 Pod 之间横向移动。

请注意,Kubernetes 是一种用于自动化软件部署、扩展和管理的开源容器编排系统,不需要调用 CVE-2022-8011,CrowdStrike 说。安装了 CRI-O 的机器上的攻击者可以使用它自行设置内核参数。

CRI-O 是 Kubernetes 容器运行时接口的实现,可以使用 OCI(开放容器倡议)兼容的运行时。CRI-O 开发人员表示,它是使用 Docker 作为 Kubernetes 运行时的轻量级替代方案,允许 Kubernetes 使用任何符合 OCI 的运行时作为运行 Pod 的容器运行时。

根据 CrowdStrike 的说法,Kubernetes 使用像 CRI-O 或 Docker 这样的 容器运行时来安全地与运行在其上的各种容器化应用程序共享每个节点的内核和资源。Linux 内核接受控制其行为的运行时参数。一些参数是命名空间的,因此可以在单个容器中设置,而不会影响整个系统。CrrowdStrike 的博客解释说,Kubernetes 及其驱动的容器运行时允许 pod 更新这些“安全”内核设置,同时阻止对其他人的访问。

但它表示,CRI-O 1.19版中引入的一个缺陷 允许攻击者绕过这些保护措施并在主机上设置任意内核参数。由于 CVE-2022-0811 中描述的问题,任何有权在使用 CRI-O 运行时的 Kubernetes 集群上部署 pod 的人都可以滥用“ kernel.core_pattern ”参数来实现容器逃逸和任意代码执行,因为集群中任何节点上的根。

该报告称,虽然该漏洞存在于 CRI-O 中,但依赖它的软件和平台也可能容易受到攻击,包括 Red Hat OpenShift 4+ 和 Oracle Container Engine for Kubernetes。

在 Kubernetes 级别,如果可能,管理员应该使用策略来阻止包含 sysctl 设置且其值带有“+”或“=”的 Pod。否则,使用 PodSecurityPolicy 禁止 Sysctls 字段来阻止所有 sysctls(有必要阻止所有 sysctl,因为恶意设置被偷运到一个值中)。

在 CRI-O 级别,除了升级到 CRI-O 的修补版本外,管理员还应在 crio.conf 中设置 pinns_path 以指向一个 pinns 包装器,该包装器在调用真正的 pinns 之前去除“-s”选项。这将防止 pod 更新任何内核参数,包括敏感参数。Pinns,通常位于 /usr/bin/pinns,是 CRI-O 用来设置内核参数的实用程序。

翻译

Vulnerability discovered in CRI-O container engine for Kubernetes

关注

本文首发于微信公众号【进击云原生】,扫左侧码关注,了解更多咨询,更有免费资源供您学习 扫码关注,加群学习

分类:

后端

标签:

后端

作者介绍

进击云原生
V1

公众号:进击云原生