Ein in allen, die letzten 17 Jahre herausgegebenen Windows-Versionen enthaltener Bug im Kernel kann (möglicherweise) ausgenutzt werden, um Sicherheitssoftware (Antivirus-Software) auszutricksen. Diese erkennt dann schlicht keine Malware mehr, weil sie über die falschen Dateien informiert wird. Microsoft sieht aber keine Sicherheitslücke.
Anzeige
Das Ganze wurde von Sicherheitsforschern der Firma enSilo entdeckt und in diesem Blog-Beitrag von Breaking Malware beschrieben. Bei der Analyse des Windows-Kernel stießen die Spezialisten um Omri Misgav auf ein Problem mit der PsSetLoadImageNotifyRoutine API-Funktion. Diese informiert, wenn Module geladen werden.
Problem: Falsche Dateinamen werden gemeldet
Das Problem: Nach einer Registrierung einer Benachrichtigungsroutine für (im Kernel) geladene PE-Images kann die Benachrichtigungsroutine ungültige Namen für die Image-Dateien an die Callback-Funktion zurück geben. Bei der Analyse stellte sich heraus, dass das scheinbar zufällige Problem von einem Codierungsfehler im Windows-Kernel selbst herrührt.
Die Callback-Funktion liefert manchmal einen Pfad ohne die Volume-Bezeichnung zurück. Manchmal ist der Pfad auch komplett kaputt – und es kann Szenarien geben, wo der Pfad zufällig auf andere, existierende oder fehlende Dateien, verweist, wie die Sicherheitsforscher schreiben. Dieser Fehler existiert seit Windows 2000 und setzt sich bis zur neuesten Version von Windows 10 fort.
Sinn der Funktion und Nutzung
Microsoft hat die PsSetLoadImageNotifyRoutine-Callback-Funktion ursprünglich eingeführt, um Anwendungsentwicklern eine Möglichkeit zu geben, um über neu registrierte Treiber informiert zu werden. Da das System auch erkennen konnte, wenn ein PE-Abbild in den virtuellen Speicher geladen wurde, wurde der Mechanismus auch in Antivirensoftware integriert, um einige Arten von böswilligen Aktionen zu erkennen.
Anzeige
Im Blog-Beitrag gehen die Sicherheitsforscher auf die weiteren Details ein. Sie weisen auch darauf hin, dass Microsoft die Verwendung der Filesystem Mini-Filter Callback-Methode (IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION) zum Prüfen empfiehlt. In der Microsoft-Dokumentation habe man aber diverse Fehler gefunden. So schreibt Microsoft zwar, dass der Rückgabewert NULL sein könne. Wenn ein Wert ungleich NULL geliefert werde, bedeute dies, dass der Kernel den Namen der Image-Datei identifiziert habe (was wohl nicht immer stimmt).
Microsoft sieht kein Sicherheitsproblem
Die Analysen in obigem Blog-Beitrag sind nur etwas für Hardcore-Entwickler, so ganz durchgestiegen bin ich beim Querlesen nicht. Bei Bleeping Computer hat man diese Geschichte aufgegriffen und schreibt, dass der Entdecker der Lücke, Omri Misgav, nicht getestet habe, ob Sicherheitssoftware dadurch in die Irre geleitet wird. Es könnte sich also um ein theoretisches Szenario handeln. Misgav hat Bleeping Computer aber per E-Mail mitgeteilt:
"We are aware that some vendors do use this mechanism, however at this point in time we cannot say if and how the use of the faulty [PsSetLoadImageNotifyRoutine] information affects them."
Es gibt wohl Anbieter, die genau diesen Mechanismus verwenden, wobei die Konsequenzen unklar bleiben. Unschön ist es auf jeden Fall. Omri Misgav schrieb in der E-Mail an Bleeping Computer, dass man Microsoft bzw. deren MSRC [Microsoft Security Response Center] über das Problem Anfang des Jahres informiert habe. Das MSRC sieht aber kein Sicherheitsproblem. Der Fehler dürfte also ungepatcht bleiben.
Ähnliche Artikel:
Windows: GhostHack umgeht PatchGuard Protection
Update KB890830 (Windows Malicious Removal Tool) macht Probleme
Intel Management Engine (ME) abschalten
Platinum-Hackergruppe greift Systeme über Intel AMT an
Neue Details zu Intels AMT/ME Sicherheitslücken
Kritischer Bug in Intel Plattformen, Patch für Exploit verfügbar
Microsoft erklärt die Schutzmechanismen in Windows 10
Microsoft erklärt sein Windows 10 Antivirus-Eco-System
Anzeige
Na solange Microsoft kein Sicherheitsproblem darin sieht ist doch alles Okay, wollen wir nur hoffen das es auch dabei bleibt und nicht nach hinten losgeht.
da es schon seit 17 Jahren drin ist, gibt es 2 Möglichkeiten:
1. es ist kein wirkliches Problem
2. es wird jetzt ein Problem dank der nun erfolgten Veröffentlichung
Wenn man Glück hat, dann ist es so kompliziert, dass es keiner versteht.
diesen Bug hatte ich letztes Jahr auch entdeckt, als mein Parser von ETL (erzeugte Dateien von xperf/WPR) gesponnen hatte , da sind auch manchmal Pfade ohne Buchstaben drin gewesen.
Bin ich also nicht allein, der das Problem hatte.