Un tester de penetrare a obținut acces root la clusterul nostru Kubernetes în 15 minute. Iată ce au exploatat. Lanțul de atac: - S-a găsit tabloul de bord Kubernetes expus (răul nostru) - Tabloul de bord avea un cont de serviciu doar pentru vizualizare (am crezut că este sigur) - Contul de serviciu ar putea lista secrete în toate spațiile de nume - A găsit acreditările AWS într-un secret - A utilizat acreditările AWS pentru a accesa profilul instanței EC2 - Profilul instanței avea administrator Kubernetes complet prin IAM - A folosit kubectl pentru a crea pod privilegiat - A scăpat în nod - Acces root la întregul cluster Ce am crezut că am făcut bine: - Tabloul de bord a fost doar în citire - Secretele au fost criptate în repaus - Politicile de rețea erau în vigoare - Actualizări regulate de securitate Ce am ratat: - Tabloul de bord nu ar trebui să fie expus deloc - Conturile de serviciu au nevoie de principiul privilegiului minim - Secretele nu ar trebui să conțină acreditări AWS (utilizați în schimb IRSA) - Politicile de securitate ale podurilor nu au fost aplicate - Accesul la nod nu a fost întărit Remedierea a durat 2 săptămâni: - S-a eliminat complet tabloul de bord Kubernetes - Implementat IRSA pentru toate accesul AWS pod - S-au aplicat standarde stricte de securitate PSP-uri/Pod-uri...