Hintergrund
Das Betriebssystem verfügt über eine Komponente, die als Kernel bezeichnet wird. Eine der (vielen) Aufgaben des Kernels ist die Verwaltung des Systemspeichers (sowohl physisch als auch virtuell).
Dabei teilt der Kernel den verfügbaren Speicher in zwei verschiedene Bereiche auf, die als Benutzermodus und Kernelmodus bezeichnet werden. Der Kernel und die Treiber teilen sich den Kernel-Modus-Speicher, und Benutzerprogramme und weniger kritische Systemkomponenten befinden sich im Benutzermodus-Speicherbereich.
Prozesse im Benutzermodus können im Allgemeinen nicht mit denen im Kernelmodus kommunizieren, außer über speziell bezeichnete und gesteuerte Kanäle.
Der Vollständigkeit halber sollte erwähnt werden, dass Prozesse, die im Benutzermodus ausgeführt werden, auch voneinander isoliert sind, aber über vom Betriebssystem bereitgestellte Funktionen freier miteinander kommunizieren können, sofern die Programme dafür ausgelegt sind.
Prozesse
Der Kernel bietet die Möglichkeit, Prozesse im Benutzermodus zu starten. Wenn ein Prozess erstellt wird, wird er zu einer internen Liste der aktuell vorhandenen Prozesse hinzugefügt. Wenn ein Programm wie der Task-Manager nach einer Liste von Prozessen fragt, erhält es eine Teilmenge der Informationen in dieser Liste, gefiltert nach Benutzerberechtigungen.
Eine Möglichkeit für Malware wie ein Rootkit, seine Existenz zu verbergen, besteht darin, sich direkt aus dieser Tabelle zu entfernen. Anschließend kann es ausgeführt werden, wird jedoch nicht mehr in einer Prozessliste angezeigt, die mit normalen Mitteln abgerufen wurde.
Da diese Prozesse tatsächlich noch vorhanden sind und ausgeführt werden, können sie durch Überprüfung anderer Kerneldatenstrukturen, z. B. von Handletabellen, die Informationen zu Ressourcen enthalten, die ein Prozess geöffnet hat (z. B. Dateien), oder durch Überprüfung der Speicherzuordnungen, von denen es sich um mehr handelt, ermittelt werden schwer zu verbergen, ohne die Funktionsfähigkeit der Software zu beeinträchtigen.
Kernel-Modus-Treiber
Kernel-Modus-Treiber, die für viele Zwecke verwendet werden, einschließlich der Interaktion mit physischen Hardwaregeräten. Sie werden nach Bedarf unter der Kontrolle des Kernels ausgeführt. Da es sich jedoch nicht um einen Benutzermodus-Prozess handelt, werden sie nicht in der Prozesstabelle angezeigt. und wird daher nicht im Task-Manager oder in anderen Tools angezeigt, die sich ausschließlich mit Prozessen befassen.
Das Ausführen von Code im Kernelmodus ist ein wichtiger Schritt, um das Vorhandensein von ausführendem Code effektiv zu verbergen. Unter normalen Umständen erfordert Windows, dass der Code im Kernel-Modus signiert ist, damit er ausgeführt werden kann. Daher muss Malware möglicherweise Exploits im Betriebssystem, anderer Software oder sogar Social Engineering verwenden, um hierher zu gelangen. Sobald der Code jedoch im Kernel-Modus ausgeführt wird, wird er ausgeblendet wird einfacher.
Zusammenfassung
Zusammenfassend lässt sich sagen, dass es möglich ist, Beweise für die Existenz eines Prozesses zu verbergen. Es wird wahrscheinlich immer Anzeichen dafür geben, dass der Prozess existiert, da er im Allgemeinen immer irgendeine Form von Ressource verwenden muss, um das zu tun, wofür er entworfen wurde, wie schwierig Diese Erkennung hängt von der spezifischen Malware ab.