Kubernetes ValidatingWebhookConfiguration
このページの元の著者は Guillaume
定義
ValidatingWebhookConfigurationは、事前に定義されたルールと制約に対して、受信したKubernetes APIリクエストを検証するサーバーサイドコンポーネントである検証ウェブフックを定義するKubernetesリソースです。
目的
ValidatingWebhookConfigurationの目的は、受信したKubernetes APIリクエストに対して一連の事前定義されたルールと制約を強制する検証ウェブフックを定義することです。ウェブフックは、設定で定義されたルールと制約に対してリクエストを検証し、リクエストがルールに準拠していない場合はエラーを返します。
例
以下はValidatingWebhookConfigurationの例です:
The main difference between a ValidatingWebhookConfiguration and policies :
ValidatingWebhookConfiguration (VWC) : Kubernetesリソースで、受信するKubernetes APIリクエストを一連の事前定義されたルールと制約に対して検証するサーバーサイドコンポーネントである検証Webhookを定義します。
Kyverno ClusterPolicy: Kubernetesリソース(ポッド、デプロイメント、サービスなど)を検証および強制するためのルールと制約のセットを指定するポリシー定義です。
Enumeration
KyvernoとGatekeeper VWCの悪用
インストールされているすべてのオペレーターには、少なくとも1つのValidatingWebHookConfiguration(VWC)があります。
KyvernoとGatekeeperは、クラスター全体でポリシーを定義および強制するためのフレームワークを提供するKubernetesポリシーエンジンです。
例外は、特定のルールや条件を指し、特定の状況下でポリシーをバイパスまたは変更することを許可しますが、これが唯一の方法ではありません!
kyvernoの場合、検証ポリシーがある限り、ウェブフックkyverno-resource-validating-webhook-cfg
がポピュレートされます。
Gatekeeperの場合、gatekeeper-validating-webhook-configuration
YAMLファイルがあります。
どちらもデフォルト値で提供されますが、管理者チームがこれら2つのファイルを更新する可能性があります。
ユースケース
今、次の出力を特定してください:
ここで、kubernetes.io/metadata.name
ラベルは名前空間の名前を指します。values
リストに名前がある名前空間はポリシーから除外されます:
名前空間の存在を確認します。自動化や誤設定により、一部の名前空間が作成されていない場合があります。名前空間を作成する権限がある場合、values
リストに名前がある名前空間を作成すると、ポリシーは新しい名前空間に適用されません。
この攻撃の目的は、誤設定を利用してVWC内のオペレーターの制限を回避し、他の技術を使用して権限を昇格させることです。
Abusing Roles/ClusterRoles in Kubernetes参考文献
Last updated