加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 电商 > 正文

攻击者可以利用安全陷阱对Kubernetes集群进行攻击

发布时间:2021-05-31 09:33:29 所属栏目:电商 来源:互联网
导读:Sasson在周三的一篇文章中说:通过这个漏洞,恶意攻击者可能会攻击包括Kubernetes和OpenShift在内的任何一个依赖有漏洞的容器引擎的基础设施 CRI-O和Podman都是容

Sasson在周三的一篇文章中说:"通过这个漏洞,恶意攻击者可能会攻击包括Kubernetes和OpenShift在内的任何一个依赖有漏洞的容器引擎的基础设施"

CRI-O和Podman都是容器引擎,类似于Docker,主要用于在云端执行操作和管理容器。CRI-O和Podman使用”containers/storage”来处理容器镜像的存储和下载。

研究人员称,当该漏洞被触发时,CRI-O就无法拉取新的镜像、启动任何新的容器(即使它们已经被拉取到本地)、检索本地镜像列表或停止容器运行。

同样,Podman也将无法拉取新的镜像,检索正在运行的pods,启动新的容器(即使它们已经被拉取到本地),检索现有的镜像或终止所有的容器。

这个漏洞影响可能非常广泛。Sasson解释说:"从Kubernetes v1.20开始,Docker就已经被废弃使用,现在唯一支持的容器引擎是CRI-O和 Containerd,这就导致了很多集群使用CRI-O。在实际的攻击场景中,攻击者可能会将一个恶意镜像拉到多个不同的节点上,使所有节点崩溃,破坏集群。而除了重新启动节点外,目前没有任何解决问题的方法。"

容器武器化

当容器引擎从注册表中提取一个镜像时,它首先会下载清单,其中会含有关于如何构建映像的说明。其中一部分是组成容器文件系统的层列表,容器引擎会读取该列表,然后下载并解压每个层。

Sasson解释说:"攻击者可以向注册表中上传一个可以利用该漏洞的恶意层,然后上传一个使用众多层的镜像,包括恶意层,并借此创建一个新的恶意镜像。然后,当受害者从注册表中提取镜像时,它将会在该过程中下载恶意层,从而完成该漏洞的利用。"

一旦容器引擎开始下载恶意层,最终的结果就是发生死锁。

Sasson解释说:"在这种情况下,进程会获取到锁,并且这个锁永远都不会被释放,这将导致DoS发生,因为此时其他线程和进程都会停止执行并永远等待锁被释放。"

他列出了该漏洞被触发时发生的步骤。

例程1--从注册表下载恶意层。

例程1 - 从注册表中下载恶意层.进程1 获取锁。

例程2 - 使用xz二进制解压下载的层,并将输出写入到stdout。

例程3 - 等待xz退出并读取stdout中的所有数据。当条件满足时,它会关闭一个名为chdone的通道。

例程1 - 使用 xz 的输出作为输入,并尝试解压缩数据。由于文件不是 tar 存档文件,untar 会出现"invalid tar header "报错,并且不会从 xz 的标准输出中读取其余数据。由于数据永远不会被读取,例程3现在是死锁,也就永远不会关闭chdone。

例程1 - 等待例程3关闭chdone,也是死锁。

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读