Frage:
Was ist die mögliche Auswirkung des Dirtyc0w a.k.a. "Dirty COW" -Fehlers?
d33tah
2016-10-21 15:42:47 UTC
view on stackexchange narkive permalink

Ich habe von Dirty COW gehört, konnte aber keine anständige Beschreibung des Umfangs des Fehlers finden. Es sieht so aus, als ob der Exploit jede nicht beschreibbare Datei überschreiben kann, was mich vermuten lässt, dass lokales Root durch Ersetzen von SUID-Programmen möglich ist. Ist das richtig? Was wissen wir noch über Dirty COW? Ist es möglich, es aus der Ferne zu nutzen? Betrifft es Android?

Auf der Website steht "Dirty COW" (nicht Dirty Cow oder Dirtyc0w), wobei Cow ein Verweis auf CoW ist und Copy-on-Write bedeutet.
@LéoLam: Es ist Dirtyc0w hier: https://github.com/dirtycow/dirtycow.github.io/blob/master/dirtyc0w.c
Das ist der Name des PoC, genau wie [es gibt ein pokemon.c, eine Kuhwurzel] (https://github.com/dirtycow/dirtycow.github.io/wiki/PoCs).Wenn Sie sich die [Repo-Beschreibung] (https://github.com/dirtycow/dirtycow.github.io) ansehen, steht genau dort, dass es sich um "Dirty COW" handelt.
Weitere Informationen finden Sie unter [Fehlerbericht] (https://bugzilla.redhat.com/show_bug.cgi?id=1384344#).
Sieben antworten:
Volker
2016-10-21 15:50:46 UTC
view on stackexchange narkive permalink

Ohne eine weitere Sicherheitsanfälligkeit kann es nicht remote ausgenutzt werden. Sie müssen bereits in der Lage sein, Befehle auf dem System auszuführen.

Ein klassisches Beispiel wäre eine Web-Shell. Angenommen, auf dem Server wird eine Webanwendung ausgeführt, die eine Sicherheitsanfälligkeit aufweist, mit der Sie eine Web-Shell hochladen oder auf andere Weise Systembefehle ausführen können. Diese Befehle werden normalerweise als Benutzer mit geringen Berechtigungen ausgeführt, manchmal als www-data ​​code> oder ähnlich bezeichnet.

Mit diesem Exploit können Sie die Datei / etc / passwd überschreiben , um www-data ​​code> die UID 0 zu geben. Jetzt verfügt www-data ​​code> über Root-Rechte.

Ich habe jedoch einige Dinge ausprobiert und das Ändern von / etc / passwd funktionierte auf meinem System nicht. Sie können die UID eines Benutzers auf 0 setzen, müssen sich dann jedoch erneut anmelden. Dies ist keine Option, wenn Sie nur eine Web-Shell haben. Der beste Exploit mit Waffen, den ich bisher gesehen habe, überschreibt / usr / bin / passwd , die Binärdatei, die zum Ändern des Kennworts eines Benutzers verwendet wird und deren SUID-Bit gesetzt ist, mit Shellcode, der / ausführt. bin / bash . Einige Einschränkungen des Exploits scheinen zu sein: Sie können nur vorhandene Bytes überschreiben und einer Datei nichts hinzufügen. Ich konnte auch nicht mehr als genau 4 KB in eine Datei schreiben.

Um Android zu beeinflussen, suchte ich im Android 4.4 Git Repo nach der betreffenden Funktion ( follow_page_pte ) und habe keine Treffer erhalten, daher möchte ich "nein" sagen, zitiere mich aber nicht dazu. s>

Bearbeiten: Android ist betroffen - siehe dieser Proof of Concept.

Das Android Git Repo müsste nicht unbedingt "follow_page_pte" aufrufen, um anfällig zu sein.Es ist möglich, dass Android-Apps nativen C-Code enthalten, sodass im Prinzip C-Code ähnlich dem Exploit enthalten sein kann.In der Praxis kann das Sandbox-Modell von Android einige Angriffe entschärfen.
https://github.com/timwr/CVE-2016-5195
Hinweis: Die erforderliche Shellshock-Sicherheitsanfälligkeit "kann Befehle auf dem System ausführen" ist jedoch aufgrund der Funktionsweise einiger Webserver-Software weiterhin die Ausführung von Remotecode möglich.Es würde mich nicht wundern, wenn wir hier eine ähnliche Situation hätten.
Wenn Sie `/ etc / passwd` neu schreiben und dann das System neu starten (tmp füllen?) Oder sich irgendwie ein neues` www-data` Konto anmelden?(Füllen Sie Ihren eigenen lokalen tmp aus? Führen Sie eine weitere http-Anfrage durch? Führen Sie viele http-Anfragen durch?)
@Nzall: Der Shellshock war ein ganz anderer Exploit.Es war eher ein Injektions-Exploit. Wenn also eine Umgebungsvariable einen Befehl enthielt, konnten Sie aus der Umgebung "entkommen" und Zugriff auf eine lokale Shell erhalten.Also Shellshock PLUS Dirtycow = EXTREM GIFTIG.Im Grunde genommen ist Shellshock ein Remote-Exploit, der lokalen Benutzern Zugriff gewährt, und Dirtycow ist ein Exploit, der jemandem mit lokalem Benutzerzugriff Root-Zugriff gewährt.Die Kombination ist natürlich sehr gefährlich.
GAD3R
2016-10-21 17:18:06 UTC
view on stackexchange narkive permalink

Die Sicherheitsanfälligkeit für Dirty Cow ist eine Sicherheitsanfälligkeit bezüglich der Eskalation von Berechtigungen in Linux-Kernelversionen 2.6.22 und höher. Es existiert seit 2007 und wurde am 18. Oktober 2016 behoben.

Was sind die möglichen Auswirkungen des Dirtyc0w-Fehlers?

Ein nicht privilegierter lokaler Benutzer Benutzer können diesen Fehler verwenden, um Schreibzugriff auf ansonsten schreibgeschützte Speicherzuordnungen zu erhalten und damit ihre Berechtigungen auf dem System zu erhöhen.

Dieser Fehler ermöglicht es einem Angreifer mit einem lokalen Systemkonto, Binärdateien auf der Festplatte unter Umgehung zu ändern die Standardberechtigungsmechanismen, die Änderungen ohne einen entsprechenden Berechtigungssatz verhindern würden.

Ist es möglich, sie remote auszunutzen?

ist sie nicht direkt remote ausnutzbar; Sie benötigen zunächst einen weiteren Fehler, um Fernzugriff auf das System zu erhalten , wie in seinem Kommentar @IMSoP angegeben.

Es wird als wichtiger Fehler:

Wichtige Auswirkung

Diese Bewertung bezieht sich auf Fehler, die die Vertraulichkeit leicht gefährden können , Integrität oder Verfügbarkeit von Ressourcen. Dies sind die Arten von Sicherheitslücken, die es lokalen Benutzern ermöglichen, Berechtigungen zu erlangen, nicht authentifizierten Remotebenutzern das Anzeigen von Ressourcen zu ermöglichen, die ansonsten durch Authentifizierung geschützt werden sollten, authentifizierten Remotebenutzern das Ausführen von beliebigem Code ermöglichen oder Remotebenutzern erlauben, einen Denial-of-Service zu verursachen / p>

Betrifft es Android?

Ja, weil Android den Linux-Kernel verwendet.

Bin ich betroffen? ?

Wenn auf einem Gerät ein Linux-Kernel höher als 2.6.22 ausgeführt wird, besteht eine gute Chance, dass Sie anfällig sind. Das Gleiche gilt für alle Android-Versionen, unabhängig davon, ob sie von Samsung, Google, Cyanogen, MIUI oder anderen Anbietern stammen, da sie noch keine Sicherheitsupdates veröffentlicht haben.

Um diese Sicherheitsanfälligkeit auszunutzen, muss der Angreifer Code auf dem betroffenen Gerät ausführen. Dies kann im Fall von Android über die Android Debug Bridge (ADB) über USB oder durch Installation einer App erfolgen, die den Exploit nutzt.

Update

Ein Sicherheitssucher beschreibt auf diesem Blog, wie man es ausnutzt Der Fehler aus der Ferne

Die Exploits können gegen Webhosting-Anbieter verwendet werden, die Shell-Zugriff bieten, sodass ein Kunde andere Kunden oder sogar Service-Administratoren angreifen kann. Exploits zur Eskalation von Berechtigungen können auch mit Angriffen kombiniert werden, die auf andere Schwachstellen abzielen. Beispielsweise ermöglicht eine SQL-Injection-Schwachstelle auf einer Website Angreifern häufig, bösartigen Code nur als nicht vertrauenswürdiger Benutzer auszuführen. In Kombination mit einem Eskalations-Exploit können solche Angriffe jedoch häufig den begehrten Root-Status erreichen.

Nützliche Informationen finden Sie hier:

  1. Wie kann ich feststellen, ob Ihr System anfällig ist?
  2. Wie lautet die Liste der betroffenen Linux-Distributionen?
  3. Wie behebe ich das?
  4. ol>
Sie sagen, es ist möglich, es aus der Ferne zu nutzen.Die am häufigsten gewählte Antwort besagt, dass es nicht möglich ist, sie aus der Ferne zu nutzen.Keine Ahnung, wer richtig ist, dachte nur, ich sollte auf den Unterschied hinweisen.
@Anders Ich aktualisiere meine Antwort
Ich denke, es ist eine terminologische Verwirrung: Ihrer Beschreibung nach ist es nicht * direkt * aus der Ferne ausnutzbar;Sie benötigen zuerst einen weiteren Fehler, um per Fernzugriff auf das System zugreifen zu können.Sobald Sie die Möglichkeit haben, beliebige Befehle auszuführen, sind diese Befehle für das System effektiv "lokal".Beispielsweise werden Befehle, die über eine hergestellte SSH-Verbindung ausgeführt werden, in diesem Sinne normalerweise nicht als "remote" klassifiziert, da zwischen ihnen und Befehlen, die auf einem Terminal eingegeben werden, das physisch an das System angeschlossen ist, nur eine geringe Bedeutung besteht.
-1 Der Fehler kann NICHT aus der Ferne ausgenutzt werden.
** Alles ** ist "remote ausnutzbar", wenn Sie einen sekundären Fehler annehmen, der Ihnen lokalen Zugriff ermöglicht ... Mit remote ausnutzbar meinen wir im Allgemeinen: Der Fehler kann * ohne * einen solchen lokalen Zugriff auf eine Web-Shell oder ähnliches ausgelöst werden.
Ich denke, Sie verstehen die Definition falsch.Sicherheitslücken werden als "wichtig" gekennzeichnet, wenn sie mindestens eines der aufgeführten Kriterien erfüllen. In diesem Fall können lokale Benutzer Berechtigungen erwerben oder authentifizierte Remotebenutzer.Wenn bekannt wäre, dass der Exploit direkt von nicht authentifizierten Remotebenutzern ausgenutzt werden kann, wird er stattdessen als "kritisch" markiert.(NB: Ich spreche hier nicht offiziell für RH.)
Ihre Antwort über die Ausbeutung von Android ist schlecht recherchiert.Android verwendet zwar den Linux-Kernel, dies bedeutet jedoch nicht, dass die Sicherheitsanfälligkeit in Android ausgenutzt werden kann.Auch die Antwort zur Fernausnutzung ist bestenfalls irreführend.
kaidentity
2016-10-21 16:59:07 UTC
view on stackexchange narkive permalink

CVE-2016-5195 ist ein sogenannter Exploit zur Eskalation von Berechtigungen. Damit können Sie die Berechtigungsstufe von einem normalen Linux-Benutzer auf root erhöhen. Exploits zur Eskalation von Berechtigungen sind normalerweise lokale Exploits (dh sie werden lokal auf einer Box ausgeführt). Dies bedeutet, dass Sie bereits beim Betriebssystem angemeldet sein müssen.

Der von mir überprüfte öffentliche Exploit ermöglicht das Schreiben von Dateien Eigentum von root, die schreibgeschützt oder für Nicht-Root-Benutzer überhaupt nicht zugänglich sind. Auf diese Weise können Sie Verwaltungsdateien überschreiben. Sie können dies nutzen, um root zu werden. Z.B. Sie können / etc / passwd code eine Zeile

 hack :: 0: 0: ,,,: / home / kai: / bin / bash 

hinzufügen >. Dies würde der Box einen Root-Benutzer ohne Kennwort hinzufügen.

sigalor
2016-10-21 22:44:46 UTC
view on stackexchange narkive permalink

Zumindest betrifft es Android 5.0.1 (Kernel Version 3.10.54+). Ich habe gerade diesen Code auf einem Gerät mit Termux ausprobiert und das Bearbeiten einer Datei von root funktioniert einwandfrei. Ich mag das, weil für dieses Gerät kein Root verfügbar ist.

Andererseits überrascht es mich, weil Android SELinux verwendet und ich dachte, SELinux würde das Schreiben auf / proc / self / mem .

Eigentlich habe ich gerade versucht, in eine Datei zu schreiben, die einem Benutzer namens sdcard gehört, dem alle Dateien auf dem Computer gehören SD-Karte. Termux selbst darf (normalerweise) nicht auf die SD-Karte schreiben. Wenn ich Dirtyc0w für eine solche Datei ausprobiere, hängt das Gerät einfach und startet nach einigen Sekunden automatisch neu. Selbst adb logcat gibt während dieses Hangs nichts aus. Ich bin mir nicht sicher, was dort los ist.

Damon
2016-10-22 16:26:07 UTC
view on stackexchange narkive permalink

Wie beängstigend ist es?

Im Prinzip ist eine Eskalation von Berechtigungen ziemlich beängstigend, da dadurch die Zugriffskontrolle mehr oder weniger bedeutungslos wird. In der Praxis spielt es hoffentlich wenig. Sie müssen zunächst nur eingeschränkten Benutzerzugriff haben.

Für Server bedeutet dies, dass nicht so gut gewartete Serversysteme, die jetzt etwas ausnutzbar sind, trivial rootbar sind. Es ist jedoch nicht so, dass dies der erste Exploit zur Eskalation von Berechtigungen in der Geschichte ist.
Bei gut gewarteten Systemen sollte die Auswirkung nahe Null liegen (sie sollten bisher nicht ausgenutzt worden sein und sollten jetzt aktualisiert werden).

Für alle Android-Telefone vor 7.0 bedeutet dies leider, dass es einen Exploit gibt, der es einer böswilligen App ermöglichen könnte, das Telefon zu übernehmen. Das ist ein äußerst beängstigender Gedanke, aber es scheint bisher nicht geschehen zu sein, sonst würde es überall auf der Welt Panik, Chaos und Mord geben. Durch automatische Updates wird dieses Problem schnell behoben. In der Zwischenzeit werden keine neuen Apps installiert (die Apps, die bereits seit vielen Monaten auf Ihrem Telefon vorhanden sind, haben Ihr Telefon offensichtlich nicht entführt, also sind sie es wahrscheinlich harmlos) ... Problem gelöst.
Es gibt jetzt noch eine andere Möglichkeit, Ihr Telefon zu jailbreaken (zumindest bis zum nächsten Systemupdate).

Es bedeutet natürlich auch, dass jemand physischen Zugriff hat auf Ihren Computer und ein Benutzerkonto kann Ihr System rooten ... aber sie können auch einfach Ihren Computer greifen und wegtragen oder die Festplatte stehlen oder Firewire / Thunderbolt verwenden, die im Grunde genommen direkten Speicherzugriff über Kabel sind CD-ROM oder ... 200 andere Dinge, daher denke ich nicht, dass dies insgesamt ein großes Problem ist. Es ist nur eine weitere Sache, die jemand tun kann.

Noch wichtiger

Da dies der zweite langjährige, hochkarätige Vorfall ist (nach CVE-2008-0166), bei dem Ein Betreuer hat ein wohl schwerwiegendes Sicherheitsproblem im Auftrag eines "Was kümmert mich das?" -Problems erstellt. Ich hoffe, dass die größte Auswirkung, die dies haben wird, eine Diskussion über den Engineering-Prozess wieder eröffnen wird.

Das größte Problem bei dieser Sicherheitsanfälligkeit ist meiner Meinung nach, dass sie 2005 identifiziert und behoben wurde (als es sich lediglich um ein theoretisches Problem mit geringer Wahrscheinlichkeit des Auftretens handelte), aber dann zurückgesetzt wurde, weil es bei einigen IBM ein Problem verursachte Mainframe-Serien aus den frühen neunziger Jahren, von denen nur wenige jemals gehört haben. Was 99% aller Linux-Benutzer offen gesagt nicht weniger interessieren könnten und was durch einen systemabhängigen Patch / Fix für nur s / 390 möglich gewesen wäre. Dies ist jedoch nicht geschehen, und das Problem ist erst 11 Jahre später in Vergessenheit geraten.

Dies ist der Einführung von 2008-0166 sehr ähnlich, bei der jemand Code herausgearbeitet hat (der korrekt funktioniert hat), ohne die Auswirkungen zu verstehen , nur weil Valgrind eine Warnung angezeigt hat.

Vielleicht hilft dies dabei, ein größeres Bewusstsein für die Bedeutung von Betreuern zu schaffen, die verstehen, welche genauen Auswirkungen eine Codeänderung für die überwiegende Mehrheit der Benutzer hat, und insgesamt kritischer Die Bewertung (mit Peer Review?) zu Codeänderungen kann sich weiterentwickeln. Hoffentlich ist das so.

"Automatische Updates werden dieses Problem schnell beseitigen" - irgendwie glaube ich dir nicht.Wie viel Prozent der Telefone erhalten tatsächlich automatische Updates?
@d33tah: Ich weiß es offensichtlich nicht (wie könnte ich).Aber sehen Sie, wie Telefone fast mehr "im Besitz des Herstellers" sind als im Besitz ihres Besitzers, fast 100%?Mein Telefon (das ein iPhone ist, nicht Android, aber trotzdem) scheint sich mindestens alle zwei Wochen automatisch zu aktualisieren (fühlt sich fast jeden Tag an), und die Option, dies auszuschalten, falls es eines gibt, ist sogut versteckt, dass ich nicht einmal weiß, wo ich es finden kann.Sicher, ich kann das Update verzögern, aber es nervt mich jedes Mal mit "Jetzt installieren", wenn ich den Weckknopf drücke.Alles in allem halte ich dieses häufige automatische Update für eine gute Funktion.
@Damon Android 5.0 wurde vor zwei Jahren veröffentlicht, aber ungefähr 50% der Android-Telefone laufen immer noch mit 4.4 oder älter.Siehe https://developer.android.com/about/dashboards/.
@Damon Leider unterscheidet sich die Situation für Android-Updates erheblich von der Situation für iOS-Updates.Mit Ausnahme einiger (relativ) großer Hersteller, die inzwischen damit begonnen haben, einige Telefonmodelle, die bei einigen großen Netzbetreibern erhältlich sind, rechtzeitig zu warten, können Besitzer von Android-Telefonen, die von großen OEMs hergestellt werden, im Allgemeinen immer noch entweder (a) Updates erwarten, die tatsächlich durchgeführt werdenSie können Wochen oder Monate nach der ersten Veröffentlichung durch Google an die OEMs auf ihre Telefone zugreifen oder (b) überhaupt keine Updates durchführen.
katrix
2016-10-21 20:47:29 UTC
view on stackexchange narkive permalink

Der Guardian scheint ein JA zu sagen, aber es sieht so aus, als ob es von der fraglichen Android-Variante abhängt:

Das gilt auch für Android: the Das mobile Betriebssystem ist betroffen. Während Top-End-Android-Geräte wie das Galaxy S7 und Pixel regelmäßig Sicherheitsupdates erhalten, erhält die überwiegende Mehrheit der verkauften Android-Geräte nach dem Verkauf nur wenige, wenn überhaupt, Updates.

Google lehnte einen Kommentar ab. bestätigte jedoch, dass Android eine der betroffenen Linux-Distributionen ist. Das Unternehmen hat eine Partner-Sicherheitsempfehlung veröffentlicht, um Android-Partner zu benachrichtigen. Dies ist einer der Schritte für diese Partner, die dann einen Patch herausgeben.

Steve Sether
2016-10-21 23:46:51 UTC
view on stackexchange narkive permalink

Der Fehler ermöglicht es einem Angreifer, der beliebigen Code ausführen kann, in einen "schreibgeschützten" Speicher zu schreiben. Linux-Caches verwenden häufig verwendete Dateien im Nur-Lese-Speicher. Wie Sie vermutet haben, können Sie auf diese Weise beispielsweise den Inhalt einer Setuid-Root-Datei ändern, um beliebigen Code wie eine Shell als Root auszuführen.

Der Fehler an und für sich ist seitdem nicht mehr aus der Ferne ausnutzbar Der Angreifer muss eine bestimmte ausführbare Datei ausführen, die vom Angreifer erstellt wurde. Wenn wir die Wörter "remote ausnutzbar" verwenden, ist es normalerweise nicht erforderlich, beliebigen Code auszuführen.

Es gibt jedoch Situationen, in denen ein Angreifer bereits beliebigen Code ausführen kann, der nicht so offensichtlich ist als SSH-Zugang. Dies kann der Grund für einige Verwirrung sein, da es nicht immer offensichtlich ist, dass ein Angreifer über Berechtigungen zur Codeausführung verfügt. Möglicherweise sind gemeinsam genutzte automatisierte Build-Umgebungen für diese Art von Exploit anfällig, da sie es dem Entwickler häufig ermöglichen, beliebigen Code auszuführen. Ein Angreifer in diesem Szenario könnte möglicherweise Root-Rechte erhalten.

Ich bin nicht qualifiziert zu antworten, wenn dieser Fehler in Android ausgenutzt werden kann. Wenn es unter Android ausgenutzt werden kann, ist der Umfang höchstwahrscheinlich darauf beschränkt, dass der Besitzer des Telefons das Gerät "rooten" kann, anstatt dass ein entfernter Angreifer die Kontrolle über das Telefon erlangt.

Dies würde nur bedeuten, dass die Anwendungs-Sandbox nicht funktioniert und jede Anwendung das Gerät unabhängig von der Benutzergenehmigung pwn kann - wie in MS-DOS


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...