Verhindert Windows-Kernel-Bug Malware-Erkennung?

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

Dieser Beitrag wurde unter Windows abgelegt und mit , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

3 Antworten zu Verhindert Windows-Kernel-Bug Malware-Erkennung?

  1. 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.

  2. Michael Bickel sagt:

    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.

  3. André sagt:

    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.

Schreibe einen Kommentar

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

Hinweis: Bitte beachtet die Regeln zum Kommentieren im Blog (Erstkommentare und Verlinktes landet in der Moderation, gebe ich alle paar Stunden frei, SEO-Posts/SPAM lösche ich rigoros). Kommentare abseits des Themas bitte unter Diskussion.

Du findest den Blog gut, hast aber Werbung geblockt? Du kannst diesen Blog auch durch eine Spende unterstützen.