it-swarm.com.de

Was ist die mögliche Auswirkung des Dirtyc0w a.k.a. "Dirty COW" -Fehlers?

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?

69
d33tah

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 Oder ähnlich bezeichnet.

Mit diesem Exploit können Sie die Datei /etc/passwd Überschreiben, um www-data Die UID 0 zu geben. Jetzt hat www-data Root-Berechtigungen.

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 Waffen-Exploit, 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 /bin/bash Ausführt. 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.

Was Android betrifft, habe ich Android 4.4 git repo nach der fraglichen Funktion durchsucht (follow_page_pte) Und keine Treffer erhalten, daher möchte ich "nein" sagen, aber nicht zitiere mich dazu.

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

55
Volker

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

Was ist die mögliche Auswirkung des Dirtyc0w-Fehlers?

Ein nicht privilegierter lokaler Benutzer könnte diesen Fehler nutzen, um Schreibzugriff auf ansonsten schreibgeschützte Speicherzuordnungen zu erhalten und damit seine Berechtigungen für das System zu erhöhen.

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

Ist es möglich, es aus der Ferne zu nutzen?

es kann nicht direkt aus der Ferne ausgenutzt werden; Sie benötigen zuerst einen weiteren Fehler, um Fernzugriff auf das System zu erhalten, wie in seinem Kommentar angegeben @ IMSoP ,

es wird als wichtig Fehler eingestuft:

Wichtige Auswirkung

Diese Bewertung wird für Fehler vergeben, die die Vertraulichkeit, Integrität oder Verfügbarkeit von Ressourcen leicht beeinträchtigen können. 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.

Betrifft es Android?

Ja, weil Android verwendet den Linux-Kernel.

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. Gleiches gilt für alle Versionen von Android, 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 nutzt den Exploit.

Update

Ein Sicherheitssucher beschreibt in diesem Blog, wie der Fehler aus der Ferne ausgenutzt werden kann

Die Exploits können gegen Webhosting-Anbieter verwendet werden, die Shell-Zugriff gewähren, 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 einen begehrten Root-Status erreichen.

Nützliche Informationen finden Sie hier :

  1. Wie können Sie feststellen, ob Ihr System anfällig ist?
  2. Was ist die Liste der betroffenen Linux-Distributionen?
  3. Wie behebe ich das?
28
GAD3R

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 jedoch normalerweise lokale Exploits (dh sie werden lokal auf einer Box ausgeführt). Dies bedeutet, dass Sie bereits beim Betriebssystem angemeldet sein müssen.

Der öffentliche Exploit, den ich überprüft habe, ermöglicht das Schreiben von Dateien im Besitz 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 eine Zeile hinzufügen

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

zu /etc/passwd. Dies würde der Box einen Root-Benutzer ohne Passwort hinzufügen.

12
kaidentity

Zumindest betrifft es Android 5.0.1 (Kernel Version 3.10.54+). Ich habe gerade diesen Code auf einem Gerät ausprobiert, das Termux 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 verwendet SELinux und ich dachte, SELinux würde das Schreiben in /proc/self/mem Verhindern.

Eigentlich habe ich gerade versucht, in eine Datei zu schreiben, die einem Benutzer namens sdcard gehört, dem alle Dateien auf der SD-Karte gehören. 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 Hängens nichts aus . Ich bin mir nicht sicher, was dort los ist.

7
sigalor

Wie gruselig 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 Privilegien 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 unglücklicherweise, 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 nicht so Bis jetzt ist es passiert, oder es würde Panik, Chaos und Mord auf der ganzen Welt geben. Automatische Updates werden dieses Problem schnell beseitigen und in der Zwischenzeit keine neuen Apps installieren (die Apps, die für viele bereits auf Ihrem Telefon vorhanden sind Monate offensichtlich nicht Hijack dein Handy, also sind sie 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 mit physischem Zugriff auf Ihren Computer und ein Benutzerkonto Ihr System rooten kann ... aber er kann sich auch einfach Ihren Computer schnappen und ihn wegtragen oder die Festplatte stehlen oder Firewire/Thunderbolt verwenden, was im Grunde genommen der Fall ist Direkter Speicherzugriff über Kabel, Booten von einer 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.

Wichtiger

Da dies der zweite langjährige, hochkarätige Vorfall ist (nach CVE-2008-0166), bei dem ein Betreuer im Auftrag eines "Was kümmert mich das?" ein wohl schwerwiegendes Sicherheitsproblem verursacht hat 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 Mainframe-Serien ein Problem verursachte die frühen neunziger Jahre, 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. Aber das passierte nicht und das Problem geriet erst 11 Jahre später in Vergessenheit.

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 dafür zu schaffen, wie wichtig es ist, dass die Betreuer verstehen, welche genauen Auswirkungen eine Codeänderung auf die überwiegende Mehrheit der Benutzer hat, und dass sich eine insgesamt kritischere Bewertung (mit Peer Review?) Zu Codeänderungen entwickeln kann. Hoffentlich ist das so.

6
Damon

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

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

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

3
katrix

Der Fehler ermöglicht es einem Angreifer, der beliebigen Code ausführen kann, in einen "schreibgeschützten" Speicher zu schreiben. Linux-Caches verwendeten 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 kann nicht aus der Ferne ausgenutzt werden, da der Angreifer eine bestimmte vom Angreifer erstellte ausführbare Datei ausführen muss. 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 wie der SSH-Zugriff. 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 kann möglicherweise Root-Rechte erhalten.

Ich bin nicht qualifiziert zu antworten, wenn dieser Fehler in Android ausgenutzt werden kann. Wenn es auf 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.

3
Steve Sether