Es proposa un mètode d'atac per determinar de forma remota els fragments de memòria al servidor

Un grup d'investigadors de la Universitat Tècnica de Graz (Àustria), conegut anteriorment per desenvolupar els atacs MDS, NetSpectre, Throwhammer i ZombieLoad, ha publicat un nou mètode d'atac de canal lateral (CVE-2021-3714) contra el mecanisme de deduplicació de memòria. , que permet determinar la presència de certes dades a la memòria, organitzar una fuga byte a byte del contingut de la memòria o determinar la disposició de la memòria per evitar la protecció de l'aleatorització basada en adreces (ASLR). El nou mètode difereix de les variants d'atac demostrades anteriorment al mecanisme de deduplicació en dur a terme un atac des d'un host extern utilitzant com a criteri el canvi en el temps de resposta a les sol·licituds enviades a l'atacant mitjançant els protocols HTTP/1 i HTTP/2. S'ha demostrat la capacitat de dur a terme l'atac per a servidors basats en Linux i Windows.

Els atacs al mecanisme de deduplicació de memòria utilitzen la diferència en el temps de processament d'una operació d'escriptura com a canal per filtrar informació en situacions en què un canvi de dades condueix a la clonació d'una pàgina de memòria deduplicada mitjançant el mecanisme Copy-On-Write (COW) . Durant el funcionament, el nucli detecta pàgines de memòria idèntiques de diferents processos i les fusiona, assignant pàgines de memòria idèntiques a una àrea de memòria física per emmagatzemar només una còpia. Quan un dels processos intenta canviar les dades associades a les pàgines deduplicades, es produeix una excepció (error de pàgina) i, mitjançant el mecanisme Copy-On-Write, es crea automàticament una còpia separada de la pàgina de memòria, que s'assigna al procés. Es dedica temps addicional a completar la còpia, cosa que pot ser un signe que els canvis de dades interfereixen amb un altre procés.

Els investigadors han demostrat que els retards derivats del mecanisme COW es poden capturar no només localment, sinó també analitzant els canvis en els temps de lliurament de la resposta a la xarxa. S'han proposat diversos mètodes per determinar el contingut de la memòria des d'un host remot mitjançant l'anàlisi del temps d'execució de les sol·licituds mitjançant els protocols HTTP/1 i HTTP/2. Per desar les plantilles seleccionades, s'utilitzen aplicacions web estàndard que emmagatzemen la informació rebuda a les sol·licituds a la memòria.

El principi general de l'atac es redueix a omplir una pàgina de memòria al servidor amb dades que potencialment repeteixin el contingut d'una pàgina de memòria ja existent al servidor. Aleshores, l'atacant espera el temps necessari perquè el nucli desdupliqui i fusioni la pàgina de memòria, després modifica les dades duplicades controlades i avalua el temps de resposta per determinar si l'accés ha tingut èxit.

Es proposa un mètode d'atac per determinar de forma remota els fragments de memòria al servidor

Durant els experiments, la taxa màxima de fuga d'informació va ser de 34.41 bytes per hora quan s'ataca a través d'una xarxa global i de 302.16 bytes per hora quan s'ataca a través d'una xarxa local, que és més ràpid que altres mètodes d'extracció de dades a través de canals de tercers (per exemple, en un atac NetSpectre, la velocitat de transferència de dades és de 7.5 bytes a la una).

S'han proposat tres opcions d'atac de treball. La primera opció permet determinar les dades a la memòria del servidor web que utilitza Memcached. L'atac es redueix a carregar determinats conjunts de dades a l'emmagatzematge Memcached, esborrar el bloc deduplicat, tornar a escriure el mateix element i crear una condició perquè la còpia COW es produeixi canviant el contingut del bloc. Durant l'experiment amb Memcached, es va poder determinar en 166.51 segons la versió de libc instal·lada en un sistema que s'executava en una màquina virtual.

La segona opció va permetre conèixer el contingut dels registres al SGBD MariaDB, quan s'utilitzava l'emmagatzematge InnoDB, recreant el contingut byte a byte. L'atac es porta a terme enviant peticions especialment modificades, donant lloc a desajustos d'un sol byte a les pàgines de memòria i analitzant el temps de resposta per determinar que la conjectura sobre el contingut del byte era correcta. La taxa d'aquesta filtració és baixa i ascendeix a 1.5 bytes per hora quan s'ataca des d'una xarxa local. L'avantatge del mètode és que es pot utilitzar per recuperar continguts de memòria desconegut.

La tercera opció va permetre obviar completament el mecanisme de protecció KASLR en 4 minuts i obtenir informació sobre el desplaçament de memòria de la imatge del nucli de la màquina virtual, en una situació en què l'adreça del desplaçament es troba en una pàgina de memòria en la qual no canvien altres dades. L'atac es va dur a terme des d'un host situat a 14 salts del sistema atacat. Es promet que es publicaran exemples de codi per implementar els atacs presentats a GitHub.

Font: opennet.ru

Afegeix comentari