Cënueshmëri në Docker që ju lejon të ikni nga kontejneri

Në paketën e veglave për menaxhimin e kontejnerëve të izoluar të Linux Docker identifikuar cenueshmëria (CVE-2018-15664), i cili, në një grup të caktuar rrethanash, ju lejon të përdorni mjedisin pritës nga një kontejner nëse keni aftësinë për të nisur imazhet tuaja në sistem ose me akses në një kontejner që funksionon. Problemi shfaqet në të gjitha versionet e Docker dhe mbetet i pazgjidhur (i propozuar, por ende i pa pranuar, patch, i cili zbaton pezullimin e kontejnerit gjatë kryerjes së veprimeve me FS).

Dobësia lejon që skedarët të nxirren nga një kontejner në një pjesë arbitrare të sistemit të skedarëve të sistemit pritës gjatë ekzekutimit të komandës "docker cp". Nxjerrja e skedarit kryhet me të drejta rrënjësore, gjë që bën të mundur leximin ose shkrimin e çdo skedari në mjedisin pritës, gjë që mjafton për të fituar kontrollin e sistemit pritës (për shembull, mund të mbishkruash /etc/shadow).

Sulmi mund të kryhet vetëm kur administratori ekzekuton komandën "docker cp" për të kopjuar skedarët në ose nga kontejneri. Kështu, sulmuesi duhet të bindë disi administratorin Docker për nevojën për të kryer këtë operacion dhe të parashikojë rrugën e përdorur gjatë kopjimit. Nga ana tjetër, një sulm mund të kryhet, për shembull, kur shërbimet cloud ofrojnë mjete për kopjimin e skedarëve të konfigurimit në një kontejner, të ndërtuar duke përdorur komandën "docker cp".

Problemi është shkaktuar nga një defekt në aplikimin e funksionit Ndiqni SymlinkInScope, i cili llogarit shtegun absolut në sistemin kryesor të skedarëve bazuar në shtegun relativ, duke marrë parasysh vendosjen e kontejnerit. Gjatë ekzekutimit të komandës "docker cp", një afatshkurtër gjendja e garës, në të cilin shtegu tashmë është verifikuar, por operacioni nuk është kryer ende. Meqenëse kopjimi kryhet në kontekstin e sistemit kryesor të skedarëve të sistemit pritës, brenda një periudhe të caktuar kohore, mund të arrini të zëvendësoni lidhjen me një shteg tjetër dhe të filloni kopjimin e të dhënave në një vendndodhje arbitrare në sistemin e skedarëve jashtë enë.

Meqenëse dritarja kohore për të ndodhur një kusht gare është shumë e kufizuar në një të përgatitur eksploat prototipi Gjatë kryerjes së operacioneve të kopjimit nga një kontejner, ishte e mundur të arrihej një sulm i suksesshëm në më pak se 1% të rasteve kur zëvendësohej ciklikisht një lidhje simbolike në rrugën e përdorur në operacionin e kopjimit (sulmi i suksesshëm u krye pas rreth 10 sekondash përpjekjesh për të kopjuar vazhdimisht skedarin në një cikli me komandën “docker cp”).

Duke kryer një operacion kopjimi në një kontejner, mund të arrini një sulm të përsëritshëm të mbishkrimit të skedarit në sistemin pritës në vetëm disa përsëritje. Mundësia e sulmit është për faktin se kur kopjohet në një kontejner, përdoret koncepti "chrootarchive", sipas të cilit procesi archive.go e nxjerr arkivin jo në rrënjën e rrënjës së kontejnerit, por në kroin e drejtoria mëmë e shtegut të synuar, e kontrolluar nga sulmuesi dhe nuk e ndalon ekzekutimin e kontejnerit (chroot përdoret si shenjë për të shfrytëzuar kushtet e garës).

Burimi: opennet.ru

Shto një koment