Sind Macs anfällig für den Bash-Shellshock-Bug?

58

Red Hat hat kürzlich einen großen Sicherheitsfehler in der Bash-Shell angekündigt . Einige nennen es den "Shellshock" -Fehler. Ist OS X, das auf Unix basiert, anfällig für Angriffe, die diesen Fehler ausnutzen?

Muss ich mich als Endbenutzer um eine sofortige Lösung kümmern? Oder ist es besser für mich, auf ein offizielles Software-Update von Apple zu warten?

Haarboot
quelle
Informationen zu den
Die Frage wurde aktualisiert, sodass sie weniger ein Betrug als vielmehr eine Bitte um Rat für Laien ist.
Hairboat
1
Apple hat jetzt ein Update
AT

Antworten:

46

Ja, Sie sind technisch verwundbar. Wenn Sie also Lust haben, einem Kunden, der in Panik geraten ist, ein paar Stunden lang Panik zu versetzen oder diese in Rechnung zu stellen, dann machen Sie mit!

In Wirklichkeit sind Sie jedoch nicht gefährdet, wenn Sie keinen SSH-Zugriff über Remoteverbindungen oder einen Webserver zulassen, auf dem serverseitige Skripts ausgeführt werden. Sie sind nur dann wirklich verwundbar, wenn jemand, den Sie nicht kennen, über Fernzugriff auf Ihren Computer zugreifen und dies auf eine Weise tun kann, bei der ein Bash-Befehl ausgeführt werden kann.

Das heißt, Ihr Desktop-Mac - auf dem wirklich keine Serveranwendungen ausgeführt werden - ist keinem ernsthaften Risiko ausgesetzt. Ich bin bereit, hier eine sprichwörtliche "bescheidene Torte" zu essen, aber ich glaube nicht, dass die Mehrheit der Mac-Benutzer am Ende des Tages einem Risiko ausgesetzt sein wird.

Daher ist dieses Problem hauptsächlich für Systemadministratoren auf Mac OS X- und Unix / Linux-Servern von Belang, nicht für Desktop-Benutzer, die die SSH-Freigabe nicht aktivieren.

Vielleicht besteht das Risiko, dass ein Mac-Schadprogramm oder ein Mac-Virus erstellt wird, um dieses Risiko auszunutzen, aber ich bezweifle es.

EDIT: Und nur um zu erläutern, wie dieses Problem - meiner bescheidenen Meinung nach - für die meisten Durchschnittsbenutzer eigentlich kein Problem darstellt, kann ich unter bashMac OS X 10.9.5 den folgenden Befehl ausführen:

env x='() { :;}; echo vulnerable' bash -c 'echo hello'

Und ich sehe das:

vulnerable
hello

Erraten Sie, was? Das ist nur erschreckend, wenn Sie dies nicht rational ausdenken. Ich musste bereits auf meinem Mac eingeloggt sein, um das Terminal öffnen zu können. Und um zu negieren, was ich oben über SSH gesagt habe, um überhaupt zu dem Punkt zu gelangen, an dem ich diesen Test ausführen kann, selbst wenn SSH aktiviert ist, müsste ich zunächst noch angemeldet sein. Und dann - sagen wir, ich erhalte Zugriff über SSH - kann ich mit dem Befehl NICHTS tun, das über meine normalen Benutzerrechte hinausgeht:

env x='() { :;}; echo vulnerable' bash -c 'cat /etc/ssh_host_rsa_key'

Das heißt, wenn Sie wirklich gefährdet sind, von diesem Hack ausgenutzt zu werden, müsste Ihre Kernsicherheit auf dem System so gefährdet sein, dass die Tatsache, dass bashein Fehler vorliegt, wirklich das allerwenigste Ihrer Probleme ist.

Dies ist ein Anliegen von einem Gesamtkontrolle und Rechte Problem , da es als das Potential unbeabsichtigten Zugang zu ermöglichen , da das Verhalten außerhalb der erwarteten Normen erstreckt. Meiner bescheidenen Meinung nach ist dies jedoch kein mit OpenSSL oder der Sorte garden vergleichbares Risiko.

Letztendlich patche ich immer noch alle meine Linux / Unix-Server, die ich als Standardprozedur ausführe. Und die Macs, die ich verwalte, werden glücklich gepatcht, sobald eine Korrektur abgeschlossen ist. Aber für den praktischen Alltag ist mir das völlig egal, da ich nicht verstehe, wie sich ein Fehler, der keine erhöhten Benutzerrechte zulässt, summiert.

UPDATE: Offizielles Wort von Apple hier veröffentlicht ; Hervorhebung von mir:

"Die überwiegende Mehrheit der OS X-Benutzer ist nicht gefährdet, kürzlich gemeldete Bash-Sicherheitslücken zu entdecken", sagte ein Apple-Sprecher gegenüber iMore Kontrolle anfälliger Systeme. Unter OS X sind Systeme standardmäßig sicher und können nur dann von Bash-Servern aus der Ferne ausgenutzt werden, wenn Benutzer erweiterte UNIX-Dienste konfigurieren. Wir arbeiten daran, unseren fortgeschrittenen UNIX-Benutzern schnell ein Software-Update zur Verfügung zu stellen. “

Übersetzung: Was ich oben gesagt habe, ist dies ein Server- und kein Client-Problem? Genau.

EIN ENDGÜLTIGES UDPATE: Ab dem 29. September hat Apple offiziell Patches für Mac OS X 10.9.5, 10.8.5 und 10.7.5 veröffentlicht.

NOCH EIN ANDERES ENDGÜLTIGES UPDATE: Und jetzt hat Apple heute ein kombiniertes Sicherheitsupdate veröffentlicht, das auch das bashUpdate enthält !

Hinweis: Das Sicherheitsupdate 2014-005 enthält den Sicherheitsinhalt von OS X bash Update 1.0

JakeGould
quelle
7
"oder ein Webserver, auf dem serverseitiges Scripting ausgeführt wird" - oder eine Anwendung, die einen offenen Port überwacht, über den RPC-Aufrufe ausgeführt werden können, auf denen Shell-Befehle ausgeführt werden. Dies kann eine beliebige Anzahl von Dingen sein, da es viele Standardanwendungen gibt, die ihren RPC ausführen. Ich finde diese Antwort sehr naiv. Es ist sehr einfach, versehentlich einen Webserver auszuführen, wenn eine Anwendung ausgeführt wird, die Client-Server-Funktionen ausführt.
Ian C.
3
@ IanC. Können Sie ein Beispiel nennen, bei dem OS X nach dem Auspacken wirklich anfällig wäre? Würden sich beispielsweise WebEx oder GotoMeeting den Bash-Funktionen annähern? Der Punkt ist, dass ich mir kein einfaches OS X-Installationsszenario vorstellen kann, das die Dinge wirklich enthüllen würde. Können Sie?
JakeGould
8
Das Gastkonto ist für ssh nicht verfügbar. Tatsächlich ist es nicht einmal möglich, es ssh, IIRC, zur Verfügung zu stellen. Tatsache ist, dass für die überwiegende Mehrheit der OS X-Benutzer die Bash-Sicherheitslücke überhaupt kein Problem darstellt. Für diejenigen von uns, bei denen es sich um ein Problem handelt, müssen wir Bash neu kompilieren, sobald ein getesteter Fix verfügbar ist, aber das ist jetzt nicht der Fall.
lbutlr
3
@ IanC. Okay, faire Beispiele. Es fehlt Ihnen jedoch immer noch der Punkt: Wie kann man eine solche Sicherheitsanfälligkeit in jedem von Ihnen bereitgestellten Beispiel ausnutzen? In jedem Fall müsste ein Benutzer zuerst auf das System zugreifen und was dann? Ich bin nicht leichtfertig darüber, aber ich verstehe immer noch nicht, was das Risiko tatsächlich sein würde? Jemand - zum Beispiel - müsste sich durch die Plex-API wühlen, um dann genau das zu tun, was in bash außerhalb der normalen Benutzerrechte und Zugriffsrechte geschieht.
JakeGould
6
@danielAzuelos „Jeder ist angreifbar, solange das Gastkonto geöffnet ist: [!“ Das Gastkonto hat nichts damit zu tun bash. Die Angst basiert also auf was genau? Auch wenn das Gastkonto geöffnet und irgendwie bashverwendbar ist, was dann? Nach dem, was ich sehe, hätte die Verwendung dieses Exploits keine erhöhten Privilegien oder ähnliches. Im Ernst, ich bin bereit, von meiner Haltung zurückzutreten, aber dies scheint eher eine Panik zu sein, die auf wenig basiert, während OpenSSL ein echtes Problem war.
JakeGould
37

Ja!

Geben Sie dies in Ihre Shell ein

env x='() { :;}; echo vulnerable' bash -c 'echo hello'

Wenn es heißt, vulnerabledann sind Sie verwundbar.

Wenn es heißt

bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
hello

dann bist du gut

Bearbeiten: Link zum Fix

Chris Aitchison
quelle
4
Vielen Dank. Ich habe die Frage aktualisiert: Wenn sich herausstellt, dass wir anfällig sind, wie kann ein Mac-Benutzer sie beheben?
Hairboat
3
@abbyhairboat Hat meine Antwort gepostet. Sofern Sie keinen Server betreiben, der der Außenwelt ausgesetzt ist, besteht kein praktisches Risiko. Serveradministratoren müssen sich darum kümmern.
JakeGould
1
→ abby: siehe dazugehörige antwort : apple.stackexchange.com/a/146851/22003 .
Dan
2
Probieren Sie es aus env X="() { :;} ; echo busted" /bin/sh -c "echo completed"- Auch nach dem Patchen meines Systems hustet dieses einen "kaputten" Fehler in der Befehlszeile. Bah.
Trane Francks
1
@ Mark nein, zsh ist sicher. Sie müssen "bash -c" durch "zsh -c" ersetzen, um es zu testen.
Ismail
3

Überprüfen Sie als Endbenutzer Folgendes:

  • Ihr Gastkonto ist deaktiviert:

    Systemeinstellungen> Benutzer und Gruppen> Gastbenutzer
    
  • Ihr sshZugang ist deaktiviert:

    Systemeinstellungen> Freigabe> Remote-Anmeldung
    

Standardmäßig sind diese beiden Optionen bei Mavericks deaktiviert.

Als Endbenutzer ist es sicherer , auf ein offizielles Apple-Sicherheitsupdate zu warten , mit dem diese Sicherheitsanfälligkeit behoben wird bash.

Dan
quelle
1
Diese sind irrelevant. Beide gewähren Benutzern naturgemäß Zugriff auf die Ausführung von Befehlen auf dem System. Wenn Sie diese also aktiviert haben, möchten Sie den Benutzern die Ausführung von Befehlen ermöglichen. Der Shellshock-Fehler ist ein Mittel für Benutzer, für die Sie keine Befehle ausführen wollten , z. B. für Benutzer des von Ihnen ausgeführten Webservers. Ihre Antwort sollte also "Web-Sharing deaktivieren" lauten (aber das ist nur eine Sache, die überprüft werden muss)
Josh
Ich ärgere mich, dass Apple nicht geraten hat, diese Einstellungen zu deaktivieren. Wer würde sie befähigen? Ich würde. Ich bin seit 1986 ein Mac-Benutzer, ein Vollzeit-Webanwendungsentwickler (so ist ssh mein Leben) und ein Vater (ein Gastkonto für die Kinder ist also keine so schlechte Idee). Ich kenne viele Leute, die auf diese Weise wie ich sind und Apple-Laptops verwenden. Willst du uns verlieren? Diese Sicherheitsanfälligkeit offen zu lassen ist ein guter Weg.
Minopret
2

Alle Mac OS X-Computer sind technisch anfällig für "Shellshock", bis Apple ein Sicherheitsupdate herausgibt, das bash-Patches enthält.

Ihre Frage sollte lauten: Kann ich aus der Ferne gehackt werden?

Es gibt so viel Software, die bashgeistesabwesend verwendet , dass es extrem schwierig ist, diese Frage zu beantworten. Wenn Sie sich Sorgen machen, schlagen wir einige Änderungen vor System Preferences, um Remote-Exploits zu verhindern:

  • Deaktivieren Sie ALLE Freigabedienste in den Freigabeeinstellungen.
  • Aktivieren Sie die Firewall unter Sicherheit und Datenschutz.

Wenn Sie besonders besorgt sind, drücken Sie die FirewallOptionstaste, um:

  • Deaktivieren Sie Automatically allow signed software to receive incoming connections.
  • Überprüfen Sie Block all incoming connections.

Es besteht immer noch eine respektable Chance, dass Sie für einen Level-Angriff mit DHCP, Bonjour usw. anfällig sind. Wenn Sie jedoch einen anderen Dienst benötigen, können Sie ihn natürlich laufen lassen, während Sie hoffen, dass er nicht ausgenutzt wird. Außerdem müssen Sie die Firewall offener lassen. Es ist wahrscheinlich in Ordnung, wenn Ihr Computer sich hinter einer anderen Firewall befindet.

Gibt es auch lokale Eskalationsangriffe auf Privilegien, die durch "Shellshock" aktiviert wurden? Ja, mit ziemlicher Sicherheit. Ich würde mir jedoch keine Sorgen machen, da Mac OS X über genügend ähnliche Angriffe verfügt. Apple behebt lokale Eskalationsfehler nicht schnell. Und Apple erstellt sie häufig mit Apple Script-fähigen Diensten. Angenommen, alle Mac OS X-Computer sind immer für lokale Angriffe anfällig. Wenn Sie an Hacker-Konferenzen wie DEFCON teilnehmen müssen, kaufen Sie sich zu diesem Zweck eine Linux-Box.

Update: Es gibt Anweisungen zum erneuten Kompilieren Ihrer eigenen festen Bash und andere Fragen, die ebenfalls behandelt werden. Ich mache das selbst, aber meiner Meinung nach ist das übertrieben, wenn Sie keine Server betreiben und die Firewall von Apple trotzdem eingeschaltet lassen.

Update: Wenn Sie bequem mit Terminal - Nutzung, gibt es ein Programm namens execsnooperwähnte hier , dass lassen Sie testen , ob bash in der Regel von Ihren Server - Prozessen genannt wird. Dies ist kein Wundermittel, da der Serverprozess Bash nur in ungewöhnlichen Situationen aufruft, aber es gibt Ihnen eine gute Idee.

Schließlich ist Apple nicht besonders gut darin, Sicherheitslücken zu patchen, aber sie sind gut in PR, so dass dies relativ schnell gepatcht wird. Es ist daher vernünftig zu denken, dass "ich nicht schneller laufen muss als der Bär, sondern nur schneller als die große Anzahl von leicht ausnutzbaren Servern im Internet". :)

Jeff Burdges
quelle
2
Es besteht keine Möglichkeit, dass Macs für einen Angriff mit DHCP anfällig sind, da Bash nicht verwendet wird.
1
Wie kannst du das Wissen? Die erste Empfehlung war ein anfälliger DHCP-Client. In vielen Artikeln wird spekuliert, dass Mac OS X- und / oder iOS-DHCP-Clients möglicherweise anfällig sind. Es wird davon ausgegangen, dass alle Server anfällig sind, sofern nichts anderes nachgewiesen wurde.
Jeff Burdges
1
Nein, das sollten sie nicht sein. das ist absoluter FUD. Sie können sowohl den Open Source-Code für die DHCP-Implementierung von OS X untersuchen als auch die Systemaufrufe selbst messen, um dies zu überprüfen.
3
@JeffBurdges, OS X hat seit 10.3 kein Shell Exec mit DHCP mehr verwendet und vorher war Bash nicht auf dem System installiert. DHCP unter OS X ist bei Shellshock kein Problem. (Eine Sorge weniger. :))
Trane Francks
1
→ Jeff: Bitte beachten Sie: strings /usr/libexec/bootpd | egrep '/bin|bash'und nm -a /usr/libexec/bootpd | egrep 'fork|exec'. Durch das Lesen dieser Befehle Ausgabe auf verschiedenen Versionen von MacOS X, könnten Sie Ihre Risikoanalyse aufgrund denken dhcpdauf MacOS X ... aber dieses allein :(.
dan
2

Ich habe dieses Tool erstellt , sobald ich von dieser Sicherheitsanfälligkeit erfahren habe. Sie erhalten einen Link zu einem Artikel, mit dem Sie Ihre Shell patchen können, wenn das Tool feststellt, dass Sie anfällig sind.

Benötigt Mac OS X 10.6 und höher.

Thomas Jones
quelle
3
Vielleicht bin es nur ich ... aber die Idee, den Code einer zufälligen Person auszuführen, um auf einen Exploit zu testen, scheint einfach eine wirklich schlechte Idee zu sein, wenn Sie genauso einfach einen String (der offensichtlich nur den Test und nichts weiter ausführt) in einen einfügen können Terminalfenster.
Joe
Ich stimme zu, deshalb ist die Quelle auf code.google.com/p/shellshock-check
Thomas Jones
Manchmal bietet es jedoch eine einfache Bedienung zum Testen mehrerer Systeme.
Thomas Jones
Ich sehe den Nutzen dieser Sache nicht. Das Überprüfen der Sicherheitsanfälligkeit wird durch Einfügen einer einfachen Befehlszeile in das Terminalfenster erheblich vereinfacht.
Albert Godfrind
Wenn Sie jedoch mehrere Computer testen, insbesondere in meinem Fall, ist es viel einfacher, ein Flash-Laufwerk einzulegen und Shellshock Check.app zu öffnen, als Safari zu öffnen, den bash-Befehl aufzurufen und dann Terminal zu öffnen und diesen einzufügen Befehl und drücken Sie die Eingabetaste. Es ist viel schneller, ein Flash-Laufwerk anzuschließen und eine Anwendung zu öffnen.
Thomas Jones