Zephyrnet-logo

Nu patchen: Kubernetes RCE-fout maakt volledige overname van Windows-nodes mogelijk

Datum:

Door een beveiligingsfout in het veelgebruikte containerbeheersysteem Kubernetes kunnen aanvallers op afstand code uitvoeren met systeemrechten op Windows-eindpunten, wat mogelijk kan leiden tot volledige overname van alle Windows-nodes binnen een netwerk. Kubernetes-cluster.

Akamai-beveiligingsonderzoeker Tomer Peled ontdekte de fout, die wordt bijgehouden als CVE-2023-5528 en een CVSS-score van 7.2 heeft. Exploitatie ligt in het manipuleren van Kubernetes-volumes, een functie die gericht is op het ondersteunen van het delen van gegevens tussen pods op een cluster, of het permanent opslaan ervan buiten de levenscyclus van een pod, legde hij uit. in een blog post gepubliceerd maart 13.

Als aanvalsvector zouden aanvallers nodig hebben om pods en persistente volumes te creëren op Windows-knooppunten, waardoor ze zouden kunnen escaleren naar beheerdersrechten op die knooppunten, volgens een GitHub-lijst voor de fout.

“Het is heel gemakkelijk om dit beveiligingslek te misbruiken, omdat een aanvaller slechts een parameter hoeft te wijzigen en drie YAML-bestanden hoeft toe te passen om RCE over de Windows-eindpunten te verkrijgen”, vertelt Peled aan Dark Reading. Het Kubernetes-framework “gebruikt YAML-bestanden voor vrijwel alles”, schreef hij in de post.

Kubernetes-clusters worden alleen beïnvloed als ze een in-tree opslagplug-in voor Windows gebruiken; “Er zijn echter veel verschillende volumetypes die ontwikkelaars kunnen gebruiken”, waardoor verschillende aanvalsscenario’s ontstaan, merkte Peled op in de post.

Standaardinstallaties van Kubernetes ouder dan versie 1.28.4 met zowel on-premises implementaties als de Azure Kubernetes Service zijn kwetsbaar. Het Kubernetes-team is op de hoogte gebracht van de fout en er is een patch beschikbaar voor herstel, wat ten zeerste wordt aanbevolen.

"Aangezien het probleem in de broncode ligt, zal deze dreiging actief blijven en zal de exploitatie ervan waarschijnlijk toenemen. Dit is de reden waarom we sterk adviseren om je cluster te patchen, zelfs als het geen Windows-nodes heeft", schreef Peled.

De gebreken volgen

Peled ontdekte de fout na een onderzoek naar een andere kwetsbaarheid met dezelfde hoofdoorzaak: een onveilige functieaanroep en een gebrek aan opschoning van gebruikersinvoer in Kubernetes. Dat gebrek was CVE-2023-3676, een kwetsbaarheid voor opdrachtinjectie die kan worden misbruikt door een kwaadaardig YAML-bestand op het cluster toe te passen. De ontdekking van dit beveiligingslek heeft geleid tot de ontdekking van twee andere kwetsbaarheden die ook worden veroorzaakt door het gebrek aan opschoning van de subPath-parameter in YAML-bestanden, waardoor pods met volumes worden gemaakt en er een mogelijkheid ontstaat voor het injecteren van kwaadaardige code.

“Aan het einde van dat onderzoek merkten we een potentiële plaats in de code op die eruitzag alsof deze zou kunnen leiden tot een nieuwe kwetsbaarheid voor commando-injectie”, wat uiteindelijk CVE-2023-5528 werd, legde Peled uit.

“Na verschillende pogingen zijn we erin geslaagd een soortgelijk resultaat te bereiken: opdrachten uitvoeren als de kubelet-service (SYSTEEMrechten)”, schreef hij.

Exploitatie en patchen

De proof of concept die de onderzoekers uitvoerden richtte zich op lokale volumes, een van de volumetypes binnen Kubernetes. Tijdens het maken van een pod die een lokaal volume bevat, zal de kubelet-service uiteindelijk een functie bereiken met een cmd-lijnaanroep naar "exec.command", waardoor een symlink wordt gecreëerd tussen de locatie van het volume op het knooppunt en de locatie in de pod.

Zoals veel terminals maakt de opdrachtprompt (cmd) van Windows de uitvoering van twee of meer opdrachten direct na elkaar mogelijk, evenals meerdere opdrachten op dezelfde opdrachtregel. “Het feit dat we een van de parameters in de cmd-uitvoering kunnen controleren, betekent dat we commando-injectie kunnen gebruiken”, legt Peled uit.

Er zijn vereisten om dit op lokale volumes te bereiken, waaronder de noodzaak om onder andere een persistentVolume te specificeren of te creëren. Maar zodra dat volume is aangemaakt, “kan een gebruiker om opslagruimte vragen met behulp van een persistentVolumeClaim”, schreef hij. “Hier kan de injectie worden geplaatst.”

De patch die voor de fout is gemaakt, elimineert de mogelijkheid voor injectie door de cmd-aanroep te verwijderen en deze te vervangen door een native GO-functie die dezelfde bewerking zal uitvoeren om de symlink te maken. "Nu zal de GO 'os'-bibliotheek alleen een symlink-bewerking uitvoeren, zoals aanvankelijk bedoeld was", legde hij uit.

Is uw systeem kwetsbaar?

Kubernetes is uitgegroeid tot een van de meest gebruikte open source-systemen voor containers; het is echter ook geworden een primair doelwit voor bedreigingsactoren vanwege zijn enorm potentieel voor exploitatie en toegang tot organisatiegegevens. Bovendien creëert de Kubernetes-configuratie zelf vaak een kwetsbare installatie, waardoor bedreigingsactoren een breed aanvalsoppervlak krijgen.

“Kubernetes is een zeer complexe en robuuste tool”, zegt Peled. “Aan de ene kant stelt de robuustheid gebruikers in staat hun ervaring af te stemmen op de behoeften van hun organisatie, maar aan de andere kant maakt het het erg moeilijk om elk aspect ervan te beveiligen, zowel vanuit het standpunt van de ontwikkelaar als van de gebruiker.”

De ontdekking van CVE-2023-5528 en de daarmee samenhangende tekortkomingen benadrukt voor bedrijven die Kubernetes inzetten “hoe cruciaal het is om de Kubernetes-configuratie-YAML’s te verifiëren, aangezien invoeropschoning ontbreekt in verschillende codegebieden in Kubernetes zelf en zijn zijspanprojecten”, schreef Peled. .

Het volgen van best practices zoals op rollen gebaseerde toegangscontrole (RBAC) en ervoor zorgen dat clusters up-to-date zijn, “zou ook een groot deel van de bekende bedreigingen moeten beperken”, vertelt hij aan Dark Reading.

Een bedrijfsomgeving met Kubernetes is alleen kwetsbaar voor misbruik van de fout als een versie van het systeem ouder is dan 1.28.4 en het systeem Windows-nodes gebruikt. Als dit het geval is, heeft Akamai een opdracht gegeven die beheerders kunnen uitvoeren om te bepalen of het systeem moet worden gepatcht. Als dat het geval is, moet de patch prioriteit krijgen.  

“Als uw Kubernetes-cluster geen Windows-nodes heeft, hoeft u zich niet te haasten om deze specifieke kwetsbaarheid te patchen”, aldus Peled. "Maar het is belangrijk om het toch te patchen als je de tijd hebt."

Als onmiddellijk patchen geen optie is, doet Akamai dat ook biedt een Open Policy Agent (OPA)-regel om dit soort gedrag te helpen detecteren en blokkeren. OPA is een open source-agent waarmee gebruikers gegevens kunnen ontvangen over het verkeer dat knooppunten in- en uitgaat en op beleid gebaseerde acties kunnen ondernemen op de ontvangen gegevens.

spot_img

Laatste intelligentie

spot_img