Ranljivost v Dockerju, ki vam omogoča pobeg iz vsebnika

V kompletu orodij za upravljanje izoliranih vsebnikov dockerja Linux ugotovljeno ranljivost (CVE-2018-15664), ki vam v določenih okoliščinah omogoča dostop do gostiteljskega okolja iz vsebnika, če imate možnost zagona svojih slik v sistemu ali z dostopom do delujočega vsebnika. Težava se pojavlja v vseh različicah Dockerja in ostaja nepopravljena (predlagana, vendar še ne sprejeta, obliž, ki izvaja obešanje zabojnika med izvajanjem operacij s FS).

Ranljivost omogoča ekstrahiranje datotek iz vsebnika v poljuben del datotečnega sistema gostiteljskega sistema pri izvajanju ukaza »docker cp«. Ekstrakcija datotek se izvaja s korenskimi pravicami, kar omogoča branje ali pisanje poljubnih datotek v gostiteljskem okolju, kar je dovolj za pridobitev nadzora nad gostiteljskim sistemom (na primer, lahko prepišete /etc/shadow).

Napad je mogoče izvesti le, ko skrbnik izvede ukaz »docker cp« za kopiranje datotek v ali iz vsebnika. Tako mora napadalec nekako prepričati skrbnika Dockerja o potrebi po izvedbi te operacije in predvideti pot, uporabljeno pri kopiranju. Po drugi strani pa se napad lahko izvede na primer, ko storitve v oblaku nudijo orodja za kopiranje konfiguracijskih datotek v vsebnik, zgrajena z ukazom “docker cp”.

Težavo povzroča napaka v uporabi funkcije FollowSymlinkInScope, ki izračuna absolutno pot v glavnem datotečnem sistemu na podlagi relativne poti ob upoštevanju postavitve vsebnika. Med izvajanjem ukaza "docker cp" je kratkotrajna stanje dirke, pri katerem je pot že verificirana, a operacija še ni bila izvedena. Ker se kopiranje izvaja v kontekstu glavnega datotečnega sistema gostiteljskega sistema, lahko v določenem časovnem obdobju zamenjate povezavo z drugo potjo in sprožite kopiranje podatkov na poljubno lokacijo v datotečnem sistemu zunaj posoda.

Ker je časovno okno za nastop dirkalnih pogojev zelo omejeno v pripravljeni izkoriščanje prototipa Pri izvajanju operacij kopiranja iz vsebnika je bilo mogoče doseči uspešen napad v manj kot 1 % primerov ob ciklični zamenjavi simbolne povezave na poti, uporabljeni v operaciji kopiranja (uspešen napad je bil izveden po približno 10 sekundah poskusov za neprekinjeno kopiranje datoteke v zanki z ukazom »docker cp«).

Z izvajanjem operacije kopiranja v vsebnik lahko dosežete ponovljiv napad s prepisovanjem datotek na gostiteljski sistem v samo nekaj ponovitvah. Možnost napada je posledica dejstva, da se pri kopiranju v vsebnik uporablja koncept "chrootarchive", po katerem proces archive.go ekstrahira arhiv ne v chroot korena vsebnika, temveč v chroot nadrejeni imenik ciljne poti, ki ga nadzira napadalec, in ne ustavi izvajanja vsebnika (chroot se uporablja kot znak za izkoriščanje pogojev tekmovanja).

Vir: opennet.ru

Dodaj komentar