Überprüfung der Codeintegrität
Arbeitsspeicherintegrität ist ein virtualisierungsbasiertes Sicherheitsfeature (VBS), das in Windows 10, Windows 11 und Windows Server 2016 und höher verfügbar ist. Speicherintegrität und VBS verbessern das Bedrohungsmodell von Windows und bieten einen besseren Schutz vor Schadsoftware, die versucht, den Windows-Kernel auszunutzen. VBS verwendet den Windows-Hypervisor, um eine isolierte virtuelle Umgebung zu erstellen, die zum Vertrauensstamm des Betriebssystems wird, das davon ausgeht, dass der Kernel kompromittiert werden kann. Die Speicherintegrität ist eine wichtige Komponente, die Windows schützt und härtet, indem die Codeintegrität im Kernelmodus in der isolierten virtuellen Umgebung von VBS ausgeführt wird. Die Speicherintegrität schränkt auch Kernelspeicherbelegungen ein, die verwendet werden könnten, um das System zu kompromittieren. So wird sichergestellt, dass Kernelspeicherseiten erst nach dem Bestehen von Codeintegritätsprüfungen innerhalb der sicheren Laufzeitumgebung ausführbare Dateien werden und ausführbare Seiten selbst nie beschreibbar sind.
Hinweis
Die Speicherintegrität wird manchmal als hypervisorgeschützte Codeintegrität (Hypervisor-Protected Code Integrity, HVCI) oder durch Hypervisor erzwungene Codeintegrität bezeichnet und wurde ursprünglich als Teil von Device Guard veröffentlicht. Device Guard wird nicht mehr verwendet, außer um die Speicherintegrität und VBS-Einstellungen in Gruppenrichtlinie oder der Windows-Registrierung zu ermitteln.
Die Codeintegritätsüberprüfungen stellen die Kompatibilität mit den Anforderungen an die Kernelspeicherauslastung der Speicherintegrität sicher und erkennen die folgenden Verstöße:
Fehlercode | Problem mit der Codeintegrität |
---|---|
0x2000:
|
Der Aufrufer hat einen ausführbaren Pooltyp angegeben. (Erwartet: NonPagedPoolNx) |
0x2001:
|
Der Aufrufer hat einen ausführbaren Seitenschutz angegeben. (Erwartet: gelöschte PAGE_EXECUTE*-Bits) |
0x2002:
|
Der Aufrufer hat eine ausführbare MDL-Zuordnung angegeben. (Erwartet: MdlMappingNoExecute). |
0x2003:
|
Das Image enthält einen ausführbaren und einen beschreibbaren Abschnitt. |
0x2004:
|
Das Bild enthält einen Abschnitt, der nicht seitenausgerichtet ist. |
0x2005:
|
Das Image enthält eine IAT in einem ausführbaren Abschnitt. |
Aktivieren Sie diese Option:
Sie können die Codeintegritätsprüfung für einen oder mehrere Treiber aktivieren, indem Sie den Treiberüberprüfungs-Manager oder die Verifier.exe Befehlszeile verwenden. Weitere Informationen finden Sie unter Auswählen von Treiberüberprüfungsoptionen. Sie müssen den Computer neu starten, um die Option zur Überprüfung der Codeintegrität zu aktivieren oder zu deaktivieren.
Über die Befehlszeile
In der Befehlszeile wird die Codeintegritätsprüfung durch 0x02000000 (Bit 25) dargestellt. Beispiel:
verifier /flags 0x02000000 /driver MyDriver.sys
Das Feature ist nach dem nächsten Start aktiv.
Verwenden des Treiberüberprüfungs-Managers
- Starten Sie den Treiberüberprüfungs-Manager. Geben Sie Verifier in ein Eingabeaufforderungsfenster ein.
- Wählen Sie Benutzerdefinierte Einstellungen erstellen (für Codeentwickler) aus, und klicken Sie dann auf Weiter.
- Codeintegritätsüberprüfung auswählen(überprüfen).
- Starten Sie den Computer neu.