Sårbarhet i Docker som gör att du kan fly från behållaren

I Toolkit för hantering av isolerade Linux Docker-containrar identifieras sårbarhet (CVE-2018-15664), som under en viss uppsättning omständigheter låter dig komma åt värdmiljön från en behållare om du har möjlighet att starta dina bilder på systemet eller med tillgång till en pågående behållare. Problemet dyker upp i alla versioner av Docker och förblir oförrättat (föreslaget, men ännu inte accepterat, plåster, som implementerar upphängningen av behållaren medan man utför operationer med FS).

Sårbarheten tillåter att filer extraheras från en behållare till en godtycklig del av värdsystemets filsystem när kommandot "docker cp" körs. Filextrahering utförs med root-rättigheter, vilket gör det möjligt att läsa eller skriva vilka filer som helst i värdmiljön, vilket räcker för att få kontroll över värdsystemet (du kan till exempel skriva över /etc/shadow).

Attacken kan endast utföras när administratören kör kommandot "docker cp" för att kopiera filer till eller från behållaren. Därför måste angriparen på något sätt övertyga Docker-administratören om behovet av att utföra denna operation och förutsäga sökvägen som används vid kopiering. Å andra sidan kan en attack utföras, till exempel när molntjänster tillhandahåller verktyg för att kopiera konfigurationsfiler till en container, byggd med kommandot "docker cp".

Problemet orsakas av ett fel i tillämpningen av funktionen FöljSymlinkInScope, som beräknar den absoluta sökvägen i huvudfilsystemet baserat på den relativa sökvägen, med hänsyn till placeringen av behållaren. Medan du kör kommandot "docker cp", en kortvarig loppets skick, där sökvägen redan har verifierats, men åtgärden ännu inte har utförts. Eftersom kopieringen utförs inom ramen för värdsystemets huvudfilsystem kan du inom en angiven tidsperiod lyckas ersätta länken med en annan sökväg och initiera kopiering av data till en godtycklig plats i filsystemet utanför filsystemet. behållare.

Eftersom tidsfönstret för ett lopptillstånd att inträffa är mycket begränsat i en förberedd utnyttja prototypen När du utförde kopieringsoperationer från en behållare var det möjligt att uppnå en framgångsrik attack i mindre än 1 % av fallen när en symbolisk länk cykliskt ersattes i sökvägen som användes i kopieringsoperationen (den framgångsrika attacken utfördes efter cirka 10 sekunders försök för att kontinuerligt kopiera filen i en loop med kommandot "docker cp").

Genom att utföra en kopieringsoperation till en behållare kan du uppnå en repeterbar filöverskrivningsattack på värdsystemet på bara några få iterationer. Möjligheten för attack beror på det faktum att när man kopierar till en behållare, används konceptet "chrootarchive", enligt vilket archive.go-processen extraherar arkivet inte i chrooten av behållarroten, utan till chrooten av behållarens rot. överordnad katalog för målsökvägen, kontrollerad av angriparen, och stoppar inte körningen av behållaren (chroot används som ett tecken för att utnyttja rasförhållandena).

Källa: opennet.ru

Lägg en kommentar