GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So beheben Sie Bash Shellshock CVE-2014-6271, CVE-2014-7169 unter Linux

CVE-2014-6271 ist ein kritischer Fix mit großer Auswirkung. Wenn Sie ein Linux-System verwenden, sollten Sie diese Schwachstelle beheben.

Diese Schwachstelle CVE-2014-6271 (und CVE-2014-7169) wird auch als Shellshock bezeichnet.

Es wurde ein Fehler in der Art und Weise gefunden, wie Bash bestimmte speziell gestaltete Umgebungsvariablen auswertet. Ein Angreifer könnte diesen Fehler nutzen, um Umgebungsbeschränkungen zu überschreiben oder zu umgehen, um Shell-Befehle auszuführen. Bestimmte Dienste und Anwendungen ermöglichen es entfernten, nicht authentifizierten Angreifern, Umgebungsvariablen bereitzustellen, wodurch sie dieses Problem ausnutzen können.

Mithilfe der Bash-Shell ermöglicht diese Schwachstelle einem Angreifer, zufällige Shell-Befehle in Ihrer Umgebung auszuführen. Die Idee dahinter ist, dass ein Angreifer die Beschränkung der Umgebungsvariablen umgehen kann, was es ihm erlaubt, Shell-Befehle auszuführen.

Bitte beachten Sie, dass einige Dienste (oder Anwendungen), die auf Linux-Servern ausgeführt werden, es nicht authentifizierten Angreifern ermöglichen könnten, einige Umgebungsvariablen anzugeben, die es ihnen wiederum ermöglichen, diese Schwachstelle ohne Authentifizierung über das Netzwerk auszunutzen.

Alles, was Sie tun müssen, um dies zu beheben, ist, Ihre Bash auf die neueste Version zu aktualisieren. Gehen Sie beispielsweise unter RedHat oder CentOS wie folgt vor, um dieses Problem zu beheben:

yum update bash

Ist Ihr System anfällig für CVE-2014-6271?

RedHat hat das folgende Skript bereitgestellt, um zu testen, ob Ihr System anfällig ist oder nicht.

Wenn Sie in der Ausgabe das Wort „vulnerable“ sehen, ist Ihr System anfällig.

env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"

Bitte beachten Sie, dass in der Ausgabe möglicherweise auch eine Fehlermeldung zusammen mit dem Wort „anfällig“ angezeigt wird. Das Folgende ist beispielsweise die Ausgabe auf einem anfälligen RedHat 5- und RedHat 6- (und CentOS 5 und 6-) System.

# env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
vulnerable
bash: BASH_FUNC_x(): line 0: syntax error near unexpected token `)'
bash: BASH_FUNC_x(): line 0: `BASH_FUNC_x() () { :;}; echo vulnerable'
bash: error importing function definition for `BASH_FUNC_x'
test

Bash-Version vor dem Fix

Bevor Sie das Problem beheben, überprüfen Sie Ihre aktuelle Bash-Version. Auf RedHat 5 (und CentOS 5) hatte ich vor dem Fix die folgende Bash-Version:

# rpm -qa | grep bash
bash-3.2-24.el5

Auf RedHat 6 (und CentOS 6) hatte ich vor dem Fix die folgende Bash-Version:

# rpm -qa | grep bash
bash-4.1.2-3.el6.x86_64

CVE-2014-6271 beheben

Aktualisieren Sie jetzt die Bash mit yum (oder einem anderen Paketverwaltungsprogramm für Ihre entsprechende Distribution)

yum update bash

Unter RedHat 5 (und CentOS 5) ist das Folgende die Bash-Version nach dem Update, das die Schwachstelle behoben hat.

# rpm -qa | grep bash
bash-3.2-33.el5_11.4

Unter RedHat 6 (und CentOS 6) ist das Folgende die Bash-Version nach dem Update, das die Schwachstelle behoben hat.

# rpm -qa | grep bash
bash-4.1.2-15.el6_5.2.x86_64

Testen Sie die Schwachstelle CVE-2014-6271 nach der Behebung

Nachdem die Bash auf die neueste Version aktualisiert wurde, sehen Sie beim Ausführen des Tests das Wort „anfällig“ in der folgenden Befehlsausgabe nicht. Bitte beachten Sie, dass die unten angezeigte Warnung und Fehlermeldung OK ist.

# env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `BASH_FUNC_x'
test

Was ist mit CVE-2014-7169?

Nachdem der anfängliche Fix veröffentlicht wurde, fand Redhat heraus, dass der CVE-2014-6271-Fix unvollständig war und Bash unter bestimmten Umständen immer noch einige Zeichen zuließ, die in die Umgebungsvariable eingefügt werden konnten.

Wenn Sie die Yum-Update-Bash aus dem vorherigen Schritt durchgeführt haben, wird automatisch die neueste Version von Bash abgerufen, die auch den Fix für CVE-2014-7169 enthält. Sie müssen also wirklich nichts Besonderes für diesen Fix tun.

Sie können jedoch trotzdem testen, ob Ihr System nicht anfällig für dieses Problem ist, indem Sie Folgendes auf Ihrem System ausführen:

cd /tmp; rm -f /tmp/echo; env 'x=() { (a)=>\' bash -c "echo date"; cat /tmp/echo

Auf einem System, das für CVE-2014-7169 anfällig ist, werden Sie feststellen, dass die folgende Datei /tmp/echo erstellt wurde und den Inhalt der Datei anzeigt.

Wenn Sie die folgende Ausgabe sehen, sollten Sie Ihre Bash mit „yum update bash“ auf die neueste Version aktualisieren (oder ein geeignetes Paketverwaltungsprogramm für Ihre Distribution verwenden)

# cd /tmp; rm -f /tmp/echo; env 'x=() { (a)=>\' bash -c "echo date"; cat /tmp/echo
bash: x: line 1: syntax error near unexpected token `='
bash: x: line 1: `'
bash: error importing function definition for `x'
Fri Sep 26 16:15:09 PDT 2014

Wenn Ihr System nicht anfällig für CVE-2014-7169 ist, sehen Sie die folgende Ausgabe, die die /tmp/echo-Datei nicht erstellt.

# cd /tmp; rm -f /tmp/echo; env 'x=() { (a)=>\' bash -c "echo date"; cat /tmp/echo
date
cat: /tmp/echo: No such file or directory

Zusätzliche Informationen

  • Details zu CVE-2014-6271, CVE-2014-7169 von der RedHat-Website
  • RedHat (CentOS, Fedora) Bugzilla-Bericht für CVE-2014-6271
  • RedHat (CentOS, Fedora) Bugzilla-Bericht für CVE-2014-7169
  • Oracle-Sicherheitswarnung für CVE-2014-7169 – Für Solaris oder Oracle Enterprise Linux
  • Ubuntu CVE-2014-7169
  • Debian CVE-2014-7169

Linux
  1. So löschen Sie den BASH-Befehlszeilenverlauf in Linux

  2. So löschen Sie den Bash-Verlauf unter Linux

  3. So löschen Sie einen bestimmten Befehl aus dem Bash-Verlauf in Linux

  4. Wie behebt man den Cron-Authentifizierungsfehler unter Linux?

  5. Wie bekomme ich eine Netzmaske von Bash?

So verwenden Sie den Declare-Befehl in der Linux Bash Shell

So verwenden Sie den Echo-Befehl in Bash-Skripten unter Linux

Überprüfen Sie, ob Ihr Linux-System anfällig für Shellshock ist, und beheben Sie es

So installieren Sie Linux Bash Shell unter Windows 10

So löschen Sie den Bash-Verlauf in Linux und Mac

Wie verwende ich die Linux-Bash-Shell in Windows 10?