Mandiant je nedavno otkrio kritičnu ranjivost u Microsoft Azure Kubernetes uslugama (AKS) koja je mogla omogućiti napadačima da povećaju privilegije i pristupe osjetljivim vjerodajnicama unutar pogođenih klastera. Ranjivost je uticala na AKS klastere koji koriste “Azure CNI” za mrežnu konfiguraciju i “ Azure ” za mrežnu politiku.
Napadač s izvršavanjem naredbe u Podu koji radi unutar ranjivog AKS klastera mogao je iskoristiti ovaj problem za preuzimanje konfiguracije koja se koristi za obezbjeđivanje čvora klastera.
Konfiguracija je sadržavala bootstrap tokene za sigurnost transportnog sloja (TLS) koje je napadač mogao izdvojiti i koristiti za izvođenje TLS bootstrap napada. Ovo bi dalo napadaču mogućnost da pročita sve tajne unutar klastera.
Posebno, napad nije zahtijevao da narušeni Pod bude pokrenut sa omogućenom hostNetwork ili kao root korisnik. Ovo je značajno proširilo površinu napada.
Napad je uključivao pristup nedokumentiranoj komponenti Azure WireServer na http://168.63.129.16/machine/?comp=goalstate i krajnjoj tački HostGAPlugin na http://168.63.129.16:32526/vmSettings .
Napadač bi mogao preuzeti ključ sa WireServera da dešifruje vrijednosti zaštićenih postavki. Zatim bi mogli zatražiti JSON dokument od HostGAPlugin-a, raščlaniti ga i Base64 dekodirati kako bi dobili šifrovanu skriptu za obezbjeđivanje (protected_settings.bin).
Koristeći ključ WireServer, napadač bi mogao dešifrirati protected_settings.bin kako bi pristupio skripti za proviziju klastera (cse_cmd.sh). Ova skripta je sadržavala nekoliko tajni kao varijable okruženja, uključujući:
- KUBELET_CLIENT_CONTENT – Generički TLS ključ čvora
- KUBELET_CLIENT_CERT_CONTENT – Generički čvor TLS certifikat
- KUBELET_CA_CRT – Kubernetes CA certifikat
- TLS_BOOTSTRAP_TOKEN – TLS Bootstrap autentifikacijski token
Iskorištavanje ranjivosti
Napadač bi mogao dekodirati KUBELET_* varijable i koristiti ih sa kubectl-om za autentifikaciju klastera uz minimalne dozvole, posebno mogućnost popisivanja čvorova.
Međutim, TLS_BOOTSTRAP_TOKEN se može koristiti direktno sa kubectl za čitanje i kreiranje ClientSigningRequests (CSR). Ovo je omogućilo TLS bootstrap napad gdje je napadač mogao zatražiti klijentski certifikat za bilo koji aktivni čvor.
AKS automatski potpisuje CSR-ove koje dostavljaju TLS bootstrap tokeni. Sa sertifikatom klijenta koji kontroliše napadač, oni bi mogli da se autentifikuju na API i steknu mogućnost da čitaju sve tajne za radna opterećenja koja se pokreću na narušenom čvoru, kao što im je odobren od strane Node Authorizer. Ponavljanje ovog procesa za svaki čvor bi dalo pristup svim tajnama u klasteru.
Mandiant je otkrio ovu ranjivost Microsoftu putem MSRC programa i Microsoft je od tada popravio osnovni problem. Korisnici Azure Kubernetes usluge trebali bi osigurati da su njihovi klasteri ažurirani na zakrpljenu verziju.
Tačan vremenski okvir kada je Mandiant prijavio ranjivost Microsoftu i koliko brzo je Microsoft odgovorio nije jasno preciziran.
Provođenje autentifikacije za interne usluge i ograničavanje nesigurnih radnih opterećenja pomažu u ublažavanju uticaja ovakvih ranjivosti.
Izvor: CyberSecurityNews