CET shadow stacks
Også kaldet CET-SS
CET shadow stacks leverer beskyttet returadressetilstand for at hjælpe med at opdage korrumperede kontrolflowreturer. Processorens skyggestakfunktion er kun én forudsætning for en aktivt beskyttet proces.
Hvad du behøver at vide
CET shadow stacks leverer beskyttet returadressetilstand for at hjælpe med at opdage korrumperede kontrolflowreturer. Processorens skyggestakfunktion er kun én forudsætning for en aktivt beskyttet proces.
Sådan virker det
En skyggestak indeholder en beskyttet kopi af returinformation sideløbende med den almindelige eksekveringsstak. En beskyttet retur kontrollerer konsistens i overensstemmelse med arkitekturens regler. Operativsystemet administrerer aktivering, hukommelsestilladelser og trådtilstand, mens runtimes skal håndtere undtagelser og kontekstovergange korrekt.
Hvor det er nyttigt
En stakoverskrivning, der ændrer en almindelig returadresse, kan udløse en kontrolbeskyttelsesundtagelse, når den ikke stemmer overens med den beskyttede returtilstand. En debugger eller runtime skal forstå skyggestakmiljøet frem for at behandle det som en almindelig skrivbar stak.
Sådan kontrolleres understøttelse og aktivering
CPUID.07H.00H:ECX bit 7 enumererer skyggestakfunktion. Brug styresystemets dokumenterede grænseflade for status pr. proces eller pr. tråd til at fastslå aktivering. Et uforklarligt nedbrud berettiger til at kontrollere understøttede softwareopdateringer og kompatibilitet, før beskyttelsespolitikken ændres.
Kapacitet, aktivering og håndhævelse skal kontrolleres separat. En processor kan understøtte en beskyttelse, mens operativsystemet, applikationen eller den virtuelle maskines politik ikke aktiverer den. Et databaseunderstøttelsesfelt er ikke en attestering af et kørende system.
Hvad funktionen ikke fastslår
Skyggestakke etablerer ikke IBT-understøttelse, beskytter ikke alle applikationsdata og eliminerer ikke ethvert kontrolflowangreb. En CPU-mærkat beviser ikke, at enhver eksekverbar fil og ethvert indlæst bibliotek er dækket af styresystemets kompatibilitetspolitik.
Kompatibilitet og ydeevne i praksis
Hold operativsystem, firmware og det berørte runtime ajour. Hvis en beskyttelse afslører et kompatibilitetsproblem, skal du bruge leverandørens diagnosticering og understøttede opdateringer først. Et bredt skift af beskyttelse kan påvirke urelaterede programmer og bør følge en eksplicit udrulnings- og genopretningspolitik.
En praktisk tjekliste til verifikation
- Registrer den nøjagtige processor- eller platformsmodel samt de involverede applikations-, OS- og runtime-versioner. Bevar formuleringen af den faktiske fejl eller det faktiske krav.
- Tjek producentreferencen for den nøjagtige model, og undersøg derefter den effektive kapacitet og aktiverede tilstand i det miljø, hvor programmet kører.
- Sammenlign ethvert krav for den valgte binære fil eller backend. En funktion med et lignende navn, et alias eller en bred teknologimærkat er ikke tilstrækkelig.
- Bekræft, at applikationen har valgt den tilsigtede implementering. Brug dens dokumenterede diagnosticering og et understøttet fallback, når kravene ikke er opfyldt.
- Foretag en enkelt understøttet ændring ad gangen, og gentag den samme arbejdsbelastning. Hold den oprindelige konfiguration og gendannelsessti tilgængelig.
Hvis funktionen er anført, men softwaren ikke kan bruge den
Start med den nøjagtige komponent, der fejler. En hardwaredatabase beskriver registreret kapacitet; operativsystemet eller hypervisoren kan udstille et andet effektivt miljø. En illegal-instruction-fejl kræver også undersøgelse af den faktiske fejlbehæftede instruktion og det binære build, fordi korruption eller en urelateret ikke-understøttet instruktion kan frembringe et lignende symptom.
Installer den applikations-, driver- eller runtime-version, der understøttes til den nøjagtige platform, og brug om nødvendigt leverandørens dokumenterede baseline eller fallback-build. En softwareopdatering kan ikke oprette en instruktion, som processoren mangler. Ændringer i firmware og sikkerhedspolitik bør følge systemproducentens procedure og en genopretningsplan frem for en generisk optimeringsopskrift.
Kilder og denne forklaringens omfang
Intel 64 and IA-32 Architectures Software Developer's Manual · Linux-kerne: Control-flow Enforcement Technology shadow stack
Disse referencer fastlægger arkitektonisk adfærd og softwarekrav. De verificerer ikke uafhængigt enhver funktionsværdi på en tilknyttet hardwaremodelside. For modelunderstøttelse skal du bruge den pågældende sides producentdokumentation og kontrollere den effektive systemkonfiguration. Denne artikel leverer ikke et benchmark, en certificering eller en uafhængig revisionsdato.
Kilder og verificering
Redaktionelt ejerskab: Feex. Ingen uafhængig revisionsdato er registreret. Sådan undersøger vi.
- Intel 64 and IA-32 Architectures Software Developer's Manual · Bind 1 og 2 beskriver de navngivne instruktionsfamilier og CPUID; Bind 3 beskriver tilstands-, sideinddelings-, VMX- og beskyttelseskontroller. Arkitekturdokumentation fastslår ikke understøttelse for en bestemt model.
- Linux-kerne: Control-flow Enforcement Technology shadow stack · Skelner mellem hardwaresupport, binære markører, indlæseraktivering og aktiv beskyttelse pr. tråd. Beskriver IBT og skyggestakke som separate faciliteter.
Var denne artikel nyttig?
Et ja eller nej er nok. Vælg en grund, hvis du vil, eller tilføj en kort bemærkning.
Tak. Det hjælper os med at forbedre denne side.