Toolkitissa yksittäisten Linux Docker -säilöjen hallintaan haavoittuvuus (), jonka avulla voit tietyissä olosuhteissa käyttää isäntäympäristöä säilöstä, jos sinulla on mahdollisuus käynnistää kuvasi järjestelmässä tai käyttää käynnissä olevaa säilöä. Ongelma esiintyy kaikissa Dockerin versioissa ja pysyy korjaamattomana (ehdotettu, mutta ei vielä hyväksytty, , joka toteuttaa säiliön ripustuksen suoritettaessa toimintoja FS:n kanssa).
Haavoittuvuus mahdollistaa tiedostojen purkamisen säilöstä isäntäjärjestelmän tiedostojärjestelmän mielivaltaiseen osaan "docker cp" -komentoa suoritettaessa. Tiedostojen purkaminen suoritetaan pääkäyttäjän oikeuksin, mikä mahdollistaa isäntäympäristössä olevien tiedostojen lukemisen tai kirjoittamisen, mikä riittää isäntäjärjestelmän hallintaan (voit esimerkiksi korvata /etc/shadow).
Hyökkäys voidaan suorittaa vain, kun järjestelmänvalvoja suorittaa "docker cp" -komennon tiedostojen kopioimiseksi säilöön tai sieltä. Siten hyökkääjän on jotenkin vakuutettava Docker-järjestelmänvalvoja tarpeesta suorittaa tämä toiminto ja ennustaa kopioinnissa käytetty polku. Toisaalta hyökkäys voidaan toteuttaa esimerkiksi silloin, kun pilvipalvelut tarjoavat työkaluja konfiguraatiotiedostojen kopioimiseen "docker cp" -komennolla rakennettuun säiliöön.
Ongelma johtuu virheestä toiminnon sovelluksessa , joka laskee absoluuttisen polun päätiedostojärjestelmässä suhteellisen polun perusteella ottaen huomioon säilön sijainnin. "Docker cp" -komentoa suoritettaessa lyhytaikainen , jossa polku on jo vahvistettu, mutta toimintoa ei ole vielä suoritettu. Koska kopiointi suoritetaan isäntäjärjestelmän päätiedostojärjestelmän yhteydessä, voit tietyn ajan sisällä korvata linkin toisella polulla ja aloittaa tietojen kopioimisen mielivaltaiseen paikkaan tiedostojärjestelmässä, joka ei ole kontti.
Koska aikaikkuna kilpailutilanteen esiintymiselle on hyvin rajallinen valmistautuneessa Säilöstä kopiointioperaatioita suoritettaessa onnistui hyökkäys alle 1 %:ssa tapauksista korvaamalla syklisesti symbolinen linkki kopiointioperaatiossa käytetyssä polussa (onnistunut hyökkäys toteutettiin noin 10 sekunnin yrityksen jälkeen kopioidaksesi tiedoston jatkuvasti silmukassa "docker cp" -komennolla).
Suorittamalla kopiointitoiminnon säilöön voit saavuttaa toistettavan tiedoston päällekirjoitushyökkäyksen isäntäjärjestelmää vastaan muutamalla iteraatiolla. Hyökkäysmahdollisuus johtuu siitä, että säilöön kopioitaessa käytetään "chrootarchive"-konseptia, jonka mukaan arkiston.go-prosessi purkaa arkiston ei säilön juuren chrootiin vaan säilön juuren chrootiin. kohdepolun emohakemisto, jota hyökkääjä hallitsee, eikä pysäytä säilön suorittamista (chrootia käytetään merkkinä kilpailuolosuhteiden hyödyntämiseen).
Lähde: opennet.ru
