Verschlüsselung

ShellShock: Schwachstelle macht Betriebssysteme angreifbar

26. September 2014
  • Verschlüsselung

© James Thew - Fotolia.com

Eine Sicherheitslücke in der Unix-Shell Bash bedroht insbesondere Webserver und kann dazu ausgenutzt werden, beliebige Schadcodes aus dem Netz auszuführen. Entdeckt wurde die Sicherheitslücke vom Entwickler Stephane Chazelas. Nun handelt es sich bei Bash um die Quasi-Standard-Shell der meisten Unix-Systeme – und damit fast aller Linux-Distributionen sowie Mac OS. Auf anderen Unix-Systemen ist die Shell oftmals nachinstalliert worden. Kurzum: Die Schwachstelle betrifft fast jeden Nutzer!

Wie arbeitet ShellShock?

Entwickler Chazelas fand heraus, dass über die Sicherheitslücke ShellShock Code in Umgebungsvariablen eingefügt werden kann, der beim Neustart einer Shell ausgeführt wird. Bash wird auf Unix-Systemen in etlichen Situationen genutzt und so ist schwer absehbar, wo Angreifer die Lücke ausnutzen und Code ausführen. Die Bash-Lücke ShellShock wurde bereits zum Verbreiten von Malware ausgenutzt; die erste Schnellkorrektur seitens der Entwickler waren offenbar unvollständig. Experten schätzen das Ausmaß der Sicherheitslücke als ähnlich gravierend ein wie Heartbleed. Die offizielle ID der Sicherheitslücke ist CVE-2014-6271 – die NIST-CVE-Datenbank stuft die Sicherheitslücke mit einer maximalen Gefährlichkeit ein.

Das Kernproblem an der Sicherheitslücke ist die Bash-Funktionalität, die es erlaubt, Funktionen in beliebigen Variablen zu definieren. Der Name der Variablen ist dabei unerheblich. So wird hinter der Definition einer Funktion ungeprüft weiterer Code ausgeführt – sogar, wenn die Funktion selbst gar nicht aufgerufen wird. Diese Tatsache macht das Ausnutzen von ShellShock so einfach und damit schwerwiegend.

Fehler ist 20 Jahre alt

Schon seit mehr als 20 Jahren steckt der Fehler im Bash-Code: Chet Ramey, momentaner Bash-Hauptautor, veröffentlichte Patches für mehrere alte Bash-Versionensogar eine für die antiquierte Version 2.05b. Problematisch sind insbesondere CGI-Skripte auf Webservern, wie eine Analyse von RedHat, die vier Angriffsszenarien mit ShellShock auflistet, zeigt. Einige CGI-Skripte sind direkt in Bash geschrieben, während diverse Programmiersprachen mit dem Systemstart Bash mit aufrufen. Auch SSH-Shells, die sich auf bestimmte Befehle beschränken, sind gefährlich. Solche Begrenzungen, die vor allem von Git- und DVS-Servern genutzt werden, lassen sich via ShellShock aushebeln. Für Clientrechner kann es problematisch werden, wenn DHCP-Clients Bash aufrufen und dabei Variablen setzen, die über den DHCP-Server kontrolliert werden können. Derzeit ist die Liste möglicher Angriffsszenarien sicher noch nicht vollständig, weil Bash fast überall mitwirkt.

Andere Shells sind nicht betroffen – Verwirrung gab es bei zahlreichen Nutzern, als sie Testcodes ausführten und Verwundbarkeitsmeldungen auch unter anderen Shells erhielten. Dies lässt sich damit erklären, dass der Testcode, der in zahlreichen Berichterstattungen, beispielsweise bei heise.de, angegeben wird, Bash aufruft – unabhängig davon, aus welcher Shell gestartet wird. Embedded-Geräte dürften vielfach dadurch gerettet sein, dass keine anderen Shells betroffen sind. Wenngleich Linux auf etlichen Geräten und Routern zum Einsatz kommt, können Sie diesbezüglich beruhigt sein – in aller Regel setzt man auf Shells, die ressourcenschonender sind als Bash.

Korrigierte Bash-Version fehlerhaft – experimenteller Patch

Kurz nachdem über ShellShock berichtet wurde, twitterte Tavis Ormandy, Entwickler bei Google, einen Beispielcode. Dieser verwirrte offenbar den Funktionsparser in der korrigierten Version. Ormandy konnte dies zwar nicht ausnutzen, aber es kam zum Vorschein, dass das eigentliche Problem in der Bash-Korrektur nicht behoben wurde. Noch existiert kein offizielles Bash-Update, aber einen experimentellen Patch; auf der Mailingsliste oss-security zu finden. Eben dieser wird bereits für einige Linux-Distributionen ausgeliefert.

Auf ShellShock testen

Um zu testen, ob auch Sie von der Sicherheitslücke ShellShock betroffen sind, können Sie diesen Befehl eingeben:

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

Sie sind betroffen, wenn der String „gehackt“ ausgegeben wird. Mit dem folgenden Beispiel-Bash-Code können Sie testen, ob Sie den ersten fehlerhaften Fix erhalten haben:

X='() { function a a>\' bash -c echo; [ -e echo ] && echo "gehackt"

Informieren Sie sich weiterführend über Testtools, werden Sie unweigerlich auch über Online-Tools stolpern. Diese arbeiten allerdings nicht sonderlich zuverlässig: Theoretisch könnte jede einzelne Datei auf Ihrem Server betroffen sein. Es gibt zahlreiche Variablen, die das Unterbringen von Code erlauben. Hinzu kommt, dass das Testen fremder Server rechtlich eine Grauzone ist, da Code auf fremden Servern ausgeführt wird. Haben Sie Fragen zu ShellShock, antworten unsere Security-Experten Ihnen gerne! Stellen Sie Ihre Fragen in den Kommentaren oder nehmen Sie Kontakt zu unserem Support auf.



0 Kommentar(e)

Schreibe einen Kommentar