Cloudflare sanirao izloženost zaostalih podataka između kontejnera

Cloudflare je otklonio propust u usluzi Cloudflare Containers koji je korisniku sa plaćenim nalogom mogao omogućiti čitanje zaostalih podataka sa diska koje su ranije koristili kontejneri drugih korisnika na istom serveru. Istraživač Oren Yomtov iz kompanije Accomplish prijavio je problem 4. septembra, a Cloudflare je potpuno čišćenje završio 19. septembra. Pogođeni su bili i Cloudflare Sandboxes, izgrađeni na Containers platformi.
Problem nije omogućavao pristup aktivnom radnom opterećenju niti izbor konkretnog korisnika čiji bi podaci bili pronađeni. Cloudflare takođe navodi da istraživači nisu pokazali mogućnost izmene tuđih živih podataka ili obaranja radnog opterećenja. Kompanija kaže da korisnici ne moraju ništa da preduzimaju.
Kako su blokovi diska zadržavali stare podatke
Svaki kontejner dobija disk zasnovan na Linux mehanizmu tankog dodeljivanja prostora, koji skladište raspoređuje u blokovima od 64 KB. Po brisanju kontejnera, njegovi blokovi vraćani su u zajednički fond između naloga. U tom fondu bilo je isključeno brisanje bloka pre nove dodele, iako je brisanje uobičajeno podrazumevano ponašanje.
Kada bi novi kontejner upisao malu količinu podataka u ponovo korišćeni blok, ostatak bloka mogao je i dalje da sadrži sadržaj prethodnog kontejnera. Istraživači su u neiskorišćeni prostor upisali 4 KB, a zatim na sirovom nivou diska pročitali ceo blok. Preostalih oko 60 KB moglo je sadržati stare bajtove.
Tokom produkcionih testova prijavili su zaostali materijal u 18 od 24 pokušaja, na 20 od 22 osnovne mašine raspoređene na četiri kontinenta. Cloudflare je naveo da su pronađeni strukture direktorijuma, stranice baza podataka i strukturno potpune SQLite baze. Istraživači su pomenuli i liste direktorijuma, Chromium profile, datoteke .env i datoteke sa akreditivima, pri čemu tvrde da njihove skripte nisu prikazivale sadržaj datoteka već samo brojače i provere formata.
Sanacija i granice provere zloupotrebe
Cloudflare je najpre ponovo uključio brisanje novododeljenih blokova, čime je opisani postupak zaustavljen. Istraživači su 14. septembra potvrdili da njihov dokaz koncepta više ne radi. Ta promena, međutim, nije čistila blokove već mapirane u diskove aktivnih kontejnera niti keš pripremljenih slojeva slika na serverima.
Zbog toga je kompanija povukla svaki aktivni disk kontejnera, očistila keš slojeve i tokom mirnijih perioda ispraznila i ponovo pokrenula servere. Izradila je i detekcione potpise na osnovu dokaza koncepta i sopstvene reprodukcije napada, pa ih proverila nad sačuvanim zapisima aktivnosti diska. Navodi da je pronašla samo autorizovana testiranja istraživača i svojih inženjera, bez dokaza da je neko drugi koristio baš ovu metodu.
Obim te provere ograničen je zapisima koje je Cloudflare zadržao, a kompanija nije navela period njihove dostupnosti niti trenutak kada je nesigurna postavka uvedena. Za poslovne timove, slučaj potvrđuje da višezakupna izolacija nije samo pitanje granica kontejnera: pri izboru deljenih platformi treba proveriti kako se brišu, ponovo dodeljuju i uklanjaju diskovni blokovi, aktivni volumeni i keširani slojevi slika.

