Come proteggere un server dalla vulnerabilità Linux Dirty COW
Introduzione
In data 19 ottobre 2016 è stata scoperta una vulnerabilità di privilege escalation nel kernel Linux. Il bug è stato rinominato Dirty COW dato che il problema di fondo sta nel modo in cui il kernel gestisce il Copy-on-write (COW). Dirty COW esiste da molto tempo, almeno dal 2007 con la versione 2.6.22 del kernel, quindi la maggior parte dei server è a rischio.
Sfruttare questa vulnerabilità vuol dire che nel vostro server un regolare utente senza privilegi può ottenere il permesso di scrittura per ogni file che può leggere, e quindi può aumentare i propri privilegi nel sistema. Potrete trovare maggiori informazioni su CVE-2016-5195 sui siti di Canonical, Red Hat e Debian.
Fortunatamente le principali distribuzioni hanno già provveduto a rilasciare una fix. Tutte le immagini [delle VPS, NdT] base di DigitalOcean sono state aggiornate in modo da avere le versioni del kernel con la patch applicata, quindi le prossime Droplets [le VPS di DigitalOcean, Ndt] che create non avranno bisogno di essere aggiornate. Tuttavia, se state utilizzando un vecchio server, potete seguire questa guida per assicurarvi di essere protetti.
Verificare la vulnerabilità
Ubuntu/Debian
Per vedere se il vostro server ne è affetto, controllate la versione del vostro kernel.
$ uname -rv
Avrete un output del tipo:
4.4.0-42-generic #62-Ubuntu SMP Fri Oct 7 23:11:45 UTC 2016
Se la vostra versione è meno recente delle seguenti significa che ne siete affetti:
- 4.8.0-26.28 per Ubuntu 16.10
- 4.4.0-45.66 per Ubuntu 16.04 LTS
- 3.13.0-100.147 per Ubuntu 14.04 LTS
- 3.2.0-113.155 per Ubuntu 12.04 LTS
- 3.16.36-1+deb8u2 per Debian 8
- 3.2.82-1 per Debian 7
- 4.7.8-1 per Debian unstable
CentOS
Certe versioni di CentOS, per testare la vulnerabilità del vostro server, possono usare questo script fornito da RedHat per RHEL. Per provarlo, per prima cosa scarichiamo lo script.
$ wget https://access.redhat.com/sites/default/files/rh-cve-2016-5195_1.sh
Ora eseguitelo con bash
.
$ bash rh-cve-2016-5195_1.sh
Se siete vulnerabili vedrete un output come questo:
Your kernel is 3.10.0-327.36.1.el7.x86_64 which IS vulnerable.
Red Hat recommends that you update your kernel. Alternatively, you can apply partial
mitigation described at https://access.redhat.com/security/vulnerabilities/2706661 .
Riparare la vulnerabilità
Fortunatamente, applicare la correzione è semplice: aggiornate il vostro sistema e riavviate il vostro server.
In Ubuntu e Debian aggiornate i vostri pacchetti usando apt-get
.
$ sudo apt-get update && sudo apt-get dist-upgrade
Potete aggiornare tutti i vostri pacchetti in CentOS 6 e 7 usando sudo yum update
ma, se per risolvere il bug volete aggiornare solamente il kernel, usate:
$ sudo yum update kernel
Al momento siamo ancora in attesa di una correzione per CentOS 5. Nel frattempo potete usare questa soluzione dal bug tracker di Red Hat.
Nelle Droplets più datate, con la gestione del kernel esterna, è inoltre necessario selezionare il kernel GrubLoader di DigitalOcean. Per farlo andate nel pannello di controllo e cliccate sul server che volete aggiornare. Cliccate quindi Kernel nel menu sulla sinistra e selezionate il kernel GrubLoader. Potete approfondire la modalità di aggiornamento dei kernel della vostra Droplet in questa guida alla gestione del kernel. Le nuove Droplet con la gestione del kernel interna possono saltare questo passaggio.
Per concludere, avete bisogno di riavviare il vostro server per applicare i cambiamenti.
$ sudo reboot
Conclusioni
Assicuratevi di aggiornare i vostri kernel Linux per essere protetti da questo bug di privilege escalation.
Autore: Hazel Virdó
Traduzione di Zantx dell’articolo https://www.digitalocean.com/community/tutorials/how-to-protect-your-server-against-the-dirty-cow-linux-vulnerability Copyright © 2016 DigitalOcean™ Inc.