Nel corso degli anni abbiamo sentito tanto parlare di Spectre e Meltdown, due tra le falle di sicurezza più pericolose della storia, in quanto non solo sono state riscontrate nei processori prodotti negli ultimi 20 anni ma attualmente sono ancora presenti sui chip coinvolti, seppur con diverse mitigazioni. Sono stati inoltre rilasciati degli strumenti che permettono di verificare se il proprio processore è colpito da queste due vulnerabilità.

Per quanto Spectre e Meltdown rappresentino le due più problematiche, dal 2018 ad oggi sono saltate fuori anche altre vulnerabilità che hanno comunque colpito altri grandi brand di processori, tra cui ARM e Qualcomm, che si occupano principalmente della produzione di CPU per dispositivi mobile. Nella maggioranza dei casi, questi problemi sono riconducibili a quella che viene definita esecuzione speculativa. Con il termine esecuzione speculativa si intende quella serie di processi ed operazioni che il processore svolge prima ancora che siano effettivamente necessarie al sistema, così da ridurre i ritardi dovuti all’esecuzione delle stesse operazioni in tempi separati. La vulnerabilità sfrutta il fatto che anche nel caso in cui un processo fallisca, i dati vengono comunque memorizzati nella cache del processore. A questo punto intervengono Meltdown e Spectre, che tramite un attacco side-channel possono analizzare i tempi di accesso ad una particolare locazione di memoria per verificare se i dati siano nella cache o meno. Solitamente questo non rappresenterebbe un vero e proprio problema, se non per il fatto che per avere prestazioni elevate si effettua la lettura dei dati in memoria in un momento precedente alla verifica dei privilegi di accesso. Dunque un possibile programma malevolo sarebbe in grado di recuperare non solo i dati di uno specifico indirizzo ma anche di tutta la memoria mappata. E’ anche vero che sfruttare simili vulnerabilità richiede delle conoscenze tecniche altamente avanzate.

Nel corso degli anni i vari produttori di processori e schede madri hanno rilasciato degli aggiornamenti software che hanno potuto limitare i danni, dato che la falla risiedeva nell’hardware stesso e quindi avrebbe richiesto una nuova progettazione, a discapito delle prestazioni che per forza di cose sono state decrementate. Tramite BIOS e microcode, sembra che attualmente Meltdown e Spectre non rappresentino più un grosso problema.

Secondo però una recente ricerca si è scoperto che in realtà gli attacchi microarchitetturali sono stati in realtà causati da dereferenziazione speculativa dei registri dello spazio utente nel kernel, che non solo influisce sulle più recenti CPU Intel con le più recenti mitigazioni hardware, ma anche diversi processori moderni di ARM, IBM e AMD, che in precedenza si riteneva che non fossero influenzati. Quello che prima era noto come “effetto prefetch“, relativo all’accesso dei dati memorizzati nella cache, è solamente la punta dell’iceberg di un problema ancora più grande. Dalla ricerca effettuata dai ragazzi della Università di Tecnologia di Graz e il Centro CISPA Helmholtz si sono scoperti ulteriori elementi di discussione:

  • Individuazione di diversi nuovi attacchi che sfruttano la causa principale sottostante, tra cui un attacco di traduzione degli indirizzi in contesti più limitati, la perdita diretta dei valori di registro in scenari specifici e un foreshadow end-to-end che sfrutta dati non L1.
  • Un nuovo attacco di canale nascosto cross-core che, in alcuni casi, potrebbe consentire agli utenti malintenzionati di osservare la memorizzazione nella cache dell’indirizzo (o valore) archiviato in un registro senza basarsi sulla memoria condivisa.
  • I gadget Spectre ‘prefetch’ possono far trapelare direttamente i dati effettivi, il che non solo rende l’attacco ZombieLoad efficiente sulle CPU Intel per la perdita di dati sensibili da buffer interni o memoria, ma anche impattare CPU non Intel.
  • Il problema speculativo di dereferenziazione – in alcuni attacchi come Rowhammer, attacchi alla cache, e DRAMA – potrebbe consentire agli aggressori di recuperare gli indirizzi fisici delle variabili JavaScript ed filtrare le informazioni tramite l’esecuzione transitoria in remoto attraverso un browser web.

L’idea dietro un possibile attacco è abbastanza semplice. Ogni applicazione viene isolata dalle altre con un proprio processo, a cui viene assegnata una memoria virtuale che non può accedere arbitrariamente all’indirizzo di memoria fisico. La mappatura tra queste due entità avviene tramite la address translation, che appunto collega i due indirizzi. La memoria virtuale contiene anche l’indirizzo del kernel, che si occupa di gestire al meglio l’hardware per le varie istruzioni del programma. Il problema di un possibile attacco è proprio quello di consentire ad applicazioni malevole, come payload, malware o script, di accedere proprio a questi indirizzi e recuperare quindi eventuali dati sensibili.

In precedenza si pensava che il problema risiedesse nel prefetch dei dati, successivamente mitigato tramite KAISER. Oggi però si viene a sapere che tale mitigazione non risolve completamente il problema di isolamento del kernel dalla memoria fisica, innescando quella che viene definita una vulnerabilità Spectre-BTB-SA-IP (Branch Target Buffer, same address, in-place), variante della ben nota falla Spectre che riesce a bypassare le mitigazioni di tipi L1TF.

I ricercatori hanno aggiunto che: “Lo stesso effetto prefetching può essere utilizzato per eseguire Foreshadow. Se nella cache L3 è presente un segreto e l’indirizzo fisico della mappa è dereferenziato nel kernel dell’hypervisor, i dati possono essere recuperati in L1. Questo riattiva Foreshadow anche con attenuazioni Foreshadow abilitate se le attenuazioni Spectre-BTB non correlate sono disabilitate.“.

Per mitigare questi attacchi, si consiglia di abilitare le mitigazioni Spectre-BTB attuali, tra cui la retpoline (abbreviazione di “trampolino di ritorno”), che mira a prevenire l’iniezione di branch-target isolando i rami indiretti dall’esecuzione speculativa.

Fonte: The Hacker News

Di Marco Nisticò

Sviluppatore informatico, cerco sempre di stare al passo con i tempi in un mondo ormai circondato dalla tecnologia.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.