Группа исследователей из Грацского технического университета (Австрия), ранее известная разработкой атак MDS, NetSpectre, Throwhammer и ZombieLoad, опубликовала новый метод атаки (CVE-2021-3714) по сторонним каналам на механизм дедупликации страниц памяти (Memory-Deduplication), позволяющий определить наличие в памяти определённых данных, организовать побайтовую утечку содержимого памяти или определить раскладку памяти для обхода защиты на основе рандомизации адресов (ASLR). От ранее демонстрируемых вариантов атак на механизм дедупликации новый метод отличается проведением атаки с внешнего хоста с использованием в качестве критерия изменения времени ответов на отправляемые атакующим запросы по протоколам HTTP/1 и HTTP/2. Возможность проведения атаки продемонстрирована для серверов на базе Linux и Windows.
L'attacchi à u mecanismu di deduplicazione di memoria utilizanu a diffarenza in u tempu di trasfurmazioni di una operazione di scrittura cum'è un canale per fughje l'infurmazioni in situazioni induve un cambiamentu di dati porta à a clonazione di una pagina di memoria deduplicata utilizendu u mecanismu Copy-On-Write (COW). . Durante l'operazione, u kernel rileva pagine di memoria identiche da diversi prucessi è li unisce, mapping pagine di memoria identiche in una sola area di memoria fisica per almacenà una sola copia. Quandu unu di i prucessi prova di cambià e dati assuciati cù e pagine deduplicate, una eccezzioni (pagina di difettu) si trova è, utilizendu u mecanismu Copy-On-Write, una copia separata di a pagina di memoria hè automaticamente creata, chì hè assignatu à u prucessu. U tempu supplementu hè passatu à compie a copia, chì pò esse un signu di cambiamenti di dati chì interferiscenu cù un altru prucessu.
I ricercatori anu dimustratu chì i ritardi risultanti da u mecanismu COW ponu esse catturati micca solu in u locu, ma ancu analizendu i cambiamenti in i tempi di consegna di risposta nantu à a reta. Diversi metudi sò stati pruposti per determinà u cuntenutu di a memoria da un host remoto analizendu u tempu d'esekzione di e dumande nantu à i protokolli HTTP/1 è HTTP/2. Per salvà mudelli selezziunati, l'applicazioni web standard sò usate chì guardanu l'infurmazioni ricevute in e dumande in memoria.
U principiu generale di l'attaccu si riduce à riempie servitore Pagine di memoria cù dati chì potenzialmente duplicanu u cuntenutu di una pagina di memoria esistente nantu à u servitore. L'attaccante aspetta tandu chì u kernel esegua a deduplicazione è fusioni a pagina di memoria, dopu à quale mudifica i dati duplicati cuntrullati è valuta u tempu di risposta per determinà u successu di l'attaccu.

Duranti l'esperimenti, a rata massima di fuga d'infurmazioni era di 34.41 bytes per ora quandu attaccà à traversu una reta glubale è 302.16 bytes per ora quandu attaccà à traversu una reta lucale, chì hè più veloce cà altri metudi di estrazione di dati attraversu canali di terzu (per esempiu, in un attaccu di NetSpectre, a tarifa di trasferimentu di dati hè di 7.5 byte à una ora).
Trè varianti d'attaccu funziunali sò state pruposte. A prima variante permette d'identificà i dati in memoria. servitori web, chì usa Memcached. L'attaccu cunsiste à caricà insemi di dati specifici in u almacenamentu Memcached, sguassà un bloccu deduplicatu, riscrive u listessu elementu è creà cundizioni per una copia COW mudificendu u cuntenutu di u bloccu. Durante l'esperimentu cù Memcached, hè statu pussibule di determinà a versione libc installata nantu à u sistema chì funziona in una macchina virtuale in 166.51 secondi.
A seconda opzione hà permessu di scopre u cuntenutu di i registri in u DBMS MariaDB, quandu si usa l'almacenamiento InnoDB, ricreendu u cuntenutu byte by byte. L'attaccu hè realizatu da l'inviu di dumande speciale mudificate, chì risultanu in discrepanze di un byte in pagine di memoria è analizendu u tempu di risposta per determinà chì l'ipotesi di u cuntenutu di u byte era curretta. U ritmu di tale fuga hè bassu è ammonta à 1.5 bytes per ora quandu attaccà da una reta lucale. U vantaghju di u metudu hè chì pò esse usatu per ricuperà u cuntenutu di memoria scunnisciutu.
A terza opzione hà permessu di passà cumplettamente u mecanismu di prutezzione KASLR in 4 minuti è uttene infurmazioni nantu à l'offset di memoria di l'imaghjini di u kernel di a macchina virtuale, in una situazione induve l'indirizzu offset hè in una pagina di memoria in quale l'altri dati ùn cambianu micca. L'attaccu hè statu realizatu da un òspite situatu 14 hops da u sistema attaccatu. Esempi di codice per implementà l'attacchi presentati sò prumessi per esse publicati in GitHub.
Source: opennet.ru
