Neue Variante des Dirty COW-Angriffs entdeckt

Originalbeitrag von Veo Zhang, Mobile Threats Analyst

Dirty COW (CVE-2016-5195) ist eine Linux-Sicherheitslücke, die im Oktober 2016 publik gemacht wurde. Sie eröffnet Angreifern die Möglichkeit, Privilegien zu erhöhen und damit Root-Zugriff auf das betroffene System zu erlangen. Linus Torvalds bezeichnete die Lücke als „ancient Bug”, und sie wurde schnell gepatcht und der Fix an die Nutzer verteilt. Android ist ebenfalls durch Dirty COW angreifbar, auch wenn SELinux Policies das Ausmaß des Angriffs streng eingrenzen. Die Sicherheitsforscher von Trend Micro haben eine neue Möglichkeit für Angriffe entdeckt. Die Methode erlaubt es, bösartigen Code direkt in Prozesse einzufügen, sodass ein Angreifer eine gewisse Kontrolle über ein betroffenes Gerät erhält. Dies scheint für alle derzeitigen Android-Versionen möglich zu sein.

Machbarkeitsbeweis

Das Video stellt die Angriffsmethode vor. Es zeigt, wie auf einem Android-Gerät, ausgestattet mit dem zur Zeit der Erforschung neuesten Patch, die Proof-of-Concept-App ohne Nachfrage nach Rechten installiert wird.

Bei Ausführung wird Dirty COW ausgenützt, um Informationen zu stehlen und Systemeinstellungen zu ändern (in diesem Fall Auslesen des Standorts des Telefons, Aktivieren von Bluetooth und WLAN-Hotspots). Auch wird heimlich eine App installiert, auch wenn auf das Gerät so eingestellt ist, keine Apps aus anderen Quellen als Google Play zu akzeptieren.

Wenn eine ELF-Datei ausgeführt wird, so mappt der Linux-Kernel die ausführbare Datei in den Hauptspeicher. Das Mapping wird beim nochmaligen Öffnen derselben ELF-Datei wiederverwendet. Wird Dirty COW dazu genutzt, ein bereits laufendes ELF-Executable zu ändern, so wird das Image des laufenden Prozesses ebenfalls geändert. Das aber bedeutet, dass Dirty COW jeden lesbaren laufenden Prozess ändern kann. Ist ein Prozess nicht lesbar, so lässt sich dennoch cat/proc/{pid}/maps einsetzen, um jedes geladene lesbare ELF-Modul zu finden.

Für Android gilt derselbe Prozess. Jeder Android Runtime (ART)-Prozess kann auf die gleiche Weise dynamisch modifiziert werden. Dies erlaubt es einem Angreifer, der eine App auf einem Android-Gerät ausführen kann, jeden anderen Prozess, der lesbar ist, zu verändern. Damit aber ist der Angreifer in der Lage, Code einzufügen und den Kontext jedes Prozesses zu kontrollieren.



Bild 1. Verbesserter Dirty COW-Angriff

Damit lassen sich die Fähigkeiten eines Angriffs so erweitern, dass nicht nur Lese-/Schreibrechte für Dateien genutzt werden können, sondern dass auch Code sich direkt in den Hauptspeicher einfügen lässt. So kann ein Angreifer Root-Zugriff erlangen, ohne dass Reboots oder ein Absturz stattfindet.

Im Video wird libbinder.so dynamisch gepatcht, um der App System-/Root-Rechte zu geben. Diese Möglichkeit wurde genutzt, um Androids Rechtesicherheitsmodell zu umgehen und Informationen stehlen zu können beziehungsweise Systemfunktionen zu kontrollieren.

Gegenmaßnahmen und Benachrichtigung

Trend Micro hat Google über diesen Fehler informiert. Dirty COW wurde ursprünglich im Rahmen der November-Updates gepatcht, doch ist der Fix bis zur Dezember-Runde nicht zwingend. Nutzer können prüfen, wann der Hersteller oder Carrier ihres Geräts das Update verschickt.

Trend Micro prüft stetig, ob diese Bedrohung in Angriffen genutzt wird. Nutzer sollten lediglich Apps aus Google Play oder vertrauenswürdigen Drittanbieter-Stores installieren und eine mobile Sicherheitslösung einsetzen. Trend Micro™ Mobile Security blockt Bedrohungen aus App Stores, bevor sie installiert werden und auf den Geräten Schaden anrichten können.

Unternehmensanwender sollten entsprechende Lösungen in Betracht ziehen, so etwa Trend Micro™ Mobile Security for Enterprise. Die Lösung umfasst Gerätemanagement, Datenschutz, Anwendungs-, Compliance-Management, Konfigurations-Provisioning und andere Funktionen.

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*