Predlaga se metoda napada za oddaljeno določanje fragmentov pomnilnika na strežniku

Skupina raziskovalcev s Tehnične univerze v Gradcu (Avstrija), ki je bila prej znana po razvoju napadov MDS, NetSpectre, Throwhammer in ZombieLoad, je objavila novo metodo napada (CVE-2021-3714) prek kanalov tretjih oseb na Memory- Mehanizem za deduplikacijo, ki omogoča ugotavljanje prisotnosti določenih podatkov v pomnilniku, uhajanje vsebine pomnilnika bajt za bajtom ali definiranje postavitve pomnilnika, da zaobide zaščito ASLR (Address Randomization). Nova metoda se od predhodno prikazanih različic napadov na mehanizem deduplikacije razlikuje po tem, da izvede napad z zunanjega gostitelja, pri čemer kot merilo uporabi spremembe v odzivnem času na zahteve, ki jih napadalec pošlje prek protokolov HTTP/1 in HTTP/2. Možnost izvedbe napada je bila dokazana za strežnike, ki temeljijo na Linuxu in Windowsih.

Napadi na mehanizem za deduplikacijo pomnilnika uporabljajo razliko v času obdelave pisanja kot kanal za uhajanje informacij v situacijah, ko sprememba podatkov povzroči, da mehanizem kopiranja ob pisanju (COW) klonira deduplicirano pomnilniško stran. Med delovanjem jedro zazna enake pomnilniške strani iz različnih procesov in jih združi, tako da preslika enake pomnilniške strani v eno področje fizičnega pomnilnika, da shrani samo eno kopijo. Ko eden od procesov poskuša spremeniti podatke, povezane z dedupliciranimi stranmi, pride do izjeme (page fault) in z uporabo mehanizma Copy-On-Write se samodejno ustvari ločena kopija pomnilniške strani, ki je dodeljena procesu . Za dokončanje kopije je potreben dodaten čas, kar je lahko znak, da podatke spreminja drug postopek.

Raziskovalci so pokazali, da je zamude, ki so posledica delovanja mehanizma COW, mogoče ujeti ne le lokalno, temveč tudi z analizo spremembe časa dostave odgovorov po omrežju. Predlaganih je bilo več metod za določanje vsebine pomnilnika oddaljenega gostitelja z analizo časa izvajanja zahtev prek protokolov HTTP/1 in HTTP/2. Za shranjevanje izbranih predlog se uporabljajo tipične spletne aplikacije, ki v pomnilnik shranijo informacije, prejete v zahtevah.

Splošno načelo napada je zapolnitev pomnilniške strani na strežniku s podatki, ki potencialno ponavljajo vsebino pomnilniške strani, ki je že na strežniku. Napadalec nato počaka, da jedro odstrani dvojnike in združi pomnilniško stran, preden spremeni nadzorovani dvojnik podatkov in oceni odzivni čas, da ugotovi, ali je bil zadetek uspešen.

Predlaga se metoda napada za oddaljeno določanje fragmentov pomnilnika na strežniku

Med poskusi je bila največja hitrost uhajanja informacij 34.41 bajtov na uro pri napadu prek globalnega omrežja in 302.16 bajtov na uro pri napadu prek lokalnega omrežja, kar je hitreje od drugih metod pridobivanja podatkov prek kanalov tretjih oseb ( na primer pri napadu na NetSpectre je hitrost prenosa podatkov 7.5 bajtov na eno uro).

Predlagane so tri delovne različice napada. Prva možnost vam omogoča, da določite podatke v pomnilniku spletnega strežnika, ki uporablja Memcached. Napad se zmanjša na nalaganje določenih nizov podatkov v shrambo Memcached, čiščenje dedupliciranega bloka, ponovno pisanje istega elementa in ustvarjanje pogojev za pojav COW kopiranja s spreminjanjem vsebine bloka. Med poskusom z Memcached je trajalo 166.51 sekunde, da se določi različica libc, nameščena v sistemu, ki se izvaja v virtualnem stroju.

Druga možnost je omogočila iskanje vsebine zapisov v DBMS MariaDB z uporabo shrambe InnoDB s poustvarjanjem vsebine bajt za bajtom. Napad se izvede s pošiljanjem posebej spremenjenih zahtev, kar povzroči neujemanje enega bajta na pomnilniških straneh in analizira reakcijski čas, da se ugotovi, ali je bilo ugibanje o vsebini bajta pravilno. Hitrost takšnega puščanja je nizka in znaša 1.5 bajta na uro, če je napad napaden iz lokalnega omrežja. Prednost metode je, da jo je mogoče uporabiti za obnovitev neznane vsebine pomnilnika.

Tretja možnost je omogočila popoln obhod zaščitnega mehanizma KASLR v 4 minutah in pridobitev informacij o odmiku v pomnilniku slike jedra navideznega stroja, v situaciji, ko je naslov odmika v pomnilniški strani, v kateri drugi podatki niso sprememba. Napad je bil izveden z gostitelja, ki se nahaja 14 skokov stran od napadenega sistema. Primeri kod za predstavljene napade naj bi bili objavljeni na GitHubu.

Vir: opennet.ru

Dodaj komentar