Control-flow Enforcement (CET)
Også kalt CET
CET, Control-flow Enforcement Technology, legger til maskinvaremekanismer for å beskytte kontrollflyt, hovedsakelig skyggestabler (shadow stacks) og sporing av indirekte forgreninger. Maskinvarestøtte og aktiv beskyttelse i en bestemt prosess er ulike tilstander.
Dette må du vite
CET, Control-flow Enforcement Technology, legger til maskinvaremekanismer for å beskytte kontrollflyt, hovedsakelig skyggestabler (shadow stacks) og sporing av indirekte forgreninger. Maskinvarestøtte og aktiv beskyttelse i en bestemt prosess er ulike tilstander.
Slik fungerer det
Skyggestabler opprettholder beskyttet returadressetilstand, mens sporing av indirekte forgreninger begrenser målene for sporede indirekte forgreninger. De håndterer ulike kontrollflytoverføringer og har separat nummerering og aktivering. Operativsystemet, lasteren, applikasjonsbinæren og biblioteker samarbeider om å få et beskyttet kjøretidsmiljø til å fungere.
Hvor det er nyttig
En applikasjon bygget på passende måte kan kjøre med en OS-administrert skyggestabel, slik at en uoverensstemmende returadresse utløser det definerte unntaket i stedet for å omdirigere kjøringen i det stille. Kompatibilitetsretningslinjer kan variere for eldre moduler og beskyttelse i brukermodus versus supervisormodus.
Slik kontrolleres støtte og aktivering
Kontroller CPUID.07H.00H:ECX bit 7 for skyggestabelkapasitet og EDX bit 20 for sporing av indirekte forgreninger, og undersøk deretter operativsystemets dokumenterte prosessbeskyttelsesstatus. En tilgjengelig CPU-bit alene kan ikke etablere håndheving for et kjørende program.
Kapasitet, aktivering og håndheving må kontrolleres separat. En prosessor kan støtte en beskyttelse mens operativsystemet, applikasjonen eller retningslinjene for den virtuelle maskinen ikke aktiverer den. Et støttefelt i en database er ikke en attestering av et kjørende system.
Hva funksjonen ikke etablerer
Et CET-felt beviser ikke at begge underfunksjonene er til stede eller aktivert. CET gjør ikke en binærfil pålitelig, forhindrer ikke enhver feil med minnekorrupsjon og erstatter ikke oppdateringer. Å deaktivere en beskyttelse globalt er ikke en rutinemessig løsning på et programkrasj.
Kompatibilitet og ytelse i praksis
Hold operativsystem, fastvare og berørt kjøretidsmiljø oppdatert. Hvis en beskyttelse avdekker et kompatibilitetsproblem, bruk leverandørens diagnostikk og støttede oppdateringer først. En bred beskyttelsesbryter kan påvirke urelaterte applikasjoner og bør følge en eksplisitt distribusjons- og gjenopprettingspolicy.
En praktisk sjekkliste for verifisering
- Registrer den nøyaktige prosessor- eller plattformmodellen og de involverte applikasjons-, OS- og kjøretidsversjonene. Bevar ordlyden i den faktiske feilen eller kravet.
- Sjekk produsentreferansen for akkurat den modellen, og undersøk deretter den faktiske kapasiteten og aktiverte tilstanden i miljøet der programmet kjører.
- Sammenlign ethvert krav til den valgte binærfilen eller baksiden. En lignende navngitt funksjon, et alias eller en bred teknologietikett er ikke tilstrekkelig.
- Bekreft at applikasjonen valgte den tiltenkte implementeringen. Bruk dens dokumenterte diagnostikk og en støttet reservemetode når kravene ikke er oppfylt.
- Gjør én støttet endring om gangen og gjenta den samme arbeidsbelastningen. Hold den opprinnelige konfigurasjonen og gjenopprettingsstien tilgjengelig.
Hvis funksjonen er oppført, men programvare ikke kan bruke den
Start med den nøyaktige komponenten som feiler. En maskinwaredatabase beskriver registrert kapasitet; operativsystemet eller hypervisoren kan eksponere et annet reelt miljø. En feil om ulovlig instruksjon krever også undersøkelse av den faktiske feilende instruksjonen og binærbyggingen, fordi korrupsjon eller en urelatert, ustøttet instruksjon kan gi et lignende symptom.
Installer applikasjonen, driveren eller kjøretidsversjonen som støttes for den nøyaktige plattformen, og bruk om nødvendig leverandørens dokumenterte grunnlinje- eller reservebygg. En programvareoppdatering kan ikke opprette en instruksjon som prosessoren mangler fastvare. Endringer i fastvare og sikkerhetspolicy bør følge systemprodusentens prosedyre og en gjenopprettingsplan i stedet for en generisk optimaliseringsoppskrift.
Kilder og omfang for denne forklaringen
Intel 64 and IA-32 Architectures Software Developer's Manual · Linux-kjerne: Control-flow Enforcement Technology skyggestabel
Disse referansene etablerer arkitektonisk oppførsel og programvarekrav. De verifiserer ikke uavhengig hver funksjonsverdi på en koblet maskinvaremodells side. For modellstøtte, bruk den sidens produsentdokumentasjon og kontroller den reelle systemkonfigurasjonen. Denne artikkelen oppgir ikke en referansemåling, sertifisering eller dato for uavhengig gjennomgang.
Kilder og verifisering
Redaksjonelt eierskap: Feex. Ingen uavhengig vurderingsdato er registrert. Hvordan vi gjør undersøkelser.
- Intel 64 and IA-32 Architectures Software Developer's Manual · Bind 1 og 2 beskriver de navngitte instruksjonsfamiliene og CPUID; bind 3 beskriver tilstands-, sidevekslings-, VMX- og beskyttelseskontroller. Arkitekturdokumentasjon etablerer ikke støtte for en bestemt modell.
- Linux-kjerne: Control-flow Enforcement Technology skyggestabel · Skiller mellom maskinvarestøtte, binærmarkører, lasteraktivering og aktiv beskyttelse per tråd. Beskriver IBT og skyggestabler som separate fasiliteter.
Var denne artikkelen nyttig?
Et ja eller nei holder. Velg en grunn hvis du vil, eller legg til en kort kommentar.
Takk. Det hjelper oss med å forbedre denne siden.