Sie klaffen vermutlich seit Jahrzehnten, jetzt wurden sie entdeckt und repariert – mehrere ernste Schwachstellen in der unter Unix-artigen Betriebssystemen sehr weit verbreiteten Bash.
Seit dem 24. September dieses Jahres wurde in der Bash (Bourne Again Shell) kurz nacheinander eine Reihe Schwachstellen entdeckt: (CVE-2014-6271, CVE-2014-6277, CVE-2014-7169, CVE-2014-7186, CVE-2014-7187).
Diese potenziellen Angriffspunkte gelten als besonders gefährlich, weil viele Internetdienste, darunter Webserver, die Bash benutzen, um verschiedene Anfragen abarbeiten zu lassen. Darüber hinaus sind auch DHCP-Clients leicht verwundbar, weil sie vom DHCP-Server empfangene Informationen in Umgebungsvariablen ablegen. Ähnliches gilt für CUPS-Server oder Browser-Plugins.
Auf diese Weise könnte eine attackierbare Bash einem Angreifer die Möglichkeit eröffnen, beliebige Befehle auszuführen. Dabei ist zumindest am Anfang der attackierende Hacker allerdings auf jene Rechte beschränkt, die der User hat, der den Shellcode ausführt. Und das sollte ja gerade bei Webservern auf gar keinen Fall Root, sondern ein unterprivilegierter Benutzer sein.
Shellschock
Durch den Bug sind Millionen von Rechnern im Internet bedroht, sodass seine Problematik durchaus mit der von Heartbleed verglichen werden kann. Der IT-Volksmund nennt die Lücken deshalb auch “Shellschock”. Das Problem tritt beim Verarbeiten von Umgebungsvariablen auf. Umgebungsvariablen kommen bei zahlreichen Anwendungen ständig zum Einsatz, weshalb die Schwachstelle auch so besonders bedrohlich ist.
Beispielsweise lassen sich die Umgebungsvariablen »COLOR« und »NAME« wie im folgenden Shellcode definieren und verwenden:
COLOR=blue NAME=John echo "$NAME's favorite color is $COLOR"
Werden diese Befehle in der Bash ausgeführt, erscheint auf dem Bildschirm der Text: »John’s favorite color is blue« . Umgebungsvariablen lassen sich aber auch in einer noch kompakteren Form einsetzen:
env COLOR=red bash -c 'echo My favorite §§ color is $COLOR'
Diese Zeile liefert dann folgenden Text: »My favorite color is red« . Der »env« -Befehl setzt hierbei die Umgebungsvariable »COLOR« . Die Sicherheitslücke in der Bash besteht nun darin, dass beim Verarbeiten von Umgebungsvariablen mit »env« ein Fehler auftreten kann, sodass auf betroffenen Systemen die Anweisung
env COLOR='() { :;}; echo vulnerable' bash -c "echo I hate colors"«
den Text
vulnerable I hate colors
liefert. Das Seltsame hierbei ist, dass die »echo« -Anweisung gar nicht auf die »COLOR« -Umgebungsvariable zugreift und trotzdem der »vulnerable« -String ausgegeben wird. Auf korrigierten oder nicht anfälligen Systemen würde die obige Anweisung lediglich »I hate colors« ausspucken.
Diese Schwachstelle können auch entfernte Angreifer ausnutzten. Sehr häufig wird die Bash verwendet, um andere Programme aufzurufen. Vielfach dienen dabei Umgebungsvariablen zur Parameterweitergabe. Genau darin liegt die Brisanz der Sicherheitslücke. Schon gibt es Botnets, die auf genau dieser Schwachstelle basieren und verteilte Denial-of-Service-Attacken ausführen.
Betroffen scheinen alle Bash-Versionen bis 4.3 zu sein. Das heißt, diese Lücke reicht bis zu 25 Jahre zurück.





