Puncte:0

Clusterele Kubernetes nu ar trebui să acorde capabilități de securitate CAPSYSADMIN

drapel br

În AKS-ul nostru, am găsit alerte de mare severitate legate de acest lucru în Centrul de securitate Azure.

Pentru ce este destinat CAPSYSADMIN? Pod-urile sunt activate implicit cu această proprietate? Pentru că nu l-am activat în mod special în AKS-ul nostru? Atunci care va fi motivul acestei alerte? Și cum putem remedia această alertă?

Michael Hampton avatar
drapel cz
Acest lucru este făcut de cel care a creat păstăile. Verificați definiția podului YAML.
Vowneee avatar
drapel br
Da, am verificat și nu a fost setată nicio proprietate pentru activare. Este foarte ciudat că de ce arată această eroare, deși proprietatea nu este setată
mario avatar
drapel cm
Ați putea împărtăși întregul mesaj de alertă de la ASC?
Vowneee avatar
drapel br
@mario alerta a fost aceeași pe care am dat-o în titlul problemei. Nu sunt mai multe detalii disponibile.
Puncte:1
drapel cm

Explicaţie:

Pentru ce este destinat CAPSYSADMIN?

Capacitățile Linux sunt un subiect larg în sine, dar pe scurt, după cum puteți citi Aici:

Începând cu kernelul 2.2, Linux împarte privilegiile asociat în mod tradițional cu superutilizatorul în unități distincte, cunoscut sub numele de capabilități, care pot fi activate independent și dezactivat. Capabilitățile sunt un atribut pe fir.

Deci, cu alte cuvinte, sunt unități distincte care pot fi folosite pentru a controla escaladarea privilegiilor în sistemul de operare Linux.

Și CAP_SYS_ADMIN este unul dintre ele și, de fapt, este unul destul de puternic. Permite efectuarea unei game de operațiuni de administrare a sistemului, privilegiate care nu pot fi efectuate de un utilizator normal. Pentru lista completă vă rugăm să consultați acest document și Ctrl+f pentru CAP_SYS_ADMIN.

După cum vă puteți imagina, din perspectiva securității, utilizarea acestei capacități nu este recomandată, cu excepția cazului în care este absolut necesar. Acest lucru este în conformitate cu principiul cel mai mic privilegiu ceea ce înseamnă practic „acordarea unui cont de utilizator sau procesarea numai a acelor privilegii care sunt esențiale pentru a-și îndeplini funcția prevăzută”.

Dar să revenim la contextul kubernetes, AKS și Azur deoarece probabil că ești încă curios cum se potrivește tot ceea ce am menționat mai sus acolo.

Pod-urile sunt activate implicit cu această proprietate?

Nu, nu este decât dacă îl activați în mod explicit în a Pod definiție. Deci avertismentul pe care îl primiți nu este despre faptul că această capacitate este utilizată de oricare dintre podurile dvs., ci mai degrabă despre posibilitatea ca această proprietate să poată fi utilizată de oricare dintre utilizatorii dvs. care sunt autorizați să creeze noi poduri în AKS cluster. Cu alte cuvinte, în acest moment, păstăi care fac pârghie CAP_SYS_ADMIN capacitatea poate fi creată pe dvs AKS cluster.

Mai jos puteți vedea un exemplu de astfel de Pod:

apiVersion: v1
fel: Pod
metadate:
  nume: security-context-demo-4
specificație:
  containere:
  - nume: sec-ctx-4
    imagine: gcr.io/google-samples/node-hello:1.0
    securityContext:
      capacitati:
        adăugați: ["SYS_ADMIN"]

Pentru mai multe detalii vă rugăm să consultați Setați capabilități pentru un container secțiunea din documentele oficiale kubernetes.

Îl poți testa cu ușurință pe cont propriu și vei vedea că cele de mai sus Pod va fi creat cu succes deoarece nu este interzis acum în niciun fel.

Atunci poți kubectl exec la asa ceva Pod și verifică asta CAP_SYS_ADMIN capacitatea este într-adevăr folosită de acesta. Pur și simplu rulați:

kubectl exec -it security-context-demo-4 -- /bin/bash

Odată conectat la Pod poti rula:

capsh --print | grep cap_sys_admin

Și o să vezi asta cap_sys_admin capacitatea este activată.

Puteți verifica același lucru în a Pod care nu folosește această capacitate:

apiVersion: v1
fel: Pod
metadate:
  nume: security-context-demo-4-1
specificație:
  containere:
  - nume: sec-ctx-4
    imagine: gcr.io/google-samples/node-hello:1.0

Cand tu kubectl exec în ea:

kubectl exec -ti security-context-demo-4-1 -- /bin/bash

și rulați aceeași comandă:

capsh --print | grep cap_sys_admin

veți vedea că nu este activat implicit.

Soluţie:

Cu toate că AKS este un serviciu kubernetes gestionat și, de fapt, o mulțime de straturi de securitate sunt deja gestionate pentru dvs. de către Microsoft, încă vi se acordă o gamă destul de largă de responsabilități atunci când vine vorba de gestionarea dvs. AKS cluster. Puteți de ex. efectuați câteva acțiuni suplimentare pe cont propriu pentru a-l face și mai sigur.

Vestea bună este că nu ești lăsat complet singur cu astfel de sarcini și ți se oferă o mulțime de soluții gata pe care le poți aplica pur și simplu în mediul tău Azure.

Unul dintre ei este Centrul de securitate Azure, ceea ce vă scutește de sarcina de a detecta pe cont propriu noi amenințări potențiale în configurația actuală. După cum puteți citi Aici recomandarea Clusterele Kubernetes nu ar trebui să acorde capabilități de securitate CAPSYSADMIN face parte din Noi recomandări pentru consolidarea clusterelor Kubernetes care sunt încă în previzualizare, așa că este posibil să nu le fi văzut până acum:

Noi recomandări pentru consolidarea clusterelor Kubernetes (în previzualizare)

Următoarele recomandări vă permit să vă întăriți și mai mult clustere Kubernetes

  • Clusterele Kubernetes nu ar trebui să utilizeze spațiul de nume implicit - Pentru a proteja împotriva accesului neautorizat pentru ConfigMap, Pod, Secret, Tipurile de resurse Service și ServiceAccount împiedică utilizarea spațiu de nume implicit în clusterele Kubernetes.
  • Clusterele Kubernetes ar trebui să dezactiveze montarea automată a acreditărilor API - Pentru a preveni o resursă Pod potențial compromisă de la rularea comenzilor API împotriva clusterelor Kubernetes, dezactivați montarea automată a acreditărilor API.
  • Clusterele Kubernetes nu ar trebui să acorde capabilități de securitate CAPSYSADMIN

Atunci care va fi motivul acestei alerte?

Având în vedere cele de mai sus, se poate răspunde la această întrebare: pentru a vă oferi posibilitatea de a vă îmbunătăți securitatea clusterului kubernetes reducând suprafața potențială de atac a containerelor dumneavoastră. Dar depinde în întregime de tine dacă te hotărăști să urmezi sau nu această recomandare.

Atât pentru partea de detectare a amenințărilor. Dar partea de remediere?

Și cum putem remedia această alertă?

Politici Azure este raspunsul pentru asta. Poate ai auzit deja despre ele. Din fericire, pentru a remedia această amenințare specială, nu trebuie să vă scrieți propria politică personalizată, așa cum o oferă Azure definiții de politică încorporate pentru Azure Kubernetes Service și puteți pur și simplu să le folosiți pe dvs AKS cluster.

În prima coloană vi se oferă link direct către portalul Azure, care vă va duce la pagina de definire a politicii, unde puteți examina detaliile acesteia și unde poate fi atribuită unui anumit abonament și grup de resurse:

introduceți descrierea imaginii aici

introduceți descrierea imaginii aici

Pentru mai multe detalii vă rugăm să consultați:

Alte link-uri utile:

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.