Wie behebe ich die Shellshock-Sicherheitslücke in Debian Testing / Jessie?


24

Der Testbefehl

x='() { :;}; echo vulnerable' bash

zeigt, dass meine Debian 8 (Jessie) -Installation auch mit den neuesten Updates anfällig ist. Untersuchungen haben ergeben, dass es einen Patch für Stable und Unstable gibt, die Tests jedoch nicht gepatcht sind.

Ich gehe davon aus, dass der Patch in ein paar Tagen zum Testen kommen wird, aber das sieht fies genug aus, um paranoid zu sein. Kann ich das Paket von Unstable herunterladen und installieren, ohne mein System zu beschädigen? Ein Upgrade auf Unstable scheint mehr Probleme zu verursachen, als es löst.


Laut Bob gibt es eine zweite Shellshock-Schwachstelle, die in einem zweiten Patch behoben ist. Der Test dafür soll sein:

 env X='() { (a)=>\' bash -c "echo echo vuln"; [[ "$(cat echo)" == "vuln" ]] && echo "still vulnerable :("

Aber ich bin nicht geschickt genug in Bash, um herauszufinden, was dies bedeutet oder warum es ein Problem ist. Auf jeden Fall macht es etwas Seltsames, was durch bash_4.3-9.2_amd64.deb auf 64-Bit-Systemen verhindert wird, die zum Zeitpunkt der Bearbeitung stabil und instabil sind, aber nicht in Jessie / testing.

Um dies für Jessie zu beheben , holen Sie sich das neueste Bash von Unstable und installieren Sie es mit dpkg -i.

Jemenake bietet

wget http://ftp.debian.org/debian/pool/main/b/bash/bash_4.3-9.2_$(dpkg --print-architecture).deb

als Befehl, der die Version 4.3-9.2 für Ihre Maschine erhält.

Und Sie können das mit folgen:

sudo dpkg -i bash_4.3-9.2_$(dpkg --print-architecture).deb

um es zu installieren.

Sollten Sie weitere Patches von Unstable für Ihr Jessie- System benötigen , ist dies eindeutig der richtige Weg ( mutatis mutandis ).

Antworten:


5

Laden Sie das Paket von Unstable über diesen Link herunter . Sie können dort auch die Abhängigkeiten überprüfen, obwohl es so aussieht, als ob die instabile Bash die gleichen Abhängigkeiten aufweist wie die Bash aus dem Test. Installieren Sie das heruntergeladene Deb mit folgendem Befehl.

dpkg -i

1
Danke, ich habe das getan und es hat das Problem behoben, ohne etwas merklich zu zerstören. Vermutlich wird es irgendwann im normalen Verlauf von Updates überschrieben?
John Lawrence Aspden

3
Der obige Link ist in Ordnung, wenn Sie einen Browser in einer GUI ausführen. Weniger, wenn Sie lynx in einer Shell-Sitzung ausführen. Wenn Sie etwas möchten, das Sie direkt in Ihre Befehlszeile einfügen können, versuchen wget http://ftp.debian.org/debian/pool/main/b/bash/bash_4.3-9.1_$(dpkg --print-architecture).deb Sie Folgendes: Es wird die richtige Architektur für Ihre Box erhalten.
Jemenake

1
@Jemenake Du solltest das als separate Antwort posten.
Hervorragend

Dies war definitiv die Antwort, die ich wollte, aber jetzt, da das Update bei Jessie eingegangen ist, denke ich, ist es besser, wenn die akzeptierte Antwort die ist, die die Leute jetzt brauchen, also bewege ich den Haken. Trotzdem danke!
John Lawrence Aspden

Tatsächlich gibt es zwei Shellshock-Fehler, und die Korrektur für den zweiten Fehler ist jetzt in sid, aber nicht in jessie, so dass dies tatsächlich immer noch die richtige Antwort ist (stellen Sie sicher, dass Sie 4.3-9.2 bekommen!), Obwohl die Situation zweifellos gelöst wird bald.
John Lawrence Aspden

25

Ich habe diese Antwort für die zusätzlichen Bash-Fixes bearbeitet, die am Montag veröffentlicht wurden.

Für Ubuntu 12.04 führte ich ein Update durch, musste aber auch die Installation für Bash ausführen, um die Sicherheitsanfälligkeit zu beseitigen.

root@host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test

Dieser Befehl zeigt an, dass das System anfällig ist. Führen Sie das Update aus.

apt-get update && apt-get -y upgrade

Nochmal testen.

root@host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test

Immer noch verwundbar.

apt-get install -y bash

Nochmal testen.

root@host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
this is a test

Bearbeiten: Nachdem die zusätzlichen Patches veröffentlicht wurden, hat sich die Ausgabe geändert.

root@host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
this is a test

Yay! Fest. Dies sollte für andere Versionen funktionieren, ich habe es jedoch erst nach 12.04 getestet.

Auch die Antwort von runamok unten funktioniert gut, also gib ihm eine Gegenstimme!


6
Scheint einfach apt-get update && apt-get install -y bashzu funktionieren.
Runamok

Aufgrund der Antwort von @JabawokJayUK habe ich den ersten Test nach dem Bash-Update in Ubuntu 12.04 immer noch nicht bestanden.
Birla

Ich bekomme this is a testaber nur den Fehler und die Warnung nicht. Auf meinem lokalen Rechner erhalte ich den Fehler, auf meinem Server jedoch nicht. Was bedeutet das? Ist mein Server gepatcht? Vielen Dank.
ElBaulP

Es scheint, dass das Repository jetzt auf dem neuesten Stand ist, da ich den Schritt apt-get install -y nicht ausführen musste. Das Problem wurde bereits nach dem Upgrade behoben.
user316566

1
Dies beantwortet die Frage zu Debian testing / jessie wirklich nicht . Ubuntu ist eine andere Distribution mit unabhängigen Paket-Repositorys und Patch-Zeitplänen.
Bob

16

Eine Alternative für Debian 6.0 (Squeeze), ohne Pakete von Debian 7 (Wheezy) abzurufen:

Verwenden Sie das LTS-Sicherheitsrepository, für das der Patch zurückportiert wurde.

Fügen Sie dies hinzu zu /etc/apt/sources.list:

#LTS security
deb http://http.debian.net/debian/ squeeze-lts main contrib non-free
deb-src http://http.debian.net/debian/ squeeze-lts main contrib non-free

Dann lauf apt-get update && apt-get install bash.

Via: linuxquestions


Funktioniert für Debian 6. Wir würden die LTC-Sicherheit immer in der Liste behalten!
Stanleyxu2005

4

apt-get updatevorher apt-get dist-upgradeund du bekommst den patch. Habe es einfach selbst gemacht und es wurde ein Bash-Upgrade durchgeführt, das das Problem behebt.


2
Das Problem war, dass Debian-Tests das aktualisierte Paket noch nicht hatten, so dass das manuelle Herunterladen von Unstable und das Installieren das einfachste Update zu dieser Zeit war. Die Lösung in dieser Antwort hätte nicht funktioniert. (Möglicherweise wird es dies jetzt
tun

Dies beantwortet nicht die ursprüngliche Frage, aber es ist das, was die Leute jetzt tun müssen, also akzeptiere ich es, damit es das erste ist, was die Leute sehen werden. Die "echte" Antwort auf meine Schwierigkeit (sie ist instabil und stabil, aber nicht im Test) ist Wurtels Antwort, indem man die neue Bash - ????. Deb und dpkg -i manuell herunterlädt.
John Lawrence Aspden

Ich denke auch, dass dies die Antwort für Ubuntu ist, nachdem sie ihre Fehlerbehebung ordnungsgemäß durchgeführt haben, und wahrscheinlich für jede andere Debian-basierte Distribution, die bis zu dem Punkt beibehalten wird, an dem die Leute Fehlerbehebungen vorgenommen haben.
John Lawrence Aspden

Tatsächlich gibt es zwei Shellshock-Bugs und der Fix für den zweiten ist noch nicht bei Jessie angekommen.
John Lawrence Aspden

Dies ist immer noch eine gültige Lösung und wird so lange bestehen bleiben, wie das Debian-Test-Sicherheitsteam Updates veröffentlicht. Möglicherweise hatten sie es zum Zeitpunkt der OP-Befragung nicht im Test. Eine andere Option ist die Einstellung aller Benutzer für die Verwendung von Dash. Dies ist hauptsächlich ein Server-Problem und nicht
MGD_Toronto

3

Ich habe es auf meinem Hackintosh behoben durch:

$ brew install bash

$ x='() { :;}; echo vulnerable' bash
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
bash-4.3$ 

2
Vergessen Sie nicht, das Gebräu zu installieren, bevor ...
Marcos Maciel

1

Ich habe einen Artikel darüber geschrieben, wie man dies mit apt-get auf alten Ubuntu-Versionen macht. Grundsätzlich aktualisieren Sie Ihre sources.list auf den neuesten Stand und führen dann apt-get update und upgrade bash aus. Sie können es Schritt für Schritt lesen oder von hier aus kopieren .

Zusammenfassung:

sudo sed -i 's/YOUR_OS_CODENAME/trusty/g' /etc/apt/sources.list
sudo apt-get update
sudo apt-get install --only-upgrade bash

Lesen Sie den Artikel, wenn Sie old-releases.ubuntu.com verwenden und vergessen Sie nicht, dass Sie ihn möglicherweise wieder ändern möchten:

sudo sed -i 's/trusty/YOUR_OS_CODENAME/g' /etc/apt/sources.list

äh ... das wird Ihr System mit Trusty in sources.list verlassen. Beim nächsten Update wird das System auf Trusty aktualisiert. Dies wird SEVERELY Ihr System brechen.
Strugee

1

Die feste Version (siehe Changelog ) für das Bash-Paket ist ab sofort in Debian 8 (Jessie) (siehe Paketinfo ), Stand 2014-09-26 14:18 UTC.

Das zweite Update, das in den Kommentaren unten erwähnt wird, befindet sich jetzt auch im Jessie- Repository. Es ist nicht erforderlich, von Unstable aus zu installieren. Siehe den obigen Link mit den Paketinformationen.

Es ist nicht mehr nötig, von Unstable aus zu installieren.

Renn einfach:

# aptitude update

gefolgt von:

# aptitude upgrade

Stellen Sie dann sicher, dass die Sicherheitsanfälligkeit behoben ist (in einer neu geöffneten Shell):

$ x='() { :;}; echo vulnerable' bash
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'

Behebt das Follow-up CVE-2014-7169 noch nicht.
Bob

@ Bob, ich denke das ist nur für Ubuntu relevant? Und vermutlich hat Ubuntu das schon behoben.
John Lawrence Aspden

@JohnLawrenceAspden Nein. Versuchen Sie es mit Running env X='() { (a)=>\' bash -c "echo echo vuln"; [[ "$(cat echo)" == "vuln" ]] && echo "still vulnerable :("- wenn es gedruckt wird still vulnerable, ist das letztere Vuln noch nicht gepatcht. AFAIK, Jessie ist immer noch verwundbar. Beachten Sie, dass dieser Befehl echobei Erfolg eine Datei mit dem Namen im aktuellen Verzeichnis erstellt und Sie diese löschen müssen, bevor Sie den Test erneut ausführen.
Bob

@ Bob, ich kann weder Kopf noch Schwanz daraus machen, was macht das mit dem Semikolon?
John Lawrence Aspden

@ Bob, aber was auch immer es tut, Sie haben Recht, dass ein Upgrade auf die Version 4.3-9.2 in Unstable es stoppt!
John Lawrence Aspden
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.