In Toolkit-ում՝ մեկուսացված Linux Docker կոնտեյներների կառավարման համար խոցելիություն (), որը, որոշակի հանգամանքների դեպքում, թույլ է տալիս մուտք գործել հյուրընկալող միջավայր կոնտեյներից, եթե դուք հնարավորություն ունեք գործարկել ձեր պատկերները համակարգում կամ մուտք գործելու գործող կոնտեյներ: Խնդիրը հայտնվում է Docker-ի բոլոր տարբերակներում և մնում է չշտկված (առաջարկված, բայց դեռ չընդունված, , որն իրականացնում է կոնտեյների կասեցումը FS-ով գործողություններ կատարելիս):
Խոցելիությունը թույլ է տալիս ֆայլերը արտահանել կոնտեյներից դեպի հյուրընկալող համակարգի ֆայլային համակարգի կամայական մաս՝ «docker cp» հրամանը կատարելիս: Ֆայլի արդյունահանումը կատարվում է արմատային իրավունքներով, ինչը հնարավորություն է տալիս կարդալ կամ գրել ցանկացած ֆայլ հոսթ միջավայրում, ինչը բավական է հյուրընկալող համակարգի վերահսկողությունը ձեռք բերելու համար (օրինակ, կարող եք վերագրել /etc/shadow):
Հարձակումը կարող է իրականացվել միայն այն ժամանակ, երբ ադմինիստրատորը կատարում է «docker cp» հրամանը՝ ֆայլերը կոնտեյներ կամ դրանցից պատճենելու համար: Այսպիսով, հարձակվողը պետք է ինչ-որ կերպ համոզի Docker-ի ադմինիստրատորին այս գործողությունը կատարելու անհրաժեշտության մասին և կանխատեսի պատճենման ժամանակ օգտագործվող ուղին: Մյուս կողմից, հարձակումը կարող է իրականացվել, օրինակ, երբ ամպային ծառայությունները տրամադրում են գործիքներ՝ կոնֆիգուրացիայի ֆայլերը կոնտեյների մեջ պատճենելու համար, որը կառուցված է «docker cp» հրամանի միջոցով:
Խնդիրն առաջացել է ֆունկցիայի կիրառման թերությունից , որը հաշվարկում է բացարձակ ուղին հիմնական ֆայլային համակարգում՝ հարաբերական ուղու հիման վրա՝ հաշվի առնելով կոնտեյների տեղադրումը։ «docker cp» հրամանը կատարելիս կարճաժամկետ , որի ուղին արդեն ստուգված է, բայց վիրահատությունը դեռ չի կատարվել։ Քանի որ պատճենումն իրականացվում է հյուրընկալող համակարգի հիմնական ֆայլային համակարգի համատեքստում, որոշակի ժամանակահատվածում կարող եք փոխել հղումը մեկ այլ ճանապարհով և սկսել տվյալների պատճենումը ֆայլային համակարգի կամայական վայրում, որը դուրս է գտնվում: կոնտեյներ.
Քանի որ մրցավազքի պայմանների առաջացման ժամանակային պատուհանը խիստ սահմանափակ է պատրաստված վիճակում Կոնտեյներից պատճենահանման գործողություններ կատարելիս հնարավոր է եղել հաջող գրոհի հասնել դեպքերի 1%-ից պակաս դեպքում, երբ կրկնօրինակման գործողության մեջ օգտագործվող ճանապարհին ցիկլային կերպով փոխարինել է խորհրդանշական հղումը (հաջող հարձակումն իրականացվել է մոտավորապես 10 վայրկյան փորձից հետո: ֆայլը անընդհատ կրկնօրինակելու համար «docker cp» հրամանով):
Կատարելով պատճենման գործողություն կոնտեյների մեջ, դուք կարող եք հասնել կրկնվող ֆայլի վերագրանցման հարձակման հյուրընկալող համակարգի վրա ընդամենը մի քանի կրկնություններում: Հարձակման հավանականությունը պայմանավորված է նրանով, որ կոնտեյների մեջ պատճենելիս օգտագործվում է «chrootarchive» հայեցակարգը, ըստ որի archive.go պրոցեսը արխիվը հանում է ոչ թե կոնտեյների արմատի chroot, այլ chroot-ի մեջ։ թիրախային ուղու մայր գրացուցակը, որը վերահսկվում է հարձակվողի կողմից և չի դադարեցնում կոնտեյների կատարումը (chroot-ն օգտագործվում է որպես մրցավազքի պայմանները շահագործելու նշան):
Source: opennet.ru
