Shellshock unter Linux fixen

Autor: Christian Ahmer, erstellt: 26.09.2014, zuletzt geändert: 20.12.2014
Kategorien: Linux

Aktuell ist ja leider die häufig standardmäßig vorinstallierte  Bash ein großes Sicherheitsproblem namens Shellshock. Durch das Ausführen von Code nach der Deklaration einer anonymen Funktion in einer Variablenzuweisung kann man aktuell leicht Opfer von Skriptkiddies werden, die das betroffene Linux System dann extrem einfach "überwältigen" können und mit dem jeweiligen Server dann so allerhand Schindluder treiben können.

Schauen wir doch einmal nach, um Shellshock unter Linux zu fixen muss man zunächst einmal schauen, ob das jeweilige System überhaupt davon betroffen ist. Betroffen sind nur Maschinen, auf denen auch die Bash als Standardshell installiert ist.
Ein einfacher Test reicht aus, um das System auf Shellshock Verwundbarkeit zu überprüfen:

test="() {echo Hello;} echo ohoh" bash -c ""

Steht dann hinterher ohoh auf der Kommandozeile, so ist das System mit hoher Wahrscheinlichkeit verwundbar und hier sollte man also unbedingt Shellshock unter diesem Linux fixen.

Um unter Arch Linux eine gefixte Version zu installieren, einfach das Nachfolgende ausführen:
 

pacman -Syu
pacman -S bash


Um das Problem auf Ubuntu / Debian zu beheben, kann man aktuell einfach ein kurzes

apt-get update
apt-get install bash

ausführen, danach sollte beim nochmaligen ausführen des Tests folgendes erscheinen:

bash: test: Zeile 0: Syntaxfehler beim unerwarteten Wort »{echo«
bash: test: Zeile 0: `test () {echo Hello;} echo ohoh'
bash: Fehler beim Importieren der Funktionsdefinition für »test«.

Das Ausführen von Schadcode ist somit nicht mehr in dieser Form möglich.

Puh! Ich kann nur jedem raten, seine Linux System aktuell einer solchen Prüfung zu unterziehen ansonsten ist einmal wieder Fahrlässigkeit der Steuermann!

Untersucht einfach einmal alle access Logs eurer Webserver auf folgende Zeichenkette:

;}

Bei mir gab es zum Glück nur einen Eintrag in allen Logs, der definitiv ein solcher Angriff / Test war, der aber zum Glück ins Leere lief, so dass die Notwendigkeit, Shellshock unter Linux zu fixen hier nicht gegeben war:

access.log:89.207.135.125 - - [25/Sep/2014:13:58:21 +0200] "GET /cgi-sys/defaultwebpage.cgi HTTP/1.0" 404 502 "-" "() { :;}; /bin/ping -c 1 198.101.206.138"

Aber evtl. konnte der ping Befehl doch sein Ziel, die IP 198.101.206.138 zu pingen, ausführen, womit mein Server offenbar in einer Liste von via Shellshock verwundbaren Servern landete und daraufhin dann auch penetriert wurde.
Aber: Meine bash ist nun geschützt, was immer der Angreifer auch vorhaben mag, er wird ins Leere laufen - ich hoffe das war es dann auch schon soweit zum Ärgernis Shellshock unter Linux.

Achtung: Ein Hinweis noch: Shellshock ist nicht nur unter Linux zu fixen, es gibt durchaus auch andere Betriebssysteme, auf denen die besagte Shell installiert sein kann, etwa OSX - allerdings sind Server mit diesem System eher selten anzutreffen.