mcpField
K
kubernetes-security-audit

kubernetes-security-audit

github.com/securityskills安全0168 次安装9 周前更新
代码仓库

关于 kubernetes-security-audit

用于审计 Kubernetes 集群安全的技能,覆盖工作负载、身份、网络和供应链,并提供带 YAML 证据与风险说明的发现结果及修复清单。

主要功能

  1. 01审计工作负载安全设置
  2. 02检查 RBAC 角色与权限提升路径
  3. 03核查网络策略和暴露面
  4. 04评估镜像来源与机密信息
  5. 05提供证据和修复清单

适用场景

  1. 01部署前审计集群
  2. 02发现服务账户权限过宽
  3. 03识别服务或控制平面暴露
  4. 04准备清单以修复发现的问题

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/securityskills/skills --skill kubernetes-security-audit

安装后在 Claude Code 中输入/kubernetes-security-audit确认已加载。

详细介绍

Kubernetes 安全审计

从四个层面审计集群:工作负载、身份、网络、供应链。

工作负载安全

  • Pod 安全标准:检查命名空间标签(pod-security.kubernetes.io/enforce)
  • 特权 Pod、hostPID/hostNetwork/hostPath 用法——每项都需要说明理由
  • 以 root 身份运行的容器;allowPrivilegeEscalation: true;缺少 readOnlyRootFilesystem
  • 在 Pod 和容器级别设置 securityContext;将 capabilities 降至最低限度

RBAC

  • 枚举绑定;找出 cluster-admin 主体——将其范围缩小到明确列出的主体
  • 提权路径:bind/escalate/impersonate 动词;create pods + 节点特权;create pods/exec
  • 服务账号:工作负载是否使用默认 SA?不需要时是否禁用了令牌自动挂载?
  • 检查自定义角色中是否存在通配符(*)动词/资源

网络

  • NetworkPolicy:以每个命名空间默认拒绝入口/出口流量为基线
  • 跨命名空间暴露:哪些命名空间可以访问 kube-system、入口控制器、数据库
  • 控制平面暴露:API 服务器是否使用公共 IP?etcd 是否可访问/经过身份验证?

供应链

  • 镜像来源:固定注册表摘要(而非 :latest),验证签名(cosign)
  • 准入控制:镜像策略;禁止使用来自不可信注册表的特权镜像
  • 密钥:静态存储的 Kubernetes Secrets(已配置 KMS 加密);不得烘焙到镜像中,也不得将其作为环境变量写入已提交到 git 的清单

快速检查

kubectl get pods -A -o json | jq '[.items[] | select(.spec.containers[].securityContext.privileged==true)]'
kubectl get ns -l pod-security.kubernetes.io/enforce
kubectl auth can-i --list --as=system:serviceaccount:default:default
kubectl get networkpolicy -A

输出

按层列出发现,附上 YAML 证据、风险以及用于修复的加固清单。

评论

支持 Markdown