近日,有研究人员发现,超过 38 万个 Kubernetes API 服务器允许以某种方式访问公共互联网,这让用于管理云部署的流行开源容器 Kuvernetes 变成了一个广泛的攻击域,易于被威胁者当作攻击目标。
据本周的一篇博客称,Shadowserver 基金会在扫描互联网上的 Kubernetes API 服务器时发现了此问题。目前,受影响的服务器已经超过了 45 万个。
ShadowServer 每天会对 IPv4 空间的端口 443 和 6443 进行扫描,寻找响应 'HTTP 200 OK 状态 ' 的 IP 地址,若得到响应,则该请求已经成功。
研究人员表示,在 Shadowserver 发现的 454729 个 Kubernetes API 实例中,有 381645 个响应"200 OK"。因此,开放的 API 实例占 Shadowserver 扫描的所有 API 实例的近 84%。
此外,大部分可访问的 Kubernetes 服务器共有 201348 个,其中有将近 53% 都位于美国。
该博客称,虽然扫描的结果并不意味着这些服务器完全开放或容易受到攻击,但它确实表明了这些服务器中都存在"一个暴露的攻击面 " 。
研究人员指出,这种暴露可能会让各种版本和构建的信息发生泄漏。
云设施一直在处于攻击之中
让人非常不安的是,攻击者已经越来越多地瞄准 Kubernetes 云集群进行攻击。
但事实上,数据安全公司 comforte AG 的网络安全专家 Erfan Shadabi在给媒体的一封电子邮件中表示,对于 Shadowserver 扫描发现如此多 Kubernetes 服务器暴露在公共互联网上这件事,他并不惊讶:
“Kubernetes 为企业的敏捷应用交付提供了很多便利,有一些特征使其成为理想的攻击目标,例如,由于拥有许多容器,Kubernetes 有一个很大的攻击面,如果不预先采取保护措施,就很有可能被攻击者利用。”
开源设施的安全性
此发现引出了一个长期存在的问题,即如何构建开源系统的安全性,这些系统作为现代互联网和云基础设施的一部分,在互联网中已经无处不在。因此,针对它们的攻击已经成为了对它们所连接的无数系统的攻击。
其实这个问题在去年就已被注意到,六个月前,研究人员发现了无处不在的 Java 日志库 Apache Log4j 中的 Log4Shell 漏洞。
该漏洞很容易被利用,并且允许未经身份验证的攻击者远程执行代码 (RCE) 和完全接管服务器。最近的一份报告发现,尽管有可用于 Log4Shell 的补丁,但仍有数百万的 Java 应用程序仍然存在大量漏洞。
据 Shadabi 称,Kubernetes 存在一个致命弱点:平台内置的数据安全功能只能以最低限度保护数据,并且数据本身没有得到持续的保护,例如使用行业公认的技术,如字段级标记化等。因此,如果一个生态系统受到损坏,它所处理的敏感数据迟早会受到更隐蔽的攻击。
Shadabi 对于那些在生产环境中使用容器和 Kubernetes 的组织的建议是,要像对待 IT 基础设施一样认真全面的对待 Kubernetes 的安全。
最后,Shadowserver 基金会建议,如果管理员发现其环境中的 Kubernetes 实例可以访问互联网,他们应该考虑采取访问授权或在防火墙层面进行阻断,以减少暴露的攻击面。