Linux: Bash-Sicherheitslücke ermöglicht Codeausführung

Dieses Thema im Forum "Tech News" wurde erstellt von raid-rush, 26. September 2014 .

  1. 26. September 2014
    Zuletzt bearbeitet: 15. April 2017
    In der Linux-Shell Bash wurde eine große Sicherheitslücke entdeckt. In Umgebungsvariablen lässt sich Code einfügen, den die Shell beim Starten ungeprüft ausführt. Das eröffnet zahlreiche Angriffsvektoren, am kritischsten ist die Lücke für Webskripte, die mittels CGI ausgeführt werden.

    Bash ermöglicht es, mittels Umgebungsvariablen Funktionen zu definieren. Der Name der Umgebungsvariable dient dabei als Funktionsname, der Inhalt wird ausgeführt. Beispiel:

    Code:
    x="() { echo Moin; }" bash -c "x"
    So wird eine Funktion x definiert, die die Zeichenkette "Moin" ausgibt. Das Problem: Wenn Bash eine solche Funktionsvariable entdeckt, parst es die komplette Variable und führt Code aus, der sich direkt hinter dem Funktionsaufruf befindet. Ob die Shell angreifbar ist lässt sich wie folgt testen:

    Code:
    test="() { echo Moin Moin; }; echo gehackt" bash -c ""
    Bei einer verwundbaren Bash-Version wird hier der String "gehackt" ausgegeben obwohl die Bash-Shell eigentlich überhaupt nichts ausführen soll.
    terminal.png
    Besonders kritisch sind hierbei CGI-Skripte auf Webservern. Denn hier werden beispielsweise Parameter oder Pfade der Webanwendung mittels Umgebungsvariablen übergeben. CGI-Skripte, die in Bash geschrieben sind, lassen sich damit direkt angreifen. Aber auch in anderen Programmiersprachen gibt es kritische Befehle: In PHP system() und exec(), in C die Befehle system() und popen() und in Python os.system() und os.popen().

    Ein Update ist für alle Nutzer und Administratoren von Linux und anderen Unix-Systemen mit Bash dringend nötig. Für die aktuelle Bash-Version 4.3 steht der Patch 025 bereit, für Bash 4.2 der Patch 048. Betroffen ist auch MacOS X, welches ebenfalls Bash als Standardshell verwendet.

    Eine Anleitung um die MacOS Bash zu ersetzen bzw neu zu compilieren findet ihr hier auf englisch: security - How do I recompile Bash to avoid Shellshock (the remote exploit CVE-2014-6271 and CVE-2014-7169)? - Ask Different

    Update:
    Hier eine Anleitung wie man auf Debian Squeeze die Lücke behebt:
    Debian Squeeze Shellshock fix - RR:Board



    Quelle:
    • Linux-Shell: Bash-Sicherheitslücke ermöglicht Codeausführung auf Servern - Golem.de
    • oss-sec: Re: CVE-2014-6271: remote code execution through bash
     
  2. 26. September 2014
    AW: Artikel: Linux: Bash-Sicherheitslücke ermöglicht Codeausführung

    Krass wie lang der Bug einfach unentdeckt blieb.
     
  3. 28. September 2014
    Das weiß man nie so genau, ob der wirklich unentdeckt war... es gab und gibt unzählige Bugs die teilweise Jahrelang bestehen und definitiv genutzt werden.

    Ebenso wenig ist bekannt wie viele Daten im Netz gesammelt wurden (zB durch Hacker oder Geheimdienste). Wäre ja auch nicht gerade optimal für das Vertrauen in Internetdienstleistungen.
     
  4. 29. September 2014
    Hat jemand schon Erfahrungen gemacht wie sich das Ganze real auswirkt? So wie ich das verstanden lässt sich das Exploit auch dazu nutzen um Befehle mit Root Rechte auszuführen? Nehmen wir an wir knacken ein Shared Hosting Server. Der Webuser läuft zwar mit eingeschränkter Rechte hat aber i.d.R bei vielen Hostern Bash Zugriff. Kann ich mit diesem simplen Webuser einfach Befehle mit root Rechten ausführen? Oder habe ich da was falsch verstanden? Ein direkter Remote Angriff kommt doch nur mit Webscripts die auf BASH setzen in Frage?? (z.B CGI Scripts) Wäre das Szenario mit dem Shared Hosting den techisch möglich? Vorausgesetzt Bash ist installiert und wir haben schon File Zugriff + Shellzugriff.
     
  5. 30. September 2014
    Wenn es eine Lücke in der VM gibt bzw ein Exploit könnte wäre natürlich ein hack des Hostsystems möglich. Die Befehle werden immer als der Nutzer ausgeführt der den Laufenden Elternprozess gestartet hat.

    Also wenn du über den Webdienst der vom Webuser ausgeführt wird einen exec(), system() oder ähnliches Ausführst mit diesem Bug sollte der keine root-Rechte haben, zumindest soweit ich das entnehmen konnte. Dafür wäre dann weiter ein Root- bzw Kernel-Exploit nötig.
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.