MICHELEPISANI.IT
 

Correggere il 'Bash Bag' per sistemi operativi basati su Linux e Unix

Come proteggere il server dalla vulnerabilità di Shellshock Bash

Come proteggere il server dalla vulnerabilità di Shellshock Bash
Settembre 28
07:502014

Il 24 Settembre 2014 sono state riscontrate alcune vulnerabilità della shell "Bash" (Shellshock Bash Vulnerability) presente su sistemi basati su Linux e Unix che potrebbero fungere da breccia per malintenzionati consentendogli di interagire col sistema in tutta libertà senza necessitare delle credenziali di accesso, di conseguenza è opportuno che tutti i possessori di server (siano essi di tipo dedicato, housing o cloud) con sistema operativo di questo tipo corrano ai ripari applicando le patches per la distribuzione utilizzata dal relativo sistema operativo o installando manualmente una versione aggiornata di Bash dove il problema è stato risolto.

Nel seguente articolo verrà mostrato come verificare l'eventuale presenza di vulnerabilità e conseguentemente procedere con la risoluzione al problema. La seguente procedura è stata testata personalmente ed avendola portata a termine con successo è decisamente da considerarsi affidabile.

Innanzitutto è necessario connettersi alla shell Linux; nel caso in cui ciò dovesse essere effettuato da una macchina Windows possiamo farlo in SSH con PuTTy inserendo semplicemente l'IP del server desiderato, la porta 22 e digitando le successive credenziali di accesso richieste.

Aperta la shella verifichiamo subito la vulnerabilità con il seguente comando:

env VAR='() { :;}; echo Versione di Bash vulnerabile!' bash -c "echo Bash test versione corrente"


Nel caso in cui la versione correntemente installata sia vulnerabile la shell ci comunicherà ovviamente il testo che abbiamo inserito:

Versione di Bash vulnerabile!
Bash test versione corrente


Se il messaggio di cui sopra manca della frase "Versione di Bash vulnerabile!" significa che la versione installata sulla macchina non presenta falle di sicurezza conosciute.

Nel caso opposto dovremo procedere con l'update di Bash eseguendo l'opportuno comando, apt-get o yum, in base alla versione del sistema operativo.

Per Ubuntu / Debian:

sudo apt-get update && sudo apt-get install --only-upgrade bash


Per CentOS / Red Hat / Fedora:

sudo yum update bash


Nel caso in cui, all'esecuzione di questo comando, venga restituito l'errore "[USER] is not in the sudoers file.  This incident will be reported." significa che non lo stiamo eseguendo con i diritti di root e sarà necessario digitare prima il comando "su", digitare quindi la password richiesta, dopodiche quello di update (ad esempio "sudo yum update bash").

Il risultato mostrato a video è qualcosa di simile al seguente:

Loaded plugins: dellsysid, fastestmirror, priorities
Loading mirror speeds from cached hostfile
 * base: it.centos.contactlab.it
 * extras: it.centos.contactlab.it
 * updates: it.centos.contactlab.it
base                                                     | 3.7 kB     00:00
dell-omsa-indep                                          | 1.9 kB     00:00
dell-omsa-specific                                       | 1.9 kB     00:00
extras                                                   | 3.3 kB     00:00
updates                                                  | 3.4 kB     00:00
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package bash.x86_64 0:4.1.2-15.el6_4 will be updated
---> Package bash.x86_64 0:4.1.2-15.el6_5.2 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package       Arch            Version                   Repository        Size
================================================================================
Updating:
 bash          x86_64          4.1.2-15.el6_5.2          updates          905 k

Transaction Summary
================================================================================
Upgrade       1 Package(s)

Total download size: 905 k
Is this ok [y/N]:


Digitando "y" e confermando partirà il processo di download e di aggiornamento dei pacchetti:

Downloading Packages:
bash-4.1.2-15.el6_5.2.x86_64.rpm                         | 905 kB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating   : bash-4.1.2-15.el6_5.2.x86_64                                 1/2
  Cleanup    : bash-4.1.2-15.el6_4.x86_64                                   2/2
  Verifying  : bash-4.1.2-15.el6_5.2.x86_64                                 1/2
  Verifying  : bash-4.1.2-15.el6_4.x86_64                                   2/2

Updated:
  bash.x86_64 0:4.1.2-15.el6_5.2

Complete!


Appurato che il tutto sia terminato con successo (messaggio finale "Complete!"), l'operazione è da ritenersi conclusa e un'ulteriore conferma c'è data rieffettuando la verifica di vulnerabilità con il codice mostrato a inizio articolo che a questo punto sarà restituita senza il messaggio di allerta.

Tags
Condividi

Autore

Michele Pisani

Michele Pisani

Ho uno spiccato orientamento al problem-solving, se è troppo facile non mi diverto :)
Credo nella volontà e nel cambiamento perchè hanno fatto della mia passione il mio pane quotidiano.
Se devo descrivermi con una sola parola direi... "Concretezza", la mia stretta di mano è una garanzia.

0 Commenti

Non ci sono commenti

Nessuno ha ancora commentato questo articolo, fallo tu per primo!

Scrivi un Commento

Scrivi un Commento

Il tuo indirizzo email non sarà pubblicato.
I campi contrassegnati da un * sono obbligatori

Articoli e Argomenti correlati

Categorie popolari

Iscriviti alla mia newsletter

La tua e-mail con me sarà al sicuro.
Non fornirò mai le tue informazioni a nessuno!

Ultimi commenti

Michele

Ciao Antonio,
ma il tuo apk si chiama 'HelloWorld-release-unsigned.apk'?

Antonio

Grazie michele per la velocità con cui hai risposto, comunque ho seguito la tua guida passo per …

Michele

Ciao Antonio,
probabilmente stai utilizzando un'opzione non prevista per jarsigner e la …

Antonio

Ricevo questo errore da cosa dipende? Illegal option\: …