Ի՞նչ է սահմանափակված կեղևը և ինչու են կարևոր ցատկող կեղևային հարձակումները
Սահմանափակված կեղևները օգտագործվում են օգտատերերի կողմից կատարվող հրամանները կառավարելու համար, հաճախ կանխելով այնպիսի գործողություններ, ինչպիսիք են՝ cd, նոր shell-երի գործարկում կամ միջավայրի փոփոխականների արտահանում: Դրանք սովորաբար տեղակայվում են CI/CD գործակալներ կամ կառուցել միջավայրեր՝ օգտատիրոջ վարքագիծը սահմանափակելու համար։ Այնուամենայնիվ, հարձակվողները փնտրում են ցատկող shell կատարելու եղանակներ, որը մեթոդ է սահմանափակ shell միջավայրերից խուսափելու և անսահմանափակ shell-երին մուտք գործելու համար, ինչպիսիք են՝ bin/bash. Մի անգամ ներսում it, հարձակվողն ունի հրամանի տողի լիակատար վերահսկողություն՝ շրջանցելով սահմանափակ միջավայրի բոլոր սահմանափակումները։
Ինչպես է աշխատում Jumping Shell-ը. Սահմանափակումից մինչև bin/bash
Թռչող խեցիի նպատակն է շահագործել սահմանափակ միջավայրերի թույլ կողմերը և առաջացնել խեցիից փախուստ, որը հանգեցնում է bin/bashՍահմանափակված արկային հարձակումներից խուսափելու տարածված տեխնիկաները ներառում են՝
$ ls /bin/bash $ /bin/bashIf bin/bash հասանելի է, այս պարզ կանչը լրացնում է այն։
Մեկ այլ տարածված մեթոդ.
$ echo "/bin/bash" > run.sh $ sh run.sh Հարձակվողները կարող են նաև շահագործել այնպիսի խմբագիրներ, ինչպիսիք են՝ vi or ավելի քիչ:
vi :set shell=/bin/bash :shell Այս մեթոդները ցույց են տալիս, թե որքան հեշտությամբ կարող է ցատկող կճեպը հանգեցնել bin/bash կատարում՝ արդյունավետորեն շրջանցելով սահմանափակ shell պաշտպանությունները։
Այս հարձակումների իրական ռիսկերը DevOps-ում
Համօգտագործվող CI/CD միջավայրերում սահմանափակված shell-երը օգտագործվում են կառուցվածքները մեկուսացնելու և ռիսկը նվազեցնելու համար: Բայց երբ հարձակվողը հաջողության է հասնում ցատկող shell-ով և հասնում է bin/bash, անվտանգության մոդելը փլուզվում է։
Ռիսկերը ներառում են.
- Շրջակա միջավայրի գաղտնիքներին չարտոնված մուտք
- Արտոնությունների բարձրացում անսահմանափակ ռեժիմով bin/bash
- Կառուցվածքի մեջ կեղծում pipelineկամ արտեֆակտներ
- Մշտական գործիքակազմի տեղակայումը ներսում pipeline
Փախուստը սահմանափակեց պարկուճը bin/bash բացում է դուռը համակարգի ամբողջական փոխզիջման համար, որը հաճախ առաջին քայլն է ավելի լայն շրջանակում DevSecOps հարձակում.
Թռիչքային Shell-ի և bin/bash-ի փախուստների մոնիթորինգ և հայտնաբերում
Թռչող արկի վարքագիծը հայտնաբերելու և փախուստի սահմանափակմամբ արկի փորձերը կանխելու համար անվտանգության թիմերը պետք է.
- Գրանցեք բոլոր shell գործողությունները, մասնավորապես՝ / bin / bash ամայացում
- Վերահսկեք խմբագրի չարաշահումը և սկրիպտի օգտագործումը որպես shell spawn վեկտորներ
- Հետևել shell կարգավորման ֆայլերի մուտքին, ինչպիսիք են՝ .bashrc or .բաշ_պրոֆիլ
Վարքային օրինաչափություններ, ինչպիսիք են մեկնարկը bin/bash Սահմանափակ միջավայրից եկող ազդանշանները պետք է համարվեն բարձր առաջնահերթության ազդանշաններ: Դրա վաղ հայտնաբերումը կարող է կանխել ավելի խորը կողմնային շարժումը:
Սահմանափակված փախուստի հարձակումների և շահագործումների կանխարգելում
Նավարկության ցատկի ռիսկերը մեղմելու և հարձակվողներին արկ նետելուց կանխելու համար bin/bash:
- Կարծրացրեք սահմանափակված պատյանները. հեռացրեք կամ արգելափակեք մուտք
- Հրամանների կատարումը սահմանափակելու համար օգտագործեք AppArmor-ը կամ SELinux-ը
- Կիրառել նվազագույն արտոնությունը ամբողջ տարածքում CI/CD դերեր և վազորդներ
- Կոնտեյներացրեք կառուցվածքներ՝ առանց դիստրիբյուտորի պատկերներով, որոնք չունեն այնպիսի կեղևներ, ինչպիսիք են bin/bash
- Ստուգեք միջավայրերը կառուցվածքներից առաջ և հետո՝ անոմալիաները հայտնաբերելու համար
Սահմանափակված shell սցենարներից խուսափելու համար անհրաժեշտ է շերտավորված կառավարում, այլ ոչ թե միայն սահմանափակ shell-երի վրա հույս դնել։ Մի ենթադրեք, որ սահմանափակ shell-երը անվտանգ են, եթե bin/bash նույնիսկ պոտենցիալ հասանելի է։
Եզրակացություն. Shell Escapes-ը մուտքի կետեր են
Սահմանափակված արկերը պաշտպանական շերտ են, այլ ոչ թե երաշխիք: Ցատկող արկերի հարձակումները թիրախավորում են թույլ մեկուսացումը և վատ վավերացումը: Ներսում լինելուց հետո / bin / bash, հարձակվողները կարող են փոխվել, համառել և վտանգել DevSecOps ենթակառուցվածքը։
Հայտնաբերումը և մեկուսացումը կարևոր են: Հրամանների գրանցման, սահմանափակ միջավայրերի և փաթեթների կառավարիչների պատշաճ մաքրման համադրությունը նվազեցնում է ազդեցության ռիսկը:
Վերջապես, գործիքներ, ինչպիսիք են Քսիգենի ապահովում են այս ռիսկերի տեսանելիությունը։ Դրանք օգնում են ապահովել կոդի ամբողջականությունը, հայտնաբերել թաղանթի անսովոր վարքագիծը և ապահովեք ձեր pipelineներքին և արտաքին սպառնալիքներից, ներառյալ նրանք, որոնք սկսվում են պարզ ցատկող խեցիով դեպի / bin / bash կամ փորձում է խուսափել սահմանափակ shell միջավայրերից։






