I ricercatori di sicurezza informatica hanno rivelato una vulnerabilità che interessa i servizi Microsoft Azure Kubernetes (AKS), che, se sfruttata con successo, potrebbe consentire a un attaccante di elevare i propri privilegi e accedere alle credenziali dei servizi utilizzati dal cluster.
La nuova vulnerabilità di Azure Kubernetes
“Un attaccante con capacità di eseguire comandi in un Pod in esecuzione all’interno di un cluster Azure Kubernetes Services colpito potrebbe scaricare la configurazione utilizzata per predisporre il nodo del cluster, estrarre i token di bootstrap di sicurezza del trasporto (TLS) e eseguire un attacco di bootstrap TLS per leggere tutti i segreti all’interno del cluster“, ha dichiarato Mandiant, di proprietà di Google.
I cluster che utilizzano “Azure CNI” per la “Configurazione della rete” e “Azure” per la “Politica della rete” sono stati trovati vulnerabili a questo bug di escalation dei privilegi; Microsoft ha affrontato la questione in seguito a una segnalazione responsabile.
La nuova tecnica di attacco informatico
La tecnica di attacco elaborata dall’azienda di intelligence sulle minacce si basa sull’accesso a un componente poco conosciuto chiamato Azure WireServer per richiedere una chiave utilizzata per crittografare i valori delle impostazioni protette (“wireserver.key”) e utilizzarla per decodificare uno script di provisioning che include diversi segreti, come i seguenti:
- KUBELET_CLIENT_CONTENT (Chiave TLS generica del nodo)
- KUBELET_CLIENT_CERT_CONTENT (Certificato TLS generico del nodo)
- KUBELET_CA_CRT (Certificato CA di Kubernetes)
- TLS_BOOTSTRAP_TOKEN (Token di autenticazione TLS Bootstrap)
“I KUBELET_CLIENT_CONTENT, KUBELET_CLIENT_CERT_CONTENT e KUBELET_CA_CRT possono essere decodificati in Base64 e scritti su disco per essere utilizzati con lo strumento da riga di comando di Kubernetes, kubectl
, per autenticarsi al cluster“, hanno spiegato i ricercatori Nick McClendon, Daniel McNamara e Jacob Paullus, che hanno poi aggiunto: “Questo account ha permessi Kubernetes minimi nei cluster Azure Kubernetes Service (AKS) recentemente distribuiti, ma può comunque elencare i nodi nel cluster.”
Il TLS_BOOTSTRAP_TOKEN potrebbe essere utilizzato per abilitare un attacco di bootstrap TLS e, in ultima analisi, ottenere l’accesso a tutti i segreti utilizzati dai carichi di lavoro in esecuzione. L’attacco non richiede che il pod sia eseguito come root.
“Adottare un processo per creare NetworkPolicies restrittive che consentano l’accesso solo ai servizi richiesti previene questa intera classe di attacchi,” ha affermato Mandiant. “L’elevazione dei privilegi tramite un servizio non documentato viene impedita quando il servizio non può essere accessibile in alcun modo.”
La divulgazione arriva mentre la piattaforma di sicurezza Kubernetes ARMO ha evidenziato una nuova vulnerabilità Kubernetes ad alta gravità (CVE-2024-7646, punteggio CVSS: 8.8) che interessa il controller ingress-nginx e potrebbe consentire a un attaccante di ottenere accesso non autorizzato a risorse sensibili del cluster.
“La vulnerabilità deriva da un difetto nel modo in cui ingress-nginx valida le annotazioni sugli oggetti Ingress“, ha dichiarato il ricercatore di sicurezza Amit Schendel, aggiungendo: “La vulnerabilità consente a un attaccante di iniettare contenuti dannosi in determinate annotazioni, aggirando i controlli di convalida previsti. Questo può portare a iniezione di comandi arbitrari e potenziale accesso alle credenziali del controller ingress-nginx, che, nelle configurazioni predefinite, ha accesso a tutti i segreti nel cluster.“
Segue anche la scoperta di un difetto di progettazione nel progetto Kubernetes git-sync che potrebbe consentire l’iniezione di comandi attraverso Amazon Elastic Kubernetes Service (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE) e Linode.
“Questo difetto di progettazione può causare sia l’esfiltrazione di dati da qualsiasi file nel pod (inclusi i token di account di servizio) sia l’esecuzione di comandi con i privilegi dell’utente git_sync“, ha detto il ricercatore di Akamai Tomer Peled. “Per sfruttare la vulnerabilità, tutto ciò che un attaccante deve fare è applicare un file YAML sul cluster, che è un’operazione a basso privilegio.”
Non sono previste patch per questa vulnerabilità, rendendo cruciale che le organizzazioni esaminino i loro pod git-sync per determinare quali comandi vengono eseguiti.
“Entrambi i vettori sono dovuti a una mancanza di sanitizzazione dell’input, il che evidenzia la necessità di una difesa robusta per quanto riguarda la sanitizzazione degli input degli utenti“, ha detto Peled. “I membri del team di sicurezza dovrebbero prestare attenzione a comportamenti insoliti provenienti dall’utente git_sync nelle loro organizzazioni.”