Docker er en av de mest brukte containeriseringsplattformene og er høyt elsket blant programvareingeniører. Den kommer med et kraftig CLI-verktøy for å administrere Docker-containere og andre relaterte oppgaver.
Som standard trenger du root-privilegier for å kjøre alle Docker-relaterte kommandoer på Linux. Selvfølgelig kan du endre dette for enkelhets skyld og kjøre Docker-kommandoer uten root-privilegier, men du bør være klar over sikkerhetsimplikasjonene.
Hva er Docker Attack Surface?
En angrepsoverflate er antall angrepspunkter, mer som antall vinduer, som en ondsinnet bruker kan bruke for å få tilgang til systemet ditt og forårsake kaos. Som en tommelfingerregel bør IT-systemer ha minimale angrepsflater for å redusere sikkerhetsrisiko.
Generelt er Dockers angrepsoverflate veldig minimal. Beholdere kjører i et sikkert isolert miljø og påvirker ikke vertsoperativsystemet med mindre annet. I tillegg kjører Docker-containere kun minimale tjenester som gjør det sikrere.
Du kan konfigurere Linux-systemet til å kontrollere Docker uten sudo-privilegier. Dette kan være praktisk i utviklingsmiljøer, men kan være et alvorlig sikkerhetsproblem i produksjonssystemer. Og her er grunnen til at du aldri bør kjøre Docker uten sudo.
1. Evne til å kontrollere Docker-containere
Uten sudo-privilegiene kan alle som har tilgang til systemet eller serveren din kontrollere alle aspekter av Docker. De har tilgang til Docker-loggfilene dine og kan stoppe og slette beholdere etter eget ønske, eller ved et uhell. Du kan også miste kritiske data som er avgjørende for forretningskontinuiteten.
Hvis du bruker Docker-containere i produksjonsmiljøer, resulterer nedetid i tap av virksomhet og tillit.
2. Få kontroll over verts-OS-katalogene
Docker Volumes er en kraftig tjeneste som lar deg dele og vedvare beholderdata ved å skrive den til en spesifisert mappe på vertsoperativsystemet.
En av de største truslene som å kjøre Docker uten sudo presenterer er at hvem som helst på systemet ditt kan få kontroll over vertsoperativsystemets kataloger, inkludert rotkatalogen.
Alt du trenger å gjøre er å kjøre et Linux Docker-bilde, for eksempel Ubuntu-bildet, og montere det på rotmappen ved å bruke følgende kommando:
docker run -ti -v /:/hostproot ubuntu bash
Og siden Linux Docker-beholdere kjører som rotbruker, betyr det i hovedsak at du har tilgang til hele rotmappen.
Den nevnte kommandoen vil laste ned og kjøre det nyeste Ubuntu-bildet og montere det på rotkatalogen.
På Docker containerterminal, gå til /hostproot katalog ved hjelp av cd-kommandoen:
cd /hostproot
Viser innholdet i denne katalogen ved å bruke ls-kommandoen viser alle filene til verts-OSet som nå er tilgjengelig i beholderen din. Nå kan du manipulere filer, se hemmelige filer, skjule og fjerne filer, endre tillatelser osv.
3. Installer skadelig programvare
Et godt laget Docker-bilde kan kjøre i bakgrunnen og manipulere systemet ditt eller samle sensitive data. Enda verre, en ondsinnet bruker kan spre ondsinnet kode på nettverket ditt via Docker-beholdere.
Det er flere praktiske brukssaker av Docker-containere, og med hver applikasjon følger et annet sett med sikkerhetstrusler.
Sikre Docker-beholderne dine på Linux
Docker er en kraftig og sikker plattform. Å kjøre Docker uten sudo øker angrepsoverflaten og gjør systemet sårbart. I produksjonsmiljøer anbefales det sterkt at du bruker sudo med Docker.
Med så mange brukere på et system, blir det ekstremt vanskelig å tildele tillatelser til hver bruker. I slike tilfeller kan det å følge den beste tilgangskontrollpraksisen hjelpe deg med å opprettholde sikkerheten til systemet ditt.