Tyypillisten Docker- ja Kubernetes-asennusten (puuttuvan) turvallisuuden tutkiminen

Tyypillisten Docker- ja Kubernetes-asennusten (puuttuvan) turvallisuuden tutkiminen
Olen työskennellyt IT-alalla yli 20 vuotta, mutta jotenkin en koskaan päässyt konteihin. Teoriassa ymmärsin, kuinka ne rakennettiin ja miten ne toimivat. Mutta koska en ollut koskaan tavannut niitä käytännössä, en ollut varma kuinka tarkalleen niiden konepellin alla olevat vaihteet kääntyivät ja kääntyivät.

Sitä paitsi minulla ei ollut aavistustakaan heidän turvallisuudestaan. Mutta taas teoria kuulostaa hyvältä, ja vanha biisi "turvallisuuden kasvaessa, käytettävyys heikkenee" jäi päähäni. Joten ajattelin, että koska kaikki on niin helppoa tehdä konteilla, niin turvallisuus siellä on alle. Kuten kävi ilmi, olin oikeassa.

Päästäkseni nopeasti alkuun, ilmoittautuin kursseille Musta hattu 2020 otsikolla "Ruutista rikkauksiin: Docker Swarm- ja Kubernetes-ympäristöjen tunkeutuminen ja suojaus'.

Sheila A. Bertan ja Sol Ozzanin opettama kurssi alkoi heti kuvauksella siitä, miten Docker-kontit toimivat ja kuinka matkat ne kulkevat, kun ne otetaan käyttöön Kubernetesiin. Tämä oli täysin käytännönläheinen tunti - opiskelijoiden piti asentaa Docker ja microk8s koneilleen ennen luokkaa - loistava tapa nähdä kuinka työkalut toimivat keskenään, löytää heikkoja kohtia ja mikä tärkeintä, yrittää estää ne.

Valitettavasti vaikka kurssit lupasivatkin tulla "prinssiksi" kahden päivän jälkeen, minusta tuntui, että kaikki oli vasta alussa, ja minulla oli vielä paljon opittavaa.

Tyypillisten Docker- ja Kubernetes-asennusten (puuttuvan) turvallisuuden tutkiminen

Ennen kuin sukeltaa yleviin havaintoihini, on tärkeää selittää, mikä kontti on. Kehitysmaailmassa pidetään normaalina, että omalle koneelle kirjoitettu koodi toimii täydellisesti, mutta kun sitä yrittää ajaa jossain palvelimella, se ei yksinkertaisesti toimi. Kontit yrittävät voittaa tämän ongelman tarjoamalla itsenäisiä koneita, joita voit helposti siirtää palvelimelta toiselle tietäen, että ne toimivat aina. Kuten nimestä voi päätellä, ne sisältävät koodin, kirjastot ja muut ohjelmistot, joita tarvitaan työn suorittamiseen. Kubernetes puolestaan ​​on konttien orkestrointialusta. Periaatteessa sillä voidaan hallita saumattomasti satoja tai tuhansia erilaisia ​​kontteja.

Alla on joitain löydöistäni punaisen ja sinisen tiimin näkökulmasta.

Punainen joukkue

Suurin osa säilön sisällöstä toimii pääkäyttäjänä: Tämä tarkoittaa, että jos säilö vaarantuu, sinulla on täysi pääsy säiliöön. Tämä tekee seuraavista vaiheista paljon helpompaa.

Docker.sockin asentaminen säiliöön on vaarallista: Jos sinulla on root-käyttöoikeus säilön sisällä ja myös Docker on asennettu säilöön, jossa on Docker-kanta (/var/run/docker.sock), sinulla on mahdollisuus tutkia koko klusteria, mukaan lukien pääsy mihin tahansa muuhun säilöön. Tällaista pääsyä ei voida estää verkon eristämisellä tai muilla tavoilla.

Ympäristömuuttujat sisältävät usein salaisia ​​tietoja: Useimmissa tapauksissa ihmiset lähettävät salasanoja säilöön normaaleilla ympäristömuuttujilla. Joten jos sinulla on pääsy tilille, voit vakoilla näitä ympäristömuuttujia laajentaaksesi oikeuksiasi myöhemmin.

Docker API voi antaa paljon tietoa: Oletusarvoisesti määritetty Docker-sovellusliittymä toimii ilman lupaa ja voi tuottaa paljon tietoa. Shodanin avulla voit helposti löytää luettelon avoimista porteista, saada yksityiskohtaisia ​​tietoja klusterista - ja jatkaa sen täydellistä sieppaamista. TrendMicro kirjoitti tästä mielenkiintoisin artikkeli.

Sininen joukkue

Älä suorita säilön sisältöä pääkäyttäjänä: Vaikka se on helpompi ajaa pääkäyttäjänä, sinun ei pitäisi tehdä sitä. Suorita sen sijaan sovelluksia, joilla on palautusoikeudet, näyttämällä uid, joko käyttämällä --user-vaihtoehtoa suoritettaessa CLI:stä tai määrittämällä Docker-tiedostossa KÄYTTÄJÄ.

Älä salli ohjelmistojen asentamista säilöihin: Melkein jokainen hyökkäys alkaa istuttamalla jotain. Nmapista ifconfigiin itse Dockeriin (säilön sisällä) kaiken asentaminen säiliöön on ollut tavallista. Samasta syystä sinun tulee aina estää kaikki käyttämättömät portit. Tämä auttaa myös estämään ohjauskomentojen lähettämisen, kun koneesi on saastunut. Ohjelmien asennuksen estämisen lisäksi kannattaa varmistaa, että tehtävän suorittamiseen tarvittava vähimmäismäärä sovelluksia on asennettu itse säiliöön.

Suojaa telakka.sukka: Se on suojattava, koska säiliön ja klusterin välinen tietoliikenne käsitellään tämän pistorasian kautta. Koska en halua mennä yksityiskohtiin tässä artikkelissa, lue huomautus Dockerilta, mitä voi tapahtua ja kuinka estää se kaikki.

Käytä Docker-salaisuuksia ympäristömuuttujien sijasta: On salaisuuksia noin vuodesta 2017 lähtien. Vaikka tämä ei ole turvallista, se on silti parempi kuin ympäristömuuttujat salaisen tiedon välittämiseen säilöön.

Jos artikkeli on herättänyt kiinnostuksesi säilöihin, voit helposti asentaa Dockerin tai microk8s:n (pieni versio Kubernetesista). Täällä Dockerin asentamiseen on ohjeet Linux ja macOS, ja täällä - microk8s-asennusohjeet sovellukselle Windows, Linux ja macOS.

Asennuksen jälkeen voit mennä tämä on pika-aloitusopas Dockerilta, samanlainen vaihtoehto tarjottu ja microk8:lle.

Jos haluat tai tarvitset kattavan Docker-kurssin, jossa käytännölliset puhujat tutkivat sen kaikkia työkaluja: perusabstraktioista verkkoparametreihin, eri käyttöjärjestelmien ja ohjelmointikielien kanssa työskentelyn vivahteisiin, kokeile sitten "Docker-videokurssi" Tutustut tekniikkaan ja ymmärrät missä ja miten Dockeria parhaiten käyttää. Ja samalla hanki parhaat käytännöt - on parempi oppia turvallisesti ja harjoittajien tuella tarinoista haravoista kuin henkilökohtaisesti itse haravoista, joissa on piikkikahvat.

Lähde: will.com

Osta luotettava isännöinti sivustoille, joissa on DDoS-suojaus, VPS VDS -palvelimet 🔥 Osta luotettavaa verkkosivustojen hostingia DDoS-suojauksella, VPS VDS -palvelimilla | ProHoster