I ricercatori della sicurezza hanno pubblicato sul Progetto Zero una nuova vulnerabilità chiamata Spectre e Meltdown che consente a un programma di rubare informazioni dalla memoria di altri programmi. Colpisce le architetture Intel, AMD e ARM.
Questo difetto può essere sfruttato da remoto visitando un sito Web JavaScript. I dettagli tecnici sono disponibili sul sito Web di Redhat , il team di sicurezza di Ubuntu .
Perdita di informazioni tramite attacchi di canale laterale di esecuzione speculativa (CVE-2017-5715, CVE-2017-5753, CVE-2017-5754 aka Spectre e Meltdown)
È stato scoperto che una nuova classe di attacchi del canale laterale ha un impatto sulla maggior parte dei processori, inclusi i processori Intel, AMD e ARM. L'attacco consente ai processi dannosi di spazio utente di leggere la memoria del kernel e il codice dannoso nei guest per leggere la memoria dell'hypervisor. Per risolvere il problema, saranno necessari aggiornamenti al kernel Ubuntu e al microcodice del processore. Questi aggiornamenti saranno annunciati nelle future comunicazioni sulla sicurezza di Ubuntu non appena saranno disponibili.
Esempio di implementazione in JavaScript
Come prova di concetto, è stato scritto un codice JavaScript che, quando eseguito nel browser Google Chrome, consente a JavaScript di leggere la memoria privata dal processo in cui viene eseguita.
Il mio sistema sembra essere interessato dalla vulnerabilità dello spettro. Ho compilato ed eseguito questo proof-of-concept ( spectre.c
).
Informazioni di sistema:
$ uname -a
4.13.0-0.bpo.1-amd64 #1 SMP Debian 4.13.13-1~bpo9+1 (2017-11-22) x86_64 GNU/Linux
$ cat /proc/cpuinfo
model name : Intel(R) Core(TM) i3-3217U CPU @ 1.80GHz
$gcc --version
gcc (Debian 6.3.0-18) 6.3.0 20170516
Come mitigare le vulnerabilità di Spectre e Meldown su sistemi Linux?
Ulteriori letture: utilizzo di Meltdown per rubare le password in tempo reale .
Aggiornare
Utilizzando il Spectre & Meltdown Checker
dopo il passaggio alla 4.9.0-5
versione del kernel seguendo @Carlos Pasqualini risponde perché è disponibile un aggiornamento di sicurezza per mitigare il cve-2017-5754 su debian Stretch:
CVE-2017-5753 [bounds check bypass] aka 'Spectre Variant 1'
* Checking count of LFENCE opcodes in kernel: NO (only 31 opcodes found, should be >= 70)
> STATUS: VULNERABLE (heuristic to be improved when official patches become available)
CVE-2017-5715 [branch target injection] aka 'Spectre Variant 2'
* Mitigation 1
* Hardware (CPU microcode) support for mitigation: NO
* Kernel support for IBRS: NO
* IBRS enabled for Kernel space: NO
* IBRS enabled for User space: NO
* Mitigation 2
* Kernel compiled with retpoline option: NO
* Kernel compiled with a retpoline-aware compiler: NO
> STATUS: VULNERABLE (IBRS hardware + kernel support OR kernel with retpoline are needed to mitigate the vulnerability)
CVE-2017-5754 [rogue data cache load] aka 'Meltdown' aka 'Variant 3'
* Kernel supports Page Table Isolation (PTI): YES
* PTI enabled and active: YES
> STATUS: NOT VULNERABLE (PTI mitigates the vulnerability)
Aggiornamento del 25 gennaio 2018
Lo spectre-meltdown-checker
script è ufficialmente impacchettato da debian, è disponibile per Debian Stretch attraverso il repository di backport, Buster e Sid.
Speculative Store Bypass (SSB), noto anche come variante 4
I sistemi con microprocessori che utilizzano l'esecuzione speculativa e l'esecuzione speculativa delle letture di memoria prima che siano noti gli indirizzi di tutte le precedenti scritture di memoria possono consentire la divulgazione non autorizzata di informazioni a un utente malintenzionato con accesso dell'utente locale tramite un'analisi del canale laterale.
Rogue System Register Read (RSRE) - noto anche come Variante 3a
I sistemi con microprocessori che utilizzano l'esecuzione speculativa e che eseguono letture speculative dei registri di sistema possono consentire la divulgazione non autorizzata dei parametri di sistema a un utente malintenzionato con accesso dell'utente locale tramite un'analisi del canale laterale.
Modifica il 27 luglio 2018
NetSpectre: lettura della memoria arbitraria sulla rete
In questo documento, presentiamo NetSpectre, un nuovo attacco basato sulla variante Spectre 1, che non richiede alcun codice controllato dall'aggressore sul dispositivo di destinazione, interessando così miliardi di dispositivi. Simile a un attacco Spettro locale, il nostro attacco remoto richiede la presenza di un gadget Spettro nel codice del bersaglio. Mostriamo che i sistemi contenenti i gadget Spettro richiesti in un'interfaccia di rete esposta o API possono essere attaccati con il nostro attacco generico Spettro remoto, che consente di leggere la memoria arbitraria sulla rete. L'attaccante invia solo una serie di richieste elaborate alla vittima e misura il tempo di risposta per perdere un valore segreto dalla memoria della vittima.