Alle brukere, inkludert brukere med en gratis prøvekonto, kunne inntil nylig oppnå root-tilgang til i alle fall hele serverklyngen som IBMs Data Science Experience-tjeneste er basert på. Hver bruker kjører tjenestens separate Docker-konteinere. Men inne i hver konteiner lå de private TLS-nøklene som brukes til å beskytte verts-API-et til Docker Swarm. Dette skriver The Register.
Ifølge teknologikonsulenten som oppdaget tabben, Wayne Chang, kan dette sammenlignes med å legge nøklene til en fengselscelle inne i cellen.
Ved hjelp av nøklene ville det altså være mulig for brukerne å få lese- og skrivetilgang til vertsmaskinen og trolig hele klyngen som konteinerne kjøres på, men også til hundrevis av terabyte med kundedata, nettverksgrensesnitt og alt mulig annet som gjøres på de aktuelle maskinene. Alt som skulle til for å utnytte tabben, var tilgang til en gratis prøvekonto, en nettleser og selvfølgelig kunnskaper om hvordan nøklene kan brukes.
Noen få kommandoer
Nå som problemet har blitt løst, har Chang offentliggjort hvordan det kan gjøres. Via RStudio Web Environment, som tilbys som en del av Data Science Experience, kunne man i et kommandolinjegrensesnitt laste ned den vanlige, ferdigkompilerte Docker-programvaren til Linux for x64, pakke denne ut og kjøre følgende kommando:
system("DOCKER_API_VERSION=1.22 ./docker/docker -H 172.17.0.1 \
--tlscacert /certs/ca.pem --tlscert /certs/cert.pem \
--tlskey /certs/key.pem \
run -v /:/host debian cat /host/etc/shadow")
Da ville man ifølge Chang få root-tilgang til vertssystemet.
Chang oppdaget sikkerhetsproblemet den 31. januar, varslet IBM dagen etter og fikk svar den 2. februar. Den 14. februar kunngjorde IBM at sikkerhetsfeilen var blitt rettet.
En halvtime
Chang skriver at han først oppdaget at det var mulig å kjøre vilkårlig kode inne i Docker-konteinerne, noe som fikk «alarmen til å gå» hos ham. Deretter brukte han en halvtimes tid på å rote rundt i løsningen, før han fant sikkerhetsnøklene.
– Jeg mener at IBM allerede har noen fantastiske IT-sikkerhetsfolk og en ekte forpliktelse til å beskytte sine tjenester. Det handler om å innpode sikkerhetskultur og -prosesser på tvers av hele virksomheten. Når det er sagt, ethvert selskap som har produkter som lar brukere kjøre ikke-klarert kode, bør tenke lenge og nøye på systemarkitekturen sin, sier Chang til The Register.
Disse boksene bør oppgraderes: Big-IP lekker data fra minnet