Neuer Unix BASH Bug "Shellshock" ? Und wie man seinen Mac wieder sicher macht

Jens Holze
Vor kurzem wurde eine ein aus meiner Sicht gravierende Sicherheitslücke der freihen Unix Shell "Bash" aufgedeckt, mit welcher man Schadcode von einem entferten System aus auf dem befallenden Recher-System ausführen kann. Da Bash die Standard-Shell der meisten Unix-basierten ist und ebenfalls auch bei den meisten Linix-Distros mit an Bord ist, könnte man sagen, das der Großteil der weltweit aktiven Unix-Installationen hier betroffen ist. Und da Mac OS X auf dem freien BSD Kernel basiert bin ich es leider auch. 
Grund genug sich ein wenig mit dem Thema auseinander zu setzten und meinen Rechner wieder etwas sicherer zu machen. 

Was ist nun "shellshock"

und was kann man dagegen unternehmen ?

Shellshock gibt einem potenziellen Angreifer die Möglichkeit, mit Schadcode, welcher in vorhandene Umgebungsvariablen eingeschleust wurde, auf einem fremden System entsprechend auszuführen. Nach dem Start einer neuen Shell, unter Mac in z.B. einem neuen Terminal-Tab, kann dieser Code dann wie gesagt entsprechend ausgeführt werden. 

Wenn man nun google bedient und nach dem Thema sucht, findet man bereits einige Beispiele von Code, um entsprechenden Unsinn auf anderen Rechner zu treiben.

Wie kann ich sehen, ob mein Rechner wirklich betroffen ist ?

Generell würde ich sagen, jeder ist es und sollte zumindest schauen ob sein System befallen ist. Mit folgener Kommandozeilen-Eingabe ist dies möglich:

env x='() { :;}; echo vulnerable' bash -c "echo Mein Rechner ist befallen. Spray auftragen und leicht einreiben :"


Was kann man nun dagegen machen ?

Da ich seit einiger Zeit "Homebrew " auf meinem Macbook nutze, war es doch relativ einfach. Leider begenete mir ein etwas älteres Problem mit (Home)Brew und zwar war es nicht Möglich ein "brew update" auszuführen auf meinem Rechner auszuführen. Dies endete immer in dem Fehler: 
 

 error: The following untracked working tree files would be overwritten by merge: Library/Formula/omega.rb


Auf der entsprechenden Homebrew Common Issues Page auf Github wurde ich dann fündig. Als erstes lasst ihr euch mit:

(brew --repository)

den Pfad zu eurem Homebrew ausgeben und wechselt anschliessend dort hin. Dann folgenden Befehl eingeben:

git reset --hard FETCH_HEAD


was bedeutet, das euer Staging bereich komplett zurück gesetzte wird und das lokale Arbeitsverzeichniss mit dem letzten commit abgelichen wird. Im Anschluss habe ich dann noch wie aufgeführt 

git clean -fd

ausgeführt. Welches letztlich alle nicht vom git erfassten Dateien aus dem Arbeitsverzeichniss entfernt. Der Befehl (brew --repository)/Libary führte bei mir nur zu einem Problem. Ich habe dies einfach ausgelassen und es lief dennoch alles sauber durch. 

Brew Update und bash ungrade

Zum Schluss dann nur noch brew auf den aktuellen Stand bringen mit brew update und im Anschluss mit brew upgrade ( hier aufpassen, nicht update !) bash das Paket aktuallisieren oder mit brew install bash installieren. FERTIG.

INFO: Ihr solltet sicher stellen, das ich auch die durch brew installierte BASH Version nutzt. Falls nicht, müsste diese noch entsprechend aktiviert werden. Eine gute Anleitung dazu gibt es hier.

About Jens Holze

He is the boss / Omnipresent: from coding to sales/ Coffee slash Mojitos enthusiast.