Kubernetes Kyverno bypass

该页面的原作者是 Guillaume

滥用策略错误配置

枚举规则

了解概况可能有助于知道哪些规则是活动的,处于什么模式,以及谁可以绕过它

$ kubectl get clusterpolicies
$ kubectl get policies

列举排除项

对于每个 ClusterPolicy 和 Policy,您可以指定一个排除实体的列表,包括:

  • 组:excludedGroups

  • 用户:excludedUsers

  • 服务账户 (SA):excludedServiceAccounts

  • 角色:excludedRoles

  • 集群角色:excludedClusterRoles

这些排除的实体将不受政策要求的约束,Kyverno 将不对它们执行政策。

示例

让我们深入了解一个 clusterpolicy 示例 :

$ kubectl get clusterpolicies MYPOLICY -o yaml

查找被排除的实体:

exclude:
any:
- clusterRoles:
- cluster-admin
- subjects:
- kind: User
name: system:serviceaccount:DUMMYNAMESPACE:admin
- kind: User
name: system:serviceaccount:TEST:thisisatest
- kind: User
name: system:serviceaccount:AHAH:*

在一个集群中,许多附加组件、操作员和应用程序可能需要从集群策略中排除。然而,这可以通过针对特权实体来利用。在某些情况下,可能会出现命名空间不存在或您没有权限冒充用户的情况,这可能是配置错误的迹象。

滥用 ValidatingWebhookConfiguration

另一种绕过策略的方法是关注 ValidatingWebhookConfiguration 资源 :

Kubernetes ValidatingWebhookConfiguration

Last updated