Come posso proteggere il mio computer di casa / ufficio contro il martello di fila?

5

Il martello di riga sembra influenzare meno la memoria ECC, ma ECC non è ancora immune . Ho sentito parlare di mitigazioni software come ANVIL, ma che non sembra essere al 100% a prova di martello di fila .

Quali software o hardware possono proteggermi in modo affidabile dagli attacchi con martello di fila?

Ho trovato un suggerimento, che alcuni tipi di memoria DDR4 hanno protezioni integrate che funzionano in modo affidabile contro i bit flip e dovrebbero quindi proteggere dal martellamento di riga. Ma non sono del tutto sicuro di averlo compreso appieno, né di quanto questa protezione debba essere affidabile. Questa sarebbe una forma affidabile di protezione? Un citazione :

In addition to purchasing a fast Intel Skylake based system, we also acquired four Crucial Ballistix Sport 2400 MHz, two Crucial Ballistix Elite 2666 MHZ, two Geil Super Luce 2400 MHz, two G.Skill Ripjaws 4 3200 MHz, and two Micron branded 2133 MHz DDR4 memory modules for testing… Of the twelve memory modules we tested, eight showed bit flips during our 4-hour experiment. And of these eight failures, every memory module that failed at default settings was on DDR4 silicon manufactured by Micron. The Geil branded modules contained SK Hynix and the G.Skill modules contained Samsung silicon.

Modifica : nell'altra domanda, viene menzionato che Micron ha integrato protezioni speciali nei suoi chip DDR4. Ma credo che Samsung e SK Hynix abbiano fatto altrettanto, e, apparentemente (vedi sopra), le protezioni di Micron non erano sufficienti.

    
posta Cerberus 16.04.2016 - 16:20
fonte

1 risposta

4

L'unica attenuazione hardware affidabile che non prevede il downgrade a una scheda madre con DDR2 consiste nell'utilizzare la memoria che supporta TRR (Target Row Refresh), che è opzionale per LPDDR4 (non uguale a DDR4). Sfortunatamente, molti moduli DDR4 non supportano TRR e spesso non esiste un modo semplice per capire se è supportato senza scavando in profondità . C'è anche pTRR (Pseudo-TRR) per DDR3 che alcuni processori Ivy Bridge avere. Richiede l'utilizzo di DIMM compatibili con pTRR. Non so quanto sia efficace o affidabile in quanto vi sono poche informazioni disponibili sulla sua implementazione o specifiche disponibili online. Oltre a questo, ci sono alcune tecniche per ridurre la suscettibilità:

  • Usa ECC e panico su MCE - Mentre ECC non attenua completamente l'attacco, se configura il computer in panico su eventuali violazioni (chiamate Machine Check Exceptions , o MCEs), può fare molto. Un utente malintenzionato impiegherà molto più tempo a sfruttare correttamente il sistema se il primo errore rilevato determina l'arresto del sistema. I tassi di lavaggio elevati migliorano il rilevamento.

  • Aumenta le frequenze di aggiornamento * : per impostazione predefinita, la memoria viene aggiornata a intervalli di 64 ms. Alcuni BIOS consentono di specificare l'intervallo di aggiornamento. Riducendo questo a 32 ms, il martello pneumatico risulta più difficile da sfruttare, a scapito delle prestazioni e del consumo di energia. Ridurlo ulteriormente aiuta ancora di più, ma con un impatto sulle prestazioni ancora maggiore. Alcuni produttori di BIOS che dichiarano di avere un'impostazione di attenuazione del martello pneumatico (opzionale o abilitata per impostazione predefinita) riducono semplicemente l'intervallo di aggiornamento a 32 ms.

  • Riduci la velocità di clock * - Ridurre la velocità massima di clock di ogni core rende più difficile accedere a file di memoria ad alta velocità, come l'accesso alla memoria è naturalmente limitato dalla velocità di clock. Questa mitigazione funziona solo per la memoria che è vulnerabile ai margini e ad un prezzo elevato (prestazioni significativamente ridotte). Puoi inoltre disabilitare Hyper Threading o altre forme di SMT e passare all'utilizzo di un singolo core, con un conseguente impatto significativo sulle prestazioni .

  • Usa memoria con un MAC elevato - Il conteggio massimo di attivazione, o MAC, è una misura per DRAM che conta quanti accessi possono verificarsi a una riga in un singolo intervallo di aggiornamento prima dell'instabilità risultati. Un MAC più alto è migliore e un MAC illimitato è l'ideale. I moduli con un MAC illimitato non sono, in teoria, vulnerabili al martello pneumatico. Dovrai cercare nelle schede tecniche per scoprire il MAC per quel particolare modello, o ottenere i dati tramite SPD . Sarebbe anche necessario testare i moduli per assicurarsi che siano sicuri, poiché il valore MAC riportato non è sempre accurato.

  • Indirizzi vulnerabili nella lista nera - Una caratteristica speciale delle CPU x86 è e820 , che contiene un elenco di indirizzi di memoria fisica che la CPU nasconderà e rifiuta di mappare alla memoria virtuale. Combinate questo con il fatto che il martello pneumatico influenza tipicamente le stesse righe più e più volte (cioè ci sono righe suscettibili e ci sono righe insensibili in ogni dato modulo), ha senso trovare questi indirizzi vulnerabili e inserirli nella lista nera. Questo è l'approccio adottato da B-CATT .

  • Memoria fisica delle partizioni : se è possibile suddividere la memoria in modo tale che i processi di diversi livelli di sicurezza non vengano mai mappati alle righe adiacenti, è possibile isolare il danneggiamento basato su di esso. Questo può essere utile quando si assegna memoria alle macchine virtuali o quando si segmenta la memoria, quindi c'è una divisione tra le regioni di memoria fisica dell'utente e del kernel (non solo il kernel "superiore").

Molte domande e discussioni relative al martello pneumatico sono presenti su rowhammer-discuss .

* Per conto proprio, queste mitigazioni possono fare molto poco e solo ridurre leggermente il tasso di bitflip in molte circostanze.

    
risposta data 23.11.2018 - 04:13
fonte

Leggi altre domande sui tag