Control-flow Enforcement (CET)
Ook wel CET genoemd
CET, Control-flow Enforcement Technology, voegt hardwaremechanismen toe voor het beschermen van de control-flow, voornamelijk shadow stacks en indirect branch tracking. Hardware-ondersteuning en actieve bescherming in een specifiek proces zijn verschillende statussen.
Wat u moet weten
CET, Control-flow Enforcement Technology, voegt hardwaremechanismen toe voor het beschermen van de control-flow, voornamelijk shadow stacks en indirect branch tracking. Hardware-ondersteuning en actieve bescherming in een specifiek proces zijn verschillende statussen.
Hoe het werkt
Shadow stacks behouden een beschermde retouradresstatus, terwijl indirect branch tracking bestemmingen van gevolgde indirecte vertakkingen beperkt. Ze hebben betrekking op verschillende control-flow-overdrachten en beschikken over afzonderlijke enumeratie en inschakeling. Het besturingssysteem, het laadprogramma, het binaire bestand van de toepassing en bibliotheken werken samen om een beschermde uitvoeringsomgeving mogelijk te maken.
Waar het nuttig is
Een op de juiste wijze gebouwde toepassing kan worden uitgevoerd met een door het besturingssysteem beheerde shadow stack, zodat een niet-overeenkomend retouradres de gedefinieerde uitzondering activeert in plaats van de uitvoering stilzwijgend om te leiden. Het compatibiliteitsbeleid kan verschillen voor verouderde modules en voor beveiliging in gebruikersmodus versus supervisormodus.
Ondersteuning en activering controleren
Controleer CPUID.07H.00H:ECX bit 7 voor shadow-stack-functionaliteit en EDX bit 20 voor indirect branch tracking, en controleer vervolgens de gedocumenteerde procesbeschermingsstatus van het besturingssysteem. Een beschikbare CPU-bit alleen kan handhaving voor een actief programma niet vaststellen.
Capaciteit, inschakeling en afdwinging moeten afzonderlijk worden gecontroleerd. Een processor kan een beveiliging ondersteunen terwijl het OS, de applicatie of het beleid voor virtuele machines deze niet activeert. Een ondersteuningsveld in een database is geen attestatie van een draaiend systeem.
Wat de functie niet vaststelt
Een CET-veld bewijst niet dat beide subfuncties aanwezig of ingeschakeld zijn. CET maakt een binair bestand niet betrouwbaar, voorkomt niet elke fout in geheugencorruptie en vervangt geen updates. Het globaal uitschakelen van een beveiliging is geen routinematige oplossing voor het crashen van een toepassing.
Compatibiliteit en prestaties in de praktijk
Houd het besturingssysteem, de firmware en de betreffende runtime actueel. Als een beveiligingsfunctie een compatibiliteitsprobleem aan het licht brengt, gebruik dan eerst de diagnostische gegevens en ondersteunde updates van de leverancier. Een brede beveiligingsschakelaar kan niet-gerelateerde applicaties beïnvloeden en moet een expliciet implementatie- en herstelbeleid volgen.
Een praktische controlelijst voor verificatie
- Noteer het exacte processor- of platformmodel en de betrokken applicatie-, OS- en runtimeversies. Behoud de formulering van de daadwerkelijke fout of vereiste.
- Raadpleeg de fabrikantdocumentatie voor dat exacte model en inspecteer vervolgens de effectieve capaciteit en ingeschakelde status in de omgeving waarin het programma draait.
- Vergelijk elke vereiste van de geselecteerde binary of backend. Een gelijknamige functie, alias of breed technologielabel is niet voldoende.
- Bevestig dat de applicatie de bedoelde implementatie heeft geselecteerd. Gebruik de gedocumenteerde diagnostiek en een ondersteunde terugvaloptie wanneer niet aan de vereisten wordt voldaan.
- Voer één ondersteunde wijziging tegelijk door en herhaal dezelfde werklast. Houd de oorspronkelijke configuratie en het herstelpad beschikbaar.
Als de functie wordt vermeld maar software deze niet kan gebruiken
Begin bij het exacte falende onderdeel. Een hardwaredatabase beschrijft geregistreerde capaciteiten; het besturingssysteem of de hypervisor kan een andere effectieve omgeving tonen. Een fout met betrekking tot een ongeldige instructie vereist ook onderzoek van de daadwerkelijke foutieve instructie en binary-build, omdat beschadiging of een niet-gerelateerde niet-ondersteunde instructie een vergelijkbaar symptoom kan veroorzaken.
Installeer de applicatie-, driver- of runtimeversie die voor het exacte platform wordt ondersteund, en gebruik indien nodig de gedocumenteerde basislijn of fallback-build van de leverancier. Een software-update kan geen instructie creëren die de processor mist. Wijzigingen in firmware en beveiligingsbeleid moeten de procedure en het herstelplan van de systeemfabrikant volgen in plaats van een generiek optimalisatierecept.
Bronnen en reikwijdte van deze uitleg
Intel 64 and IA-32 Architectures Software Developer's Manual · Linux-kernel: Control-flow Enforcement Technology shadow stack
Deze referenties stellen architecturaal gedrag en softwarevereisten vast. Ze verifiëren niet onafhankelijk elke functiewaarde op een gekoppelde hardwaremodelpagina. Gebruik voor modelondersteuning het fabrikantenbewijs van die pagina en controleer de effectieve systeemconfiguratie. Dit artikel biedt geen benchmark, certificering of onafhankelijke beoordelingsdatum.
Bronnen en verificatie
Redactioneel eigendom: Feex. Er is geen onafhankelijke beoordelingsdatum vastgelegd. Hoe wij onderzoek doen.
- Intel 64 and IA-32 Architectures Software Developer's Manual · De delen 1 en 2 beschrijven de genoemde instructiefamilies en CPUID; Deel 3 beschrijft status-, paging-, VMX- en beveiligingscontroles. Architectuurdocumentatie stelt geen ondersteuning voor een specifiek model vast.
- Linux-kernel: Control-flow Enforcement Technology shadow stack · Onderscheidt hardware-ondersteuning, binaire markeringen, inschakeling via het laadprogramma en actieve bescherming per thread. Beschrijft IBT en shadow stacks als afzonderlijke faciliteiten.
Was dit artikel nuttig?
Een ja of nee is voldoende. Kies desgewenst een reden of voeg een korte opmerking toe.
Bedankt. Dat helpt ons om deze pagina te verbeteren.