Zraniteľnosť v Dockeri, ktorá vám umožňuje uniknúť z kontajnera

V súprave nástrojov na správu izolovaných kontajnerov Linux Docker identifikované zraniteľnosť (CVE-2018 15664,), ktorý vám za určitých okolností umožňuje prístup k hostiteľskému prostrediu z kontajnera, ak máte možnosť spustiť svoje obrázky v systéme alebo s prístupom k spustenému kontajneru. Problém sa objavuje vo všetkých verziách Dockera a zostáva neopravený (navrhnutý, ale zatiaľ neprijatý, náplasť, ktorá realizuje zavesenie kontajnera pri vykonávaní operácií s FS).

Táto chyba zabezpečenia umožňuje extrahovanie súborov z kontajnera do ľubovoľnej časti súborového systému hostiteľského systému pri vykonávaní príkazu „docker cp“. Extrakcia súborov sa vykonáva s právami root, čo umožňuje čítať alebo zapisovať akékoľvek súbory v hostiteľskom prostredí, čo stačí na získanie kontroly nad hostiteľským systémom (napríklad môžete prepísať /etc/shadow).

Útok je možné vykonať iba vtedy, keď správca vykoná príkaz „docker cp“ na skopírovanie súborov do alebo z kontajnera. Útočník teda potrebuje nejakým spôsobom presvedčiť správcu Docker o potrebe vykonať túto operáciu a predpovedať cestu použitú pri kopírovaní. Na druhej strane, útok môže byť vykonaný napríklad vtedy, keď cloudové služby poskytujú nástroje na kopírovanie konfiguračných súborov do kontajnera vytvoreného pomocou príkazu „docker cp“.

Problém je spôsobený chybou v aplikácii funkcie SledujteSymlinkInScope, ktorý vypočíta absolútnu cestu v hlavnom súborovom systéme na základe relatívnej cesty s prihliadnutím na umiestnenie kontajnera. Pri vykonávaní príkazu "docker cp" krátkodobo rasový stav, v ktorom už bola cesta overená, ale operácia ešte nebola vykonaná. Keďže kopírovanie sa vykonáva v kontexte hlavného súborového systému hostiteľského systému, v rámci určeného časového obdobia môžete nahradiť odkaz inou cestou a spustiť kopírovanie údajov na ľubovoľné miesto v súborovom systéme mimo kontajner.

Pretože časové okno pre výskyt rasovej podmienky je v pripravenom stave veľmi obmedzené využiť prototyp Pri vykonávaní operácií kopírovania z kontajnera bolo možné dosiahnuť úspešný útok v menej ako 1 % prípadov pri cyklickom nahrádzaní symbolického odkazu v ceste použitej pri operácii kopírovania (úspešný útok bol vykonaný približne po 10 sekundách pokusov na nepretržité kopírovanie súboru v slučke pomocou príkazu „docker cp“).

Vykonaním operácie kopírovania do kontajnera môžete dosiahnuť opakovateľný útok prepisovania súborov na hostiteľský systém v niekoľkých iteráciách. Možnosť útoku je spôsobená tým, že pri kopírovaní do kontajnera sa používa koncept „chrootarchive“, podľa ktorého proces archive.go extrahuje archív nie do chrootu koreňa kontajnera, ale do chrootu nadradený adresár cieľovej cesty, kontrolovaný útočníkom, a nezastaví vykonávanie kontajnera (chroot sa používa ako znak na zneužitie rasových podmienok).

Zdroj: opennet.ru

Pridať komentár