大数跨境
0
0

开源的 rkt 容器运行时被曝多个 0day,可导致黑客获取主机 root 权限

开源的 rkt 容器运行时被曝多个 0day,可导致黑客获取主机 root 权限 代码卫士
2019-06-04
0
导读:RedHat 不打算修复

 聚焦源代码安全,网罗国内外最新资讯!

编译:奇安信代码卫士团队

rkt 容器运行时中被曝多个未修复漏洞,可被用于逃逸容器并获取对主机的根访问权限。

Twistlock 公司的安全研究员 Yuval Avrahaml 解释称,当用户在受攻击者控制的pod中执行rkt enter命令(等同于docker exec)时,可利用这些缺陷攻陷主机。

Rkt 是一款广受欢迎的开源的容器运行时以及由 CoreOS 创建的一款 CNCF 孵化项目。该运行时的基本执行单元是一个 pod,包含在共享上下文中运行的多个容器。继2018年中期 CoreOS RedHat 收购后,该项目似乎已不在活跃开发过程中。尽管是一个开源项目,但 rkt 似乎并不存在贡献者。

研究人员指出,rkt enter命令允许用户在运行的容器中执行二进制。这类二进制以root身份运行,具备所有能力且并未应用 seccomp 过滤或 cgroup 隔离机制,只是受名称空间所限。正因如此,就有可能逃逸该容器,而这也是所发现的这些 0day 所能做的事情。

这些未修复漏洞的编号是 CVE-2019-10144(在第2阶段,以rkt enter运行的进程被给予所有能力)、CVE-2019-10145(在第2阶段,以rkt enter运行的进程并不具备 seccomp 过滤机制)以及 CVE-2019-10147(以rkt enter运行的进程在第2阶段不受 cgroups 限制)。

要利用这些漏洞,攻击者要具备容器的 root 访问权限。这样,当用户运行rkt enter命令时,攻击者就能够覆写二进制以及容器中的库,以便确保受攻陷进程执行的是恶意代码。为此,攻击者需要覆写容器中的 /bin/bash libc.so.6,当rkt enter命令中未说明其它时,它们就表示默认执行的二进制,而库可能由受攻陷的进程加载。

安全研究员解释称,“一旦攻击者在受rkt enter攻陷的容器进程上下文中运行时,就能够逃逸该容器并相对轻松地获取主机的 root 访问权限,而且以所有能力运行,不具备 seccomp 过滤和 cgroup 隔离机制。”

一种利用场景涉及通过mknodmount系统调用来安装主机根目录,从而提供对主机的 root 访问权限。这种攻击同时强调了rkt enter命令中缺乏的隔离功能。

Avrahami 已发布两个演示视频,说明了这三个漏洞情况以及此前提到的攻击场景。他联系了 RedHat CoreOS 负责任地通知这些漏洞情况,但被告知 RedHat 无修复计划,而是鼓励 Avrahami 将信息发布在 GitHub 上,让社区参与修复。

Avrahami 表示,“在调查 rkt 过程中,我还发现了创建恶意 ACI/OCI 镜像的方法,当运行时将导致主机遭攻陷。尽管这并非理想情况,但恶意镜像并非rkt 威胁模块的一部分。运行源自不受信任来源的镜像不符合 rkt 的使用建议,而且也非正确的使用方式。”




推荐阅读

开源容器化应用 Kubernetes 被曝严重的路径遍历漏洞



原文链接

https://www.securityweek.com/rkt-container-runtime-flaws-give-root-access-host


题图:Pixabay License




本文由奇安信代码卫士编译,不代表奇安信观点,转载请注明“转自奇安信代码卫士 www.codesafe.cn”。



奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的产品线。



【声明】内容源于网络
0
0
代码卫士
奇安信代码卫士是国内第一家专注于软件开发安全的产品线,产品涵盖代码安全缺陷检测、软件编码合规检测、开源组件溯源检测三大方向,分别解决软件开发过程中的安全缺陷和漏洞问题、编码合规性问题、开源组件安全管控问题。本订阅号提供国内外热点安全资讯。
内容 1774
粉丝 0
代码卫士 奇安信代码卫士是国内第一家专注于软件开发安全的产品线,产品涵盖代码安全缺陷检测、软件编码合规检测、开源组件溯源检测三大方向,分别解决软件开发过程中的安全缺陷和漏洞问题、编码合规性问题、开源组件安全管控问题。本订阅号提供国内外热点安全资讯。
总阅读32
粉丝0
内容1.8k