Qual è il significato di Spectre e Meltdown?

1

Leggendo di nuovo sugli attacchi Spectre e Meltdown, non capisco perché siano stati pubblicizzati così tanto.

Si tratta di attacchi alla cache che sfruttano l'implementazione dell'elaborazione della pipeline di istruzioni oltre all'implementazione della cache. Quindi questa è solo un'altra variante degli attacchi alla cache. Perché questi due attacchi sono così esagerati? Sono molto meglio? Rendono le cose più facili?

  • Gli attacchi precedenti hanno estratto chiavi AES e altro materiale sensibile dai processi.
  • Ci sono stati attacchi di cache basati su Javascript prima di non averli?
  • Gli attacchi sono stati fatti per funzionare su tutti i core prima.
  • Gli attacchi precedenti funzionano anche su macchine con più CPU.

Capisco che queste due varianti rendono l'attacco molto più semplice e controllato? È questa la ragione?

    
posta stflow 16.03.2018 - 15:33
fonte

2 risposte

4

Ci sono alcune cose che rendono Spectre e Meltdown diversi dagli attacchi storici alla cache. Alcuni sono specifici degli attacchi e alcuni sono semplicemente una conseguenza del cambiamento dell'ambiente di elaborazione.

Roba diverso per gli attacchi:

  1. Sono davvero difficili da risolvere. Questi sono problemi hardware , e nel caso di Spectre sono problemi di progettazione hardware piuttosto che bug di implementazione. L'hardware di riparazione è lento, costoso e difficile da verificare. Non puoi semplicemente risolvere il problema con gli aggiornamenti software , il modo in cui puoi farlo con la maggior parte dei bug di sicurezza. La "patch" per Meltdown è più accuratamente descritta come una soluzione che una soluzione (piuttosto che correggere i problemi sottostanti dei programmi userspace che sono in grado di leggere la memoria arbitraria del kernel, basta solo annullare la mappatura del kernel dai programmi userspace quindi non c'è nulla da leggere e mangiare il costo delle prestazioni di un interruttore di contesto su ogni chiamata di sistema). Lo spettro non ha nemmeno quello; il più vicino che abbiamo è come degradare la precisione dei timer JS (che possono avere un impatto negativo su un codice legittimo) per rendere più difficile (ma non impossibile) rilevare le differenze temporali.
  2. Sono veloci, affidabili e facili da eseguire. È possibile utilizzare qualsiasi linguaggio che supporti timer ad alta precisione e array di memoria contigua con indicizzazione arbitraria (cioè approssimativamente tutti) breve blocco di codice facile da trasferire da una lingua all'altra, per uno sfruttamento efficace. Possono essere utilizzati per estrarre un bel po 'di dati dovrebbero essere nascosti (facilmente KB, spesso MB o anche 100s di MB) ogni secondo. Questa è una grande differenza rispetto agli attacchi più vecchi che spesso potevano solo ottenere qualcosa di utile, se avessero avuto un tempo sufficiente per lavorarci sopra.
  3. Consentono il targeting di indirizzi di memoria arbitrari e non si basano sull'attesa che il processore esegua ciò che si desidera ispezionare. Gli attacchi precedenti alla cache erano concentrati principalmente sulla visualizzazione delle righe della cache di altri programmi, il che significa che l'attaccante non ha potuto scegliere cosa ha ottenuto. Se sai che l'altro programma sta facendo crypto, potresti essere in grado di estrarre la chiave, ma se incasini i tempi (vedi il punto precedente) o non puoi forzare l'accesso ai dati a cui vuoi accedere (e quindi in cache) quando il tuo attacco è in esecuzione, peccato. Tuttavia, Spectre e Meltdown consentono di leggere gli indirizzi di memoria arbitrari di tua scelta, il che significa che puoi fare cose come camminare sulle strutture dati per trovare esattamente le informazioni che stai cercando.

Cose diverse per l'ambiente di elaborazione:

  1. Il cloud computing è comune. È molto più tipico ora, che in qualsiasi momento nel passato recente, che due entità non correlate e reciprocamente non attendibili eseguano codice arbitrario sulla stessa macchina fisica. Proprio come i processi dividono le sandbox JS dal resto del loro spazio di indirizzamento e i sistemi operativi dividono gli spazi degli indirizzi dei processi l'uno dall'altro, gli hypervisor dividono gli spazi degli indirizzi fisici VM gli uni dagli altri. La premessa di sicurezza nel cloud ("codice in esecuzione sui computer di altre persone") è costruita su queste divisioni e Spectre / Meltdown le spezza.
  2. JavaScript è onnipresente e utile. Ciò che una volta era un linguaggio giocattolo senza utilizzo di timer ad alta precisione o matrici digitate e limitate è diventato un linguaggio molto potente con la maggior parte delle funzionalità disponibili in altri linguaggi di programmazione delle applicazioni. I browser eseguono allegramente codice da fonti arbitrarie e spesso non attendibili (server Web), facendo affidamento sulla sandbox JS per impedire (la maggior parte) usi malevoli di questo potere. Per attacchi come Spectre e Meltdown, che bypassano la protezione della sandbox e possono essere scritti in JS, è un vettore di attacco ideale utilizzabile contro quasi tutti i computer degli utenti finali.
risposta data 17.03.2018 - 02:47
fonte
0

Il significato sta nella prevalenza dei processori esposti alle rispettive vulnerabilità. (1) (2) (3)

La maggior parte delle CPU Intel e AMD sono in qualche modo vulnerabili a Spectre e / o Meltdown e la quota di mercato combinata delle due società nel mondo non mobile è praticamente del 100% per i processori x86.

Source

Oltre ai personal computer, molti dispositivi mobili (i loro processori utilizzano anche l'esecuzione speculativa), le infrastrutture cloud (il cloud è ovunque ) e le macchine virtuali (di nuovo ovunque ) sono (in parte) vulnerabili.

È giusto dire che abbiamo visto raramente attacchi come Spectre e Meltdown che possono essere applicati a tutti i dispositivi indipendentemente dal loro sistema operativo.

Aggiungiamo, gente! Cosa è vulnerabile?
Tutti i dispositivi personali non mobili, molti dispositivi mobili, molti server, una grande fetta di infrastruttura cloud e macchine virtuali.

Senti il significato adesso?

    
risposta data 16.03.2018 - 16:50
fonte

Leggi altre domande sui tag