
Olen töötanud IT-sektoris ĂŒle 20 aasta, kuid kuidagi ei olnud ma varem konteineritega tegelenud. Teoorias mĂ”istsin, kuidas need töötavad ja kuidas need on seadistatud. Kuid kuna ma ei olnud nendega praktikas silmitsi seisnud, ei olnud ma kindel, kuidas nende mehhanismid tĂ€pselt töötavad.
Lisaks ei teadnud ma midagi ka nende turvalisusest. Taas kord, teooria kĂ”lab hĂ€sti, kuid vana laul âturvalisuse tĂ”ustes langeb kasutatavusâ kĂ€is mul peas. Nii et mĂ”tlesin, et kuna konteineritega on kĂ”ike nii lihtne teha, on seal turvalisus madal. Selgus, et olin Ă”ige.
Kiireks alguseks registreerisin end kursustele 2020 pealkirjaga â».
Kursus, mida viisid lĂ€bi Sheila A. Berta ja Sol Ozzan, algas kohe Docker konteinerite toimimise kirjeldamisega ning sellest, milline on nende deployimise tee Kubernetesis. See oli tĂ€ielikult praktiline klass â Ă”pilased pidid enne tunde oma masinatele Docker ja microk8s installima â suurepĂ€rane vĂ”imalus nĂ€ha tööriistade omavahelist koostööd, leida nĂ”rgad kohad ja, mis kĂ”ige tĂ€htsam, proovida neid blokeerida.
Kahjuks, kuigi kursused lubasid kahe pĂ€eva pĂ€rast âprintsiksâ saada, tundsin ma, et kĂ”ik on alles algamas ja mul on veel palju Ă”ppida.

Enne kui sukelduda minu kĂ”rgetesse tĂ€helepanekutesse, on oluline selgitada, mis on konteiner. Arendamise maailmas peetakse normaalseks olukorda, kus teie isiklikul masinal kirjutatud kood töötab ideaalselt, kuid kui proovite seda kuskil serveris kĂ€ivitada â see lihtsalt ei toimi. Konteinerid ĂŒritavad seda probleemi ĂŒletada, pakkudes iseseisvaid masinÂŹnĂ”isi, mida saate hĂ”lpsasti ĂŒhest serverist teise kanda, teades, et need töötavad alati. Nagu nimi ĂŒtleb, sisaldavad nad koodi, teeke ja muud tarkvara, mis on töötamiseks vajalik. Kubernetes, omakorda, on . PĂ”himĂ”tteliselt on selle abil vĂ”imalik sujuvalt hallata sadu vĂ”i tuhandeid erinevaid konteinerid.
Allpool on mÔned minu jÀreldused punase ja sinise meeskonna vaatenurgast.
Punane meeskond
Enamik konteinerite sisu kÀivitatakse root-kasutajana: see tÀhendab, et kui kompromiteerite konteineri, saate tÀieliku ligipÀÀsu konteinerile. See muudab jÀrgmised sammud oluliselt lihtsamaks.
docker.sock-i monteerimine konteineris on ohtlik: kui olete saanud root-privileegid konteineris ja olete ka paigaldanud Docker'i konteinerisse, millel on Docker-soket (/var/run/docker.sock), siis on teil potentsiaalne vÔimalus uurida kogu klastrit, sealhulgas pÀÀseda juurde igale teisele konteinerile. Sellist ligipÀÀsu ei saa vÀltida ei vÔrgus isolatsiooni ega muude meetoditega.
Keskkonnamuutujad sisaldavad sageli salajasi andmeid: enamasti saadavad inimesed paroolid konteinerisse tavaliste keskkonnamuutujate kaudu. Niisiis, kui teil on juurdepÀÀs kontole, saate need keskkonnamuutujad silmas pidades oma Ôigusi hiljem laiendada.
Docker API vĂ”ib anda palju teavet: vaikeseadistustes töötab Docker API ilma autentimiseta ja vĂ”ib anda palju teavet. Kasutades Shodan'i, on lihtne leida avatud sadamate loendit, seejĂ€rel saada ĂŒksikasjalikku teavet klastri kohta â ja liikuda selle tĂ€ieliku ĂŒle vĂ”tmise suunas. TrendMicro kirjutas sellest .
Sinine meeskond
Ărge kĂ€ivitage konteinerite sisu root-kasutajana: kuigi root-kasutajana kĂ€ivitamine on lihtsam, ei tohiks te seda teha. Selle asemel kĂ€ivitage rakendused vĂ€iksemate Ă”igustega, mÀÀrates uid vĂ”i kasutades CLI kĂ€itlemisel parameetrit âuser vĂ”i mÀÀrates USER-i Dockerfile'is.
Ărge lubage programmide installimist konteinerites: peaaegu iga rĂŒnnak algab millegi installimisest. Alustades nmap'ist ja lĂ”petades ifconfig'iga ning Docker'iga (konteineris), oli konteineris millegi installimine tavaline asi. Samuti tuleb alati blokeerida kĂ”ik mittekasutatavad sadamad. See aitab ka vĂ€ltida juhtimiskĂ€skude edastamist teie masina nakatumisel. Lisaks programmide installimise vĂ€ltimisele tuleks veenduda, et konteineris on minimaalne hulk rakendusi, mis on vajalik ĂŒlesande tĂ€itmiseks.
Kaitske docker.sock'i: seda tuleb kaitsta, kuna selle soketi kaudu toimub suhtlus konteineri ja klastri vahel. Kuna ma ei soovi selles artiklis detailselt sĂŒveneda, lugege , mis vĂ”ib juhtuda, ning kuidas seda kĂ”ike blokeerida.
Kasutage Docker'i salajasi muutujaid keskkonnaparametrite asemel: Salajased muutujaid on olemas . Kuigi see ei ole ohutu, on see siiski parem kui keskkonnaparametrite kasutamine salajaste andmete edastamiseks konteineris.
Kui artikkel tekitas teie huvi konteinerite vastu, siis on Docker'i vĂ”i microk8s'i (vĂ€iksem Kubernetes'i versioon) paigaldamine suhteliselt lihtne. on olemas juhised Docker'i installimiseks Linuxile ja MacOS-le, samas â juhised microk8s'i installimiseks Windowsile, Linuxile ja MacOS-le.
PÀrast installimist vÔite minna Docker'ilt, sarnane variant ka microk8s'ile.
Kui soovite vĂ”i on teil vajadus lĂ€bida pĂ”hjalik kursus Docker'ist, kus kogenud esinejad kĂ€sitlevad kĂ”iki selle tööriistu: alates pĂ”hiabstraktsioonidest kuni vĂ”rguvalikute, erinevate operatsioonisĂŒsteemide ja programmeerimiskeelte nĂŒanssideni, proovige "". Sa tutvud tehnoloogiaga ja mĂ”istad, kus ja kuidas Dockerit parim viis kasutada. Samuti saad parimaid praktikaid â Ă”ppida on parem ohutult ja kogenud praktikute toetusel tĂ”rkedest, kui omal nahal sorkima kui ise teravate kĂ€epidemetega.
Allikas: habr.com
