Կեռիկ։ Օրը Pipeline Կոտրված (Chmod 777)
Երբ խոսքը վերաբերում է CI/CD Անվտանգության առումով, քիչ սխալներ կարող են այնքան վտանգավոր լինել, որքան chmod 777-ը գործարկելը: Դրա չարաշահումը չեղյալ է հայտարարում Linux-ի թույլտվությունները, զրկում պաշտպանության միջոցներից և բացում է դուռը հնարավոր հետին դռան հարձակման համար: Այն սկսվում է այսպես՝ CI/CD pipeline կարմիր է, թիմը արգելափակված է, և տերմինալը թքում է սարսափելի բանը.
nginx
Թույլտվությունը մերժվել է
Հիմնական պատճառը գտնելու փոխարեն, մշակողը դիմում է միջուկային տարբերակին.
⚠️ Անապահով օրինակ՝ բոլորին տրամադրում է լիարժեք մուտքի իրավունք։ Չաշխատեցնել արտադրական ռեժիմում։
chmod 777 deploy.sh
Շինարարությունը դառնում է կանաչ։ Ճնշումը նվազում է։ Բոլորը վերադառնում են աշխատանքի։ Սակայն ֆոնին, այդ մեկ հրամանը շրջանցել է Linux-ի թույլտվությունների կողմից տրամադրվող բոլոր պաշտպանիչ միջոցները՝ նախապատրաստելով հետին դռան հարձակման համար, որը կարող է վտանգել ամբողջ համակարգը։
Chmod 777-ի իրական ազդեցությունը Linux-ի թույլտվությունների վրա
Linux-ի թույլտվությունները Unix-անման համակարգերում ֆայլային մակարդակի անվտանգության հիմքն են։ Դրանք սահմանում են, թե ով կարող է կարդալ, գրել կամ կատարել ֆայլը։ Յուրաքանչյուր ֆայլ ունի՝
- Երեք տեսակի թույլտվություններկարդալ (ռ), գրել (w), և կատարել (x).
- Երեք թույլտվության խմբերսեփականատեր, խումբ և այլն։
Երբ վազում ես chmod 777, դուք բոլոր երեք խմբերին տալիս եք կարդալու, գրելու և կատարելու թույլտվություններ: Դա համարժեք է ձեր տան բոլոր դռները բաց թողնելուն, ոչ միայն ընկերների, այլև անծանոթների և անցորդների համար:
Անվտանգ ցուցադրություն.
Մեկուսացված մշակողների մեքենաներում սա կարող է անվնաս թվալ։ Սակայն համատեղ կառուցման գործակալներում, կոնտեյներացված միջավայրերում կամ բազմաօգտատեր Linux համակարգերում, chmod 777 յուրաքանչյուր ֆայլ, որին դիպչում է, վերածում է կեղծման բաց հրավերի՝ կատարյալ միջավայր ստեղծելով հետին դռան հարձակման համար։
Հարձակման վեկտոր՝ chmod 777-ից մինչև Backdoor Attack
Ահա թե ինչպես է սինգլը chmod 777 կարող է վերածվել հետին դռան հարձակում:
- Մշակողը սահմանում է chmod 777 տեղակայման կամ կառուցման սկրիպտի վրա՝ թույլտվությունների սխալը շտկելու համար
- Ֆայլը դառնում է աշխարհում գրելու համար նախատեսված. ցանկացած օգտատեր կամ գործընթաց կարող է այն փոփոխել։
- Հարձակվողը վնասակար կոդ է տեղադրում սկրիպտի մեջ
- CI/CD pipeline գործարկում է փոփոխված սկրիպտը՝ կատարելով հարձակվողի բեռը բարձրացված արտոնություններով
⚠️ Անապահով օրինակ՝ չաշխատեցնել արտադրության մեջ։ Այստեղ օգտագործվում է ռիսկային թույլտվությունները պատկերելու համար։
chmod 777 build.sh
Պարզ հարձակման հոսք.
Երբ սա հատկապես վտանգավոր է դառնում.
- Համօգտագործվող կառուցման գործակալներ բազմաթիվ թիմերի կամ նախագծերի հետ
- Հոսթի հատորների միացում Docker կամ Kubernetes փոդերում
- Բաց կոդով պահոցներ որտեղ մասնակիցները կարող են փոփոխություններ մտցնել կամ միավորել
Այս շղթան մեկնարկելուց հետո, հետին դռան հարձակումը կարող է վերածվել արտադրության, արտահոսել մուտքի տվյալները, փոփոխել արտեֆակտները կամ բացել մշտական մուտքի կետերը։
Ուսումնասիրություն. Հետին դռան հարձակում սխալ կարգավորված սկրիպտի միջոցով
Եկեք կրճատենք այն մինչև էականը.
- Մշակողը գործարկում է chmod 777 build.sh շրջանցել մի CI/CD սխալ
- Նույն միջավայրում գտնվող մեկ այլ օգտատեր կամ չարամիտ գործընթաց խմբագրում է սկրիպտը
- pipeline կատարում է վնասված սկրիպտը CI/CD ծառայության հաշվի թույլտվություններ
- Եթե այս գործընթացի ընթացքում թարմացվի խոցելի բաց կոդով փաթեթը, հետին դռան հարձակումը կարող է տարածվել արտադրության վրա։
Այսպես է chmod 777 գումարած Linux-ի թույլ թույլտվությունները կարող են հարձակվողներին ազատ մուտք գործել ձեր տեղակայման հոսք։
Ինչու են մշակողները դեռևս օգտագործում chmod 777-ը (և ինչու է այն ծուղակ)
Նույնիսկ փորձառու ծրագրավորողները ընկնում են այս թակարդը, քանի որ chmod 777 թվում է արագ լուծում, երբ՝
- Արտեֆակտների փաթեթավորումը թույլտվության մերժման սխալներ է նետում
- Shell սկրիպտները ձախողվում են Docker-ում, քանի որ դրանք կատարելի չեն։
- Համատեղ հատորների գրանցամատյանների ֆայլերը հնարավոր չէ գրել։
Բայց ահա թե ինչն է գաղտնիքը. դուերգեցողություն chmod 777 անտեսում է հիմնական պատճառը, անտեսում է Linux-ի թույլտվությունների կառավարումը և խախտում է նվազագույն արտոնությունների սկզբունքը։ Խոչընդոտը վերացնելու փոխարեն, այն հրահրում է հետին դռան հարձակում։
Chmod 777-ի անվտանգ այլընտրանքներ
If chmod 777 միջուկային տարբերակն է, սրանք վիրաբուժական հարվածներն են՝
dockerfile լավագույն փորձը.
Dockerfile
GitHub գործողություններ օրինակ.
Սրանք պատշաճ կերպով կիրառում են Linux-ի թույլտվությունները՝ արգելափակելով չարտոնված փոփոխությունները և նվազեցնելով հետին հարձակման ռիսկը։
Ինչպես հայտնաբերել և կանխել chmod 777 սխալ կարգավորումները
Pre-commit փուլ
- գնալ hooks մերժելու համար commitպարունակող chmod 777:
Կառուցման փուլ
- ինտեգրել SAST անապահով հրամանները նշելու համար
- Ձախողեք CI աշխատանքները, եթե գտնել հայտնաբերում է աշխարհում գրելու համար նախատեսված ֆայլերը
Գործողության փուլ
Սկանավորել գլոբալ գրելու հասանելիություն ունեցող ֆայլերը՝
Ցանկի գաղտնագրեր՝
Քաղաքականության կիրարկում
- Օգտագործեք Policy-as-Code-ը՝ Linux-ի թույլատրելի թույլտվությունները սահմանելու համար
- Ուղարկեք ծանուցումներ, նախքան ռիսկային տեղակայումները գործարկվեն
Երբ դուք ավտոմատացնում եք այս ստուգումները, դուք նվազեցնում եք դրա հավանականությունը chmod 777 երբևէ հասնի արտադրության, և դրա հետ մեկտեղ՝ նաև թաքուն հարձակման հավանականությունը։
DevSecOps և մշակույթ. chmod 777-ի կանխարգելումը սկզբնաղբյուրում
Անվտանգության ներկառուցում DevSecOps մշակույթ ավելի արդյունավետ է, քան այն հետագայում շտկելը։
- Քաղաքականություն-որպես-Կոդ՝ Linux-ի անվտանգ թույլտվությունները յուրաքանչյուրում կիրառելու համար pipeline
- Սկրիպտների վերանայումներ, որոնք ներառում են տեղակայման սկրիպտների թույլտվության ստուգումներ
- Անվտանգ ձևանմուշներ Docker-ի, Kubernetes-ի և CI/CD configs
Ուսուցում այն մասին, թե ինչպես chmod 777 ստեղծում է վեկտոր հետին դռների հարձակումների համար։
Ինչո՞ւ chmod 777-ը երբեք լուծում չի հանդիսանում։
Chmod 777 կարճ ճանապարհ չէ, այլ ռիսկի բազմապատկիչ է։ Այն անտեսում է Linux-ի ուշադիր մշակված թույլտվությունները, հեռացնում է պաշտպանության միջոցները և ճանապարհ է հարթում դեպի հետին դռան հարձակում, որը կարող է վտանգել ձեր տվյալները։ CI/CD pipelineև արտադրական համակարգեր։
Լուծումը միայն հրամանների փոփոխությունը չէ. այն անվտանգ թույլտվությունների ընդունումն է, ստուգումների ավտոմատացումը և ձեր համակարգում ամենաքիչ արտոնությունների մտածողության ներդրումը։ DevSecOps գործընթաց. Գործիքներ, ինչպիսիք են Քսիգենի կարող է օգնել հայտնաբերել անապահով կոնֆիգուրացիաները և աշխարհում գրվող ֆայլերը, նախքան դրանք արտադրության մեջ հասնեն՝ ձեզ ապահովելով անվտանգության ցանց՝ առանց մատակարարումը դանդաղեցնելու։




