Proposto un metodo di attacco per la rilevazione remota di frammenti di memoria sul server.

Un gruppo di ricercatori dell'Università Tecnica di Graz (Austria), conosciuto in precedenza per lo sviluppo di attacchi come MDS, NetSpectre, Throwhammer e ZombieLoad, ha pubblicato un nuovo metodo di attacco (CVE-2021-3714) attraverso canali secondari sul meccanismo di deduplicazione delle pagine di memoria (Memory-Deduplication), che consente di rilevare la presenza di determinati dati in memoria, organizzare una fuga di contenuti di memoria byte per byte o determinare la disposizione della memoria per eludere le protezioni basate sulla randomizzazione degli indirizzi (ASLR). Questo nuovo metodo si differenzia dalle precedenti varianti dimostrate di attacco sul meccanismo di deduplicazione, poiché conduce l'attacco da un host esterno utilizzando come criterio la variazione dei tempi di risposta alle richieste inviate dall'attaccante tramite i protocolli HTTP/1 e HTTP/2. La possibilità di eseguire l'attacco è stata dimostrata su server basati su Linux e Windows.

Gli attacchi al meccanismo di deduplicazione della memoria utilizzano come canale per la fuga di informazioni la differenza nei tempi di elaborazione delle operazioni di scrittura in situazioni in cui la modifica dei dati porta alla clonazione della pagina di memoria deduplicata tramite il meccanismo Copy-On-Write (COW). Durante il funzionamento, il nucleo del sistema determina le pagine di memoria identiche provenienti da processi diversi e le unisce, mostrando pagine di memoria identiche in un'unica area di memoria fisica per conservare solo una copia. Quando uno dei processi tenta di modificare i dati associati alle pagine deduplicate, si verifica un'eccezione (page fault) e tramite il meccanismo Copy-On-Write viene automaticamente creata una copia separata della pagina di memoria, che viene assegnata al processo. Il tempo necessario per completare la copia rappresenta un ulteriore ritardo, che può essere segno di una modifica dei dati che si sovrappongono a un altro processo.

I ricercatori hanno dimostrato che i ritardi generati dal funzionamento del meccanismo COW possono essere rilevati non solo localmente, ma anche analizzando la variazione nel tempo di consegna delle risposte di rete. Sono stati proposti diversi metodi per determinare il contenuto della memoria da un host remoto tramite l'analisi dei tempi di esecuzione delle richieste tramite i protocolli HTTP/1 e HTTP/2. Per mantenere i modelli selezionati, vengono utilizzate applicazioni web standard che conservano in memoria le informazioni ricevute nelle richieste.

Il principio generale dell'attacco consiste nel riempire server Pagine di memoria contenenti dati che potrebbero ripetere il contenuto già esistente sulla pagina di memoria del server. L'attaccante poi attende il tempo necessario affinché il kernel esegua la deduplicazione e la fusione della pagina di memoria, dopo di che modifica il duplicato controllato dei dati e valuta il tempo di risposta per determinare il successo dell'attacco.

Proposto un metodo di attacco per la rilevazione remota di frammenti di memoria sul server.

Durante gli esperimenti condotti, la massima velocità di fuga di informazioni è stata di 34,41 byte all'ora in un attacco su rete globale e di 302,16 byte all'ora in un attacco su rete locale, risultando più veloce rispetto ad altri metodi di estrazione dati tramite canali esterni (ad esempio, nell'attacco NetSpectre la velocità di trasferimento dati è di 7,5 byte all'ora).

Sono stati proposti tre scenari di attacco operativi. Il primo scenario consente di determinare i dati in memoria server web, in cui viene utilizzato Memcached. L'attacco consiste nel caricare determinati set di dati nello storage Memcached, pulire il blocco deduplicato, riscrivere lo stesso elemento e creare le condizioni per l'emergere della copia COW tramite la modifica del contenuto del blocco. Durante l'esperimento con Memcached è stato possibile determinare la versione libc installata nel sistema eseguito in una macchina virtuale in 166,51 secondi.

Il secondo scenario ha permesso di conoscere il contenuto delle registrazioni nel database MariaDB, utilizzando lo storage InnoDB, attraverso la ricostruzione del contenuto byte per byte. L'attacco viene eseguito inviando richieste appositamente modificate che portano a discrepanze di un byte nelle pagine di memoria e analizzando il tempo di risposta per determinare che il tentativo di indovinare il contenuto del byte era corretto. La velocità di tale fuga è modesta, pari a 1,5 byte all'ora in un attacco dalla rete locale. Un vantaggio di questo metodo è che può essere utilizzato per recuperare contenuti sconosciuti in memoria.

Il terzo scenario ha permesso, in 4 minuti, di aggirare completamente il meccanismo di protezione KASLR e ottenere informazioni sullo spostamento in memoria dell'immagine del kernel della macchina virtuale, in una situazione in cui l'indirizzo di spostamento si trova in una pagina di memoria i cui altri dati non vengono modificati. L'attacco è stato effettuato da un host situato a 14 salti (hops) dal sistema attaccato. Esempi di codice per effettuare gli attacchi presentati saranno promossi su GitHub.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster