[English]Ein Designfehler in verschiedenen Antivirus-Produkten ermöglicht Malware oder lokalen Angreifern den Missbrauch der Funktion "Restore von Quarantäne". Bereits gefundene Malware kann so in sensitive Bereiche des Betriebssystems verschoben werden, um Neustarts zu überstehen und erhöhte Privilegien zu erlangen.
Anzeige
Florian Bogner, ein Sicherheitsauditor des österreichischen Cybersicherheitskonzerns Kapsch, entdeckte den Fehler, den er unter dem Codenamen AVGater verfolgt. Bogner hat wohl die betroffenen Firmen informiert, wobei diese ihre Sicherheitslösungen teilweise aktualisiert haben. Die Erkenntnisse hat Bogner in diesem Blog-Beitrag veröffentlicht.
Die Grundlagen
Die folgende Abbildung zeigt das Innenleben eines typischen AV-Produkts aus Sicht eines unprivilegierten Benutzers. Es gibt drei verschiedene Zugriffsdomänen: Der Kernel-Modus, der privilegierte Benutzermodus (SYSTEM) und der unprivilegierte Benutzermodus. Wie das folgende Bild zeigt, haben die verschiedenen Komponenten sehr unterschiedliche Aufgaben:
(Quelle: Bogner)
Im Kontext des unprivilegierten Benutzers gibt es nur die AV-Benutzeroberfläche. Sie allein hat keine wirkliche Macht, weil sie innerhalb einer begrenzten Benutzersitzung ausgeführt wird. Durch Kommunikation mit dem Windows Dienst des AV-Programms kann die Benutzeroberfläche jedoch viele Dinge tun, die einem normalen Benutzer von den Berechtigungen her verwehrt sind. Zum Beispiel kann es erlaubt sein, Dateien aus der Virus-Quarantäne wiederherzustellen.
Anzeige
Und dann gibt es zusätzlich eine Kernel-Komponente, die die eigentliche Arbeit, Objekte auf bekannte Bedrohungsidentifikatoren zu überprüfen, erledigt und damit alle Berechtigungen benötigt.
AVGator nutzt das geschickt aus
Die spannende Frage ist, ist ein Angriffsszenario denkbar, welches die Restaurierung von Dateien in Quarantäne ausgenutzt werden, um erkannte Malware ins System einzuschleusen – und dies, obwohl der Benutzer keine Privilegien besitzt? Bogner hat dazu folgende Video veröffentlicht.
(Quelle: YouTube)
Wie im obigen Video zu sehen ist, kann der #AVGater verwendet werden, um eine zuvor in Quarantäne befindliche Datei an einem beliebigen Speicherort des Dateisystems wiederherzustellen. Dies ist möglich, weil der Restore-Prozess meist durch den privilegierten AV Windows-Benutzermodusdienst ausgeführt wird.
Auf diese Weise können Dateisystem-ACLs umgangen werden (da sie für den SYSTEM-Benutzer nicht wirklich zählen). Diese Art von Problemen wird als privilegierte Datei-Schreibschwachstelle bezeichnet und kann verwendet werden, um eine bösartige DLL überall auf dem System zu platzieren. Das Ziel ist es, diese Bibliothek für einen legitimen Windows-Server durch Missbrauch der DLL-Search-Order zu laden. Klappt dies, kann die DLL mittels des DLLMain entry point geladen und ausgeführt werden.
Aber eine sehr wichtige Frage bleibt noch offen: Wie kann man den Restore-Prozess manipulieren? Die Lösung sind NTFS-Verzeichnis-Junktions. Dies sind im Grunde symbolische Links für Verzeichnisse, die von jedermann mit Hilfe von mklink erstellt werden können. Durch den Missbrauch der NTFS-Verzeichnis-Junktions kann der Prozess der AV-Quarantäne-Wiederherstellung manipuliert werden. Damit lassen sich zuvor unter Quarantäne befindliche Dateien in beliebige Dateisystem-Speicherorte schreiben. Mit diesem Wissen lässt sich ein komplettes Angriffsszenario konstruieren.
- Zuerst wird eine bösartige Bibliothek (DLL mit Malware) in die AV-Quarantäne verschoben. Dann wird der ursprüngliche Quellpfad durch den Missbrauch von NTFS-Verzeichnis-Junktions an ein anderes Ziel weitergeleitet (höchstwahrscheinlich ein Ordner in C:\Program Files oder C:\Windows).
- Durch das Wiederherstellen der zuvor isolierten Datei werden die SYSTEM-Berechtigungen des Windows-Benutzermodusdienstes missbraucht, und die schädliche Bibliothek wird in einem Ordner abgelegt, in den der aktuell angemeldete Benutzer unter normalen Bedingungen nicht schreiben kann.
- Da die DLL-Suchreihenfolge funktioniert, wird sie schließlich von einem anderen privilegierten Windows-Prozess geladen. Dabei wird der Code innerhalb der DLLMain der Schadbibliothek ausgeführt.
Ein lokaler Nicht-Administrator erlangte somit die volle Kontrolle über den betroffenen Endpunkt. Bogner hat das Ganze in folgendem Bild zusammen gefasst.
(Quelle: Bogner)
Die AV-Anbieter Trend Micro, Kaspersky, Malwarebytes, EMSISoft, ZoneAlarm und IKARUS haben Updates zum Beheben des Problems herausgebracht. Weitere Details lassen sich im englischsprachigen Original-Beitrag nachlesen. (via Bleeping Computer)
Nachtrag: Weil es in den Kommentaren schon angesprochen wurde – der Windows Defender hat ein abweichendes Design, so dass Nutzer nicht gefährdet waren (andernfalls hätte ich was dazu geschrieben). Microsoft hat hier aber bereits einen längeren Artikel publiziert, warum der Defender nicht gefährdet war (Martin Geuß hat es heute hier thematisiert).
Anzeige
Also bei MSE (und damit wahrscheinlich auch beim Defender von Win8.x/10) kommt beim Wiederherstellen ein UAC-Prompt. Da klappt das Wiederherstellen also nicht unbemerkt durch einen unprivilegierten User oder Prozess.
Das sehe ich hier regelmäßig immer wieder weil MSE auch gerne Tools von NirSoft wie MailPassView als "Hacktool" in die Quarantäne schiebt.
Wobei Du ja eine passende Ausnahme einrichten könntest, dann taucht das Fenster nicht mehr auf. Nebenbei ist die UAC keinesfalls unüberwindbar. Ich meine, mich zu erinnern, dass der CCC die schon vor Jahren ausgehebelt hat und sich seither am Design der UAC nichts geändert hat.
@Harald L.
Die Dinger von Nirsoft mit MailpassView werden auch von Malwarebytes in die Quarantäne verschoben. im Prinzip auch zurecht. Denn wer seine Passwörter heraus bekommen will, weil er die verlegt hat, bekommt diese nur so. Ich will nun auch nicht, dass Dritte auf meine Systeme installieren. Macht auch alles Sinn.
Unabhängig davon weist auch Nirsoft darauf hin, was auch wieder logisch einen Sinn ergibt.
Es ist eben kein Standardprogramm.
Was von sogenannter „Sicherheitssoftware" zu halten ist, sieht man sehr schön hier im Vortrag von Sandro Gaycken:
https://www.youtube.com/watch?v=sxzCbLRbIkA&t=72
Fazit: Alles Bullshit-Bingo, reines Marketing und dreister Betrug. Schraubt man sich „Security-Software" aufs System, ist es danach unsicherer als es vorher war, man hat eine Unzahl möglicher Angriffsvektoren hinzugefügt. Meine letzte „Sicherheitssoftware" hatte ich als DAU mit Win 98 und die hatte mir damals mehr als genug Ärger gemacht. Seit XP ist nun Schluss mit dem Unsinn und auch der Windows-Defender mit seinem „Geschützen-Ordnerzugriff-Schlangenöl" ist natürlich deaktiviert. Das ganze System muss geschützt sein, anstelle von ineffektivem, schädlichen Unfug.
"Das ganze System muss geschützt sein, anstelle von ineffektivem, schädlichen Unfug."
Hallo Sherlock, könntest Du uns Windows-Nutzern erklären wie man das ganze System schützt und wohl nebenbei noch Geld spart.
Damit wäre wohl einigen geholfen. Vielen Dank.
… das würde mich auch interessieren. Wie sicher Systeme normalerweise ohne geeignete und aktuelle Softwaremaßnahmen sind haben ja diverse Ransomware Angriffe zuletzt oft genug bewiesen, auch bei staatlichen Einrichtungen.
Sicher wäre vielleicht ein PC ohne Internetanbindung und ohne dass jemals irgendwas installiert würde und war :) aber ansonsten wäre es spannend zu wissen, wie man denn nun das ganze normale Heimanwendersystem schützt, ohne dass man irgendeine Schutzsoftware aufspielt.
Effektiver Schutz ist so möglich:
https://skanthak.homepage.t-online.de/SAFER.html
http://schneegans.de/computer/safer/
http://blog.windowsnt.lv/2011/06/01/preventing-malware-with-srp-english/
http://mechbgon.com/srp/
https://www.itmz.uni-rostock.de/anwendungen/software/windows/sicherheit/software-whitelisting-der-bessere-virenschutz/
usw…
Ich vermute mal das Software Restriction Polices (SRP) zum Einsatz kommt. Sicherlich ist hier ein besserer Schutz vor dem Ausführen von ausführbaren Dateien (.exe, .com) gegeben, als bei klassischen Virenscannern. Allerdings lässt sich dieser Schutz ebenfalls aushebeln. Dazu muss man nur nach Bypass Software Restriction Polices (SRP) im Internet suchen. SRP schützt auch nicht vor Skriptsprachen, dessen Laufzeitumgebungen auf dem Rechner installiert sind oder vor Attacken durch die Powershell. Ab Powershell Version 5 sollen Attacken – insbesondere Invoke Memory Attacken – eigentlich nicht mehr möglich sein.
100%ige Sicherheit ist nicht möglich. Es gibt aber effektiven, guten Schutz im Gegensatz zu Schlangenöl, das zudem noch das System zerstört.
Ja was denn nun?
Er fasselst Du von "Das ganze System muss geschützt sein" und erklärst grosspurig das alle Anwender von Antivirenschutz ja keine Ahnung haben. Die zerstören nur ihr System. Du kannst das beweisen?
Aber Du stellst uns ja das Allheilmittel vor was alles wieder gut macht aber oje – auch das kann gar nicht 100% schützen?
Merkst Du was?
Ein Teil fehlt mir da noch:
C:\Users\ingo\Desktop>mklink /d WinVerz C:\Windows\System32
Ihre Berechtigungen reichen nicht aus, um diesen Vorgang auszuführen.
Wie erstellt der bitte ohne lokale Adminrechte einen Link auf ein wichtiges Systemverzeichnis? Damit fällt dann doch die ganze Variante, sich mit der ganzen Aktion auf diesem Weg lokale Adminrechte zu besorgen, schon flach.
Oder übersehe ich was?
Für Windows-Defender ist das wohl kein Problem wie hier beschrieben: https://www.drwindows.de/news/microsoft-windows-defender-war-nie-anfaellig-fuer-avgater
Einmal mehr ein Grund gegen Fremdvirenprogramme.
Bei heise.de gibt es einen anderen Link zu bogner.sh mit Datum vom 10.11.2017 und da steht dann, dass in der Malwarebytes-Version 3.0.5.1299 das erkannt wird.
Da es nun von Malwarebytes die Version 3.3.1.2183 gibt und die von Bogner.sh getestete aus Dez 2016 ist mit dem dortig eingestellten Componenten-Pack und AV-Version kann sich da nur wundern. das wirft die Frage auf was die mit welchen Versionen "getestet" haben bzw. "entdeckt" haben.
in allen solchen Meldungen ist immer dann das Fazit: Nichts Genaues weiß man nicht.
Zur Sicherheit trägt das nicht bei, wäre auch ein Wunder, wenn es anders wäre.
Ein weiterer Grund im Firmenumfeld auf Advanced Endpoint Security Lösungen wie z.B. Palo Alto Traps oder Cylance zu setzen.