Cyber Security Academy · Oppitunti

RBAC ja palvelutilit

Klusterin käytön rajoittaminen

Oppitunti 2/413 vaihetta

RBAC ja palvelutilit on ilmainen Cyber Security Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Cyber Security Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Cyber Security Academy-kurssilla on yhteensä 4 oppituntia.

RBAC hallitsee kaikkea

Roolipohjainen käyttöoikeuksien hallinta (RBAC) määrittää, mitkä identiteetit voivat suorittaa mitä toimia mihin resursseihin klusterissa. Jokainen API-kutsu valtuutetaan RBAC:n perusteella. Virheellisesti määritetty RBAC on yleisin klusterin sisäisen oikeuksien eskaloinnin syy.

  • Subjektit: käyttäjät, ryhmät ja palvelutilit.
  • Roolit yhdistävät verbit resursseihin.
  • Sidonnat yhdistävät subjektit rooleihin.

Role ja ClusterRole

Käyttöoikeuksilla on kaksi laajuutta.

  • Role + RoleBinding: nimiavaruuteen rajatut käyttöoikeudet.
  • ClusterRole + ClusterRoleBinding: koko klusterin kattavat käyttöoikeudet.

ClusterRoleBinding-arvon liittäminen kohteeseen cluster-admin antaa täydellisen hallinnan. Sen myöntäminen palvelutilille on yleinen ja vaarallinen virhe.

Palvelutilien tokenit

Jokainen podi suoritetaan palvelutilin nimissä ja siihen liitetään oletusarvoisesti palvelutilin token. Token on haltijatunniste, joka sisältää tilin RBAC-oikeudet. Jos podi vaarantuu, myös token vaarantuu.

Nykyaikaiset klusterit myöntävät lyhytikäisiä, kohdeyleisöön sidottuja projected-tokeneita, mutta vanhoja pitkäikäisiä Secret-tokeneita on edelleen käytössä.

# Inspect which service account a pod uses
kubectl get pod web -o jsonpath='{.spec.serviceAccountName}'

Käyttöoikeuksien luettelointi

Kun token on saatu haltuun, ensimmäinen vaihe on selvittää, mitä sillä voi tehdä. Kubernetes tarjoaa tätä varten itsearvioinnin API:n.

# What can this token do?
kubectl auth can-i --list

# Specific checks
kubectl auth can-i create pods
kubectl auth can-i create clusterrolebindings

Vaaralliset käyttöoikeusyhdistelmät

Tietyt verbit ovat oikeuksien eskaloinnin peruskeinoja jopa ilman cluster-admin-oikeuksia.

  • create pods: ajoittakaa etuoikeutettu tai hostPath-podi, jotta voitte poistua kontista.
  • create pods/exec: suorittakaa komentoja olemassa olevissa podeissa.
  • get/list secrets: lukekaa tunnistetietoja koko klusterin laajuudelta.
  • create rolebindings/clusterrolebindings: sitokaa itsenne ylläpitäjän rooliin.
  • escalate / bind-verbit: myöntäkää oikeuksia, joita teillä ei ole.
  • impersonate: toimikaa toisena, oikeuksiltaan etuoikeutettuna subjektina.

Eskalointi podeja luomalla

Jos palvelutili voi luoda podeja, se voi usein ottaa solmun hallintaansa. Hyökkääjä ajoittaa podin, joka liittää isännän tiedostojärjestelmän tai suoritetaan etuoikeutettuna, ja lukee sitten solmun tunnistetiedot tai poistuu kontista.

# Pod spec snippet that mounts the host root
# volumes: hostPath path: /  ;  container mounts it at /host
kubectl apply -f evil-pod.yaml
kubectl exec -it evil -- chroot /host bash

Eskalointi sidonnalla

Jos voitte luoda (cluster)rolebinding-sidontoja, voitte ehkä sitoa palvelutilinne suoraan cluster-admin-rooliin. Kubernetes suojaa tätä bind- ja escalate-verbeillä, mutta virheellisesti määritetyt roolit sallivat sen joskus.

# Bind a service account to cluster-admin (if permitted)
kubectl create clusterrolebinding pwn \
  --clusterrole=cluster-admin \
  --serviceaccount=default:web

Impersonate-oikeuden väärinkäyttö

impersonate-verbi sallii subjektin toimia minkä tahansa käyttäjän, ryhmän tai palvelutilin nimissä. Laajat impersonate-oikeudet omaavalla principalilla on käytännössä kaikki klusterin käyttöoikeudet.

# Act as a privileged user via impersonation
kubectl get secrets --as=admin-user --as-group=system:masters

RBAC:n auditointi

Puolustajien tulee tarkistaa RBAC jatkuvasti riskialttiiden myöntöjen varalta.

  • Etsikää subjektit, jotka on sidottu cluster-admin-rooliin.
  • Merkitkää jokerimerkkiä käyttäviä verbejä tai resursseja sisältävät myönnöt (*).
  • Havaitkaa salaisuuksien luku- ja podien luontioikeudet muilla kuin ylläpitäjätileillä.
# Tools to audit RBAC
kubectl-who-can create pods
rbac-tool analysis
rakkess --as=system:serviceaccount:default:web

Palvelutilien koventaminen

Soveltakaa identiteetteihin vähimpien oikeuksien periaatetta.

  • Asettakaa automountServiceAccountToken: false, kun podi ei tarvitse API-käyttöoikeutta.
  • Antakaa jokaiselle työkuormalle oma, mahdollisimman suppeasti rajattu palvelutili.
  • Välttäkää default-palvelutiliä oikeissa työkuormissa.
  • Käyttäkää lyhytikäisiä, audience-määritteellä varustettuja projected-tokeneita; kierrättäkää ja sitokaa ne.
  • Älkää koskaan sitoko työkuormia cluster-admin-rooliin.

RBAC:n eettinen testaaminen

RBAC:ta arvioitaessa suosikaa tuhoamattomia tarkistuksia (auth can-i, dry-run) sen sijaan, että loisititte cluster-admin-sidontoja tuotantoon. Jos eskalointi on välttämätöntä todistaa, rajatkaa testi testinimiavaruuteen ja poistakaa kaikki luomanne sidonnat ja podit.

Raportoikaa täsmälliset roolit ja sidonnat, jotka mahdollistivat eskaloinnin, jotta niitä voidaan rajoittaa.

Pikatarkistus

Varmistakaa RBAC-osaamisenne.

Kertaus

Opitte, miten RBAC ja palvelutilit hallitsevat klusterin käyttöä ja muodostavat siihen kohdistuvia uhkia.

  • RBAC sitoo subjektit resursseihin kohdistuviin verbeihin; cluster-admin antaa täydellisen hallinnan.
  • Podit liittävät SA-tokenit; auth can-i paljastaa niiden käyttöoikeuksien laajuuden.
  • create-pods, sidonnat, secret-read ja impersonate ovat eskaloinnin peruskeinoja.
  • Vähimpien oikeuksien mukaiset tilit ja käytöstä poistettu automaattinen liittäminen koventavat klusteria.

Seuraavaksi: podien suojaus ja verkkokäytännöt.

Aloita maksutta

Opi Cyber Security Academy tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
76
Oppitunnit
303

Usein kysytyt kysymykset

Onko oppitunti ”RBAC ja palvelutilit” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Cyber Security Academy-oppimispolun 3 oppituntia, myös oppitunnin “RBAC ja palvelutilit”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Cyber Security Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”RBAC ja palvelutilit”?

Klusterin käytön rajoittaminen Harjoittelet Cyber Security Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Cyber Security Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Cyber Security Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”RBAC ja palvelutilit”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Cyber Security Academy-oppitunnilla?

Kyllä. Jokainen Cyber Security Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Kubernetesin uhkamalli
  2. RBAC ja palvelutilit
  3. Podien tietoturva ja verkkokäytännöt
  4. Toimitusketjun ja salaisuuksien suojaaminen
← Takaisin: Cyber Security Academy