CET Shadow Stacks
Auch CET-SS genannt
CET Shadow Stacks bieten einen geschützten Rücksprungadressen-Status, um beschädigte Kontrollfluss-Rücksprünge zu erkennen. Die Shadow-Stack-Fähigkeit des Prozessors ist nur eine Voraussetzung für einen aktiv geschützten Prozess.
Was Sie wissen müssen
CET Shadow Stacks bieten einen geschützten Rücksprungadressen-Status, um beschädigte Kontrollfluss-Rücksprünge zu erkennen. Die Shadow-Stack-Fähigkeit des Prozessors ist nur eine Voraussetzung für einen aktiv geschützten Prozess.
Wie es funktioniert
Ein Shadow Stack hält eine geschützte Kopie von Rücksprunginformationen neben dem gewöhnlichen Ausführungs-Stack vor. Ein geschützter Rücksprung prüft die Konsistenz gemäß den Regeln der Architektur. Das Betriebssystem verwaltet Aktivierung, Speicherberechtigungen und Thread-Status, während Laufzeitumgebungen Ausnahmen und Kontextwechsel korrekt behandeln müssen.
Wo es nuetzlich ist
Ein Stack-Überschreiben, das eine gewöhnliche Rücksprungadresse ändert, kann eine Control-Protection-Ausnahme erzeugen, wenn es nicht mit dem geschützten Rücksprungstatus übereinstimmt. Ein Debugger oder eine Laufzeitumgebung muss die Shadow-Stack-Umgebung verstehen, anstatt sie als gewöhnlichen beschreibbaren Stack zu behandeln.
So pruefen Sie Unterstuetzung und Aktivierung
CPUID.07H.00H:ECX Bit 7 zählt die Shadow-Stack-Fähigkeit auf. Verwenden Sie die dokumentierte prozess- oder threadbezogene Statusschnittstelle des Betriebssystems, um die Aktivierung festzustellen. Ein unerklärlicher Absturz rechtfertigt die Prüfung unterstützter Software-Updates und der Kompatibilität, bevor Schutzrichtlinien geändert werden.
Faehigkeit, Aktivierung und Durchsetzung muessen separat geprueft werden. Ein Prozessor kann eine Schutzfunktion unterstuetzen, waehrend Betriebssystem, Anwendung oder VM-Richtlinie diese nicht aktivieren. Ein Support-Feld in einer Datenbank ist keine Attestierung eines laufenden Systems.
Was die Funktion nicht gewaehrleistet
Shadow Stacks begründen keine IBT-Unterstützung, schützen nicht alle Anwendungsdaten und eliminieren nicht jeden Kontrollflussangriff. Eine CPU-Kennzeichnung beweist nicht, dass jede ausführbare Datei und geladene Bibliothek unter der Kompatibilitätsrichtlinie des Betriebssystems abgedeckt ist.
Kompatibilitaet und Leistung in der Praxis
Halten Sie Betriebssystem, Firmware und die betroffene Laufzeitumgebung aktuell. Wenn eine Schutzfunktion ein Kompatibilitaetsproblem offenbart, nutzen Sie zunaechst Herstellerdiagnosen und unterstuetzte Updates. Ein pauschales Umschalten von Schutzfunktionen kann nicht verwandte Anwendungen beeintraechtigen und sollte einer expliziten Bereitstellungs- und Wiederherstellungsrichtlinie folgen.
Eine praktische Verifikations-Checkliste
- Erfassen Sie das genaue Prozessor- oder Plattformmodell sowie die beteiligten Versionen von Anwendung, Betriebssystem und Laufzeitumgebung. Behalten Sie den genauen Wortlaut des tatsaechlichen Fehlers oder der Anforderung bei.
- Pruefen Sie die Herstellerreferenz fuer dieses genaue Modell und untersuchen Sie anschliessend die effektive Faehigkeit und den Aktivierungsstatus in der Umgebung, in der das Programm ausgefuehrt wird.
- Gleichen Sie jede Anforderung der ausgewaehlten Binaerdatei oder des Backends ab. Eine aehnlich benannte Funktion, ein Alias oder eine allgemeine Technologiebezeichnung reichen nicht aus.
- Bestaetigen Sie, dass die Anwendung die vorgesehene Implementierung ausgewaehlt hat. Nutzen Sie deren dokumentierte Diagnosefunktionen und einen unterstuetzten Fallback, wenn Anforderungen nicht erfuellt sind.
- Nehmen Sie jeweils nur eine unterstuetzte Aenderung vor und wiederholen Sie denselben Workload. Halten Sie die urspruengliche Konfiguration und einen Wiederherstellungspfad verfuegbar.
Wenn die Funktion aufgefuehrt ist, Software sie jedoch nicht nutzen kann
Beginnen Sie mit der exakten fehlschlagenden Komponente. Eine Hardware-Datenbank beschreibt die erfasste Faehigkeit; das Betriebssystem oder der Hypervisor kann eine abweichende effektive Umgebung bereitstellen. Ein Fehler wegen eines ungueltigen Befehls erfordert zudem die Untersuchung des tatsaechlich fehlerhaften Befehls und des Binaer-Builds, da Beschaedigungen oder ein nicht verwandter, nicht unterstuetzter Befehl aehnliche Symptome hervorrufen koennen.
Installieren Sie die fuer die genaue Plattform unterstuetzte Version von Anwendung, Treiber oder Laufzeitumgebung und nutzen Sie bei Bedarf den dokumentierten Baseline- oder Fallback-Build des Herstellers. Ein Software-Update kann keinen Befehl erzeugen, der dem Prozessor fehlt. Aenderungen an Firmware und Sicherheitsrichtlinien sollten dem Verfahren des Systemherstellers und einem Wiederherstellungsplan folgen statt einer generischen Optimierungsanleitung.
Quellen und Umfang dieser Erklaerung
Intel 64 and IA-32 Architectures Software Developer's Manual · Linux-Kernel: Control-flow Enforcement Technology Shadow Stack
Diese Referenzen definieren das Architekturverhalten und die Softwareanforderungen. Sie verifizieren nicht unabhaengig jeden Funktionswert auf einer verknuepften Hardware-Modellseite. Nutzen Sie fuer die Modellunterstuetzung die Herstellernachweise jener Seite und pruefen Sie die effektive Systemkonfiguration. Dieser Artikel liefert keinen Benchmark, keine Zertifizierung und kein unabhaengiges Pruefdatum.
Quellen und Verifizierung
Redaktionelle Verantwortung: Feex. Kein Datum einer unabhängigen Prüfung erfasst. Wie wir recherchieren.
- Intel 64 and IA-32 Architectures Software Developer's Manual - Die Baende 1 und 2 beschreiben die genannten Befehlsfamilien und CPUID; Band 3 beschreibt Status-, Paging-, VMX- und Schutzsteuerungen. Die Architekturdokumentation begruendet keine Unterstuetzung fuer ein bestimmtes Modell.
- Linux-Kernel: Control-flow Enforcement Technology Shadow Stack · Unterscheidet Hardware-Unterstützung, Binärmarker, Loader-Aktivierung und aktiven threadbezogenen Schutz. Beschreibt IBT und Shadow Stacks als separate Mechanismen.
War dieser Artikel nützlich?
Ein Ja oder Nein genügt. Wählen Sie optional einen Grund oder fügen Sie eine kurze Notiz hinzu.
Danke. Das hilft uns, diese Seite zu verbessern.