1. 集群穿透概述

1.1 定义集群穿透(Cluster Penetration)

集群穿透(Cluster Penetration)是指外部流量、数据请求或管理操作绕过 Kubernetes 集群的原生网络边界与安全策略,直接访问集群内部资源或控制面的行为。在标准架构中,Kubernetes 集群通过 NetworkPolicy、RBAC、API Server 认证授权 以及 Pod 安全策略 构建多层防御。穿透行为则打破了这些隔离层,使得非授权或非预期的访问路径得以建立。

核心特征: 穿透不是简单的网络连通,而是跨越集群信任边界的非授权或非受控访问,通常伴随身份伪造、策略绕过或隧道建立。

从技术实现角度看,集群穿透可归纳为以下三种模式:

穿透模式 描述 典型载体
网络层穿透 通过 NodePort、LoadBalancer、Ingress 暴露的服务被非预期访问,或利用 CNI 插件漏洞绕过网络策略 NodePort 范围过大、Ingress 配置错误、HostNetwork Pod
控制面穿透 API Server 被外部直接访问,或 kubelet 端口暴露导致节点级控制 匿名请求、kubeconfig 泄露、kubelet 未认证端口
数据面穿透 Sidecar 代理、Service Mesh 或存储卷被利用作为跳板进入集群内部 Envoy 管理接口、CSI 驱动漏洞、共享卷挂载
集群穿透模式分类 外部攻击者 穿透层 隧道/代理/绕过 网络层穿透 控制面穿透 数据面穿透 NodePort / Ingress / CNI API Server / kubelet Sidecar / CSI / 卷挂载 Kubernetes 集群边界 NetworkPolicy RBAC Pod Security 认证授权 穿透点

1.2 常见穿透场景

集群穿透并非理论概念,在实际生产环境中频繁出现。以下三类场景是穿透事件的高发区:

1.2.1 CI/CD 流水线穿透

持续集成与持续部署(CI/CD)工具链需要与集群深度交互,通常通过 ServiceAccount 或 kubeconfig 进行认证。当 CI/CD 系统(如 Jenkins、GitLab CI、ArgoCD)的凭证泄露或配置不当,攻击者可利用流水线 Job 的 Pod 权限执行容器逃逸、创建特权容器或修改集群资源。

  • 凭证泄露: kubeconfig 文件被提交到代码仓库,或 CI 变量中明文存储
  • Job 提权: CI Runner Pod 挂载了高权限 ServiceAccount,被用于创建 DaemonSet 或 ClusterRole
  • 镜像投毒: 恶意镜像通过 CI 流水线被部署到集群,建立反向隧道

1.2.2 监控与可观测性穿透

监控系统(Prometheus、Grafana、Datadog Agent)通常需要访问 kubelet 的 /metrics 端点、cAdvisor 接口以及 API Server 的 /api 路径。如果监控组件的网络策略过于宽松,或暴露了管理接口,外部攻击者可以:

  • 通过 Prometheus 的 /api/v1/query 接口执行任意 PromQL 查询,泄露集群元数据
  • 利用 Grafana 的数据源配置读取集群内部服务端点
  • 通过 kubelet 的只读端口(10255)获取节点上所有 Pod 的列表与状态

1.2.3 运维管理穿透

运维人员通过 kubectl、Lens、K9s 等工具管理集群时,若管理通道未加密或认证强度不足,攻击者可实施中间人攻击或会话劫持。此外,运维跳板机(Bastion Host)本身也可能成为穿透入口:

  • SSH 隧道转发: 运维人员通过 SSH 隧道将本地端口转发到集群内部,绕过网络策略
  • kubectl proxy: 在本地启动 kubectl proxy 后未限制绑定地址,导致外部可访问
  • Web UI 暴露: Kubernetes Dashboard 未配置认证或绑定到 0.0.0.0
实战建议: 在 CI/CD 场景中,优先使用 Workload Identity 或 TokenRequest API 替代静态 kubeconfig;监控组件应启用 mTLS 并限制 NetworkPolicy 仅允许与 API Server 通信。

1.3 穿透带来的安全风险

集群穿透一旦发生,其危害往往呈链式扩散。下表总结了穿透事件的主要风险维度:

风险类别 具体表现 影响等级
数据泄露 ConfigMap、Secret、持久卷中的敏感数据被读取;数据库、消息队列等后端服务被直接访问 严重
权限提升 从低权限 Pod 逃逸到节点 root 权限,进而控制整个集群 严重
横向移动 攻击者以穿透点为跳板,扫描并攻击集群内其他服务、命名空间或节点 高
资源劫持 创建恶意 Pod 用于挖矿、DDoS 攻击或作为 C2 服务器 高
持久化驻留 通过 DaemonSet、CronJob、MutatingWebhook 等方式在集群中建立后门 严重
合规破坏 穿透行为导致集群不符合 SOC2、PCI-DSS、GDPR 等合规要求 中
穿透攻击链与风险扩散 穿透入口 信息收集 权限提升 横向移动 风险扩散阶段 数据泄露 Secret / 数据库 资源劫持 挖矿 / DDoS 持久化驻留 DaemonSet / Webhook 合规破坏 SOC2 / PCI-DSS ⚠ 一次穿透 = 整个集群的信任崩塌 穿透保护是集群安全的第一道防线