Kürzlich gab es Neuigkeiten in Bezug auf "CVE-2014-6271" (siehe USN-2362-1 ), eine Sicherheitsanfälligkeit in Bash. Woher weiß ich, ob ich davon betroffen bin, wie ich es beheben kann und warum es mich interessieren sollte?
Dies ist aufgrund seines Umfangs und seiner Schwere eine kanonische Antwort auf diese Sicherheitsanfälligkeit.
bash
security
shellshock
ζ--
quelle
quelle
Antworten:
Was ist Bash?
Bash ist die standardmäßige interaktive Shell in Ubuntu. Wenn Sie eine Schnittstelle zum Terminal herstellen (entweder über den Terminalemulator, über tty oder ssh), geben Sie im Allgemeinen Befehle ein,
bash
die gelesen und ausgeführt werden. Auch wenn Sie das Terminal nicht benutzen, haben Sie immer noch Bash.Auf Ubuntu
/bin/sh
ist nicht bash (es ist Bindestrich). Von dieser Sicherheitsanfälligkeit ist nur bash betroffen.Wie wirkt sich der Exploit auf mich aus?
Bash und das Betriebssystem überwachen eine Reihe von Umgebungsvariablen , die den aktuell angemeldeten Benutzer beschreiben, wo nach Programmen auf der Festplatte gesucht werden soll, und andere solche Funktionen. Durch das Erstellen einer Umgebungsvariablen mit einer bestimmten Struktur kann ein Angreifer beim nächsten Start von Bash möglicherweise Code ausführen.
Der Angreifer kann diese Umgebungsvariable auf verschiedene Arten festlegen:
ForceCommand
Option sshd ein Angriffsvektor. Konten, deren Shell nicht bash ist, sind nicht betroffen.Sobald diese Variable festgelegt wurde und das nächste Mal
bash
aus irgendeinem Grund geöffnet wird , wird der Code Ihres Angreifers ausgeführt. Dies ist besonders furchterregendsudo -s
, da Bash als Superuser auftritt (eine Regel für administrative Benutzer, die die volle Kontrolle über die Daten und Programme Ihres Computers hat). Auch wenn Sie bash nur als Standardbenutzer starten, können die Dateien dieses Benutzers gelöscht werden.Es ist wichtig zu beachten, dass viele Programme selbst dann Bash erzeugen, wenn Sie Bash nicht selbst verwenden. Auch in diesem Fall sind Sie anfällig. Ubuntu
/bin/sh
ist jedoch kein Bash, so dass nur Programme betroffen sind, die explizit Bash aufrufen und nicht die Standard-Scripting-Shell.Laut Mitre:
Bin ich verletzlich?
Verwenden Sie dpkg, um Ihre installierte Paketversion zu überprüfen:
Dadurch werden Informationen zu Ihrem
bash
Paket nachgeschlagen und die Ausgabe so gefiltert, dass nur die Version angezeigt wird. Die festen Versionen sind4.3-7ubuntu1.4
,4.2-2ubuntu2.5
und4.1-2ubuntu3.4
.Zum Beispiel sehe ich:
und kann feststellen, dass ich nicht verwundbar bin.
Wie aktualisiere ich?
Der Standard-Update-Manager bietet Ihnen dieses Update an. Dies ist ein hervorragendes Beispiel dafür, wie wichtig Sicherheitsupdates sind, unabhängig davon, welches Betriebssystem Sie verwenden oder wie gut es gewartet wird.
Im USN Bulletin heißt es, dass neue Versionen für Ubuntu 14.04 Trusty Tahr, 12.04 Precise Pangolin und 10.04 Lucid Lynx veröffentlicht wurden. Wenn Sie nicht mit einer dieser LTS-Versionen, sondern mit einer relativ aktuellen Version arbeiten, können Sie höchstwahrscheinlich ein gepatchtes Paket finden.
Überprüfen Sie zunächst, ob Sie
Wenn Sie anfällig sind, sollten Sie zuerst die neuesten Paketlisten herunterladen:
Der erste Befehl stellt sicher, dass Sie die neueste Paketliste haben, die die feste Version enthält, und der zweite Befehl installiert die neueste (feste) Version von bash.
Obwohl der Fehler nur beim Auftreten von Bash ins Spiel zu kommen scheint, ist es immer noch eine gute Idee, sofort neu zu starten, wenn dies machbar ist.
quelle
Hat das bei Hacker News gestohlen . Wenn Sie Probleme mit Ihren Repos wie mir (Odroid-XU) haben, sollte dies gut funktionieren, wenn Sie von der Quelle aus patchen / bauen möchten.
Dann renne:
Und wenn Sie bekommen:
Dann geht es euch allen gut!
WARNUNG: make install installiert bash in
/usr/local/bin
, wird also/bin/bash
nicht geändert und kann von curl aufgerufen werden !!quelle
Hinweis: Der Sicherheitspatch für CVE-2014-7169 wurde als Standard-Sicherheitsupdate veröffentlicht. Es ist nicht erforderlich, zusätzliche PPAs hinzuzufügen, um diesen Patch zu erhalten. Es wird nur Folgendes benötigt.
Führen Sie den folgenden Befehl aus, um sicherzustellen, dass Sie Bash korrekt gepatcht haben
Wenn Sie auf 14.04 LTS sind, sollten Sie eine Ausgabe von sehen:
Wenn Sie mit 12.04 LTS arbeiten, sollte Ihre Ausgabe wie folgt aussehen:
quelle
Wenn Sie am 11.04 sind: Verwenden Sie die folgenden Schritte (es hat bei mir funktioniert)
Wenn es nicht heruntergeladen wird, muss patche installiert werden
So überprüfen Sie, ob der Patch angewendet wurde:
quelle
Ich verwende Natty 11.04, das ist EOL (und ich habe /etc/apt/sources.list aktualisiert, um old-releases.ubuntu.com zu verwenden), also muss ich aus dem Quellcode erstellen. Ich wollte eine .deb-Datei erstellen, damit zumindest die Paketverwaltung "merkt", dass die Bash-Version nicht die Standardversion ist. Ich bin nicht zu 100% erfolgreich - das Paket ist jedoch als "neuer" registriert und die
bash
Binärdatei wird repariert. Deshalb habe ich Folgendes getan:Nun gibt es im (Unter-) Verzeichnis
bash-4.2/
: eine Dateibash-4.2.tar.xz
, die entpackt werden muss, um zurbash
Quelle zu gelangen ; und ein Unterverzeichnis namensdebian
.Ich habe die folgenden Änderungen vorgenommen, um Abhängigkeiten zu vermeiden
texlive
: inbash-4.2/debian/control
:... und in
bash-4.2/debian/rules
:Um die Version zu ändern, gehen Sie in diesem
bash-4.2/
Verzeichnis wie folgt vor:... und tragen Sie die Notizen im Changelog ein, wenn Sie gefragt werden. Dadurch wird sichergestellt, dass die .deb-Datei (und die zugehörigen Metadaten) aufgerufen werden (in meinem Fall)
bash_4.2-0ubuntu3patchCVE1_i386.deb
.Dann können Sie versuchen, mit
dpkg-buildpackage -us -uc
oderdebuild
Befehl zu bauen. Hinweis: In beiden Fällen wird der Quellcode von der Zip-Datei neu entpackt. Dadurch werden alle Patches überschrieben, die Sie möglicherweise hatten. Führen Sie dennoch einen dieserdebuild
Schritte aus, damit die Quelle entpackt und erstellt wird (Hinweis: Möglicherweise schlägt dies am Ende aufgrund von texlive fehl, aber die Quelle sollte entpackt und erstellt werden).Wenden Sie dann die Patches an. Hinweis, den Sie hier verwenden sollten
-p1
, da Sie sich derzeit imbash-4.2/
Verzeichnis befinden:Erstellen Sie dann die gepatchte Version neu, indem Sie Folgendes ausführen:
Dies würde die ausführbare Datei neu erstellen. um es zu testen:
Führen Sie zum Erstellen der DEB-Dateien Folgendes aus:
Dadurch werden die .deb-Dateien im übergeordneten Verzeichnis gespeichert. um ihren Inhalt aufzulisten:
So installieren Sie die .deb:
Aus irgendeinem Grund enthält diese .deb-Datei jedoch eine ungepatchte Binärdatei (?!), Weshalb ich zusätzlich Folgendes tun musste:
... und danach hat der Test für mich richtig bestanden:
quelle