Windows: GhostHack umgeht PatchGuard Protection

Sicherheitsexperten sind auf eine Möglichkeit gestoßen, die Windows PatchGuard Protection auszuhebeln. Über den GhostHack genannten Angriffsweg können Angreifer den Windows Kernel patchen und so Root-Kits oder andere Malware im System verankern. Das Ganze ist zwar auf spezielle Szenarien beschränkt, funktioniert aber auch unter Windows 10 und zeigt, dass die Welt nicht einfach ‘Schwarz-Weiß’ zu sein scheint.


Anzeige

Was ist Windows PatchGuard Protection?

Laut Wikipedia (Englisch) handelt es sich bei PatchGuard um eine Technik, die in 64-Bit-Windows eingeführt wurde, um ein Patchen des Kernels zu verhindern. Die von Microsoft Kernel Patch Protection (KPP) genannte Technik wurde erstmals 2005 mit den x64 Editionen von Windows XP und Windows Server 2003 Service Pack 1 eingeführt.

Microsoft hat dieses MSDN-Dokument (Englisch) mit einigen Antworten zu verschiedenen Fragen veröffentlicht. Auch diese englische Website befasst sich mit der Thematik. 32-Bit-Versionen von Windows verwenden diese Technik nicht, so dass Virenscanner entsprechenden Gebrauch vom Kernel-Patching machen.

GhostHook – PatchGuard Bypassing

In diesem Blog-Beitrag vom 22. Juni 2017 beschreibt Kasif Dekel einen neuen Angriffsvektor, mit dem sich der Microsoft Kernel Patch Protection (KPP) Schutz umgehen lässt. Der Angriff funktioniert aber nur auf Intel CPUs, bei denen Intel Processor Trace (PT) verwendet wird. Laut Intel ist :

Intel® Processor Trace (Intel® PT) is an exciting new feature coming in future processors that can be enormously helpful in debugging because it will expose an accurate and detailed trace of activity with triggering and filtering capabilities to help with isolating the tracing that matters.

Intel® Processor Trace (Intel PT) ist eine Erweiterung der Intel® Architektur, die Informationen über die ausgeführte Software erfassen kann, ohne einen großen Overhead auf der Hardware für dieses Tracing zu verursachen. Also nur gutes für den Anwender und die Entwickler.

Die Trace-Informationen (Timing, Programmfluss, etc.) werden in Datenpaketen gesammelt und intern gepuffert, bevor sie zum Memory Subsystem oder einem anderen Ausgabemechanismus der Platform weitergereicht werden. Die ursprüngliche Implementierung von Intel PT ermöglicht ein ‘Control Flow Tracing’ (Ablaufverfolgung) über eine variable Anzahl von Datenpaketen, die per Software Decoder abgearbeitet werden können. Dies ermöglicht einer Debug-Software die Trace-Daten auszuwerten und den Programmablauf zu rekonstruieren.

Hier könnten Angreifer möglicherweise ansetzen. Normalerweise erfordert der Zugriff auf die Intel PT-Operationen aber, dass ein Angreifer die betreffenden Funktionen als Code im Kernel verankert. Genau dies wird aber durch den PatchGuard verhindert.

Die CyberArk-Forscher haben nach eigenen Angaben eine Sicherheitslücke festgestellt. Wird ein extrem kleiner Puffer für die Verarbeitung von Intel PT Paketen bereitgestellt, geht der CPU irgendwann der Pufferspeicher aus. Dies führt dazu, dass ein PMI-Handler (wohl ein Handler für das Power Meter Interface) aufgerufen wird, um den Code-Überlauf zu behandeln. Und hier kann dann der Angreifer ansetzen. Die CyberArk-Forscher beschreiben einen Ansatz, um über den PMI-Handler, über den sie die Kontrolle haben, Kernel-Code zu patchen.


Anzeige

Denn das Problem besteht darin, dass der PatchGuard den PMI-Handler nicht überwacht, so dass ein Angreifer beliebigen Schadcode im Kernel einschleusen kann. Und dieser Ansatz wird nicht durch das Betriebssystem entdeckt. Das gilt übrigens auch für das sicherste aller Microsoft Betriebssysteme, nämlich Windows 10 (64 Bit).

Microsoft wird nicht patchen

Die CyberArk-Forscher haben Microsoft mit den Ergebnissen ihres Ansatzes konfrontiert und folgende Rückmeldung erhalten:

The engineering team has finished their analysis of this report and determined that it requires the attacker already be running kernel code on the system. As such, this doesn’t meet the bar for servicing in a security update however it may be addressed in a future version of Windows. As such I’ve closed this case.

Weil der Angreifer bereits Kernel-Code auf dem System ausführen können muss, wird das Ganze als unkritisch eingestuft und nicht gepatcht. Möglicherweise greift man das Problem in künftigen Versionen von Windows auf und ändert da was. Dass es eine Technik gibt, um PatchGuard, eine Kernel-Komponente, zu umgehen, scheint dort niemanden zu interessieren. Mal schauen, ob Hacker diesen Ansatz aufgreifen und mit anderen Angriffsmethoden kombinieren können. Bei Bleeping Computer und bei The Hacker News hat man die Erkenntnisse der CyberArk-Forscher in eigenen englischsprachigen Beiträgen zusammen gefasst. Ergänzung: Bei heise.de gibt es zwischenzeitlich diesen deutschsprachigen Artikel zum Thema.


Anzeige


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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

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.