安全事故:Kubernetes遭遇大范围劫持

来自:Docker(微信号:dockerone),Andy 译,原文链接

作为全球范围内广受众多企业好评的容器编排系统,Kubernetes自然也成为攻击者眼中的重要目标。通过近期监控,我们发现已经涌现以CVE-2018-1002105[1]为代表的一系列安全问题。

之所以对这项服务抱有浓厚兴趣,是因为我们意识到到越来越多的声音指出Kubernetes被直接暴露在互联网之上。

为什么将Kubernetes暴露在互联网上会引发安全问题?

正如我们的研究结果显示,很多企业都在以无认证方式公开自己的Kubernetes API;而在Kubernetes集群之内,运行有大量被称为Pod的小型容器。从本质上讲,Pod代表的就是集群之内的各个进程。

因此,一旦Kubernetes被暴露在互联网上,攻击者不仅能够看到Pod上正在运行的内容,同时也可以在Pod上执行各种命令。

由此带来的结果是,我们发现全世界众多Kubernetes集群中的Pod遭到劫持,并被用于进行加密货币采矿。

我们已经确定,暴露的各Kubernetes集群属于来自不同行业且拥有不同规模的企业——从小型初创企业到财富五百强公司皆在此列。

那么,我们该如何识别这些不安全Kubernetes,并准确发现已经出现的劫持问题?

通过使用我们的HTTP Module,大家可以通过建立一条自定义HTTP请求检查以下路径:


IP-ADDRESS:PORT/api/v1/pod


如果能够得到响应,我们即可查看其中关于目标集群的信息。


向下滚动,我们可以看到在Pod上执行的命令,如下例所示:


如果我们观察一下脚本“222.json”,就能基本做出可靠的判断:


此Pod已经遭到劫持并用于加密货币采矿。

此外,我们还发现一些将API令牌暴露给其它服务的Pod,其中可能包含大量关键性数据与密码。

我该如何检查自己的集群是否已经暴露

我们已经将这一扫描导入至:https://app.binaryedge.io


最后,感谢Random Robbie在问题的研究与识别过程中为我们提供的宝贵帮助。

相关链接:

  1. https://github.com/kubernetes/kubernetes/issues/71411

推荐↓↓↓
运维
上一篇:Linkerd 2.1正式发布! 下一篇:如何在六个月或更短的时间内成为DevOps工程师(一)