Vi utforskar den (saknade) sÀkerheten i typiska installationer av Docker och Kubernetes

Vi utforskar den (saknade) sÀkerheten i typiska installationer av Docker och Kubernetes
Jag har arbetat inom IT i mer Àn 20 Är, men jag har aldrig riktigt kommit mig för att arbeta med containrar. I teorin förstod jag hur de fungerar och hur de Àr uppbyggda. Men eftersom jag aldrig har stött pÄ dem i praktiken var jag osÀker pÄ hur deras mekanismer fungerar under ytan.

Dessutom hade jag ingen aning om deras sĂ€kerhet. Återigen lĂ„ter teorin vacker, men den gamla visan 'ju större sĂ€kerhet, desto mindre anvĂ€ndarvĂ€nlighet' har fastnat i mitt huvud. SĂ„ jag tĂ€nkte att eftersom det Ă€r sĂ„ enkelt att arbeta med containrar sĂ„ kan sĂ€kerheten dĂ€r vara under all kritik. Som det visade sig hade jag rĂ€tt.

För en snabb start anmÀlde jag mig till en kurs Black Hat 2020 med titeln 'FrÄn skrÀp till kung: intrÄng och skydd av Docker Swarm- och Kubernetes-miljöer».

Kursen som leddes av Sheila A. Berta och Sol Ozzan började genast med en beskrivning av hur Docker-containrar fungerar samt vilken vĂ€g de tar nĂ€r de distribueras i Kubernetes. Det var helt praktiska lektioner – studenterna mĂ„ste installera Docker och microk8s pĂ„ sina maskiner innan lektionerna – ett utmĂ€rkt sĂ€tt att se hur verktygen interagerar med varandra, upptĂ€cka svagheter och, viktigast av allt, prova att blockera dem.

TyvÀrr, Àven om kurserna lovade att göra oss till 'kungar' pÄ tvÄ dagar, kÀnde jag att allt bara hade börjat och att jag fortfarande hade mycket att lÀra.

Vi utforskar den (saknade) sÀkerheten i typiska installationer av Docker och Kubernetes

Innan jag dyker ner i mina höga insikter Àr det viktigt att förklara vad en container Àr. Inom utveckling Àr det en vanlig situation att koden som skrivs pÄ din personliga maskin fungerar perfekt, men nÀr du försöker köra den pÄ en server sÄ fungerar den helt enkelt inte. Containrar försöker övervinna detta problem genom att erbjuda autonoma miljöer som du enkelt kan flytta mellan servrar, med vetskap om att de alltid kommer att fungera. Som namnet antyder innehÄller de koden, biblioteken och annan programvara som behövs för att fungera. Kubernetes, Ä sin sida, Àr en orchestreringsplattform för containrar. I princip kan man med den hantera hundratals eller tusentals olika containrar sömlöst.

Nedan följer nÄgra av mina insikter frÄn perspektivet av det röda och blÄ laget.

Det röda laget

Det mesta av innehÄllet i containrar körs under root: det innebÀr att om du komprometterar containern, fÄr du fullstÀndig Ätkomst till containern. Detta gör de efterföljande stegen betydligt enklare.

Montering av docker.sock inuti containern Àr farligt: om du fÄr rootÄtkomst inuti containern och dessutom installerar Docker inuti containern som har Docker-socket (\/var\/run\/docker.sock), har du en potentiell möjlighet att utforska hela klustret, inklusive Ätkomst till alla andra containrar. SÄdan Ätkomst kan inte förhindras varken genom nÀtverksisolering eller pÄ andra sÀtt.

Miljövariabler innehÄller ofta hemliga data: i de flesta fall skickar folk lösenord till containrar med hjÀlp av vanliga miljövariabler. SÄ om du har Ätkomst till kontot kan du avlyssna dessa miljövariabler för att senare utöka dina befogenheter.

Docker API kan ge massor av information: Docker API, nĂ€r det Ă€r instĂ€llt pĂ„ standard, fungerar utan autentisering och kan ge massor av information. Med hjĂ€lp av Shodan kan du enkelt hitta en lista över öppna portar, fĂ„ detaljerad information om klustret — och gĂ„ vidare till fullstĂ€ndig övertagning. TrendMicro har skrivit om detta en mycket intressant artikel.

Det blÄ laget

Kör inte innehĂ„llet i containrar under root: Ă€ven om det Ă€r enklare att köra som root, bör du inte göra det. IstĂ€llet bör du köra applikationer med sĂ€nkta rĂ€ttigheter genom att ange uid antingen med hjĂ€lp av parametern —user nĂ€r du arbetar med CLI, eller genom att ange USER i Dockerfile.

TillÄt inte installation av program i containrar: nÀstan varje attack börjar med att installera nÄgot. FrÄn nmap till ifconfig och sjÀlva Docker (inuti containern) har det att installera nÄgot i containern varit vanligt. Av samma anledning bör alltid alla oanvÀnda portarna blockeras. Detta hjÀlper ocksÄ till att förhindra överföring av kontrollkommandon vid infektion av din maskin. Förutom att förhindra installation av program bör du se till att det finns ett minimum av applikationer installerade i containern som behövs för att utföra uppgiften.

Skydda docker.sock: den mÄste skyddas eftersom kommunikation mellan containern och klustret hanteras via denna socket. Eftersom jag inte vill gÄ in pÄ detaljer i denna artikel, lÀs anteckningen frÄn Docker, vad som kan hÀnda och hur man blockerar allt detta.

AnvĂ€nd Docker-hemligheter istĂ€llet för miljövariabler: Det finns hemligheter ungefĂ€r sedan 2017. Även om det inte Ă€r sĂ€kert, Ă€r det Ă€ndĂ„ bĂ€ttre Ă€n miljövariabler för att överföra hemliga data till containrar.

Om artikeln vĂ€ckte ditt intresse för containrar - kan du ganska lĂ€tt installera Docker eller microk8s (en liten version av Kubernetes). HĂ€r Det finns installationsinstruktioner för Docker för Linux och MacOS, och hĂ€r – installationsinstruktioner för microk8s för Windows, Linux och MacOS.

Efter installationen kan du följa denna snabbinstruktion frÄn Docker, en liknande variant föreslÄs finns Àven för microk8s.

Om det finns ett intresse och/eller behov av att gĂ„ en omfattande kurs om Docker, dĂ€r praktiker diskuterar alla dess verktyg: frĂ„n grundlĂ€ggande abstraktioner till nĂ€tverksalternativ, detaljer i hur det fungerar med olika operativsystem och programmeringssprĂ„k, testa “Videokurs om Docker”. Du kommer att lĂ€ra dig teknologin och förstĂ„ var och hur man bĂ€st anvĂ€nder Docker. Samtidigt fĂ„r du best practice-fall — det Ă€r bĂ€ttre att lĂ€ra sig i sĂ€kerhet och med stöd av praktiker genom berĂ€ttelser om misstag, snarare Ă€n att personligen uppleva dem.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster