Kubernetes ValidatingWebhookConfiguration
该页面的原作者是 Guillaume
定义
ValidatingWebhookConfiguration 是一个 Kubernetes 资源,定义了一个验证 webhook,这是一个服务器端组件,用于根据一组预定义的规则和约束验证传入的 Kubernetes API 请求。
目的
ValidatingWebhookConfiguration 的目的是定义一个验证 webhook,该 webhook 将对传入的 Kubernetes API 请求强制执行一组预定义的规则和约束。该 webhook 将根据配置中定义的规则和约束验证请求,并在请求不符合规则时返回错误。
示例
以下是 ValidatingWebhookConfiguration 的示例:
The main difference between a ValidatingWebhookConfiguration and policies :
ValidatingWebhookConfiguration (VWC) : 一个Kubernetes资源,定义了一个验证webhook,这是一个服务器端组件,用于根据一组预定义的规则和约束验证传入的Kubernetes API请求。
Kyverno ClusterPolicy: 一个政策定义,指定了一组规则和约束,用于验证和强制执行Kubernetes资源,例如pods、deployments和services
Enumeration
滥用 Kyverno 和 Gatekeeper VWC
正如我们所看到的,所有安装的操作员至少有一个 ValidatingWebHookConfiguration(VWC)。
Kyverno 和 Gatekeeper 都是 Kubernetes 策略引擎,提供了一个在集群中定义和执行策略的框架。
例外是指在特定情况下允许绕过或修改策略的特定规则或条件,但这并不是唯一的方法!
对于 kyverno,只要存在验证策略,webhook kyverno-resource-validating-webhook-cfg
就会被填充。
对于 Gatekeeper,有 gatekeeper-validating-webhook-configuration
YAML 文件。
这两者都有默认值,但管理员团队可能会更新这两个文件。
用例
现在,识别以下输出:
这里,kubernetes.io/metadata.name
标签指的是命名空间名称。values
列表中的命名空间将被排除在政策之外:
检查命名空间的存在。有时,由于自动化或配置错误,某些命名空间可能未被创建。如果您有权限创建命名空间,您可以创建一个名称在 values
列表中的命名空间,政策将不会应用于您的新命名空间。
此攻击的目标是利用 misconfiguration 在 VWC 内部,以绕过操作员的限制,然后使用其他技术提升您的权限。
参考文献
Last updated