Olen varma, että näin on käynyt sinullekin: yrität koota säiliön henkilökohtaiseen käyttöön ja haluat tehdä siitä turvallisemman käyttää. etuoikeuttamattomat säilöt Ja yhtäkkiä huomaatkin olevasi jumiutunut käyttöoikeusvirheiden sokkeloon. On turhauttavaa viettää tuntikausia käyttäjän kotihakemiston kansioiden määrittämiseen vain huomatakseen, että säilö ei voi kirjoittaa niihin, tai että kun se kirjoittaa, isännässä olevat tiedostot ovat vioittuneet. mahdotonta hallita koska ne kuuluvat haamukäyttäjälle.
Todellisuudessa konttisointi on nopeuttanut ohjelmistojen toimitusta, mutta se on avannut oven huomattaville riskeille. Viimeaikaisten tietojen mukaan valtaosa tuotantokuvista sisältää [epäselvä - mahdollisesti "epäselvä" tai "epäselvä"] kriittisiä haavoittuvuuksiaTämä tekee turvallisuudesta ehdottoman tärkeän pilarin. Kyse ei ole vain hakkereiden hyökkäysten estämisestä, vaan järjestelmän toiminnan ymmärtämisestä. prosessin eristäminen jotta infrastruktuuristamme ei tule seulaa.
Konttien tietoturvaekosysteemin ymmärtäminen
Jotta käyttöoikeuksien arvailu loppuisi, meidän on ensin tiedettävä, mitä suojaamme. Säilön arkkitehtuuri on jaettu useisiin kriittisiin kerroksiin. Ensinnäkin meillä on kuva säiliöstäjoka on alkuperäinen suunnitelma; jos se on haavoittuvainen, kaikki käyttöönottamasi instanssit ovat turvattomia. Siksi on tärkeää käyttää luotettujen tukikohtien kuvat ja pidä ne ajan tasalla.
Sitten suoritusaikainenjoka toimii sovittelijana isäntäkäyttöjärjestelmän ja sovelluksen välillä. Jos ajonaikainen ympäristö on vanhentunut, a:n riski konttipako kasvaa dramaattisesti. Tähän on lisättävä orkestrointi, kuten Kubernetes, jossa roolipohjainen käyttöoikeuksien hallinta (RBAC) Se on ainoa todellinen este luvattomalle käytölle hallintarajapintaan.
Emme voi unohtaa isäntäkäyttöjärjestelmäJos hyökkääjä onnistuu murtautumaan isäntäpalvelimen ytimeen, hänellä on avaimet koko verkkotunnukseen. Suositus on selvä: käytä minimaalinen käyttöjärjestelmä hyökkäyspinnan pienentämiseksi. Lopuksi, verkko on yleisin sisäänpääsykohta; lähes 30 % tietomurroista johtuu yhteyskatkoksista, joten verkon segmentointi ja TLS/SSL-salaus ne ovat pakollisia
Käyttöoikeuksien ja pääkäyttäjän päänsärky
Tyypillinen ongelma harrastajille on levyjen käsittely. Luot kansion, liität sen ja sitten, pam!, tulee virhe. lupa evättyTämä tapahtuu, koska monet säilöt käynnistyvät oletusarvoisesti pääkäyttäjänä. Kun yrität pakottaa UID ja GID kohdassa 0 Saadaksesi ne vastaamaan isäntäkäyttäjääsi, luot vaarallisen sillan. Jos säilö ei salli näiden tunnisteiden määrittämistä, tuhlaat iltapäivän yrittäessäsi selvittää, mitä sisäistä käyttäjää sovellus käyttää suorittamaan tehtävän. chown manuaalinen.
Tehokkain ratkaisu on soveltaa Vähimmän etuoikeuden periaateÄlä aja mitään root-käyttäjänä, ellei se ole ehdottoman välttämätöntä. Säiliössä luotujen tiedostojen poistamattomuus isännässä ratkaistaksesi Dockerfile-tiedoston seuraavalla komennolla: USER, määrittämällä käyttäjän ilman oikeuksia ennen sovelluksen käynnistymistä.
Jos käytät Podmania, käsite juurettomat astiat Se on natiivi ja erittäin hyödyllinen, mutta se edellyttää, että ymmärrät, miten isäntäkäyttäjät on yhdistetty säilökäyttäjiin. Jotta käyttöoikeudet eivät riistäytyisi käsistä, sovelluksen tulisi mieluiten olla suunniteltu kirjoittamaan tietyille reiteille ja että tilavuuskartoitus Se tehdään ottaen huomioon prosessin käynnistävän käyttäjän todellisen UID:n.
Strategioita panssaroitujen kuvien rakentamiseen
Jos haluat lopettaa kärsimyksen, sinun on muutettava tapaa, jolla rakennat kuviasi. Yksi brutaalin tehokas tekniikka on... monivaiheiset rakennuksetPohjimmiltaan käytät raskasta levykuvaa kaikkine työkaluineen binääritiedoston luomiseen ja kopioit sitten vain kyseisen tiedoston lopulliseen levykuvaan. erittäin kevyt.
Voit mennä pidemmällekin kuvan avulla raapiaTämä luo säilön, jossa ei ole yhtään mitään: ei komentotulkkia, ei paketinhallintaa, vain sovelluksesi. Tämä tekee hyökkääjälle käytännössä mahdottomaksi suorittaa haitallisia komentoja, jos he pääsevät sisään, koska Ei ole komentotulkkia käytettävissä.
Toinen turvatoimenpide on puhdistaa kuva kaikista binääritiedostoista, joilla on käyttöoikeudet setuid tai setgidNämä käyttöoikeudet sallivat tiedoston suorittamisen tiedoston omistajan oikeuksilla, ei sen käynnistäneen käyttäjän oikeuksilla, mikä on valtatie... etuoikeuksien eskaloituminenYksinkertainen komento näiden bittien etsimiseen ja poistamiseen kuvan luonnin aikana voi säästää sinulta paljon vaivaa.
Etuoikeutetun tilan vaarat ja Linuxin ominaisuudet
Joskus, epätoivoisina, kun emme pysty ratkaisemaan käyttöoikeusongelmaa, lankeamme kiusaukseen käyttää lippua -etuoikeutettuUnohda tuo. Etuoikeutettu tila rikkoo säilön eristyksen ja antaa sinulle täyden pääsyn isännän laitteisiin. Se on kuin antaisit kotisi avaimet tuntemattomalle vain siksi, ettei hän tiennyt, miten puutarhaportti avataan.
Sen sijaan sinun pitäisi leikkiä ns. Linux-ominaisuudetDocker määrittää joukon oletuskäyttöoikeuksia (kuten CAP_CHOWN tai CAP_NET_RAW). Jos sovelluksesi ei tarvitse manipuloida verkkoa matalalla tasolla, fiksuin lähestymistapa on poistaa tarpeettomat ominaisuudet ja lisää vain ne, jotka ovat ehdottoman välttämättömiä --cap-add.
Vakavampien ympäristöjen hallintaan on olemassa valtuutuslaajennukset kuten opa-docker-authz. Näiden avulla voidaan siepata Docker-daemonin API-rajapintaan tehtyjä kutsuja ja estää kaikki yritykset käynnistää säilö etuoikeutetussa tilassa varmistaen, ettei kukaan, edes vahingossa, jätä ovea auki isännälle.
Ympäristön optimointi ja ylläpito
Älä takerru 5 Mt:n levykuvan kokoon Alpine Linuxia käyttäessäsi, jos se aiheuttaa yhteensopivuusongelmia kirjastojen kanssa. Joskus hieman suurempi Debian-levykuva on parempi. vakiintunut ja tunnettu tiimin toimesta. Ratkaisevan tärkeää on toteuttaa haavoittuvuuksien skannaus Automatisoitu CI/CD-prosessi CVE-hyökkäysten havaitsemiseksi ennen kuin levykuva pääsee tuotantoon.
Tallennuksen osalta se estää sovellusta kirjoittamasta juurijärjestelmään. Määritä vain luku -tiedostojärjestelmä (rootfs) ja määrittelee tietyt levyt vain niille tiedoille, joiden on pysyttävä. Tämä ei ole ainoastaan turvallisempaa, vaan se myös pakottaa puhtaampaan arkkitehtuuriin ja kiinteistötönhelpottaa vaakasuoraa skaalausta.
Ajoitettujen prosessien tapauksessa älä laita cron-työtä verkkosivustosäiliöön. Kultainen sääntö on yksi prosessi konttia kohdenPuhtain tapa on käyttää sovelluksesi kuvaa käynnistääksesi lyhytaikaisen säilön, joka suorittaa tehtävän ja sitten tuhoaa itsensä, tai hallita cronia isännästä kutsumalla säilömoottoria komennoilla.
Konttien suojaus on jatkuva prosessi, johon kuuluu pääkäyttäjän oikeuksien poistaminen, ytimen ominaisuuksien rajoittaminen ja tarpeettomien työkalujen poistaminen konttikuvista. Yhdistämällä etuoikeuttamattomat käyttäjät ajonaikaiseen suojaukseen ja jatkuvaan valvontaan saavutetaan ympäristö, jossa toiminnallisuus ei vaaranna isäntäjärjestelmän eheyttä.
Intohimoinen kirjoittaja tavujen maailmasta ja tekniikasta yleensä. Rakastan jakaa tietämykseni kirjoittamalla, ja sen aion tehdä tässä blogissa, näyttää sinulle kaikki mielenkiintoisimmat asiat vempaimista, ohjelmistoista, laitteistoista, teknologisista trendeistä ja muusta. Tavoitteeni on auttaa sinua navigoimaan digitaalisessa maailmassa yksinkertaisella ja viihdyttävällä tavalla.

