Bash-Lücke: ShellShock-Lücke unter MacOS korrigieren (Update 2: 29.09.2014)

Nachdem ein Sicherheitsfix für die ShellShock-Lücke (CVE-2014–6271, CVE-2014–7169 in der Kommandozeile „Bash” noch nicht von Apple angekündigt wurde, so möchte ich euch einen Weg aufzeigen wie Ihr diese Lücke selber mit wenigen Schritten für das aktuelle MacOS 10.9.5 korrigieren könnt.

Zum schließen der Lücke wird entweder die Xcode Command Line Developer Tools oder die komplette Entwicklungsumgebung Xcode (kostenlos) benötigt.

Wichtig: Außerdem sollte man sich auch im Terminal-Fenster (Kommandozeile)  auskennen. Wer sich hierbei unsicher ist, sollte unbedingt jemanden an den Mac lassen der sich damit auskennt. Aus rechtlichen Gründen sei auch noch folgender Hinweis erlaubt: Auch wenn ich die Anleitung sowie den Patch getestet habe, so kann ich weder für die Anleitung als auch für den Patch selber bzw. dem Bash-Softwarepaket irgendwelche Haftung übernehmen. Die Installation erfolgt auf euer eigenes Risiko.

Installationsanleitung:

Für die Installation der korrigierten Bash-Version müssen folgende Befehle im Terminal-Fenster ausgeführt werden:

  1. Vorbereitung (falls kein Xcode aus dem AppStore bereits installiert ist): folgender Befehl öffnet ein Dialogfenster welches die Installation der Command Line Developer Tools anbietet. Sofern man nicht selber Software entwickeln möchte, langt die Wahl von „Installieren”, da die komplette Xcode Entwicklungsumgebung nicht benötigt wird.
    [cclN_bash]
    $ xcode-select –install
    [/cclN_bash]
  2. Zuerst legen wir temporär ein Ordner an, in das alle Dateien kommen
    [cclN_bash]
    $ cd ~
    $ mkdir bashupdate
    $ cd bashupdate
    [/cclN_bash]

  3. Als nächstes laden und entpacken wir den Bash SourceCode von der Apple-Homepage. Die heruntergelassene Version ist dabei identisch mit der von OSX 10.9.5
    [cclN_bash]
    $ curl https://opensource.apple.com/tarballs/bash/bash-92.tar.gz | tar zxf -
    $ cd bash-92
    [/cclN_bash]

  4. Die beiden notwendigen Patches zur Korrektur der Sicherheitslücke einpflegen. Hinweis: da der zweite Patch noch nicht auf der Bash-Homepage veröffentlicht wurde, habe ich den Patch auf unserem Server bereitgestellt. (Aktualisiert: 29.09.2014 12:45)
    [cclN_bash]
    $ cd bash-3.2
    $ curl https://ftp.gnu.org/pub/gnu/bash/bash-3.2-patches/bash32-052 | patch -p0
    $ curl https://ftp.gnu.org/pub/gnu/bash/bash-3.2-patches/bash32-053 | patch -p0
    $ curl https://ftp.gnu.org/pub/gnu/bash/bash-3.2-patches/bash32-054 | patch -p0
    $ cd ..
    [/cclN_bash]

  5. Korrigierte Bash-Version kompilieren. Hinweis: Es kann sein, dass OSX nach dem starten von xcodebuild die Installation von Commando Line Developer Tools anbietet. Diese müssen unbedingt installiert werden, da ansonsten das kompilieren nicht möglich ist. Der Vorgang kann je nach Mac etwas dauern und schließt mit der Meldung ** BUILD SUCCEEDED ** ab.
    [cclN_bash]
    $ xcodebuild
    [/cclN_bash]

  6. Überprüfen ob Bash erfolgreich kompiliert wurde. Die Ausgabe sollte identisch mit der hier angezeigten sein.
    [cclN_bash]
    $ ./build/Release/bash –version
    GNU bash, version 3.2.53(1)-release (x86_64-apple-darwin13)
    Copyright © 2007 Free Software Foundation, Inc.
    [/cclN_bash]

  7. Anfällige Bash-Version deaktivieren und durch neue ersetzen. Dies bitte nur ausführen, wenn das kompilieren auch tatsächlich erfolgreich war. Beim ersten sudo-Kommando müssen Sie Ihr Administrator-Kennwort eingeben.
    [cclN_bash]
    $ sudo cp /bin/bash /bin/bash.old
    $ sudo cp /bin/sh /bin/sh.old
    $ sudo cp build/Release/bash /bin
    $ sudo cp build/Release/sh /bin
    $ sudo chmod a-x /bin/bash.old /bin/sh.old
    [/cclN_bash]

  8. Voilá — Update ist installiert
    [cclN_bash]
    $ bash –version
    GNU bash, version 3.2.53(1)-release (x86_64-apple-darwin13)
    Copyright © 2007 Free Software Foundation, Inc.
    [/cclN_bash]

Ein Neustart des Systems ist nicht notwendig. Die neue Bash-Version ist ab sofort aktiv und sollte gegen ShellShock abgesichert sein.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.