Chyby zabezpečenia v bezpečnostných skeneroch pre obrázky kontajnerov Docker
Publikovaný výsledky z testovacích nástrojov na identifikáciu neopravených zraniteľností a identifikáciu bezpečnostných problémov v izolovaných obrázkoch kontajnerov Docker. Audit ukázal, že 4 zo 6 známych obrazových skenerov Docker obsahovali kritické zraniteľnosti, ktoré umožňovali priamo napadnúť samotný skener a dosiahnuť spustenie jeho kódu v systéme, v niektorých prípadoch (napríklad pri použití Snyk) s právami root.
Na útok musí útočník jednoducho spustiť kontrolu svojho súboru Dockerfile alebo manifest.json, ktorý obsahuje špeciálne navrhnuté metadáta, alebo umiestniť súbory Podfile a gradlew do obrázka. Využite prototypy podarilo pripraviť pre systémy WhiteSource, Snyk, Fossa и Kotva. Balík ukázal najlepšiu bezpečnosť Clair, pôvodne napísaný s ohľadom na bezpečnosť. Ani v balení neboli zistené žiadne problémy. Trivy. V dôsledku toho sa dospelo k záveru, že kontajnerové skenery Docker by sa mali spúšťať v izolovaných prostrediach alebo by sa mali používať iba na kontrolu vlastných obrázkov a že pri pripájaní takýchto nástrojov k automatizovaným systémom nepretržitej integrácie je potrebné postupovať opatrne.
Vo FOSSA, Snyk a WhiteSource bola zraniteľnosť spojená s volaním externého správcu balíkov na určenie závislostí a umožnila vám organizovať vykonávanie vášho kódu zadaním dotykových a systémových príkazov v súboroch. gradlew и Podfile.
Snyk a WhiteSource mali navyše nájdenézraniteľnosti, súvisiace s organizáciou spúšťania systémových príkazov pri parsovaní Dockerfile (napr. v Snyku cez Dockefile bolo možné nahradiť utilitu /bin/ls vyvolanú skenerom a vo WhiteSurce bolo možné nahradiť kód cez argumenty v vo forme „echo ';touch /tmp/hacked_whitesource_pip;=1.0 ′“).
Zraniteľnosť kotvy bol volaný pomocou pomôcky skopeo na prácu s obrázkami dockerov. Operácia sa zredukovala na pridanie parametrov ako '"os": "$(touch hacked_anchore)"' do súboru manifest.json, ktoré sú nahradené pri volaní skopeo bez správneho escapovania (boli vystrihnuté iba znaky ";&<>", ale konštrukcia "$( )").
Ten istý autor vykonal štúdiu účinnosti identifikácie neopravených zraniteľností pomocou bezpečnostných skenerov kontajnerov Docker a úrovne falošných poplachov (Časť 1, Časť 2, Časť 3). Nižšie sú uvedené výsledky testovania 73 obrázkov obsahujúcich známe zraniteľnosti a tiež vyhodnotenie účinnosti určovania prítomnosti typických aplikácií v obrázkoch (nginx, kocúr, haproxy, gunicorn, redis, ruby, node).