Studimi i (mungesës së) sigurisë së instalimeve tipike të Docker dhe Kubernetes

Studimi i (mungesës së) sigurisë së instalimeve tipike të Docker dhe Kubernetes
Kam punoj në IT për më shumë se 20 vjet, por ndonjëherë nuk kam arritur të merrem me kontejnerët. Në teori e kisha kuptuar si ishin të strukturuar dhe si punonin ato. Por, duke qenë se nuk kisha përballur ndonjëherë me ta në praktikë, nuk isha i sigurt se si saktësisht funksiononin ato nën kapak.

Përveç kësaj, nuk kisha asnjë informacion për sigurinë e tyre. Por përsëri, teoria tingëllon bukur, dhe kënga e vjetër 'kur rritet siguria, bie përshtatshmëria' ishte e ngritur në mendjen time. Prandaj mendoja se, nëse është kaq e lehtë të punohet me kontejnerët, atëherë siguria aty është shumë e ulët. Siç doli, isha i saktë.

Për një fillim të shpejtë, u regjistrova në kurse Black Hat 2020 me titull "Nga llumi në princ: infiltrimi dhe mbrojtja e mjediseve Docker Swarm dhe Kubernetes».

Kursi, i zhvilluar nga Sheila A. Berta dhe Sol Ozzan, filloi menjĂ«herĂ« me shpjegimin se si funksionojnĂ« kontejnerĂ«t Docker, si dhe rrugĂ«n qĂ« ndoqin ato kur vendosen nĂ« Kubernetes. Ishte njĂ« sesion krejtĂ«sisht praktik – studentĂ«t duhej tĂ« instalonin paraprakisht Docker dhe microk8s nĂ« makinat e tyre pĂ«rpara se tĂ« fillonin, njĂ« mĂ«nyrĂ« e shkĂ«lqyer pĂ«r tĂ« parĂ« ndĂ«rlidhjen e mjeteve me njĂ«ri-tjetrin, pĂ«r tĂ« gjetur pika tĂ« dobĂ«ta dhe, mĂ« e rĂ«ndĂ«sishmja, pĂ«r t'i bllokuar ato.

Fatkeqësisht, ndonëse kurset premtonin të bëheshin 'princ' pas dy ditësh, unë ndieja se gjithçka sapo kishte filluar dhe m'u duhej të mësoja akoma shumë.

Studimi i (mungesës së) sigurisë së instalimeve tipike të Docker dhe Kubernetes

Para se të kaloj në vëzhgimet e mia të larta, është e rëndësishme të shpjegohet se çfarë është një kontejner. Në botën e zhvillimit, konsiderohet normale situata ku kodi i shkruar në makinën tuaj personale punon në mënyrë perfekte, por kur përpiqeni ta nisin atë diku në server, ai thjesht nuk punon. Kontejnerët përpiqen të tejkalojnë këtë problem duke ofruar makina autonome, të cilat mund t'i transportoni lehtësisht nga një server në tjetrin, duke ditur se ato do të funksionojnë gjithmonë. Siç e tregon emri, ato përmbajnë kodin, bibliotekat dhe software të tjera të nevojshme për funksionimin. Kubernetes, nga ana tjetër, është një platformë orkestrimi për kontejnerët. Në parim, me të mund të menaxhoni pa ndërprerje qindra ose mijëra kontejnerë të ndryshëm.

Më poshtë janë disa përfundime që kam dalë nga këndvështrimi i ekipit të kuq dhe atij të blu.

Ekipi i kuq

Shumica e përmbajtjes së kontejnerëve funksionon nën root: kjo do të thotë se nëse kompromentoni një kontejner, do të keni qasje të plotë në atë kontejner. Kjo e bën hapat pasues significativamente më të lehtë.

Montimi i docker.sock brenda kontejnerit është i rrezikshëm: nëse fitoni root brenda kontejnerit dhe po ashtu instaluat Docker brenda kontejnerit që ka socket-in Docker (/var/run/docker.sock), keni një mundësi potenciale për të shqyrtuar një kluster të tërë, duke përfshirë qasjen në çdo kontejner tjetër. Ky lloj qasjeje nuk është e mundur të parandalohet as me izolimin rrjetor, as me mënyra të tjera.

Variablat e mjedisit shpesh përmbajnë të dhëna sekrete: në shumicën e rasteve, njerëzit dërgojnë fjalëkalime në kontejner përmes variablave të zakonshëm të ambientit. Pra, nëse keni qasje në llogarinë, mund të shikoni këta variabla të ambientit për të zgjeruar më pas kompetencat tuaja.

Docker API mund tĂ« japĂ« shumĂ« informacion: Docker API, kur Ă«shtĂ« konfiguruar nĂ« mĂ«nyrĂ« standarde, punon pa autorizim dhe mund tĂ« ofrojĂ« njĂ« mori informacioni. Duke pĂ«rdorur Shodan mund tĂ« gjeni lehtĂ«sisht njĂ« listĂ« tĂ« porteve tĂ« hapura, gjithashtu mund tĂ« merrni informacion tĂ« hollĂ«sishĂ«m pĂ«r klustĂ«rin – dhe tĂ« kaloni nĂ« kapjen e tij tĂ« plotĂ«. TrendMicro kanĂ« shkruar njĂ« artikull shumĂ« interesant.

Ekipi i blusë

Mos e lançoni pĂ«rmbajtjen e kontejnerĂ«ve nĂ«n root: megjithĂ«se Ă«shtĂ« mĂ« e lehtĂ« tĂ« lancosh nĂ«n root, nuk duhet ta bĂ«ni kĂ«tĂ«. NĂ« vend tĂ« kĂ«saj, lanconi aplikacionet me privilegje tĂ« ulura duke shfaqur uid thjesht me parametĂ«r —user kur punoni me CLI, ose duke e caktuar USER nĂ« Dockerfile.

Mos lejoni instalimin e programeve në kontejnerë: pothuajse çdo sulm fillon me instalimin e diçkaje. Duke filluar nga nmap dhe duke përfunduar me ifconfig e më pas vetë Docker (brenda kontejnerit), instalimi i diçkaje brenda kontejnerit ka qenë një normë. Për këtë arsye, duhet të bllokoni gjithmonë të gjithë portet e papërdorura. Kjo gjithashtu ndihmon për të parandaluar dërgimin e komandave të menaxhimit kur kompjuteri juaj infektohet. Përveç parandalimit të instalimit të programeve, është e rëndësishme të siguroheni që në vetë kontejneri të jetë instaluar numri minimal i aplikacioneve të nevojshme për të përfunduar detyrën.

Mbroni docker.sock: duhet mbrojtur, sepse përmes këtij socket-i trajtohet komunikimi mes kontejnerit dhe klusterit. Duke qenë se nuk dua të futem në detaje në këtë artikull, ju lutem lexoni shënimin nga Docker, çfarë mund të ndodhë, si dhe se si mund ta bllokoni këtë të gjithë.

Përdorni sekretet Docker në vend të variablave të ambientit: Sekretet ekzistojnë që nga viti 2017. Edhe pse nuk është e sigurt, është më mirë se sa variablat e mjedisit për të transferuar të dhëna sekrete në konteiner.

NĂ«se artikulli ju ka interesante pĂ«r konteinerĂ«t — mund tĂ« instaloni lehtĂ«sisht Docker ose microk8s (njĂ« version i vogĂ«l i Kubernetes). KĂ«tu ka udhĂ«zime pĂ«r instalimin e Docker pĂ«r Linux dhe MacOS, dhe kĂ«tu — udhĂ«zime pĂ«r instalimin e microk8s pĂ«r Windows, Linux dhe MacOS.

Pas instalimit mund të ndiqni këtë udhëzues për fillestarë nga Docker, një variant i ngjashëm propozohet edhe për microk8s.

NĂ«se keni dĂ«shirĂ« ose nevojĂ« pĂ«r tĂ« ndjekur njĂ« kurs tĂ« plotĂ« mbi Docker, nĂ« tĂ« cilin folĂ«s praktikĂ« analizojnĂ« tĂ« gjithĂ« mjetet e tij: nga abstraksionet bazĂ« te parametrat e rrjetit, nuancat e punĂ«s me sisteme tĂ« ndryshme operative dhe gjuhĂ« programimi, provoni "Kursi video pĂ«r Docker". Do tĂ« njiheni me teknologjinĂ« dhe do tĂ« kuptoni se ku dhe si tĂ« pĂ«rdorni mĂ« mirĂ« Docker. Gjithashtu do tĂ« merrni raste nga praktikat mĂ« tĂ« mira — mĂ« mirĂ« tĂ« mĂ«soni nĂ« siguri dhe me mbĂ«shtetje nga praktikantĂ« pĂ«rmes historive mbi pengesat, sesa vetĂ« pĂ«rmes pengesave me doreza tĂ« mprehta.

Burimi: habr.com

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster