Sårbarheter i sikkerhetsskannere for Docker-beholderbilder
Publisert resultater fra testverktøy for å identifisere uopprettede sårbarheter og identifisere sikkerhetsproblemer i isolerte Docker-beholderbilder. Tilsynet viste at 4 av 6 kjente Docker-bildeskannere inneholdt kritiske sårbarheter som gjorde det mulig å angripe selve skanneren direkte og oppnå utførelse av dens kode på systemet, i noen tilfeller (for eksempel ved bruk av Snyk) med root-rettigheter.
For å angripe må en angriper ganske enkelt starte en sjekk av Dockerfile eller manifest.json, som inkluderer spesialdesignede metadata, eller plassere Podfile og gradlew-filer inne i bildet. Utnytt prototyper klarte å forberede seg for systemer WhiteSource, Snyk, Fossa и Anker. Pakken viste den beste sikkerheten Clear, opprinnelig skrevet med sikkerhet i tankene. Ingen problemer ble identifisert i pakken heller. Trivy. Som et resultat ble det konkludert med at Docker-beholderskannere skulle kjøres i isolerte miljøer eller kun brukes til å sjekke sine egne bilder, og at det bør utvises forsiktighet når slike verktøy kobles til automatiserte kontinuerlige integrasjonssystemer.
I FOSSA, Snyk og WhiteSource var sårbarheten assosiert med å ringe en ekstern pakkebehandler for å bestemme avhengigheter og tillot deg å organisere utførelsen av koden din ved å spesifisere berørings- og systemkommandoer i filer gradlew и Podfil.
Snyk og WhiteSource hadde i tillegg funnetsårbarheter, i slekt med organiseringen av å starte systemkommandoer når du analyserer Dockerfilen (for eksempel i Snyk, gjennom Dockefile, var det mulig å erstatte /bin/ls-verktøyet kalt av skanneren, og i WhiteSurce var det mulig å erstatte kode gjennom argumenter i skjemaet "echo ';touch /tmp/hacked_whitesource_pip;=1.0 "").
Anker sårbarhet ble kalt ved hjelp av verktøyet skopeo for arbeid med docker-bilder. Operasjonen kokte ned til å legge til parametere som '"os": "$(touch hacked_anchore)"' til manifest.json-filen, som erstattes når du kaller skopeo uten riktig escape (bare ";&<>"-tegnene ble kuttet ut, men konstruksjonen "$( )").
Den samme forfatteren gjennomførte en studie av effektiviteten av å identifisere uopprettede sårbarheter ved å bruke Docker-beholdersikkerhetsskannere og nivået av falske positiver (del 1, del 2, del 3). Nedenfor er resultatene av testing av 73 bilder som inneholder kjente sårbarheter, og evaluerer også effektiviteten av å bestemme tilstedeværelsen av typiske applikasjoner i bilder (nginx, tomcat, haproxy, gunicorn, redis, rubin, node).