Openshift - SCC

Reading time: 2 minutes

Mwandishi wa awali wa ukurasa huu ni Guillaume

Maana

Katika muktadha wa OpenShift, SCC inasimama kwa Security Context Constraints. Security Context Constraints ni sera zinazodhibiti ruhusa za pods zinazotembea kwenye klasta za OpenShift. Zinabainisha vigezo vya usalama ambavyo pod inaruhusiwa kuendesha, ikiwa ni pamoja na vitendo inavyoweza kufanya na rasilimali inavyoweza kufikia.

SCCs husaidia wasimamizi kutekeleza sera za usalama katika klasta, kuhakikisha kuwa pods zinaendesha kwa ruhusa zinazofaa na kufuata viwango vya usalama wa shirika. Vikwazo hivi vinaweza kubainisha nyanja mbalimbali za usalama wa pod, kama vile:

  1. Uwezo wa Linux: Kuweka mipaka kwenye uwezo unaopatikana kwa kontena, kama vile uwezo wa kufanya vitendo vya kibali.
  2. Muktadha wa SELinux: Kutekeleza muktadha wa SELinux kwa kontena, ambao unabainisha jinsi michakato inavyoshirikiana na rasilimali kwenye mfumo.
  3. Faili ya mfumo wa mizizi isiyo na kusoma: Kuzuia kontena kubadilisha faili katika directories fulani.
  4. Directories na volumes za mwenyeji zilizoidhinishwa: Kubainisha ni directories na volumes zipi za mwenyeji ambazo pod inaweza kuunganisha.
  5. Kimbia kama UID/GID: Kubainisha vitambulisho vya mtumiaji na kundi ambavyo mchakato wa kontena unakimbia.
  6. Sera za mtandao: Kudhibiti ufikiaji wa mtandao kwa pods, kama vile kupunguza trafiki ya kutoka.

Kwa kusanidi SCCs, wasimamizi wanaweza kuhakikisha kuwa pods zinaendesha kwa kiwango sahihi cha kutengwa kwa usalama na udhibiti wa ufikiaji, kupunguza hatari ya udhaifu wa usalama au ufikiaji usioidhinishwa ndani ya klasta.

Kimsingi, kila wakati ombi la kupeleka pod linapofanywa, mchakato wa kukubali unatekelezwa kama ifuatavyo:

Tabaka hili la ziada la usalama kwa default linakataza uundaji wa pods zenye kibali, kuunganisha mfumo wa faili wa mwenyeji, au kuweka sifa zozote ambazo zinaweza kusababisha kupanda kwa kibali.

Pod Escape Privileges

Orodha ya SCC

Ili kuorodhesha SCC zote na Mteja wa Openshift:

bash
$ oc get scc #List all the SCCs

$ oc auth can-i --list | grep securitycontextconstraints #Which scc user can use

$ oc describe scc $SCC #Check SCC definitions

Watumiaji wote wana ufikiaji wa SCC ya default "restricted" na "restricted-v2" ambazo ndizo SCC kali zaidi.

Tumia SCC

SCC inayotumika kwa pod imefafanuliwa ndani ya annotation:

bash
$ oc get pod MYPOD -o yaml | grep scc
openshift.io/scc: privileged

Wakati mtumiaji ana ufikiaji wa SCC nyingi, mfumo utatumia ile inayolingana na thamani za muktadha wa usalama. Vinginevyo, itasababisha kosa la marufuku.

bash
$ oc apply -f evilpod.yaml #Deploy a privileged pod
Error from server (Forbidden): error when creating "evilpod.yaml": pods "evilpod" is forbidden: unable to validate against any security context constrain

SCC Bypass

OpenShift - SCC bypass

Marejeo