skills/auditing-kubernetes-rbac-permissions/SKILL.md
Kubernetes 基于角色的访问控制(RBAC)审计,系统性地审查角色、集群角色、绑定关系及服务账户权限,以识别过度宽松的访问配置、权限提升路径及违反最小权限原则的情况。
npx skillsauth add killvxk/cybersecurity-skills-zh auditing-kubernetes-rbac-permissionsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Kubernetes 基于角色的访问控制(RBAC)审计系统性地审查角色、集群角色、绑定关系及服务账户权限,以识别过度宽松的访问配置、权限提升路径及违反最小权限原则的情况。rbac-tool、KubiScan 和 rakkess 等工具可自动发现危险的权限组合。
| 资源 | 作用域 | 用途 | |----------|-------|---------| | Role | 命名空间 | 授予命名空间内的权限 | | ClusterRole | 集群 | 授予集群范围的权限 | | RoleBinding | 命名空间 | 在命名空间内将 Role/ClusterRole 绑定到主体 | | ClusterRoleBinding | 集群 | 将 ClusterRole 绑定到集群范围的主体 |
| 权限 | 风险等级 | 影响 |
|-----------|------|--------|
| * on * 资源 | 严重 | 等同于 cluster-admin |
| create pods | 高 | 可部署特权 Pod |
| create pods/exec | 高 | 可 exec 进入任意 Pod |
| get secrets | 高 | 可读取所有 Secret |
| create clusterrolebindings | 严重 | 可提升至 cluster-admin |
| impersonate users | 严重 | 可伪装成任意用户 |
| escalate on roles | 严重 | 可授予超出自身的权限 |
| bind on roles | 高 | 可创建新的角色绑定 |
# 列出所有 ClusterRole
kubectl get clusterroles -o name | wc -l
kubectl get clusterroles --no-headers | grep -v "system:"
# 列出所有 ClusterRoleBinding
kubectl get clusterrolebindings -o wide
# 按命名空间列出所有 Role
kubectl get roles -A
# 按命名空间列出所有 RoleBinding
kubectl get rolebindings -A -o wide
# 导出所有 RBAC 以进行离线分析
kubectl get clusterroles,clusterrolebindings,roles,rolebindings -A -o yaml > rbac-export.yaml
# 查找对所有资源具有通配符动词的 ClusterRole
kubectl get clusterroles -o json | jq -r '
.items[] |
select(.rules[]? |
(.verbs | index("*")) and
(.resources | index("*"))
) |
.metadata.name'
# 查找可以创建 Pod 的角色
kubectl get clusterroles -o json | jq -r '
.items[] |
select(.rules[]? |
(.verbs | index("create") or index("*")) and
(.resources | index("pods") or index("*"))
) |
.metadata.name'
# 查找可以读取 Secret 的角色
kubectl get clusterroles -o json | jq -r '
.items[] |
select(.rules[]? |
(.verbs | index("get") or index("list") or index("*")) and
(.resources | index("secrets") or index("*"))
) |
.metadata.name'
# 列出所有服务账户
kubectl get serviceaccounts -A
# 检查默认服务账户的权限
for ns in $(kubectl get ns -o jsonpath='{.items[*].metadata.name}'); do
echo "=== $ns/default ==="
kubectl auth can-i --list --as=system:serviceaccount:$ns:default 2>/dev/null | grep -v "no"
done
# 检查具有 cluster-admin 的服务账户
kubectl get clusterrolebindings -o json | jq -r '
.items[] |
select(.roleRef.name == "cluster-admin") |
{binding: .metadata.name, subjects: [.subjects[]? | {kind, name, namespace}]}'
# 安装 rbac-tool
kubectl krew install rbac-tool
# 可视化 RBAC
kubectl rbac-tool viz --outformat dot | dot -Tpng > rbac-graph.png
# 查找谁可以执行特定操作
kubectl rbac-tool who-can get secrets -A
kubectl rbac-tool who-can create pods -A
kubectl rbac-tool who-can '*' '*'
# 分析所有权限
kubectl rbac-tool analysis
# 生成 RBAC 策略报告
kubectl rbac-tool auditgen > rbac-audit.yaml
# 检查是否有角色可以提升权限
kubectl get clusterroles -o json | jq -r '
.items[] |
select(.rules[]? |
(.verbs | index("escalate") or index("bind") or index("impersonate")) and
(.resources | index("clusterroles") or index("roles") or index("clusterrolebindings") or index("rolebindings") or index("users") or index("groups") or index("serviceaccounts"))
) |
.metadata.name'
# 检查伪装权限
kubectl get clusterroles -o json | jq -r '
.items[] |
select(.rules[]? |
(.verbs | index("impersonate"))
) |
{name: .metadata.name, rules: .rules}'
# 安装 KubiScan
pip install kubiscan
# 查找有风险的角色
kubiscan --risky-roles
# 查找有风险的 ClusterRole
kubiscan --risky-clusterroles
# 查找有风险的主体
kubiscan --risky-subjects
# 查找具有有风险服务账户的 Pod
kubiscan --risky-pods
# 完整报告
kubiscan --all
# 验证特定权限
kubectl auth can-i create pods --as=system:serviceaccount:default:myapp
# 检查用户的所有权限
kubectl auth can-i --list [email protected]
# 使用 kubescape 验证 RBAC
kubescape scan framework nsa --controls-config rbac-controls.json
# 测试最小权限
kubectl auth can-i delete nodes --as=system:serviceaccount:app:web-server
# 预期结果: no
testing
设计并执行社会工程学渗透测试,包括钓鱼、语音钓鱼、短信钓鱼和物理借口活动,以衡量人员安全韧性并识别培训差距。
testing
主持结构化的事件后审查,以识别根本原因、记录有效和无效的措施,并提出可操作的改进建议以提升未来的事件响应能力。
testing
通过分析举报的邮件、提取指标、评估凭据受攻陷情况、在全组织范围隔离恶意邮件并修复受影响账号来响应网络钓鱼事件。涵盖邮件头分析、URL/附件沙箱检测和邮箱范围清除操作。适用于网络钓鱼响应、邮件事件、凭据钓鱼、鱼叉式网络钓鱼调查或钓鱼修复相关请求。
tools
票据传递(Pass-the-Ticket,PtT)是一种横向移动技术,使用窃取的 Kerberos 票据(TGT 或 TGS)在不知道用户密码的情况下向服务进行认证。通过从已控制的主机内存中提取 Kerberos 票据,攻击者可以将这些票据注入自己的会话以模拟票据所有者。