Tipisku Docker un Kubernetes instalāciju (trÅ«kstoŔās) droŔības izpēte

Tipisku Docker un Kubernetes instalāciju (trÅ«kstoŔās) droŔības izpēte
Es strādāju IT jomā vairāk nekā 20 gadus, bet kaut kā nekad neesmu tikusi lÄ«dz konteineriem. Teorētiski es sapratu, kā tās ir strukturētas un kā tās darbojas. Bet, tā kā es nekad nebiju ar tiem saskāries praksē, es nebiju pārliecināts, kā tieÅ”i zobrati zem to pārsega griežas un griezās.

Turklāt man nebija ne jausmas, kāda ir viņu droŔība. Bet atkal teorija izklausās jauki, un manā galvā iestrēga vecā dziesma ā€œpalielinoties droŔībai, samazinās lietojamÄ«baā€. Tāpēc domāju, ka tā kā ar konteineriem viss ir tik vienkārÅ”i izdarāms, tad droŔība tur ir zem nominālvērtÄ«bas. Kā izrādÄ«jās, man bija taisnÄ«ba.

Lai ātri sāktu, es pierakstījos kursos Melna cepure 2020 ar nosaukumu "No lupatām līdz bagātībām: Docker Swarm un Kubernetes vides iespieŔanās un aizsardzība'.

Kurss, ko pasniedza Å eila A. Berta un Sols Ozans, nekavējoties sākās ar aprakstu par to, kā darbojas Docker konteineri un kāds ir to ceļojums, kad tie tiek izvietoti Kubernetes. Å Ä« bija pilnÄ«gi praktiska nodarbÄ«ba ā€“ skolēniem pirms nodarbÄ«bas savās maŔīnās bija jāinstalē Docker un microk8s ā€“ tas ir lielisks veids, kā redzēt, kā rÄ«ki mijiedarbojas viens ar otru, atrast vājās vietas un, galvenais, mēģināt tās bloķēt.

Diemžēl, lai gan kursi pēc divām dienām solÄ«ja kļūt par ā€œprinciā€, es jutu, ka viss tikai sākas, un man vēl daudz jāmācās.

Tipisku Docker un Kubernetes instalāciju (trÅ«kstoŔās) droŔības izpēte

Pirms iedziļināties manos augstajos novērojumos, ir svarÄ«gi paskaidrot, kas ir konteiners. Izstrādes pasaulē tiek uzskatÄ«ts par normālu, ka jÅ«su personÄ«gajā maŔīnā ierakstÄ«tais kods darbojas nevainojami, bet, mēģinot to palaist kaut kur serverÄ«, tas vienkārÅ”i nedarbojas. Konteineri cenÅ”as pārvarēt Å”o problēmu, nodroÅ”inot autonomas maŔīnas, kuras varat viegli pārvietot no viena servera uz otru, zinot, ka tās vienmēr darbosies. Kā norāda nosaukums, tie satur kodu, bibliotēkas un citu programmatÅ«ru, kas nepiecieÅ”ama darba veikÅ”anai. Savukārt Kubernetes ir orÄ·estrÄ“Å”anas platforma konteineriem. Principā to var izmantot, lai nemanāmi pārvaldÄ«tu simtiem vai tÅ«kstoÅ”iem dažādu konteineru.

Zemāk ir daži no maniem atklājumiem no sarkanās un zilās komandas viedokļa.

Sarkanā komanda

Lielākā daļa konteinera satura darbojas kā root: Tas nozīmē, ka, ja konteiners ir apdraudēts, jums būs pilna piekļuve konteineram. Tas ievērojami atvieglo nākamās darbības.

Docker.zeÄ·u uzstādÄ«Å”ana konteinerā ir bÄ«stama: ja jums ir sakne konteinerā un arÄ« Docker ir instalēta konteinerā, kuram ir Docker ligzda (/var/run/docker.sock), jums ir iespēja izpētÄ«t visu kopu, tostarp piekļuvi jebkuram citam konteineram. Šādu piekļuvi nevar novērst ar tÄ«kla izolāciju vai citiem lÄ«dzekļiem.

Vides mainÄ«gie bieži satur slepenus datus: vairumā gadÄ«jumu cilvēki sÅ«ta paroles uz konteineru, izmantojot parastos vides mainÄ«gos. Tātad, ja jums ir piekļuve kontam, varat izspiegot Å”os vides mainÄ«gos, lai vēlāk paplaÅ”inātu savas pilnvaras.

Docker API var sniegt daudz informācijas: Docker API, ja tā ir konfigurēta pēc noklusējuma, darbojas bez atļaujas un var radÄ«t daudz informācijas. Izmantojot Shodan, varat viegli atrast atvērto portu sarakstu, pēc tam iegÅ«t detalizētu informāciju par kopu un pāriet uz tā pilnÄ«gu uztverÅ”anu. TrendMicro rakstÄ«ja par to interesantākais raksts.

Zilā komanda

Nepalaidiet konteinera saturu kā root: Lai gan to ir vieglāk palaist kā root, jums nevajadzētu to darÄ«t. Tā vietā palaidiet lietojumprogrammas ar atiestatÄ«Å”anas atļaujām, parādot uid, izmantojot opciju --user, palaižot no CLI, vai Dockerfile norādot LIETOTĀJU.

Neļaujiet konteineros instalēt programmatÅ«ru: GandrÄ«z katrs uzbrukums sākas ar kaut ko iestādÄ«Å”anu. Sākot ar nmap un beidzot ar ifconfig lÄ«dz paÅ”am Docker (konteinera iekÅ”pusē), jebkura satura instalÄ“Å”ana konteinerā ir bijusi ierasta lieta. Tā paÅ”a iemesla dēļ jums vienmēr vajadzētu bloķēt visus neizmantotos portus. Tas arÄ« palÄ«dz novērst vadÄ«bas komandu pārsÅ«tÄ«Å”anu, kad jÅ«su iekārta ir inficēta. Papildus programmu instalÄ“Å”anas novērÅ”anai ir vērts pārliecināties, ka minimālais lietojumprogrammu skaits, kas nepiecieÅ”ams uzdevuma veikÅ”anai, ir instalēts paŔā konteinerā.

Aizsargājiet dokeru.zeÄ·e: tas ir jāaizsargā, jo saziņa starp konteineru un kopu tiek apstrādāta caur Å”o ligzdu. Tā kā es nevēlos Å”ajā rakstā iedziļināties, izlasiet piezÄ«me no Docker, kas var notikt, un arÄ« kā to visu bloķēt.

Vides mainÄ«go vietā izmantojiet Docker noslēpumus: Ir noslēpumi apmēram kopÅ” 2017. Lai gan tas nav droÅ”i, tas joprojām ir labāks par vides mainÄ«gajiem, lai nosÅ«tÄ«tu slepenos datus uz konteineru.

Ja raksts ir izraisÄ«jis jÅ«su interesi par konteineriem, varat viegli instalēt Docker vai microk8s (nelielu Kubernetes versiju). Å eit ir norādÄ«jumi par Docker instalÄ“Å”anu operētājsistēmai Linux un MacOS, un Å”eit ā€” instrukcijas microk8s instalÄ“Å”anai operētājsistēmām Windows, Linux un MacOS.

Pēc instalÄ“Å”anas jÅ«s varat doties Ŕī ir Ä«sa sākuma rokasgrāmata no Docker, lÄ«dzÄ«ga iespēja piedāvāja un microk8s.

Ja vēlaties vai vēlaties apgÅ«t visaptveroÅ”u Docker kursu, kurā praktiski runātāji pārbauda visus tā rÄ«kus: no pamata abstrakcijām lÄ«dz tÄ«kla parametriem, niansēm darbā ar dažādām operētājsistēmām un programmÄ“Å”anas valodām, tad izmēģiniet ā€œDocker video kurss" JÅ«s iepazÄ«sities ar tehnoloÄ£iju un sapratÄ«sit, kur un kā vislabāk izmantot Docker. Un tajā paŔā laikā iegÅ«stiet labākās prakses piemērus ā€” labāk droÅ”i un ar praktizētāju atbalstu mācÄ«ties no stāstiem par grābekļiem, nevis personÄ«gi no paÅ”iem grābekļiem ar ķīļveida rokturiem.

Avots: www.habr.com

Pievieno komentāru