写点什么

超 90 万个 K8S 实例可被发现暴露在公网上,14% 位于中国

  • 2022 年 7 月 01 日
  • 本文字数:1637 字

    阅读完需:约 5 分钟

超90万个K8S实例可被发现暴露在公网上,14%位于中国

翻译:SEAL 安全

原标题:Over 900,000 Kubernetes instances found exposed online

原文链接:https://www.bleepingcomputer.com/news/security/over-900-000-kubernetes-instances-found-exposed-online/


据 Beepingcomputer 消息,超过 90 万个配置错误的 Kuberenetes 集群被发现暴露在互联网上,可能会受到潜在的恶意扫描,有些甚至容易受到数据暴露所带来的网络攻击。


Kubernetes 是一个被业界广泛采用的开源容器编排引擎,用于托管在线服务并通过统一的 API 接口管理容器化工作负载。


由于其可扩展性、在多云环境中的灵活性、可移植性、成本、应用开发和系统部署时间的减少,它被企业广为采用并且在近几年内快速增长。


然而,如果 Kubernetes 配置不当,远程攻击者可能会利用错误配置访问内部资源和私有资产,而这些资源和资产本来是不应该公开的。


此外,根据配置入侵者有时可以在容器中升级他们的权限,以打破隔离并转向主机进程,从而使他们能够初步进入企业内部网络以进行进一步的攻击。


查找暴露的 Kubernetes


Cyble 的研究人员进行了一次演习,使用类似于恶意行为者使用的扫描工具和搜索查询,在网络上查找暴露的 Kubernetes 实例。


结果显示,能发现 90 万台 Kubernetes 服务器,其中 65%(58.5 万台)位于美国,14%在中国,9%在德国,而荷兰和爱尔兰各占 6%。



在暴露的服务器中,暴露最多的 TCP 端口是 “443”,有超过一百万个实例,端口“10250”的数量为 231,200,而 “6443”端口有 84,400 个结果。


必须强调的是,并非所有这些暴露的集群都是可利用的。退一万步来说,即使在那些可利用的集群中,其风险程度也因具体配置而异。


高风险的情况


为了评估有多少暴露的实例可能存在重大风险,Cyble 研究了对 Kubelet API 的未经认证的请求所返回的错误代码。


绝大多数暴露的实例返回错误代码 403,这意味着未经认证的请求被禁止,无法通过,所以不能对它们进行攻击。



然后有一个包含大约 5000 个实例的子集,返回错误代码 401,表示该请求未经授权。



然而,这个响应给了潜在的攻击者一个提示,即此集群正在运行,因此他们可以利用漏洞尝试其他攻击。


最后,有一个包含 799 个 Kubernetes 实例的子集返回状态码为 200,这意味着这些实例完全暴露给外部攻击者。


在这些情况下,攻击者无需密码即可访问 Kubernetes Dashboard 上的节点、访问所有 Secret、执行操作等。



虽然易受攻击的 Kubernetes 服务器的数量相当少,但只需要发现一个可远程利用的漏洞,就会有更多的设备容易受到攻击。


为了确保你的集群不在这 799 个实例中,甚至不在暴露程度较低的 5000 个实例中,请参考 NSA 和 CISA 关于加固 Kubernetes 系统安全的指南:

https://www.bleepingcomputer.com/news/security/nsa-and-cisa-share-kubernetes-security-recommendations/


掌握安全状况


上个月,Shadowserver 基金会发布了一份关于暴露的 Kubernetes 实例的报告,他们发现了 38 万个唯一 IP 响应了 HTTP 错误代码 200。

 

Cyble 告诉 BleepingComputer,造成这种巨大差异的原因是,他们使用了开源扫描器和简单查询,这是任何威胁者都可以使用的。而 Shadowserver 则扫描了整个 IPv4 空间,并每天监测新增内容。

 

“我们最终发布的 Kubernetes 博客中提供的统计数据是基于开源扫描器和产品可用的查询。正如博客中提到的,我们根据查询 ‘Kubernetes’、‘Kubernetes-master’、‘KubernetesDashboard’、‘K8’ 和 favicon hashes 以及状态代码 200、403 和 401 进行了搜索。”Cyble 解释说。


“据他们的博客内容显示,Shadowserver 采取了一种不同的方法来查找暴露情况,‘我们每天使用 /version URI 的 HTTP GET 请求进行扫描。扫描 6443 和 443 端口的所有 IPv4 空间,并且只包括响应 200 OK(附带 JSON 响应)的 Kubernetes 服务器,因此在其响应中披露版本信息。’”


“由于我们不像 Shadowserver 那样扫描完整的 IPv4 空间,而是依靠开源工具提供的情报,所以我们得到的结果与 Shadowserver 不同。”


虽然 Cyble 的数据可能没有那么令人印象深刻,但从这些数据背后的 Kubernetes 集群容易定位和攻击的角度来看,它们非常重要。

发布于: 刚刚阅读数: 5
用户头像

软件供应链安全专家 2020.11.05 加入

公众号:SEAL安全

评论

发布
暂无评论
超90万个K8S实例可被发现暴露在公网上,14%位于中国_安全_SEAL软件供应链安全_InfoQ写作社区