10万美元:Google Cloud Shell容器逃逸

iso60001  1498天前

22.jpg

来自荷兰的研究人员声称获得了谷歌第一个年度云平台漏洞赏金,主要涉及容器逃逸。

谷歌颁发了谷歌云平台(GCP)的首个年度大奖,以表彰在Google Cloud Shell中发现的漏洞。而这一漏洞为荷兰研究人员Wouter ter Maat带来了10万美元的收入。

这家互联网巨头还宣布,作为谷歌漏洞奖励计划(VRP)的一部分,将扩大年度GCP奖金的发放范围。它将为2020年提交的GCP产品中危害最大的漏洞报告提供6个特别奖项,奖金总额为313337美元。第六名的奖金为1000美元,第一名为133337美元。

33.png

漏洞猎人将需要提供一个公开的漏洞说明文件,以符合获奖资格。而且有趣的是,这篇文章不能超过31337个单词。谷歌还在本周的一篇文章中表示,对于那些预算有限的研究人员,可以使用免费的GCP。

说明

Google Cloud Shell是一个基于Linux和浏览器的针对管理员的控制前端,提供对谷歌云平台中各种资源的访问能力。包括gcloud、Docker、Kubernetes、Python、vim、Emacs、Theia等。谷歌云平台的用户可以通过谷歌云console启动云Shell实例:

44.png

Ter Maat指出,在云Shell如何与资源交互方面存在几个缺陷,首先是身份验证问题,可导致攻击者在主机上获得root访问权限,重新配置驻留在主机上的任何容器。

ter Maat在他的文章中表示:“当云Shell实例加载完成时,用户会看到终端窗口。此时gcloud客户端已经通过了身份验证。如果攻击者能够侵入你的云Shell,那么它就可以访问你所有的GCP资源。”

在启动一个云Shell之后,研究人员能够连接到云资源,此外还确定自己“被困在Docker容器中”,因为只有少量进程在运行。然后,通过检查文件系统,他发现能够跳出容器并访问整个主机。

研究人员注意到有两个Docker UNIX套接字可用。一个在/run/docker.sock,这是我们的Docker客户端运行在云shell内的默认路径;第二个在/google/host/var/run/docker.sock

第二个套接字和基于主机的Docker套接字有关,这可以从它的路径名看出来。

“任何可以与基于主机的Docker套接字进行通信的人都可以轻松地逃离容器,同时获得主机上的root访问权”,为此研究人员编写了一个脚本来演示。

然后,通过root权限,他还能够重新配置Kubernetes,通过编写一个新的cs-6000.yaml配置文件,并将旧的配置文件设置为/dev/null,来将所有的容器从无权限的容器转换成到特权容器。

“运行之后,你会发现所有容器都会自动重启,并且都以特权模式运行。”

据安全公司趋势科技称,恶意控制容器对网络安全的影响数不胜数。

55.png

去年年底的一份安全报告称:“运行带有高权限的容器,可让内部角色对主机资源进行访问。对于那些恶意攻击者来说,由此产生的恶意利用方法的是无止境的。攻击者可以识别主机上运行的软件,利用其中漏洞,还可以利用容器软件本身的漏洞和配置错误。而且因为攻击者有root访问权限,恶意代码或挖矿软件会更安全地隐藏。

本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场
来源:https://threatpost.com/100k-google-cloud-shell-root-compromise/153665/

最新评论

昵称
邮箱
提交评论