Սովորելով սովորական Docker և Kubernetes կայանքների (բացակայող) անվտանգությունը

Սովորելով սովորական Docker և Kubernetes կայանքների (բացակայող) անվտանգությունը
Ես աշխատում եմ ՏՏ ոլորտում ավելի քան 20 տարի, բայց ինչ-որ կերպ երբեք չեմ հասել կոնտեյներների մոտ: Տեսականորեն ես հասկացա, թե ինչպես են դրանք կառուցված և ինչպես են աշխատում: Բայց քանի որ ես երբեք գործնականում չէի հանդիպել նրանց, ես վստահ չէի, թե ինչպես են նրանց գլխարկի տակ գտնվող փոխանցումները պտտվում և պտտվում:

Բացի այդ, ես չէի պատկերացնում, թե ինչպես է նրանց անվտանգությունը։ Բայց նորից, տեսությունը լավ է հնչում, և իմ գլխում մնաց հին երգը՝ «որպես անվտանգությունը մեծանում է, օգտագործելիությունը նվազում է»: Այսպիսով, ես մտածեցի, որ քանի որ ամեն ինչ այնքան հեշտ է անել բեռնարկղերի հետ, ապա այնտեղ անվտանգությունը ցածր է: Ինչպես պարզվեց, ես ճիշտ էի։

Արագ սկսելու համար ես գրանցվեցի դասընթացներին Սև գլխարկ վերնագրված 2020թ.Լաթերից մինչև հարստություն. Docker Swarm և Kubernetes միջավայրերի ներթափանցում և պաշտպանություն.

Դասընթացը, որը վարում էին Շեյլա Ա. Բերտան և Սոլ Օզզանը, անմիջապես սկսվեց նկարագրությամբ, թե ինչպես են աշխատում Docker բեռնարկղերը և ինչ ճանապարհորդում են նրանք, երբ տեղակայվում են Կուբերնետես: Սա լիովին գործնական դաս էր. ուսանողները դասից առաջ պետք է տեղադրեին Docker-ը և microk8-երը իրենց մեքենաների վրա. հիանալի միջոց էր տեսնելու, թե ինչպես են գործիքները փոխազդում միմյանց հետ, գտնել թույլ կետեր և, ամենակարևորը, փորձել արգելափակել դրանք:

Ցավոք սրտի, թեև դասընթացները խոստանում էին երկու օր հետո դառնալ «արքայազն», ես զգացի, որ ամեն ինչ նոր է սկսվում, և ես դեռ շատ բան ունեմ սովորելու։

Սովորելով սովորական Docker և Kubernetes կայանքների (բացակայող) անվտանգությունը

Նախքան իմ վեհ դիտարկումների մեջ սուզվելը, կարևոր է բացատրել, թե ինչ է կոնտեյները: Զարգացման աշխարհում նորմալ է համարվում, որ ձեր անձնական մեքենայի վրա գրված կոդը կատարյալ աշխատում է, բայց երբ փորձում եք այն գործարկել ինչ-որ տեղ սերվերի վրա, այն պարզապես չի աշխատում։ Կոնտեյներները փորձում են հաղթահարել այս խնդիրը՝ տրամադրելով ինքնուրույն մեքենաներ, որոնք հեշտությամբ կարող եք տեղափոխել մի սերվերից մյուսը՝ իմանալով, որ դրանք միշտ կաշխատեն: Ինչպես անունն է հուշում, դրանք պարունակում են կոդը, գրադարաններ և այլ ծրագրեր, որոնք անհրաժեշտ են աշխատանքը կատարելու համար: Kubernetes-ը, մյուս կողմից, է կոնտեյներների նվագախմբային հարթակ. Սկզբունքորեն, այն կարող է օգտագործվել հարյուրավոր կամ հազարավոր տարբեր բեռնարկղերի անխափան կառավարման համար:

Ստորև բերված են իմ որոշ բացահայտումներ կարմիր և կապույտ թիմի տեսանկյունից:

Կարմիր թիմ

Կոնտեյների բովանդակության մեծ մասն աշխատում է որպես արմատՍա նշանակում է, որ եթե բեռնարկղը վտանգված է, դուք լիարժեք մուտք կունենաք դեպի կոնտեյներ: Սա շատ ավելի հեշտ է դարձնում հետագա քայլերը:

Docker.sock-ը կոնտեյների ներսում տեղադրելը վտանգավոր էԵթե ​​դուք արմատ ունեք կոնտեյների ներսում, ինչպես նաև տեղադրել եք Docker կոնտեյների ներսում, որն ունի Docker վարդակից (/var/run/docker.sock), դուք հնարավորություն ունեք ուսումնասիրելու ամբողջ կլաստերը, ներառյալ ցանկացած այլ կոնտեյների հասանելիություն: Նման մուտքը հնարավոր չէ կանխել ցանցի մեկուսացման կամ այլ միջոցներով:

Շրջակա միջավայրի փոփոխականները հաճախ պարունակում են գաղտնի տվյալներՇատ դեպքերում մարդիկ գաղտնաբառեր են ուղարկում կոնտեյներ՝ օգտագործելով սովորական միջավայրի փոփոխականներ: Այսպիսով, եթե դուք մուտք ունեք հաշիվ, կարող եք լրտեսել այս միջավայրի փոփոխականները, որպեսզի հետագայում ընդլայնեք ձեր լիազորությունները:

Docker API-ն կարող է շատ տեղեկություններ տալDocker API-ն, երբ կարգավորվում է լռելյայն, աշխատում է առանց թույլտվության և կարող է արտադրել մի տոննա տեղեկատվություն: Օգտագործելով Shodan-ը, դուք կարող եք հեշտությամբ գտնել բաց նավահանգիստների ցանկը, այնուհետև ստանալ մանրամասն տեղեկություններ կլաստերի մասին և անցնել դրա ամբողջական գրավմանը: Այս մասին գրել է TrendMicro-ն ամենահետաքրքիր հոդվածը.

Կապույտ թիմ

Մի գործարկեք կոնտեյների բովանդակությունը որպես արմատԹեև ավելի հեշտ է գործարկել որպես root, դուք չպետք է դա անեք: Փոխարենը գործարկեք վերակայման թույլտվություններ ունեցող հավելվածները՝ ցուցադրելով uid-ը, կա՛մ օգտագործելով --user տարբերակը CLI-ից աշխատելիս, կա՛մ նշելով USER Dockerfile-ում:

Թույլ մի տվեք, որ ծրագրակազմը տեղադրվի տարաներումԳրեթե յուրաքանչյուր հարձակում սկսվում է ինչ-որ բան տնկելուց: nmap-ից մինչև ifconfig մինչև հենց Docker-ը (կոնտեյների ներսում), ինչ-որ բան տեղադրելը բեռնարկղում սովորական բան է եղել: Նույն պատճառով, դուք միշտ պետք է արգելափակեք բոլոր չօգտագործված նավահանգիստները: Սա նաև օգնում է կանխել կառավարման հրամանների փոխանցումը, երբ ձեր մեքենան վարակված է: Բացի ծրագրերի տեղադրումը կանխելուց, արժե համոզվել, որ առաջադրանքը կատարելու համար անհրաժեշտ հավելվածների նվազագույն քանակը տեղադրված է հենց կոնտեյներով:

Պաշտպանեք docker.sock-ըԱյն պետք է պաշտպանված լինի, քանի որ կոնտեյների և կլաստերի միջև հաղորդակցությունը մշակվում է այս վարդակից: Քանի որ այս հոդվածում չեմ ուզում մանրամասնել, կարդացեք գրառում Docker-ից, ինչ կարող է պատահել, ինչպես նաև ինչպես արգելափակել այդ ամենը։

Օգտագործեք Docker գաղտնիքները շրջակա միջավայրի փոփոխականների փոխարենԳաղտնիքներ կան մոտ 2017 թվականից. Թեև սա անվտանգ չէ, այն դեռ ավելի լավ է, քան շրջակա միջավայրի փոփոխականները գաղտնի տվյալները կոնտեյներ փոխանցելու համար:

Եթե ​​հոդվածը ձեր հետաքրքրությունն է առաջացրել բեռնարկղերի նկատմամբ, կարող եք հեշտությամբ տեղադրել Docker կամ microk8s (Kubernetes-ի փոքր տարբերակը): Այստեղ կան Linux-ի և MacOS-ի համար Docker-ի տեղադրման հրահանգներ և այստեղ — Windows-ի, Linux-ի և MacOS-ի համար microk8-ների տեղադրման հրահանգներ:

Տեղադրվելուց հետո կարող եք գնալ սա արագ մեկնարկի ուղեցույց է Docker-ից, նմանատիպ տարբերակ առաջարկվել է և microk8-ների համար:

Եթե ​​ցանկանում եք կամ պետք է անցնեք Docker-ի վերաբերյալ համապարփակ դասընթաց, որտեղ գործնական բանախոսները կուսումնասիրեն դրա բոլոր գործիքները՝ հիմնական վերացականություններից մինչև ցանցային պարամետրեր, տարբեր օպերացիոն համակարգերի և ծրագրավորման լեզուների հետ աշխատելու նրբերանգներ, ապա փորձեք «Docker վիդեո դասընթաց« Դուք կծանոթանաք տեխնոլոգիային և կհասկանաք, թե որտեղ և ինչպես լավագույնս օգտագործել Docker-ը: Եվ միևնույն ժամանակ, ձեռք բերեք լավագույն պրակտիկայի դեպքերը. ավելի լավ է անվտանգ և պրակտիկ մասնագետների աջակցությամբ սովորել փոցխերի մասին պատմություններից, քան անձամբ փոցխներից՝ սուր բռնակներով:

Source: www.habr.com

Добавить комментарий