Kuchunguza usalama (unaokosa) wa usakinishaji wa kawaida wa Docker na Kubernetes

Kuchunguza usalama (unaokosa) wa usakinishaji wa kawaida wa Docker na Kubernetes
Nimekuwa nikifanya kazi katika IT kwa zaidi ya miaka 20, lakini kwa njia fulani sikuwahi kupata vyombo. Kwa nadharia, nilielewa jinsi zilivyoundwa na jinsi zilivyofanya kazi. Lakini kwa kuwa sikuwahi kukutana nao katika mazoezi, sikuwa na hakika jinsi gia zilizo chini ya kofia yao ziligeuka na kugeuka.

Isitoshe, sikujua jinsi usalama wao ulivyokuwa. Lakini tena, nadharia hiyo inasikika nzuri, na wimbo wa zamani "kadiri usalama unavyoongezeka, utumiaji unapungua" ulikwama katika kichwa changu. Kwa hiyo nilifikiri kwamba kwa kuwa kila kitu ni rahisi kufanya na vyombo, basi usalama huko ni chini ya par. Kama ilivyotokea, nilikuwa sahihi.

Ili kuanza haraka, nilijiandikisha kwa kozi Kofia Nyeusi 2020 yenye kichwa "Kutoka kwa matambara hadi utajiri: kupenya na ulinzi wa mazingira ya Docker Swarm na Kubernetes'.

Kozi hiyo, iliyofundishwa na Sheila A. Berta na Sol Ozzan, ilianza mara moja kwa maelezo ya jinsi makontena ya Docker yanavyofanya kazi na safari wanayochukua yanapopelekwa Kubernetes. Hili lilikuwa ni darasa la mikono kabisa - wanafunzi walilazimika kusakinisha Docker na microk8s kwenye mashine zao kabla ya darasa - njia nzuri ya kuona jinsi zana zinavyoingiliana, kupata alama dhaifu na, muhimu zaidi, kujaribu kuzizuia.

Kwa bahati mbaya, ingawa kozi ziliahidi kuwa "mkuu" baada ya siku mbili, nilihisi kwamba kila kitu kilikuwa kinaanza, na bado nilikuwa na mengi ya kujifunza.

Kuchunguza usalama (unaokosa) wa usakinishaji wa kawaida wa Docker na Kubernetes

Kabla ya kupiga mbizi kwenye uchunguzi wangu wa hali ya juu, ni muhimu kuelezea chombo ni nini. Katika ulimwengu wa maendeleo, inachukuliwa kuwa kawaida kwa nambari iliyoandikwa kwenye mashine yako ya kibinafsi kufanya kazi kikamilifu, lakini unapojaribu kuiendesha kwenye seva mahali pengine, haifanyi kazi. Vyombo hujaribu kuondokana na tatizo hili kwa kutoa mashine za kujitegemea ambazo unaweza kuhamisha kwa urahisi kutoka kwa seva moja hadi nyingine, ukijua kwamba watafanya kazi daima. Kama jina linavyopendekeza, zina msimbo, maktaba, na programu nyingine zinazohitajika ili kukamilisha kazi. Kubernetes, kwa upande mwingine, ni jukwaa la orchestration kwa vyombo. Kimsingi, inaweza kutumika kudhibiti bila mshono mamia au maelfu ya vyombo tofauti.

Yafuatayo ni baadhi ya matokeo yangu kutoka kwa mtazamo wa timu nyekundu na bluu.

Timu Nyekundu

Maudhui mengi ya chombo huendesha kama mzizi: Hii ina maana kwamba ikiwa kontena itaathiriwa, utakuwa na ufikiaji kamili wa kontena. Hii hurahisisha hatua zinazofuata.

Kuweka docker.soksi ndani ya kontena ni hatari: Ikiwa una mizizi ndani ya kontena na pia umesakinisha Docker ndani ya kontena ambalo lina tundu la Docker (/var/run/docker.sock), una uwezo wa kuchunguza nguzo nzima, ikiwa ni pamoja na ufikiaji wa chombo kingine chochote. Ufikiaji kama huo hauwezi kuzuiwa kwa kutengwa kwa mtandao au njia zingine.

Vigezo vya mazingira mara nyingi huwa na data ya siri: Mara nyingi, watu hutuma nywila kwenye kontena kwa kutumia vigeu vya kawaida vya mazingira. Kwa hivyo ikiwa una ufikiaji wa akaunti, unaweza kupeleleza anuwai za mazingira ili baadaye kupanua nguvu zako.

API ya Docker inaweza kutoa habari nyingi: API ya Docker, inaposanidiwa kwa chaguo-msingi, huendesha bila idhini na inaweza kutoa tani ya habari. Kwa kutumia Shodan, unaweza kupata orodha ya bandari zilizo wazi kwa urahisi, kisha upate maelezo ya kina kuhusu nguzo - na uendelee kukamata kikamilifu. TrendMicro aliandika kuhusu hili makala ya kuvutia zaidi.

Timu ya Bluu

Usiendeshe yaliyomo kwenye kontena kama mzizi: Hata ingawa ni rahisi kukimbia kama mzizi, hupaswi kuifanya. Badala yake, endesha programu zilizo na ruhusa za kuweka upya kwa kuonyesha uid, ama kwa kutumia --user chaguo wakati wa kukimbia kutoka kwa CLI, au kwa kubainisha USER kwenye Dockerfile.

Usiruhusu programu kusakinishwa kwenye vyombo: Karibu kila shambulio huanza na kupanda kitu. Kutoka nmap hadi ifconfig hadi Docker yenyewe (ndani ya kontena), kusanikisha kitu chochote kwenye kontena imekuwa kawaida. Kwa sababu hiyo hiyo, unapaswa kuzuia kila bandari zisizotumiwa. Hii pia husaidia kuzuia amri za udhibiti zisisambazwe wakati mashine yako imeambukizwa. Mbali na kuzuia usakinishaji wa programu, inafaa kuhakikisha kuwa idadi ya chini ya programu zinazohitajika kukamilisha kazi hiyo imewekwa kwenye chombo yenyewe.

Linda docker.sock: Ni lazima ilindwe kwa sababu mawasiliano kati ya chombo na nguzo huchakatwa kupitia tundu hili. Kwa kuwa sitaki kwenda kwa undani katika nakala hii, soma dokezo kutoka kwa Docker, nini kinaweza kutokea, na pia jinsi ya kuzuia yote.

Tumia siri za Docker badala ya anuwai za mazingira: Kuna siri tangu 2017 hivi. Ingawa hii si salama, bado ni bora kuliko vigezo vya mazingira kwa kupitisha data ya siri kwenye kontena.

Iwapo makala yamekuza hamu yako katika vyombo, unaweza kusakinisha kwa urahisi Docker au microk8s (toleo dogo la Kubernetes). Hapa kuna maagizo ya kusakinisha Docker kwa Linux na MacOS, na hapa — maagizo ya kusakinisha microk8s kwa Windows, Linux na MacOS.

Baada ya ufungaji unaweza kwenda huu ni mwongozo wa kuanza haraka kutoka kwa Docker, chaguo sawa inayotolewa na kwa microk8s.

Ikiwa unataka au unahitaji kuchukua kozi ya kina juu ya Docker, ambayo wasemaji wa vitendo huchunguza zana zake zote: kutoka kwa vifupisho vya msingi hadi vigezo vya mtandao, nuances ya kufanya kazi na mifumo mbalimbali ya uendeshaji na lugha za programu, kisha jaribu "Kozi ya video ya Docker" Utafahamu teknolojia na kuelewa wapi na jinsi bora ya kutumia Docker. Na wakati huo huo, pata kesi bora za mazoezi - ni bora kujifunza kwa usalama na kwa usaidizi wa watendaji kutoka kwa hadithi kuhusu reki kuliko kibinafsi kutoka kwa reki zenyewe na vipini vyenye miiba.

Chanzo: mapenzi.com

Kuongeza maoni