von Purgatory » 25.06.2024, 23:43
Also, um es so kurz und einfach wie möglich zu sagen.
Der Kernel, also sozusagen der Kern mit dem Windows funktioniert, also die absolute Basis, soll mehr geschützt werden.
Wenn Windows startet legt es einen Teil des Kernels im Ram ab. Und dieser ist grundsätzlich angreifbar. Auch wenn der Ram ein flüchtiger Speicher ist, also nach einem Neustart alles vergisst, speichert Windows beim Neustart oder runterfahren dennoch einige Informationen des Rams und verewigt sie auf der Festplatte, also im Festspeicher, sie sind, theoretisch, also beim nächsten Start wieder aktiv.
Die Technologie die Du gerade hinterfragst greift genau hier an. Im Ram wird sozusagen ein sicherer Speicherbereich angelegt, der interagiert mit dem Ramcontroller als auch der CPU selbst. Um die Speichermenge nicht zu verdoppeln (normaler Rambereich und Spiegelung im sicheren Bereich) werden Hashes angelegt. Die sagen aus was Windows erwarten darf und soll wenn es Speicherbereich XY liest. Ist dieser kompromittiert stimmt der Hash nicht, und Windows liest diesen Speicherbereich nicht aus, bzw. führt ihn nicht aus. In diesem Falle friert Windows ein Programm ein welches den falschen Hashwert hervorgerufen hat, ohne Eingriffe in seinen eigenen Kernel zu gewähren.
Dieser ganze Vorgang erzeugt aber auch Latenzen, weil ständig überprüft wird ob die Hashes stimmen, und darum ist HVCI speziell bei Gamern auch nicht so gerne gesehen, einfach weil es Last generiert. Das ist auch logisch.
HVCI an:
Windows an Ram: Hoi, ist der Hashwert ok?
Ram an Windows: Jooo, aber ich muss erstmal mal die CPU fragen ob das auch wirklich stimmt
CPU an Ram: Jupp, stimmt soweit
Windows fragt jetzt beide nochmal ab ob es auch wirklich stimmt, und sagen beide ja, wird der Inhalt ausgeführt.
HVCI aus:
Windows an Ram: Alles gut da?
Ram an Windows: Joooo, hab da was für Dich. Und der Inhalt wird ausgeführt.
Dummerweise gibt es aber Treiber die überhaupt nichts böses im Schilde führen aber durch diese Prüfung sozusagen durchfallen. Windows testet dann über eine gewisse Zeit ob ein Treiber den Kernel beeinflussen kann oder nicht. Fällt ein Treiber durch der permanent installiert ist, aber nichts hervorruft, wird das Feature auf Dauer deaktiviert. Und selbst wenn der Treiber im Nachhinein das Logo bekommt schaltet sich das nicht wieder ein. Darf verstehen wer will...
Keinerlei Frage was schneller ist, und keinerlei Frage was sicherer ist. Die Frage ist ob man das braucht.
Im Prinzip ist das nichts schlimmes wenn HVCI deaktiviert ist, nicht jeder Treiberhersteller lässt sich von Microsoft das WHQL Logo aufdrücken, nur damit Windows garantiert, dass der Treiber zu 100% stabil läuft, und integer. Nehmen wir als Beispiel Grafikkartenhersteller, die in etwa jeden Monat einen neuen Treiber rausbringen um Spiel XY zu optimieren. Die vergeben das WHQL Logo nur maximal jedes Vierteljahr, einfach weil es teuer ist dieses Logo zu bekommen. Für Windows ist dieser Treiber ohne Logo dann verdächtig, ohne dass er was tut, also was schlimmes. Andere Treiberhersteller pfeifen komplett auf das Logo, und trotzdem laufen die Treiber stabil. Dummerweise sorgt der Algorithmus von Windows dann halt dafür dass HVCI permanent deaktiviert wird.
Also, um es so kurz und einfach wie möglich zu sagen.
Der Kernel, also sozusagen der Kern mit dem Windows funktioniert, also die absolute Basis, soll mehr geschützt werden.
Wenn Windows startet legt es einen Teil des Kernels im Ram ab. Und dieser ist grundsätzlich angreifbar. Auch wenn der Ram ein flüchtiger Speicher ist, also nach einem Neustart alles vergisst, speichert Windows beim Neustart oder runterfahren dennoch einige Informationen des Rams und verewigt sie auf der Festplatte, also im Festspeicher, sie sind, theoretisch, also beim nächsten Start wieder aktiv.
Die Technologie die Du gerade hinterfragst greift genau hier an. Im Ram wird sozusagen ein sicherer Speicherbereich angelegt, der interagiert mit dem Ramcontroller als auch der CPU selbst. Um die Speichermenge nicht zu verdoppeln (normaler Rambereich und Spiegelung im sicheren Bereich) werden Hashes angelegt. Die sagen aus was Windows erwarten darf und soll wenn es Speicherbereich XY liest. Ist dieser kompromittiert stimmt der Hash nicht, und Windows liest diesen Speicherbereich nicht aus, bzw. führt ihn nicht aus. In diesem Falle friert Windows ein Programm ein welches den falschen Hashwert hervorgerufen hat, ohne Eingriffe in seinen eigenen Kernel zu gewähren.
Dieser ganze Vorgang erzeugt aber auch Latenzen, weil ständig überprüft wird ob die Hashes stimmen, und darum ist HVCI speziell bei Gamern auch nicht so gerne gesehen, einfach weil es Last generiert. Das ist auch logisch.
HVCI an:
Windows an Ram: Hoi, ist der Hashwert ok?
Ram an Windows: Jooo, aber ich muss erstmal mal die CPU fragen ob das auch wirklich stimmt
CPU an Ram: Jupp, stimmt soweit
Windows fragt jetzt beide nochmal ab ob es auch wirklich stimmt, und sagen beide ja, wird der Inhalt ausgeführt.
HVCI aus:
Windows an Ram: Alles gut da?
Ram an Windows: Joooo, hab da was für Dich. Und der Inhalt wird ausgeführt.
Dummerweise gibt es aber Treiber die überhaupt nichts böses im Schilde führen aber durch diese Prüfung sozusagen durchfallen. Windows testet dann über eine gewisse Zeit ob ein Treiber den Kernel beeinflussen kann oder nicht. Fällt ein Treiber durch der permanent installiert ist, aber nichts hervorruft, wird das Feature auf Dauer deaktiviert. Und selbst wenn der Treiber im Nachhinein das Logo bekommt schaltet sich das nicht wieder ein. Darf verstehen wer will...
Keinerlei Frage was schneller ist, und keinerlei Frage was sicherer ist. Die Frage ist ob man das braucht.
Im Prinzip ist das nichts schlimmes wenn HVCI deaktiviert ist, nicht jeder Treiberhersteller lässt sich von Microsoft das WHQL Logo aufdrücken, nur damit Windows garantiert, dass der Treiber zu 100% stabil läuft, und integer. Nehmen wir als Beispiel Grafikkartenhersteller, die in etwa jeden Monat einen neuen Treiber rausbringen um Spiel XY zu optimieren. Die vergeben das WHQL Logo nur maximal jedes Vierteljahr, einfach weil es teuer ist dieses Logo zu bekommen. Für Windows ist dieser Treiber ohne Logo dann verdächtig, ohne dass er was tut, also was schlimmes. Andere Treiberhersteller pfeifen komplett auf das Logo, und trotzdem laufen die Treiber stabil. Dummerweise sorgt der Algorithmus von Windows dann halt dafür dass HVCI permanent deaktiviert wird.