Docker este una dintre cele mai utilizate platforme de containerizare și este foarte iubită de inginerii de software. Vine cu un instrument CLI puternic pentru gestionarea containerelor Docker și a altor sarcini conexe.
În mod implicit, aveți nevoie de privilegii root pentru a rula orice comenzi legate de Docker pe Linux. Desigur, puteți modifica acest lucru pentru comoditate și puteți rula comenzi Docker fără privilegii de root, dar ar trebui să fiți conștienți de implicațiile de securitate.
Ce este suprafața de atac Docker?
O suprafață de atac este numărul de puncte de atac, mai mult ca numărul de ferestre, pe care un utilizator rău intenționat le poate folosi pentru a intra în sistemul dvs. și a provoca ravagii. Ca regulă generală, sistemele IT ar trebui să aibă suprafețe de atac minime pentru a reduce riscurile de securitate.
În general, suprafața de atac a lui Docker este foarte minimă. Containerele rulează într-un mediu izolat securizat și nu afectează sistemul de operare gazdă decât dacă este altfel. În plus, containerele Docker rulează doar servicii minime, ceea ce îl face mai sigur.
Vă puteți configura sistemul Linux pentru a controla Docker fără privilegii sudo. Acest lucru poate fi convenabil în mediile de dezvoltare, dar poate fi o vulnerabilitate serioasă de securitate în sistemele de producție. Și iată de ce nu ar trebui să rulați niciodată Docker fără sudo.
1. Abilitatea de a controla containerele Docker
Fără privilegiile sudo, oricine are acces la sistemul sau serverul dvs. poate controla fiecare aspect al Docker. Ei au acces la fișierele dvs. de jurnal Docker și pot opri și șterge containerele după bunul plac sau accidental. De asemenea, puteți pierde date critice, care sunt vitale pentru continuitatea afacerii.
Dacă utilizați containere Docker în medii de producție, timpul de nefuncționare duce la pierderea afacerii și a încrederii.
2. Obțineți controlul directoarelor OS gazdă
Docker Volumes este un serviciu puternic care vă permite să partajați și să păstrați datele containerului prin scrierea lor într-un folder specificat de pe sistemul de operare gazdă.
Una dintre cele mai mari amenințări pe care le prezintă rularea Docker fără sudo este că oricine din sistemul dvs. poate obține controlul asupra directoarelor sistemului de operare gazdă, inclusiv directorul rădăcină.
Tot ce trebuie să faceți este să rulați o imagine Linux Docker, de exemplu, imaginea Ubuntu, și să o montați în folderul rădăcină folosind următoarea comandă:
docker run -ti -v /:/hostproot ubuntu bash
Și, deoarece containerele Linux Docker rulează ca utilizator rădăcină, înseamnă în esență că aveți acces la întregul folder rădăcină.
Comanda menționată mai sus va descărca și rula cea mai recentă imagine Ubuntu și o va monta în directorul rădăcină.
Pe terminalul de containere Docker, accesați /hostproot director folosind comanda cd:
CD /hostproot
Listarea conținutului acestui director folosind comanda ls arată toate fișierele sistemului de operare gazdă care sunt acum disponibile în containerul dvs. Acum, puteți manipula fișiere, vizualiza fișiere secrete, ascunde și dezactiva fișiere, modifica permisiunile etc.
3. Instalați software rău intenționat
O imagine Docker bine concepută poate rula în fundal și poate manipula sistemul sau aduna date sensibile. Mai rău, un utilizator rău intenționat ar putea răspândi cod rău intenționat în rețeaua dvs. prin containerele Docker.
Sunt mai multe cazuri practice de utilizare a containerelor Docker, iar cu fiecare aplicație vine un set diferit de amenințări de securitate.
Asigurați-vă containerele Docker pe Linux
Docker este o platformă puternică și sigură. Rularea Docker fără sudo vă mărește suprafața de atac și vă face sistemul vulnerabil. În mediile de producție, este foarte recomandat să utilizați sudo cu Docker.
Cu atât de mulți utilizatori pe un sistem, devine extrem de greu să atribui permisiuni fiecărui utilizator. În astfel de cazuri, respectarea celor mai bune practici de control al accesului vă poate ajuta să mențineți securitatea sistemului dumneavoastră.