Kubernetes ValidatingWebhookConfiguration
L'autore originale di questa pagina è Guillaume
Definizione
ValidatingWebhookConfiguration è una risorsa Kubernetes che definisce un webhook di validazione, che è un componente lato server che convalida le richieste API Kubernetes in arrivo rispetto a un insieme di regole e vincoli predefiniti.
Scopo
Lo scopo di un ValidatingWebhookConfiguration è definire un webhook di validazione che applicherà un insieme di regole e vincoli predefiniti sulle richieste API Kubernetes in arrivo. Il webhook convaliderà le richieste rispetto alle regole e ai vincoli definiti nella configurazione e restituirà un errore se la richiesta non è conforme alle regole.
Esempio
Ecco un esempio di un ValidatingWebhookConfiguration:
La principale differenza tra un ValidatingWebhookConfiguration e le politiche :
ValidatingWebhookConfiguration (VWC) : Una risorsa Kubernetes che definisce un webhook di validazione, che è un componente lato server che convalida le richieste API Kubernetes in arrivo rispetto a un insieme di regole e vincoli predefiniti.
Kyverno ClusterPolicy: Una definizione di politica che specifica un insieme di regole e vincoli per convalidare e applicare le risorse Kubernetes, come pod, deployment e servizi
Enumerazione
Abusare di Kyverno e Gatekeeper VWC
Come possiamo vedere, tutti gli operatori installati hanno almeno una ValidatingWebHookConfiguration(VWC).
Kyverno e Gatekeeper sono entrambi motori di policy Kubernetes che forniscono un framework per definire e applicare politiche in un cluster.
Le eccezioni si riferiscono a regole o condizioni specifiche che consentono a una politica di essere bypassata o modificata in determinate circostanze, ma questo non è l'unico modo!
Per kyverno, non appena c'è una politica di validazione, il webhook kyverno-resource-validating-webhook-cfg
viene popolato.
Per Gatekeeper, c'è il file YAML gatekeeper-validating-webhook-configuration
.
Entrambi provengono con valori predefiniti, ma i team di amministratori potrebbero aver aggiornato questi 2 file.
Caso d'uso
Ora, identifica il seguente output :
Qui, l'etichetta kubernetes.io/metadata.name
si riferisce al nome del namespace. I namespace con nomi nella lista values
saranno esclusi dalla policy:
Controlla l'esistenza dei namespace. A volte, a causa di automazione o misconfigurazione, alcuni namespace potrebbero non essere stati creati. Se hai il permesso di creare un namespace, potresti creare un namespace con un nome nella lista values
e le policy non si applicheranno al tuo nuovo namespace.
L'obiettivo di questo attacco è sfruttare la misconfigurazione all'interno del VWC per eludere le restrizioni degli operatori e poi elevare i tuoi privilegi con altre tecniche.
Riferimenti
Last updated