Una delle novità più importanti del settore tecnologico negli ultimi anni è stata la scoperta di difetti di sicurezza nei processori dei dispositivi che usiamo quotidianamente. I difetti di sicurezza hanno definito difetti di progettazione Meltdown e Spectre (progettazione hardware) che possono essere sfruttati su qualsiasi desktop, laptop, tablet o telefono con processori progettati e creati negli ultimi due decenni. Ciò significa anche che non importa quale sistema operativo si sta utilizzando, è possibile ottenere sfruttato.
La spiegazione più semplice di ciò che una combinazione di questi due difetti potrebbe fare sono due cose: rallentare il computer e consentire all'utente malintenzionato di accedere ai propri dati personali. I dettagli tecnici sono di seguito
Come accennato in precedenza, questi exploit possono essere utilizzati a causa di difetti di progettazione hardware nei chip. Inizialmente, i ricercatori hanno scoperto 3 difetti, due dei quali sono Spectre e il terzo è Meltdown. Per consentire a un utente malintenzionato di accedere ai tuoi dati, è necessario sfruttare due tecniche che velocizzano il tuo PC. Quelli sono l'esecuzione speculativa e il caching.
Esecuzione speculativa è la capacità del chip di "indovinare" il futuro che gli consente di calcolare più velocemente. I chip di oggi sono in grado di eseguire più di una istruzione allo stesso tempo, il che significa che mentre la CPU sta eseguendo l'istruzione successiva per essere eseguita, sta calcolando o indovinando la successiva. Ad esempio, se prendi una situazione in cui diciamo che se "sky is blue" è true stampa sunny o se "sky is blue" è false print out cloudy (questo può essere facilmente mostrato con poche righe di codice, che non fare). Ciò che l'esecuzione speculativa fa è che inizia a calcolare entrambi i casi, se è vero e se è falso allo stesso tempo, quindi una volta che la condizione è completata (una volta "sky is blue" è vero o falso) il chip sa già quale sarà il prossimo passo sarà e sarà in grado di eseguirlo senza dover fare calcoli su questo. Un esempio simile è quando il chip riconosce che un certo calcolo viene eseguito frequentemente, quindi usa il suo "tempo libero" per continuare a fare il calcolo, quindi quando il programma ne ha bisogno verrà già calcolato.
caching è una funzionalità che accelera il processo di acquisizione dei dati dalla RAM. Anche se ogni dispositivo ha una RAM, indipendentemente dal fatto che sia 1 gigabyte o 64, il tempo impiegato dal chip per ottenere alcuni dati dalla RAM effettiva è un processo lungo (a lungo in termini informatici, nei nostri termini è inferiore a un battito di un occhio). Questo potrebbe non sembrare lungo, ma se consideriamo che la CPU fa milioni di calcoli ogni secondo e ha bisogno di molti dati, i dati dalla RAM rallenteranno molto le cose. Una soluzione per questo era l'aggiunta di una memoria RAM al chip reale. Anche se questa RAM è solo di pochi megabyte, il chip memorizza i dati che sta pianificando di utilizzare nel prossimo futuro (il futuro prossimo di un chip potrebbe essere qualche millisecondo) o i dati che la CPU utilizza frequentemente così lo memorizza nella cache .
Sfruttare entrambe queste tecniche causerà un problema una volta che iniziano ad accedere a memoria protetta. Uno degli elementi essenziali nella sicurezza di un PC è la memoria protetta. Ciò significa che parti dei dati sono archiviate protette e l'unica che ha accesso ad esse è il programma che la usa. Tutti gli altri programmi devono passare attraverso un controllo di sicurezza chiamato controllo dei privilegi. Il processo per verificare se un programma ha i privilegi per accedere ai dati nella memoria protetta impiega molto più tempo di quanto occorra alla CPU per accedere ai dati. Quindi se i dati sono memorizzati nella cache e la CPU con la sua esecuzione speculativa inizia a calcolarla, ma continua a memorizzarla nella cache. Quindi, sfruttando questi difetti, gli aggressori non saranno in grado di vedere i tuoi dati, ma saranno in grado di capirlo scoprendo le posizioni. Questo processo è chiamato un attacco canale laterale.
Meltdown e Spectre in una combinazione possono fare tutto ciò che è spiegato nei paragrafi precedenti. Entrambe possono avere accesso a certe cose che non dovrebbero essere altrimenti accessibili, ciascuna a suo modo. Spectre può essere usato con un determinato pezzo di codice, nella maggior parte dei casi JavaScript, su un sito Web che potrebbe fornire all'attaccante le credenziali di accesso. D'altra parte Meltdown potrebbe essere utilizzato per ottenere l'accesso ai dati ad altri programmi o utenti sulla stessa macchina, o in situazioni in cui è ospitato un server virtuale.
Tutti i produttori stanno già aggiornando gli aggiornamenti per applicare patch agli exploit. Google e Firefox hanno anche inviato aggiornamenti per i loro browser nella speranza che riescano a rafforzare la sicurezza. Una cosa deve essere chiara> questi sono difetti hardware, il che significa che qualsiasi software o aggiornamento sta funzionando in cima all'hardware. Un aggiornamento sicuro non verrà mai rilasciato, ma sicuramente manterrà i produttori impegnati a risolverli per i chip di generazione futura.
Nel prossimo articolo, spiegheremo come proteggersi (il più possibile) da questi exploit.