Proposto un metodo d'attacco per la determinazione remota di frammenti di memoria sul server

Un gruppo di ricercatori dell'Università Tecnica di Graz (Austria), noto in precedenza per lo sviluppo degli attacchi MDS, NetSpectre, Throwhammer e ZombieLoad, ha pubblicato un nuovo metodo di attacco (CVE-2021-3714) attraverso canali esterni al meccanismo di deduplicazione della memoria (Memory-Deduplication), che consente di determinare la presenza di determinati dati in memoria, organizzare una fuoriuscita di contenuti di memoria byte per byte o determinare la disposizione della memoria per eludere la protezione basata sulla randomizzazione degli indirizzi (ASLR). A differenza delle varianti di attacco precedentemente dimostrate sul meccanismo di deduplicazione, il nuovo metodo si distingue per l'esecuzione dell'attacco da un host esterno utilizzando come criterio le variazioni nei tempi di risposta alle richieste inviate dall'attaccante tramite i protocolli HTTP/1 e HTTP/2. La possibilità di eseguire l'attacco è stata dimostrata per 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 dell'operazione 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 kernel identifica le pagine di memoria identiche provenienti da diversi processi e le unisce, mappando le pagine di memoria identiche in un'unica area della 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 attraverso 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 costo aggiuntivo, che può indicare una modifica dei dati in conflitto con un altro processo.

I ricercatori hanno dimostrato che i ritardi causati dal meccanismo COW possono essere registrati non solo localmente, ma anche analizzando le variazioni nei tempi di consegna delle risposte attraverso la rete. Sono stati proposti diversi metodi per determinare il contenuto della memoria di un host remoto analizzando i 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 la memoria di pagine con dati che potrebbero ripetere il contenuto già presente nella memoria del server. Successivamente, l'attaccante attende il tempo necessario affinché il nucleo esegua la deduplicazione e l'unione delle pagine di memoria, dopodiché modifica il duplicato controllato dei dati e valuta il tempo di risposta per determinare il successo dell'attacco.

Proposto un metodo d'attacco per la determinazione remota di frammenti di memoria sul server

Negli esperimenti condotti, la velocità massima di perdita di informazioni è stata di 34,41 byte all'ora con un attacco tramite rete globale e 302,16 byte all'ora con un attacco attraverso una rete locale, risultando più veloce di altri metodi di estrazione dati tramite canali esterni (ad esempio, con l'attacco NetSpectre, la velocità di trasmissione dei dati è di 7,5 byte all'ora).

Sono stati proposti tre scenari di attacco. Il primo scenario consente di identificare i dati nella memoria web server, su cui viene utilizzato Memcached. L'attacco consiste nel caricare determinati set di dati nella memorizzazione Memcached, pulire il blocco deduplicato, riscrivere lo stesso elemento e creare condizioni per l'emergere del copia-on-write (COW) modificando il contenuto del blocco. Durante l'esperimento con Memcached, è stato possibile identificare la versione di libc installata nel sistema eseguito in una macchina virtuale in 166,51 secondi.

La seconda opzione ha permesso di conoscere il contenuto delle registrazioni nel database MariaDB, utilizzando lo storage InnoDB, ricreando il contenuto byte per byte. L'attacco viene effettuato inviando richieste modificate appositamente, portando a discrepanze di un byte nelle pagine di memoria e analizzando il tempo di risposta per determinare se l'ipotesi sul contenuto del byte fosse corretta. La velocità di tale fuga è modesta e ammonta a 1,5 byte all'ora durante un attacco dalla rete locale. Un vantaggio del metodo è che può essere utilizzato per recuperare contenuti sconosciuti dalla memoria.

La terza opzione ha permesso di aggirare completamente il meccanismo di protezione KASLR in 4 minuti, ottenendo informazioni sullo spostamento nella 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 cambiano. L'attacco è stato effettuato da un host che si trovava a 14 salti (hops) dal sistema attaccato. Esempi di codice per effettuare gli attacchi presentati verranno pubblicati su GitHub.

Fonte: opennet.ru

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