Preskočiť na obsah

CET-IBT

Architektonická referenciaFeex

CET-IBT predstavuje sledovanie nepriamych vetvení (indirect branch tracking), čo je ochrana toku riadenia, ktorá kontroluje ciele sledovaných nepriamych volaní a skokov. Je oddelená od tieňových zásobníkov CET.

Čo potrebujete vedieť

CET-IBT predstavuje sledovanie nepriamych vetvení (indirect branch tracking), čo je ochrana toku riadenia, ktorá kontroluje ciele sledovaných nepriamych volaní a skokov. Je oddelená od tieňových zásobníkov CET.

Ako to funguje

Keď je sledovanie povolené pre príslušné prostredie vykonávania, nepriamy prenos musí podľa pravidiel architektúry dosiahnuť vhodnú cieľovú pristávaciu inštrukciu ENDBR. Mechanizmus využíva architektonický stav sledovania a pri porušení kontraktu vyvolá výnimku ochrany riadenia (control-protection exception). Inštrumentácia kompilátora a binárneho súboru je súčasťou nasadenia.

Kde je to užitočné

Kompilátor môže označiť platné nepriame vstupné miesta v knižnici. OS a run-time musia na spúšťaný kód aplikovať kompatibilné povolenie a politiku. Nájdenie bajtov ENDBR v disasemblovanom kóde samo osebe nedokazuje, že systém v súčasnosti IBT vynucuje.

Ako overiť podporu a povolenie

CPUID.07H.00H:EDX bit 20 enumeruje schopnosť IBT. Podporu zo strany OS pre používateľský režim/režim správcu a binárnu politiku kontrolujte samostatne. Kompatibilitu diagnostikujte pomocou oficiálnych pokynov pre kompilátor a OS namiesto odstraňovania pristávacích inštrukcií z binárneho súboru.

Schopnosť, povolenie a vynucovanie sa musia kontrolovať samostatne. Procesor môže ochranu podporovať, zatiaľ čo operačný systém, aplikácia alebo politika virtuálneho počítača ju neaktivujú. Pole podpory v databáze nie je atestáciou bežiaceho systému.

Čo táto funkcia nezakladá

IBT nekontroluje bežné návraty z funkcií tak, ako to robia tieňové zásobníky. Nie je zárukou úplnej integrity toku riadenia ani bezpečnosti aplikácie a podpora tieňových zásobníkov nezakladá podporu IBT.

Kompatibilita a výkon v praxi

Udržiavajte operačný systém, firmvér a dotknuté runtime prostredie aktuálne. Ak ochrana odhalí problém s kompatibilitou, použite najprv diagnostiku od dodávateľa a podporované aktualizácie. Plošné prepnutie ochrany môže ovplyvniť nesúvisiace aplikácie a malo by sa riadiť explicitnou politikou nasadenia a obnovy.

Praktický kontrolný zoznam na overenie

  1. Zaznamenajte presný model procesora alebo platformy a príslušné verzie aplikácie, operačného systému a runtime prostredia. Zachovajte presné znenie skutočnej chyby alebo požiadavky.
  2. Skontrolujte referenčnú dokumentáciu výrobcu pre daný presný model a potom preverte efektívnu schopnosť a povolený stav v prostredí, kde program beží.
  3. Porovnajte každú požiadavku vybraného binárneho súboru alebo backendu. Podobne pomenovaná funkcia, alias alebo široké technologické označenie nepostačujú.
  4. Uistite sa, že aplikácia vybrala zamýšľanú implementáciu. Ak požiadavky nie sú splnené, použite jej dokumentovanú diagnostiku a podporované náhradné riešenie.
  5. Vykonávajte vždy len jednu podporovanú zmenu a zopakujte rovnaké pracovné zaťaženie. Ponechajte si k dispozícii pôvodnú konfiguráciu a postup obnovy.

Ak je funkcia uvedená, ale softvér ju nemôže použiť

Začnite presne pri zlyhávajúcom komponente. Hardvérová databáza popisuje zaznamenanú schopnosť; operačný systém alebo hypervízor však môže sprístupniť iné efektívne prostredie. Chyba neplatnej inštrukcie si vyžaduje aj preskúmanie skutočnej chybujúcej inštrukcie a zostavenia binárneho súboru, pretože poškodenie alebo nesúvisiaca nepodporovaná inštrukcia môže vyvolať podobný príznak.

Nainštalujte verziu aplikácie, ovládača alebo runtime prostredia podporovanú pre presnú platformu a v prípade potreby použite dodávateľom dokumentované základné alebo záložné zostavenie. Aktualizácia softvéru nedokáže vytvoriť inštrukciu, ktorú procesor nemá. Zmeny firmvéru a bezpečnostných politík by sa mali riadiť postupom výrobcu systému a plánom obnovy, nie generickým návodom na optimalizáciu.

Zdroje a rozsah tohto vysvetlenia

Intel 64 and IA-32 Architectures Software Developer's Manual · Linuxové jadro: tieňový zásobník Control-flow Enforcement Technology

Tieto referencie definujú architektonické správanie a softvérové požiadavky. Neoverujú nezávisle každú hodnotu funkcie na prepojenej stránke hardvérového modelu. Podporu modelu nájdete v podkladoch od výrobcu na danej stránke a skontrolujte efektívnu konfiguráciu systému. Tento článok neposkytuje dátum benchmarku, certifikácie ani nezávislej recenzie.

Zdroje a overenie

Redakčné vlastníctvo: Feex. Nie je zaznamenaný žiadny dátum nezávislej kontroly. Ako robíme výskum.

Bol tento článok užitočný?

Stačí áno alebo nie. Ak chcete, vyberte dôvod, alebo pridajte krátku poznámku.

Bol tento článok užitočný?