Bash-Lücke "Shellshock": Tests auf Verwundbarkeit und Abwehr

30.09.2014

Die Sicherheitsprobleme mit der Bash-Shell haben sich ausgeweitet, doch es gibt keinen Grund zur Panik.

Kaum war ein erster Patch für die vor kurzem gefundene, unter dem Kürzel CVE-2014-6271 firmierende Sicherheitslücke "Shellshock" in der Bash gefunden, zeigte sich sehr schnell, dass auch dieser das Problem nicht von Grund auf löste: Der Sicherheitsexperte Tavis Ormandy von Google führte per Twitter vor, wie sich auch damit gepatchte Bash-Shells weiterhin überlisten ließen (CVE-2014-7169). Auf weitere Patches folgten weitere Lücken, die aber wohl eher nur von theoretischer Bedeutung sind. Ein Test für die Verwundbarkeit der Bash für den ersten Bug (CVE-2014-6271) sieht so aus:

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

Gibt die Shell nach der Ausführung dieses Befehls den String "vulnerable" aus, enthält sie noch die Sicherheitslücke. Ein Test für CVE-2014-6271 funktioniert folgendermaßen:

cd /tmp; rm -f /tmp/echo; env 'x=() { (a)=>\' bash -c "echo date"; cat /tmp/echo

Erhält man hier die Ausgabe des Datums und findet im Tmp-Verzeichnis die Datei "echo", ist die Shell von der Sicherheitslücke betroffen.

Derweil hat sich Robert Graham daran gemacht, seinen Mass-Scanner auf das Internet loszulassen und per Brute Force nach der Sicherheitslücke zu suchen. Führt ein Webserver nämlich Skripts über die CGI-Schnittstelle aus, lässt sich die Bash-Lücke auch remote ausnutzen. Gleiches gilt für Nicht-CGI-Programme, die etwa mit bestimmten Systemcalls andere Programme aufrufen, die einen Aufruf der Bash nach sich ziehen. In diesen Fällen können Angreifer ebenfalls die Umgebungsvariablen manipulieren, um Programme auf dem angegriffenen Rechner auszuführen. Graham setzt in seinem Proof of Concept drei Ping-Pakete auf den eigenen Rechner ab, die er mit einem anderen Programm mitschneidet. So bekommt er ein direktes Feedback darüber, welche Rechner die Remote-Lücke der Bash aufweisen.

Es gibt verschiedentlich Hinweise darauf, dass die Lücke tatsächlich von Blackhat-Hackern ausgenutzt wird, aber bisher keine konkreten Beweise. Neben diversen Proof-of-Concept-Exploits wie dem von Graham existiert auch ein Beispiel für einen Exploit per DHCP.

Der Einsatz von SELinux auf Linux-Distributionen hilft gegen "Shellshock" nur eingeschränkt. Wer die Bash auf seinem System, aus welchen Gründen auch immer, nicht updaten kann, für den bietet Red Hat auf der Seite "Mitigating the shellshock vulnerability" einige interessante Hinweise, um Remote Exploits der Lücke zu erschweren. Dabei werden beispielsweise IPTables-Firewall-Regeln eingesetzt, um HTTP-Zugriffe nach einem bestimmten Muster zu unterbinden. Ein anderer Lösungsansatz lädt per LD_PRELOAD dynamischen Code, der beim Ausführen der Bash die Umgebungsvariablen aufräumt. Schließlich gibt es noch die Möglichkeit, per Systemtap den sogenannten privileged Mode der Bash zu aktivieren, in dem die Shell auf die Auswertung der Umgebungsvariablen verzichtet.

Updates der Bash-Pakete gibt es etwa für Ubuntu 10.04, 12.04 und 14.04 ebenso wie für Debian "Wheezy", Fedora 19/20/21-alpha, Red Hat Enterprise Linux und CentOS 5, 6 und 7.  Auch Apple, dessen OS X mit der Bash ausgeliefert wird, hat mittlerweile ein Update veröffentlicht, das die beiden oben erwähnten Lücken schließt.

Ähnliche Artikel

comments powered by Disqus
Mehr zum Thema

Sicherheitslücke in der Bash erlaubt Ausführung von Code

Die fehlende Prüfung von Umgebungsvariablen erlaubt die Ausführung von Shell-Code.

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019