0Pricing
Cyber Security Academy · 课时

Kubernetes 威胁模型

了解集群可能遭受攻击的位置。

Kubernetes 威胁模型 是 CoddyKit 上的免费 Cyber Security Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cyber Security Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cyber Security Academy 课程共包含 4 节课。

Kubernetes 为何会成为目标

Kubernetes 在多个节点之间编排容器。它集中管理机密、网络和计算资源,因此攻陷集群可能意味着攻陷其运行的每个工作负载。

  • 一个 API 服务器控制整个集群。
  • 节点并行运行许多租户的工作负载。
  • 配置错误远比核心 CVE 更常见。

集群架构回顾

要进行威胁建模,您需要了解各个组件。

  • 控制平面:API 服务器、etcd、调度器、控制器管理器。
  • 节点:kubelet、容器运行时、kube-proxy、容器组。
  • etcd 存储所有集群状态和机密。

API 服务器是唯一入口;etcd 是最有价值的数据宝库。

攻击面地图

攻击会针对不同层面。

  • 外部:暴露的 API 服务器、仪表板、入口。
  • 工作负载:容器组内部被攻陷的应用。
  • 身份:服务账户令牌和 RBAC。
  • 节点:kubelet API、从容器逃逸到主机。
  • 供应链:恶意映像和依赖项。

暴露的控制平面

可从互联网访问且身份验证薄弱的 API 服务器或 kubelet,是直接接管集群的路径。

  • API 服务器启用了匿名访问。
  • kubelet 读写 API(端口 10250)暴露在外。
  • 开放的 Kubernetes 仪表板绑定了管理员权限。
# Probe an exposed kubelet for running pods
curl -sk https://NODE_IP:10250/pods

# Test anonymous API access
kubectl --insecure-skip-tls-verify --server https://API:6443 get pods

容器组内的立足点

最常见的起点是运行在容器组中的应用存在 RCE。进入容器组后,攻击者可以发现:

  • 挂载在 服务账户令牌 路径上的令牌:/var/run/secrets/...。
  • 可访问的内部服务(没有网络策略)。
  • API 服务器,通常可解析为 kubernetes.default。
# From inside a pod: read the mounted SA token
cat /var/run/secrets/kubernetes.io/serviceaccount/token

# Use it against the API
curl -sk -H "Authorization: Bearer $(cat .../token)" https://kubernetes.default/api/v1/namespaces/default/pods

容器逃逸

从容器逃逸到节点后,即可获得该主机上所有工作负载的访问权限。

  • 特权容器可以访问主机设备并实现逃逸。
  • hostPID/hostNetwork/hostPath 挂载会扩大影响范围。
  • 挂载的 Docker 套接字允许您启动特权容器。
  • 危险功能(SYS_ADMIN)可实现逃逸。
# A privileged pod can mount the host filesystem and chroot to it
mount /dev/sda1 /mnt && chroot /mnt sh

etcd:机密存储库

etcd 保存整个集群状态,包括机密;默认情况下,机密仅经过 base64 编码。直接访问 etcd(配置错误的集群通常未进行身份验证)会泄露所有机密。

# Read all secrets from an exposed etcd
etcdctl --endpoints=https://NODE:2379 get / --prefix --keys-only

集群中的横向移动

进入后,攻击者利用集群身份和网络进行跳转。

  • 权限过于宽松的服务账户允许您创建特权容器组。
  • 扁平的容器组网络(没有 NetworkPolicy)允许访问任何服务。
  • 将容器组调度到目标节点上即可攻陷该节点。

来自容器组的云元数据

在托管集群(EKS/GKE/AKS)中,容器组可能可以访问节点的云元数据服务,并窃取节点的 IAM/角色凭据,从而将集群攻陷扩大为云账户攻陷。

防御措施包括 IMDSv2、在网络层阻断元数据访问,以及使用工作负载身份而非节点角色。

使用工具进行映射

工具可自动执行集群威胁评估。

  • kube-hunter 探测暴露的组件。
  • kube-bench 检查 CIS 基准合规性。
  • Peirates / kubeletctl 演练集群内攻击路径。
# Assess attack surface
kube-hunter --remote API_IP

# CIS benchmark check on a node
kube-bench run --targets node

防御重点

威胁模型指出了明确的防御重点:锁定 API 服务器、限制 RBAC、隔离容器组、强化节点并保护供应链。接下来的课程将逐一深入讲解。

进行测试时,只攻击您获授权测试的集群,并避免使生产工作负载不稳定。

快速检查

确认您对 Kubernetes 威胁模型基础知识的了解。

回顾

您已了解 Kubernetes 集群可能遭受攻击的位置。

  • API 服务器和 etcd 是核心且价值最高的目标。
  • 容器组内的立足点利用已挂载的 SA 令牌和扁平网络。
  • 特权/hostPath 容器组可实现从容器逃逸到节点。
  • 托管集群存在通过元数据跳转到云环境的风险。

下一步:RBAC 与服务账户。

常见问题解答

「Kubernetes 威胁模型」课时是免费的吗?

是的 — 「Kubernetes 威胁模型」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cyber Security Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cyber Security Academy 课程共包含 4 节课。

「Kubernetes 威胁模型」这节课中我会学到什么?

了解集群可能遭受攻击的位置。 你通过在浏览器中直接运行的动手代码来练习 Cyber Security Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cyber Security Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Cyber Security Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「Kubernetes 威胁模型」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Cyber Security Academy 课中编写并运行代码吗?

能。每节 Cyber Security Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. Kubernetes 威胁模型
  2. RBAC 与服务账户
  3. Pod 安全与网络策略
  4. 保护供应链与机密信息
← 返回 Cyber Security Academy