Группа исследователей из Грацского технического университета (Австрия), ранее известная разработкой атак MDS, NetSpectre, Throwhammer и ZombieLoad, опубликовала новый метод атаки (CVE-2021-3714) по сторонним каналам на механизм дедупликации страниц памяти (Memory-Deduplication), позволяющий определить наличие в памяти определённых данных, организовать побайтовую утечку содержимого памяти или определить раскладку памяти для обхода защиты на основе рандомизации адресов (ASLR). От ранее демонстрируемых вариантов атак на механизм дедупликации новый метод отличается проведением атаки с внешнего хоста с использованием в качестве критерия изменения времени ответов на отправляемые атакующим запросы по протоколам HTTP/1 и HTTP/2. Возможность проведения атаки продемонстрирована для серверов на базе Linux и 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 servidor Pàgines de memòria amb dades que potencialment dupliquen el contingut d'una pàgina de memòria existent al servidor. L'atacant espera que el nucli realitzi la deduplicació i fusioni la pàgina de memòria, després de la qual cosa modifica les dades duplicades controlades i avalua el temps de resposta per determinar l'èxit de l'atac.

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 variants d'atac funcionals. La primera variant permet identificar dades a la memòria. servidors web, que utilitza Memcached. L'atac consisteix a carregar conjunts de dades específics a l'emmagatzematge de Memcached, esborrar un bloc deduplicat, reescriure el mateix element i crear condicions per a una còpia COW modificant el contingut del bloc. Durant l'experiment amb Memcached, va ser possible determinar la versió de libc instal·lada al sistema que s'executava en una màquina virtual en 166.51 segons.
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
