Microsoft's Kernel Patch Protection bedroht unabhängige Hersteller von IT-Sicherheitssoftware
Die neuen Sicherheitsmaßnahmen, die von Microsoft unter dem Namen "Kernel Patch Protection" eingeführt wurden, werden so dargestellt, als brächten sie den Anwendern ein völlig neues Maß an Sicherheit. Diese Sicherheit wird durch eine Kombination von Microsoft Sicherheitssoftware und dem Kernel-Aufbau des Windows-Betriebssystems geboten.
Die Sicherheitsexperten von Agnitum haben diese neuen Maßnahmen analysiert. Ihrer sachkundigen Meinung nach werden diese Maßnahmen tatsächlich mehr schaden als nutzen, und zwar hauptsächlich aus zwei Gründen:
-
Für unabhängige Hersteller von Sicherheitssoftware wird es wesentlich komplizierter, ihre Software auf Windows-Computern zu installieren und zu warten. Unter bestimmten Umständen kann die Kernel Patch Protection die Installation von Fremd-Sicherheitssoftware sogar vollständig verhindern.
-
Die Verteilung und Anwendung dieser neuen Technologie wird für Hacker einfacher sein als für Entwickler von legitimer Software.
Lassen Sie uns einen Blick hinter die Kulissen werfen, um zu sehen, warum das so ist.
Technischer Hintergrund
Um einen proaktiven Schutz zu bieten, müssen Sicherheitslösungen die Kontrolle über systemnahe Aktivitäten wie Datei- und Registry-Vorgänge erlangen.
Eine Methode zum Erreichen dieses Kontrolllevels ist die Verwendung einer dokumentierten, von Microsoft bereitgestellten API (Application Programming Interface = Programmierschnittstelle). Diese API lässt jedoch nicht zu, dass unabhängige Software-Hersteller die Systemaktivität präventiv und "on the fly", also bei laufender Software, kontrollieren. Sie schränkt die Anzahl von Datei- und Registry-Vorgängen ein, die kontrolliert werden können. Außerdem lässt sie die Kontrolle von Prozessspeicher-Modifizierungen nicht zu und bringt noch eine Reihe anderer Einschränkungen mit sich. Das unterstützt unabhängige Software-Hersteller nicht gerade dabei, den Systemschutz mit Hilfe der nativen Schnittstellen bereitzustellen.
Eine andere Methode erfordert die Modifizierung oder Ersetzung von Code oder kritischen Strukturen im Kernel des Betriebssystems Microsoft Windows über interne Systemaufrufe – das sogenannte "Kernel-Patching". Im Prinzip umgeht das Kernel-Patching den tatsächlichen Windows-Kernelcode, um Fremdcode auszuführen. Diese Methode öffnet Windows jedoch genauso für Angriffe durch bösartigen Fremdcode wie für zulässige Versuche, die Windows-Funktionen zu erweitern.
Eine der meistverwendeten Methoden zur Umsetzung eines proaktiven Schutzes umfasst die Änderung und Überwachung der internen Datenstruktur-Tabelle Service Dispatch Table (SDT), die vom Betriebssystem dazu benutzt wird, die Kontrolle von der Anwenderebene auf den Kernel (niedrige Systemebene) zu übertragen. Entwickler "patchen" den Kernel manchmal, indem sie die Nummer des Dienstes in der SDT ändern. Wenn dann der Aufruf eines Systemdienstes erfolgt, wird der Fremdcode anstatt des Kernel-Codes aufgerufen.
Hersteller von Sicherheitssoftware, unter anderem auch Agnitum, arbeiten oft mit dieser Methode. Im Unterschied zu anderen von Microsoft vorgeschlagenen Techniken ermöglicht es dieser Ansatz der Fremdsoftware, das Betriebssystem durch vollständige Kontrolle der Datei- und Registrierungsvorgänge zu schützen. Microsoft zieht es jedoch vor, dass Entwickler diese Methode nicht benutzen. Tatsächlich ist die Firma in der x64-Version von Windows sogar soweit gegangen, eine Aufrufumleitung über 32-bit-SDT-Verweise zu verhindern. Für die Hacker stellt das leider kein Problem dar, da es im Kernel-Code ungenutzte Bereiche gibt, die zur Erstellung sogenannter Connectoren verwendet werden können. Theoretisch sollte der Windows Patch Guard diesen Prozess nach einer Speicherplatz-Überprüfung unterbrechen, diesen Schutz können die Hacker jedoch bereits deaktivieren.
Und nun kommt die Kernel Patch Protection
In einer der letzten Aktualisierungen hat Microsoft den Entwicklern die Möglichkeit genommen, die Dienstnummer in der SDT auf legitime Weise zu ändern, indem die sogenannte "Kernel Patch Protection" für x64-Versionen von Windows Server 2003 SP1, Windows XP und für spätere Versionen von Windows für x64-Systeme eingeführt wurde.
Microsoft glaubt, dass die Kernel Patch Protection den Code und kritische Strukturen im Windows Kernel vor der Modifizierung durch unbekannten Code oder unbekannte Daten schützt. Kernel Patch Protection speichert und überprüft in bestimmten Abständen die Prüfsummen bestimmter Kernel-Speicherbereiche (Netzwerkkomponenten). Wenn eine Unstimmigkeit bei den Prüfsummen gefunden wird, führt das zum gefürchteten "Blauen Bildschirm des Todes" (BSOD – Blue Screen of Death). Microsoft zufolge soll diese Technik Modifizierungen der SDT verhindern und die Absichten einer Reihe von Rootkits vereiteln.
In der Praxis haben die Untersuchungen der Sicherheitsfachleute von Agnitum jedoch gezeigt, dass Kernel Patch Protection Hacker nicht davon abhält, die gewünschten Möglichkeiten durch Reverse Engineering bestimmter Codebereiche des Betriebssystems zurückzugewinnen. Das verhindert zwar die Kompatibilität mit zukünftigen Kernel-Versionen, aber Qualitätssicherung ist nicht gerade das Hauptanliegen der meisten Malware-Programmierer.
Was bedeutet das also für die Entwickler zulässiger Sicherheitssoftware?
Microsoft ist anscheinend der Meinung, dass es ausreicht, die integrierten Standard-Schutzwerkzeuge einzusetzen. Agnitum und andere unabhängige Entwickler von Sicherheitssoftware würden diesem Standpunkt aufs Schärfste widersprechen. Unabhängige Sicherheitslösungen sorgen für ein dringend benötigtes zusätzliches Schutzlevel, und das Vorhandensein einer großen Bandbreite von solchen Werkzeugen bietet den Anwendern mehr Sicherheit, während es gleichzeitig die Hacker behindert. Vereinfacht dargestellt ist es für Malware-Programmierer erheblich schwieriger, bösartigen Code an unterschiedliche Schutzmechanismen von zahlreichen Herstellern anzupassen als eine einzige Lösung eines Einzelherstellers anzugreifen, die sich als Universallösung ausgibt.
Die Kernel Patch Protection lässt den unabhängigen Software-Herstellern nur zwei Alternativen:
-
Die "legitime", von Microsoft bereitstellte API zu benutzen und somit nicht in der Lage zu sein, einen proaktiven Systemschutz umzusetzen.
-
"Unseriöse" Methoden anzuwenden, also tatsächlich Hacker-Techniken einzusetzen, um mit Microsoft zu konkurrieren und gleiche Wettbewerbsbedingungen durchzusetzen.
Kernel Patch Protection macht Rootkit-Programmierern in der Tat das Leben schwerer. Sie können jedoch schnell und einfach entwickelte Techniken einsetzen, da sie keinen Gedanken an die Kompatibilität mit vorhandenen System- und Anwendungsprogrammen verschwenden müssen.
Außerdem stellt sich die Frage, ob es sinnvoll ist, den BSOD, den Blauen Bildschirm des Todes, als Verteidigungsart gegen Rootkits zu betrachten.
Mit der von Microsoft vorgeschlagenen Lösung wird ein Rootkit, das bisher von Antiviren-Software entdeckt und beseitigt werden konnte, jetzt einen BSOD verursachen. Dasselbe Ergebnis erhält man nach der Installation von Sicherheitssoftware, die mit der Kernel-Patch-Protection-Technologie nicht kompatibel ist.
Die Sicherheitsexperten bei Agnitum glauben, dass dieser Schachzug von Microsoft das Ziel hat, die Anwender dazu zu zwingen, sich hinsichtlich der Windows-Sicherheit auf Microsoft und nur auf Microsoft zu verlassen, indem die Möglichkeit genommen wird, Sicherheitslösungen von Drittanbietern einzusetzen. Wenn man den Erfahrungen der Vergangenheit Glauben schenken darf, sind letztere vermutlich wesentlich widerstandsfähiger und bieten einen besseren Schutz als die Microsoft-Angebote.
Wir sind der Meinung, dass Microsoft den Anwendern eine bessere Lösung schuldet.
Weitere Informationen finden Sie unter: http://www.microsoft.com/whdc/driver/kernel/64bitpatch_FAQ.mspx http://support.microsoft.com/kb/914784
von Igor Pankov, Agnitum ltd., www.agnitum.de
Pressekontakte: pr@agnitum.com |