38 万 Kubernetes API 服务暴露在公网上,如何避免被攻击?
关注公众号并添加到“星标⭐”,防止错过消息
后台回复【资料包】获取学习资料
原文:
https://www.shadowserver.org/news/over-380-000-open-kubernetes-api-servers/
Kubernetes 是一种流行的开源系统,用于自动部署、扩展和管理容器化应用程序。我们最近开始扫描可访问的 Kubernetes API 实例,这些实例以200 OK HTTP对探测器进行响应。
在我们能够识别的超过 45 万个 Kubernetes API 中,我们每天发现超过 38 万个允许某种形式访问。这些数据每天都会在的 Kubernetes API 访问服务器报告中共享:
https://www.shadowserver.org/what-we-do/network-reporting/accessible-kubernetes-api-server-report/
虽然这并不意味着这些实例完全开放或容易受到攻击,但这种访问级别很可能不是有意的,并且这些实例在不必要的暴露攻击面。它们还泄漏有关版本和构建的信息。
如何扫描
我们每天使用/version
URI 使用 HTTP GET 请求进行扫描。扫描端口 6443 和 443 上的所有 IPv4 空间。只包括响应 200 OK(附带 JSON 响应)的 Kubernetes 服务器,因此在其响应中披露版本信息。我们不会执行任何侵入性检查来确定可以获得的访问级别。
扫描结果
2022 年 5 月 16 日,我们扫描了454,729 个Kubernetes API 实例,扫描结果发现381,645 个唯一 IP以 200 OK HTTP 响应探测。因此,“开放”API 实例占我们可以在 IPv4 互联网上扫描的所有实例的近84% 。
大多数可访问的 Kubernetes API 服务器位于美国 - 201,348 (近 53%)。
Kubernetes 主要/次要版本
可访问的 Kubernetes 主要/次要版本细分
1.2 4
1.5 90
1.6 6
1.7 4
1.8 53
1.9 41
1.10 95
1.11 199
1.12 497
1.13 383
1.14 1542
1.15 1310
1.16 3678
1.17 34918
1.18 33877
1.19 50902
1.20 65487
1.21 148645
1.22 33221
1.23 9518
1.24 585
1.25 4
平台
linux/amd64 384240
linux/arm64 683
linux/ppc64le 134
linux/s390x 8
linux/arm 4
如何防护
如果您的 APIServer 也是如此,请考虑在防火墙级别实施访问授权或阻止以减少暴露的攻击面。
您可以在此官方指南:
https://kubernetes.io/docs/tasks/administer-cluster/securing-a-cluster/
中阅读有关保护对 Kubernetes API 的访问的更多信息。
如果您的 Kubernetes API 端点在您不期望的 IP 上可用,并且您在 IPVS 模式下使用 kube-proxy,请参阅:
https://github.com/kubernetes/kubernetes/pull/108460
有关扫描工作的更多信息,请查看 Internet 扫描摘要页面:
https://www.shadowserver.org/news/the-scannings-will-continue-until-the-internet-improves/
推荐阅读
开源容器 Podman 常用命令总结!面试真题汇总
大规模 K8s 集群性能瓶颈和调优实践
如何将多个 kubeconfig 文件合并为一个?
毫无争议的 GitHub 顶级开源项目排行榜Kruise 轻松让 K8S 应用实现渐进式交付图解 Kubernetes Pod 如何获取 IP 地址使用 Telepresence 轻松在本地调试 k8s 应用程序GitOps 工具选型,33 款工具任你挑!就在刚刚 k8s 1.24 正式发布,来看功能总览Nomad 会替代 Kubernetes 吗?两者如何选择?Docker 入门终极指南,详细版!漫画轻松看懂如何用 Kubernetes 实现 CI/CD阿里开源的低代码引擎,已收获 4.5K 星星新手必须知道的 Kubernetes 架构Kubernetes 架构核心点详细总结!