Konttiteknologioiden runc-työkalussa kontista karkaamisen mahdollistava haavoittuvuus
Haavoittuvuus4/2019
runc on konttiteknologian pohjalla käytettävä työkalu, johon päällä olevat muut sovellukset, kuten Docker ja Kubernetes, nojaavat. 11.2.2019 runcista paljastui haavoittuvuus, joka mahdollistaa hyökkääjän pääsemään alla lepäävään järjestelmään käsiksi konttinsa kautta.
Julkisuuteen nousi 11.2.2019 haavoittuvuus, jossa runc-työkalun haavoittuvuuden kautta hyökkääjä pystyy korottamaan oikeuksiaan hallitsemansa kontin sisällä päästen alla lepäävään järjestelmään käsiksi. Haavoittuvuus koskee täten mm. Kubernetes- ja Docker-asennuksia, ja käyttöjärjestelmien piirissä ovat mm. RedHat Enterprise Linux, CentOS sekä Fedora. Haavoittuvuuden hyväksikäyttöä voi rajoittaa asianmukaisilla SELinux-säännöillä, mutta suosittelemme päivityksien suorittamista pysyväiskorjauksena.
Hyökkäyksen suorittamiseen hyökkääjällä täytyy olla pääsy ja muokkausoikeus olemassa olevaan konttiin tai kyky luoda uusi kontti tarjoamastaan lähdekoodista. Hyökkäyksen mahdollistavaa lähdekoodia ei ole vielä julkaistu, mutta haavoittuvuuden löytänyt tutkija julkaisee koodin saataville 18.2.2019. Korjaavat päivitykset kannattaa siis suorittaa ennen tuota päivämäärää. Haavoittuvuus on korjattu Dockerin päivityksessä 18.09.2, ja Kuberneteksen osalta itse runc-työkalun päivitys tuoreimpaan versioon korjaa tilanteen.
Haavoittuvuus vaikuttaa myös mm. osiin Amazonin palveluita sekä Google Kubernetes Engine (GKE) -sovellukseen haavoittuvan työkalun laajuuden vuoksi. Molemmat tarjoajat ohjeistavat sivustoillaan, kuinka toimia heidän palveluidensa kanssa asiaan liittyen.
Päivitys 14.2.2019
Aiemmasta tiedotuksesta poiketen haavan hyväksikäyttöön liittyvä Proof-of-Concept (PoC) -koodi on vuodettu embargosta huolimatta julkisuuteen ennen mainittua päivämäärää 18.2.2019. Tämän vuoksi on oletettavaa, että väärinkäytöksiä tai niiden yrityksiä tullaan näkemään lyhyen aikajänteen sisällä.
Suosittelemme päivittämään sovelluksen tuoreempaan versioon mahdollisimman pian, jos näin ei ole jo toimittu.
Kohde
- Palvelimet ja palvelinsovellukset
Hyökkäystapa
- Paikallisesti
Vaikutukset
- Komentojen mielivaltainen suorittaminen
- Suojauksen ohittaminen
- Käyttövaltuuksien laajentaminen
- Tietojen muokkaaminen
- Luottamuksellisen tiedon hankkiminen
Hyväksikäyttömenetelmä tiedossa
- Haavoittuvuuden havainnollistava esimerkkikoodi
Ratkaisu
- Korjaava ohjelmistopäivitys
- Ongelman rajoittaminen
Haavoittuvat ohjelmistot
Vanhemmat versiot kuin:
- Ubuntu - runc 1.0.0~rc4+dfsg1-6ubuntu0.18.10.1
- Debian - runc 0.1.1+dfsg1-2
- RedHat Enterprise Linux - docker 1.13.1-91.git07f3374.el7 (if SELinux is disabled)
- Amazon Linux - docker 18.06.1ce-7.25.amzn1.x86_64
- CoreOS - 2051.0.0
- Kops Debian - korjausta ei vielä saatavilla
- Docker - 18.09.2
Ratkaisu- ja rajoitusmahdollisuudet
- Ohjelmiston päivitys yllä mainittuihin versioihin.
- Googlen ja Amazonin palveluissa toimittajan ohjeiden mukaiset päivitykset.
Lisätietoja
- https://seclists.org/oss-sec/2019/q1/119 (Ulkoinen linkki)
- https://kubernetes.io/blog/2019/02/11/runc-and-cve-2019-5736/ (Ulkoinen linkki)
- https://aws.amazon.com/security/security-bulletins/AWS-2019-002/ (Ulkoinen linkki)
- https://cloud.google.com/kubernetes-engine/docs/security-bulletins#february-11-2019-runc (Ulkoinen linkki)
- https://github.com/docker/docker-ce/releases/tag/v18.09.2 (Ulkoinen linkki)
Lisätty tieto esimerkkikoodista.