Konttiteknologioiden runc-työkalussa kontista karkaamisen mahdollistava haavoittuvuus | Traficom

Konttiteknologioiden runc-työkalussa kontista karkaamisen mahdollistava haavoittuvuus

12. helmikuuta 2019 klo 10.59, päivitetty 14. helmikuuta 2019 klo 9.56

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.
 

Haavoittuvuuden kohde

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

Mistä on kysymys?

  • Ohjelmiston päivitys yllä mainittuihin versioihin.
  • Googlen ja Amazonin palveluissa toimittajan ohjeiden mukaiset päivitykset.

Mitä voin tehdä?

 

Palvelimet ja palvelinsovellukset

Palvelinten ja palvelinohjelmistojen haavoittuvuudet koskevat esimerkiksi sähköisten asiointipalvelujen tarjoajia. Tyypillisiä kohteita ovat palvelinten käyttöjärjestelmät ja www- tai sähköpostipalvelinohjelmistot kuten esimerkiksi SunOS, Linux, Apache, IIS tai Sendmail.

Paikallisesti

Paikallisesti tapahtuvan hyökkäyksen voi tehdä vain pääsemällä hyökkäyksen kohteena olevan laitteen luokse ja käyttämällä sitä paikallisesti. Paikallista hyökkäystä ei voi tehdä verkkoyhteyden kautta.

Komentojen mielivaltainen suorittaminen

Komentojen mielivaltaisen suorittamisen mahdollistavaa haavoittuvuutta on pidettävä vakavana, sillä se tarkoittaa sitä, että hyväksikäyttäjä voi käyttää kohteena olevaa järjestelmää aivan kuin sen tavallinen käyttäjäkin. Se voi johtaa myös siihen, että järjestelmään murtautunut hyökkääjä voi ladata verkon kautta järjestelmään omia ohjelmiaan suoritettavaksi.

Suojauksen ohittaminen

Suojauksen ohittamisella tarkoitetaan sitä, että haavoittuvuutta hyväksikäyttämällä ohitetaan järjestelmän käytön rajoittamiseksi tehty suojaus esimerkiksi liikennöimällä palomuurin ohi suojattuun verkkoon.

Käyttövaltuuksien laajentaminen

Käyttövaltuuksien laajentaminen mahdollistaa järjestelmän käyttämisen esimerkiksi pääkäyttäjänä, tavallista käyttäjää laajemmin valtuuksin.

Tietojen muokkaaminen

Järjestelmään talletettujen tietojen muokkaaminen ei välttämättä edellytä komentojen suorittamista, käyttövaltuuksien laajentamista tai järjestelmään kirjautumista. Esimerkiksi käyttämällä hyväksi www-palvelinohjelmiston haavoittuvuutta voi hyökkääjä luvatta muuttaa palvelimella näkyvien verkkosivujen sisältöä.

Luottamuksellisen tiedon hankkiminen

Luottamuksellisten tietojen hankkiminen kohdejärjestelmästä edellyttää sitä, että sen tietosisältöä, esimerkiksi kiintolevylle talletettuja tiedostoja, pääsee lukemaan luvatta ja välittämään edelleen.

Haavoittuvuuden havainnollistava esimerkkikoodi

Proof of concept.

Korjaava ohjelmistopäivitys

Ohjelmisto- tai laitevalmistaja julkaisee tavallisesti pian uuden version tai osittaisen päivityksen ohjelmistoon tai käyttöjärjestelmään sen jälkeen kun haavoittuvuus on tullut julki. Päivitys voi olla saatavilla samalla kun haavoittuvuuskin julkaistaan, mutta usein sitä joudutaan odottelemaan jonkin aikaa.

Ongelman rajoittaminen

Vaikka varsinaista korjausta haavoittuvuuteen ei aina ole saatavilla, sen vaikutuksia voidaan useimmiten rajoittaa esimerkiksi pidättäytymällä tilapäisesti jonkin ominaisuuden käytöstä tai rajoittamalla verkkoliikennettä kohdejärjestelmään sopivasti.


14. helmikuuta 2019 klo 9.56 Lisätty tieto esimerkkikoodista.