Proteggi Linux o Windows dalle vulnerabilità di Spectre e Meltdown

Uno dei componenti fondamentali in qualsiasi computer progettato per utilizzare un sistema operativo, indipendentemente dal suo sviluppatore, è la CPU o il processore che sta avanzando a passi da gigante offrendoci nuove velocità di elaborazione, nuove tecnologie, più core e tutto questo per poter ottimizzare e migliorare l'avvio del sistema e l'esecuzione dei programmi che vi abbiamo installato.

Tutto questo è innovativo e ci riempie di emozione quando acquistiamo un computer con un processore eccellente poiché siamo sicuri che sarà un buon investimento ma cosa succede se il processore, sia esso Intel, AMD o altro, presenta all'interno del suo design vulnerabilità di sicurezza che mettono a rischio le nostre informazioni e la nostra riservatezza, lì l'argomento cambia rotta e ci fa pensare a come questo tipo di situazione può accadere in rinomati processori e grandi aziende in tutto il mondo.

Bene, questa vulnerabilità è una realtà che è stata scoperta pochi giorni fa, il 4 gennaio, dove sono state scoperte le vulnerabilità Spectre e Meltdown, che sono legate al design del processore in cui un utente malintenzionato può accedere alle informazioni di sistema e alla memoria dove vitale sono alloggiati elementi come chiavi di crittografia o password.

La cosa peggiore di tutto questo problema è che queste vulnerabilità colpiscono i processori Intel, ARM e AMD, motivo per cui siamo tutti aperti ad essere vittime di queste vulnerabilità ed è per questo che oggi in Solvetic analizzeremo a fondo quali sono queste vulnerabilità, come si attacco e come possiamo proteggere i nostri server e le nostre apparecchiature da essi.

Ricordiamo che queste vulnerabilità attaccheranno tutti i tipi di apparecchiature sia a livello domestico che aziendale e attualmente le patch che serviranno a proteggerci da Spectre e Meltdown sono in fase di rilascio da parte degli sviluppatori di sistemi operativi e applicazioni.

Cos'è lo spettro?

Spectre è una vulnerabilità che ha la capacità di indurre il processore ad avviare il processo di esecuzione speculativa perché i processori moderni utilizzano la previsione del ramo e l'esecuzione speculativa consente di massimizzare le prestazioni del processore.

Gli attacchi Spectre consentono di indurre una vittima a eseguire in modo speculativo determinate operazioni che non si verificherebbero durante la corretta esecuzione del programma e ciò consente di far trapelare informazioni riservate attraverso un canale laterale per l'attaccante in modo molto semplice.

Gli avvisi di divulgazione di queste vulnerabilità hanno scoperto due varianti con diversi livelli di complessità e impatto di Spectre sul processore e con esso sulla sicurezza dell'utente.

Queste varianti sono:

Variante 1 (CVE-2017-5753)Questa vulnerabilità colpisce i processori Intel, AMD e ARM, consentendo all'aggressore di ingannare i programmi senza alcun tipo di errore, seguendo le migliori pratiche, per filtrare tutte le informazioni dell'utente memorizzate sul computer.

Questo è stato scoperto il 3 gennaio di quest'anno dal team di Google Project Zero e questa variante fa un uso eccessivo dell'esecuzione speculativa per eseguire attività di bypass del controllo dei limiti, il che fa sì che il codice del kernel venga reindirizzato con il controllo dell'attaccante in modo speculativo.

Un elenco di sistemi che possono essere attaccati da questa variante sono:

  • Red Hat Enterprise Linux 5
  • Red Hat Enterprise Linux 6
  • Red Hat Enterprise Linux 7
  • RHEV-M 4.0
  • RHEV-M per server
  • Red Hat Enterprise Linux OpenStack Platform 7.0 (Kilo) per RHEL 7
  • Red Hat Enterprise Linux OpenStack Platform 6.0 (Juno) per RHEL 7
  • Red Hat Enterprise MRG 2
  • Red Hat OpenStack Platform v 8/9/10/11/12
  • Debian Linux sibilante
  • Debian Linux jessie
  • Debian Linux allungare
  • Debian Linux buster, sid
  • SUSE Linux Enterprise Server per Raspberry Pi 12 SP2
  • SUSE OpenStack Cloud 6
  • Openstack Cloud Magnum Orchestrazione 7
  • SUSE Container as a Service Platform ALL
  • SUSE Linux Enterprise High Availability 12 SP2 / SP3
  • SUSE Linux Enterprise Live Patching 12
  • Modulo SUSE Linux Enterprise per Public Cloud 12
  • SUSE Linux Enterprise Server 11 SP3-LTSS
  • SUSE Linux Enterprise Server 11 SP4
  • Kit di sviluppo software aziendale SUSE Linux 11/12 SP3 / SP4
  • SUSE Linux Enterprise per SAP 12 SP1
  • SUSE Linux Enterprise 11
  • SUSE Linux Enterprise 12
  • OpenSuse Linux basato su SUSE 12/11
  • Fedora Linux 26
  • Fedora Linux 27
  • Amazon Linux AMI

Variante 2 (CVE-2017-5715)Questa variante è responsabile dell'attivazione dell'esecuzione speculativa utilizzando l'iniezione di destinazione del ramo. Si basa sulla presenza di una sequenza di istruzioni specifica e precisamente definita nel codice privilegiato, nonché sulla situazione in cui gli accessi alla memoria possono causare la memorizzazione nella cache dei dati del microprocessore comprese le istruzioni eseguite speculativamente che non verranno mai compromesse.

Grazie a questa variante, un utente malintenzionato senza alcun privilegio avrebbe la possibilità di oltrepassare i limiti del sistema e del computer per leggere la memoria privilegiata eseguendo attacchi mirati alla cache del canale laterale e vedere così violata la sicurezza dell'utente.

I sistemi interessati sono gli stessi di quelli sopra elencati.

Per prevenire queste varianti in Linux, possiamo eseguire il seguente processo.

In ambienti CentOS o RedHat, prima di tutto eseguiamo le seguenti righe:

 uname -r sudo yum update

Una volta aggiornato il sistema, procediamo a riavviare il sistema eseguendo la riga:

 sudo reboot
Quindi confermiamo che il kernel è stato aggiornato utilizzando nuovamente il comando:
 uname -r
Infine verifichiamo che le varianti siano applicate nel sistema eseguendo quanto segue:
 rpm -q --changelog kernel | egrep 'CVE-2017-5715 | CVE-2017-5753 | CVE-2017-5754' 

INGRANDIRE

Nel caso di utilizzo di Ubuntu o Debian possiamo eseguire le seguenti righe:

 sudo apt-get update sudo apt-get upgrade sudo shutdown -r 0

Forme di attacco dello spettroSpectre utilizza alcune tecniche di attacco come:

  • Sfruttare l'esecuzione speculativa. Con questa tecnica, Spectre attacca il task del processore a livello di istruzioni di esecuzione speculativa con sequenze che non avrebbero dovuto essere eseguite durante la corretta esecuzione del programma e queste sequenze verranno eventualmente invertite creando istruzioni transitorie di cui l'attaccante sfrutta per filtrare l'utente informazioni colpite.
  • Attacchi utilizzando il codice nativo :. Questo attacco crea un programma che contiene dati segreti all'interno della sua memoria di accesso e una volta compilato questo programma, i binari e le librerie condivise sul sistema vengono analizzati per filtrare le informazioni dell'utente.

Infine, viene scritto un altro programma di attacco che sfrutta la funzione di esecuzione speculativa della CPU per eseguire le sequenze incontrate in precedenza come istruzioni transitorie.

  • Attacchi che utilizzano JavaScript. Questo attacco viene utilizzato per violare la sandbox del browser montando codice JavaScript portatile attraverso di essa.

Hardware colpito da SpectreAttualmente è stato scoperto che Spectre è in grado di violare hardware come:

  • Processori basati su Ivy Bridge
  • AMD Ryzen
  • Processori Intel
  • Processori Qualcomm

In sintesi, l'attacco Spectre si compone delle seguenti fasi:

  • Fase 1. In primo luogo, l'attacco inizia con una fase di configurazione, in cui l'avversario esegue operazioni che causano guasti del processore in modo da poter poi eseguire uno sfruttamento speculativo errato.

Durante questa fase, l'attaccante può preparare il canale laterale che verrà utilizzato per estrarre le informazioni della vittima.

  • Fase 2. In questa fase, il processore esegue in modo speculativo una o più istruzioni che trasferiscono informazioni riservate dal contesto della vittima a una microarchitettura di canale laterale.

Ciò consente all'aggressore di eseguire un'azione, come syscall, socket, e in altri casi l'attaccante può sfruttare l'esecuzione speculativa del proprio codice per ottenere informazioni sensibili dallo stesso processo da parte dell'utente.

  • Fase 3. In questa fase, i dati riservati vengono recuperati da Spectre utilizzando tecniche come flush + reload o evict + reload. Questo processo di ripristino consiste nel misurare il tempo necessario per leggere gli indirizzi di memoria nelle linee della cache che vengono monitorate periodicamente.

Cos'è il crollo?

L'altro attacco che influisce sulla sicurezza degli utenti è Meltdown che consente a un utente malintenzionato di accedere alle informazioni private dell'utente attraverso il sistema operativo installato, come Microsoft Windows o High Sierra.

Il suo nome è stato assegnato per la capacità di violare i limiti di sicurezza normalmente imposti dall'hardware del sistema.

La vulnerabilità Meltdown è stata catalogata come CVE-2017-5754 dove si fa riferimento al fatto che Meltdown ha la capacità di penetrare l'isolamento di base tra le applicazioni utente e il sistema operativo, qualunque esso sia. Questo attacco consente a un programma di accedere alla memoria e, con essa, anche alle informazioni riservate di altri programmi e del sistema operativo stesso.

Questo difetto è stato scoperto anche il 3 gennaio dal team di Google Project Zero e da altri team aggiuntivi.
Questa vulnerabilità interessa i processori Intel x86-64 ma non i processori AMD x86-64.

Il crollo può influenzare il sistema come:

  • Red Hat Enterprise Linux 5
  • Red Hat Enterprise Linux 6
  • Red Hat Enterprise Linux
  • Debian Linux sibilante
  • Debian Linux jessie
  • Debian Linux allungare
  • Deiban Linux buster, sid
  • SUSE Linux Enterprise 11
  • SUSE Linux Enterprise 12
  • OpenSuse Linux basato su SUSE 12/11
  • Fedora Linux 26
  • Fedora Linux 27
  • Amazon Linux AMI
  • finestre
Attualmente abbiamo la soluzione per questa vulnerabilità per le seguenti distribuzioni Linux con la loro versione del kernel come questa:
  • RHEL 6.x [2.6.32-696.18.7] /7.x [3.10.0-693.11.6]
  • CentOS 6.x [2.6.32-696.18.7] /7.x [3.10.0-693.11.6]
  • Fedora 26 [4.14.11-200] / 27 [4.14.11-300]
  • Debian stretch [4.9.0-5-amd64] / jessie [3.16.0-5-amd6] / wheezy [3.2.0-5-amd64]
  • CoreOS [4.14.11-Coreos]
  • Arch Linux [aggiornamento alla rotazione corrente]
  • Gentoo Linux [aggiorna alla versione corrente]
  • Ubuntu Linux v16.04 [4.4.0-109-generico o 4.13.0-26-generico] /v17.10 [4.13.0-25-generico] /14.04 [3.13.0-139-generico]
  • SUSE - SLES 12 SP3 [4.4.103-6.38.1] / SLES 12 SP2 [4.4.103-92.59.1] / SLES 11 SP4 [3.0.101-108.21.1] / SLES 11 SP3-LTSS [3.0.101 -0.47.106.11.1]

Per proteggerci da questa vulnerabilità CVE-2017-5754 possiamo eseguire quanto segue:

  • Su CentOS e RedHat:
 uname -r sudo yum update sudo reboot
  • In Federa:
 sudo dnf --refresh update kernel 
  • Su Debian e Ubuntu:
 uname -r sudo apt-get update sudo apt-get dist-upgrade sudo shutdown -r 0

Come funziona MeltdownRicordiamo che una delle caratteristiche di sicurezza centrali a livello operativo nei moderni sistemi operativi è l'isolamento della memoria, che garantisce che le applicazioni utente non abbiano accesso alle memorie di altri utenti e programmi e quindi impediscono alle applicazioni degli utenti di leggere o scrivere alla memoria del kernel.

Nei processori moderni, l'isolamento tra il kernel ei processi utente viene normalmente eseguito da un monitor di bit del processore che definisce se una memoria ha la capacità di accedere o meno alla pagina del kernel.
Meltdown è stato sviluppato come un nuovo attacco che ha il potere di superare completamente l'isolamento della memoria fornendo un modo semplice per qualsiasi processo utente di leggere la memoria del kernel della macchina in esecuzione, inclusa tutta la memoria fisica allocata nella regione del kernel.

Meltdown funziona oggi su tutti i principali sistemi operativi e questa vulnerabilità sfrutta le informazioni del canale laterale disponibili sulla maggior parte dei processori moderni come Intel o AMD.

Meltdown offre a un utente malintenzionato la possibilità di eseguire codice su un processore vulnerabile per scaricare l'intero kernel nello spazio degli indirizzi, inclusa qualsiasi memoria fisica allocata.

La causa della semplicità e della portata di Meltdown sono gli effetti collaterali causati dall'esecuzione fuori ordine, ovvero è una caratteristica degli attuali processori che è stata sviluppata per superare le latenze delle unità di esecuzione occupate.

Le fasi di lavoro di Meltdown sono:

  • Fase 1. In questa fase viene richiesta una posizione di memoria illegale nel kernel del processore.
  • Fase 2. In questa fase viene eseguita una seconda richiesta per leggere condizionalmente una locazione di memoria valida solo se la prima richiesta contiene un certo valore attivo.
  • Fase 3. In questa fase, viene eseguita l'attività di esecuzione speculativa in cui il processore completa il lavoro in background per le due richieste precedenti prima di verificare che la richiesta iniziale non sia valida. Non appena il processore comprende che le richieste coinvolgono memoria fuori dai limiti, nega entrambe le richieste.
  • Fase 4. Lì viene fatta una nuova richiesta per la posizione di memoria valida.

Quindi possiamo definire quanto segue con la vulnerabilità Meltdown:

Il contenuto di una posizione di memoria scelta dall'aggressore, che è inaccessibile all'aggressore, viene caricato in un registro di sistema.

Un'istruzione transitoria accede a una linea di cache in base al contenuto segreto del registro.

L'attaccante utilizza Flush + Reload per determinare l'accesso alla linea della cache e quindi accedere alle informazioni archiviate nella posizione di memoria scelta.

Una volta compreso come funzionano queste vulnerabilità, vedremo come proteggeremo i nostri computer da esse, anche se dobbiamo chiarire che ad oggi non è stato segnalato alcun attacco che coinvolga sia gli utenti che gli amministratori.

1. Come proteggersi da Spectre e Meltdown su sistemi Linux


Nel caso di Linux, useremo spectre-meltdown-checker.sh che è uno script di shell per determinare se il kernel Linux è vulnerabile ai 3 CVE che abbiamo menzionato di queste vulnerabilità.

NotaQuesto script deve essere eseguito come utente root.

Passo 1
Per installare questo script, andremo prima nella directory /tmp in questo modo:

 cd / tmp / 
Passo 2
Una volta che siamo in detta directory, procediamo per ottenere lo script eseguendo la seguente riga:
 wget https://raw.githubusercontent.com/speed47/spectre-meltdown-checker/master/spectre-meltdown-checker.sh 

NotaUn'altra opzione per ottenerlo è eseguendo la seguente riga:

 git clone https://github.com/speed47/spectre-meltdown-checker.git 

Come verificare se siamo vulnerabili o meno a Spectre o Meltdown?Per verificare la sicurezza della nostra distribuzione possiamo eseguire la seguente riga:

 sudo sh spettro-meltdown-checker.sh

È così semplice Possiamo verificare se il nostro sistema è vulnerabile o meno a queste nuove minacce.

2. Come proteggersi da Spectre e Meltdown sui sistemi Windows


In questo caso utilizzeremo Windows 10 e per questo dobbiamo accedere a Windows PowerShell come amministratori facendo clic con il tasto destro del mouse sull'applicazione e selezionando l'opzione "Esegui come amministratore".

Passo 1
Una volta aperto il terminale PowerShell, procediamo con l'esecuzione della seguente riga:

 Install-Module SpeculationControl
Passo 2
Nelle domande visualizzate inseriremo la lettera S per confermare:

INGRANDIRE

Passaggio 3
La politica di esecuzione standard di Windows non ci consentirà di eseguire questo script, per questo, per eseguire lo script, dobbiamo salvare la configurazione corrente in modo che possa essere ripristinata in seguito e quindi modificare la politica di esecuzione in modo che possa essere eseguita la sceneggiatura. Per questo eseguiremo i seguenti due comandi:

 $ SaveExecutionPolicy = Get-ExecutionPolicy Set-ExecutionPolicy RemoteSigned -Scope Currentuser

INGRANDIRE

Passaggio 4
Ora possiamo eseguire lo script eseguendo quanto segue:

 Import-Module SpeculationControl Get-SpeculationControlSettings

INGRANDIRE

Passaggio 5
Possiamo vedere le informazioni dettagliate del sistema e dobbiamo guardare in particolare due righe:

Supporto del sistema operativo Windows per la mitigazione dell'iniezione di destinazione del ramoQuesta riga indica l'aggiornamento del software Microsoft e se il suo valore è vero significa che il computer è protetto dagli attacchi Meltdown e Spectre.

Supporto hardware per la mitigazione dell'iniezione di destinazione del ramoQuesta riga si riferisce al firmware o all'aggiornamento del BIOS/UEFI richiesto dal produttore del computer se il suo valore è vero significa che saremo protetti contro la vulnerabilità dello Spettro.

Passaggio 6
Per ripristinare la politica di esecuzione alla sua configurazione originale dopo aver verificato la sicurezza del sistema, possiamo eseguire la seguente riga:

 Set-ExecutionPolicy $ SaveExecutionPolicy -Scope Currentuser 

INGRANDIRE

Passaggio 7
Vale la pena ricordare l'importanza di mantenere aggiornato il sistema operativo poiché gli sviluppatori rilasceranno patch di sicurezza per prevenire questi difetti di sicurezza:

3. Informazioni ufficiali su Spectre e Meltdown dei produttori


Nei seguenti link possiamo trovare informazioni su queste vulnerabilità in ciascuno dei principali siti degli sviluppatori e quindi avere informazioni più dettagliate su come prevenire ed essere un passo avanti al problema:
  • Intel
  • BRACCIO
  • AMD
  • NVIDIA
  • Microsoft Windows
  • Windows Server
  • Amazon
  • Google
  • Android
  • Manzana
  • Lenovo
  • HP
  • Huawei
  • Cisco
  • Mozilla
  • Cappello rosso
  • Debian
  • Ubuntu
  • Fedora
  • VMWare

Come possiamo vedere, sebbene le vulnerabilità saranno sempre presenti, possiamo adottare le misure necessarie per essere attenti a qualsiasi errore e quindi impedire che le nostre informazioni vengano compromesse.

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave