Dopo Heartbleed, è arrivato il bug Shellshock, che coinvolge la bash di computer Mac e Linux. Tutti i dispositivi UNIX-like, quindi, sono esposti a questo bug e molteplici aggiornamenti, in questi anni, non hanno corretto questa vulnerabilità. Quest’ultima, infatti, è rimasta “in giro”, con molta probabilità, per 20 anni circa. Andiamo a scoprire, quindi, come aggiornare la bash presente su sistemi con sistema operativo Mac OS X.

Bash è una shell basata su linea di comando e presente in molti sistemi operativi basati su Linux e Unix, incluso Mac OS X. La bash può essere utilizzata, con semplici script, per lanciare programmi o abilitare funzionalità senza alcuna password e senza che l’utente se ne accorga. Gli hacker, inoltre, potrebbero accedere ai file, informazioni confidenziali, eliminare dati, far partire programmi e molto altro ancora. Per risolvere questa vulnerabilità su Mac OS X sono necessarie alcune righe di codice da digitare sul terminale, in modo tale da intervenire in anticipo e prima che Apple rilasci un aggiornamento dedicato.

Trovare il bug Shellshock

Come detto nel precedente articolo, una volta aperta la finestra del Terminale, digitate la seguente riga di comando, seguita dal pulsante Invio. Vi ricordiamo che l’app Terminale può essere trovata grazie a Spotlight o all’interno della cartella Utilità in Applicazioni.

env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

Se il sistema non è vulnerabile al bug Shellshock, otterrete questa risposta:

bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x’
this is a test

Qualora il sistema sia “infettatto” da Shellshock, verrà mostrata questa riga:

vulnerable
this is a test

Preoccupati di questo bug estremamente importante? Allora potete aggiornare a mano la bash tramite alcune righe di codice. Ci vorrà qualche minuto, ma il livello di sicurezza sul vostro computer aumenterà e potrete dormire sogni tranquilli.

Controllare la versione

Prima di aggiornare la bash, è suggeribile controllare l’attuale versione installata sul vostro Mac. Digitate, quindi, nella finestra del Terminale la riga di comando, seguita dal tasto invio, che vedete qui sotto.

bash –version

Se ottenete come versione la 3.2.51(1)-release, allora sarà necessario effettuare l’aggiornamento manualmente alla nuova versione bash 3.2, che è la 3.2.52.

Scaricare e compilare la patch

Dal momento che Apple non ha rilasciato alcun aggiornamento, è necessario avere installato Xcode sulla propria macchina per poter compilare manualmente la nuova bash. Se non avete questo software, potete scaricarlo gratuitamente dal Mac App Store.

Una volta terminata l’installazione di Xcode, è arrivato il momento di riaprire il Terminale e digitare la seguente riga di codice. Ogni singola riga rappresenta un comando, quindi dovrete inserire sette righe di comando e premere Invio ad ognuna di esse.

mkdir bash-fix
cd bash-fix
curl https://opensource.apple.com/tarballs/bash/bash–92.tar.gz | tar zxf -
cd bash–92/bash–3.2
curl https://ftp.gnu.org/pub/gnu/bash/bash–3.2-patches/bash32–052 | patch -p0
cd ..
xcodebuild

Il processo di compilazione potrebbe richiedere un po’ di tempo e, sul Terminale, appariranno tantissime scritte che potete ignorare. Tutto ciò, infatti, è svolto da Xcode che sta compilando la nuova versione della bash nel vostro sistema. Una volta terminato il processo, apparirà la scritta “BUILD SUCCEEDED” e riavrete il controllo del Terminale.

Prima di procedere, per precauzione, effettueremo il backup dell’attuale versione di bash. Ciò è possibile attraverso due comandi sudo che richiedono i privilegi di amministratore. Per questo motivo, quindi, vi verrà richiesto al primo comando di digitare la password che utilizzate per effettuare il login sul Mac. Il Terminale non vi mostrerà alcuna lettera digitata, ma dopo aver digitato la password premete il tasto Invio e potrete effettuare, tranquillamente, il backup.

sudo cp /bin/bash /bin/bash.old
sudo cp /bin/sh /bin/sh.old

Adesso è arrivato il momento di verificare che avete scaricato la nuova bash e che sia stata compilata sul vostro computer.

build/Release/bash –version
build/Release/sh –version

L’output, se tutto è andato a buon fine, dovrebbe confermare che la versione della build della bash è 3.2.52(1)-release.

Adesso siamo arrivati allo step finale, dovrete infatti far diventare la nuova versione di bash, scaricata e compilata, quella di default. Per far ciò digitate i seguenti comandi sul Terminale:

sudo cp build/Release/bash /bin
sudo cp build/Release/sh /bin

Da ora in poi, quindi, il vostro Mac sarà più protetto grazie alla nuova bash installata.