Control-flow Enforcement (CET)
Auch CET genannt
CET, Control-flow Enforcement Technology, fügt Hardware-Mechanismen zum Schutz des Kontrollflusses hinzu, hauptsächlich Shadow Stacks und Indirect Branch Tracking. Hardware-Unterstützung und aktiver Schutz in einem bestimmten Prozess sind unterschiedliche Zustände.
Was Sie wissen müssen
CET, Control-flow Enforcement Technology, fügt Hardware-Mechanismen zum Schutz des Kontrollflusses hinzu, hauptsächlich Shadow Stacks und Indirect Branch Tracking. Hardware-Unterstützung und aktiver Schutz in einem bestimmten Prozess sind unterschiedliche Zustände.
Wie es funktioniert
Shadow Stacks verwalten den geschützten Rücksprungadressen-Status, während Indirect Branch Tracking die Ziele von verfolgten indirekten Verzweigungen einschränkt. Sie behandeln unterschiedliche Kontrollflusstransfers und verfügen über separate Enumeration und Aktivierung. Das Betriebssystem, der Loader, die Anwendungsbinärdatei und Bibliotheken wirken zusammen, damit eine geschützte Ausführungsumgebung funktioniert.
Wo es nuetzlich ist
Eine passend erstellte Anwendung kann mit einem vom Betriebssystem verwalteten Shadow Stack laufen, sodass eine nicht übereinstimmende Rücksprungadresse die definierte Ausnahme auslöst, anstatt die Ausführung stillschweigend umzuleiten. Die Kompatibilitätsrichtlinie kann sich für Legacy-Module sowie für den Schutz im Benutzer- versus Supervisormodus unterscheiden.
So pruefen Sie Unterstuetzung und Aktivierung
Prüfen Sie CPUID.07H.00H:ECX Bit 7 auf Shadow-Stack-Fähigkeit und EDX Bit 20 auf Indirect Branch Tracking, und prüfen Sie anschließend den dokumentierten Prozessschutzstatus des Betriebssystems. Ein verfügbares CPU-Bit allein kann die Durchsetzung für ein laufendes Programm nicht belegen.
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
Ein CET-Feld beweist nicht, dass beide Subfeatures vorhanden oder aktiviert sind. CET macht eine Binärdatei nicht vertrauenswürdig, verhindert nicht jeden Speicherbeschädigungsfehler und ersetzt keine Updates. Das globale Deaktivieren eines Schutzes ist keine Routinekorrektur für einen Anwendungsabsturz.
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.