CET-IBT
CET-IBT je sledování nepřímých větví (indirect branch tracking), což je ochrana toku řízení, která kontroluje cíle sledovaných nepřímých volání a skoků. Je nezávislé na stínových zásobnících CET.
Co potřebujete vědět
CET-IBT je sledování nepřímých větví (indirect branch tracking), což je ochrana toku řízení, která kontroluje cíle sledovaných nepřímých volání a skoků. Je nezávislé na stínových zásobnících CET.
Jak to funguje
Pokud je sledování pro příslušné prováděcí prostředí povoleno, nepřímé předání řízení musí podle pravidel architektury dorazit na odpovídající cílovou instrukci ENDBR. Mechanismus využívá architektonický stav sledování a při porušení kontraktu vyvolá výjimku ochrany řízení (control-protection exception). Součástí nasazení je instrumentace kompilátoru a binárního souboru.
Kde je funkce užitečná
Kompilátor může v knihovně označit platná místa pro nepřímý vstup. Operační systém a runtime musí na prováděný kód aplikovat kompatibilní aktivaci a zásady. Nález bajtů ENDBR při disasemblování sám o sobě nedokazuje, že systém v daném okamžiku IBT vynucuje.
Jak ověřit podporu a aktivaci
CPUID.07H.00H:EDX bit 20 enumeruje podporu IBT. Samostatně zkontrolujte podporu operačního systému pro uživatelský režim a režim správce i zásady pro binární soubory. Kompatibilitu diagnostikujte pomocí oficiálních pokynů pro kompilátor a operační systém, nikoli odstraňováním cílových instrukcí z binárního kódu.
Dostupnost, aktivaci a vynucování je nutné kontrolovat samostatně. Procesor může ochranu podporovat, zatímco operační systém, aplikace nebo zásady virtuálního počítače ji neaktivují. Pole podpory v databázi není atestací běžícího systému.
Co tato funkce nezajišťuje
IBT nekontroluje běžné návraty z funkcí tak, jak to dělají stínové zásobníky. Není zárukou úplné integrity toku řízení ani bezpečnosti aplikace a podpora stínových zásobníků nezakládá podporu IBT.
Kompatibilita a výkon v praxi
Udržujte operační systém, firmware a dotčené běhové prostředí aktuální. Pokud ochrana odhalí problém s kompatibilitou, použijte nejprve diagnostiku výrobce a podporované aktualizace. Plošné přepnutí ochrany může ovlivnit nesouvisející aplikace a mělo by se řídit explicitními pravidly pro nasazení a obnovu.
Praktický kontrolní seznam pro ověření
- Zaznamenejte přesný model procesoru nebo platformy a použité verze aplikace, operačního systému a běhového prostředí. Uchovejte přesné znění chybové zprávy nebo požadavku.
- Zkontrolujte dokumentaci výrobce pro daný konkrétní model a poté prověřte skutečně dostupnou kapacitu a stav aktivace v prostředí, kde program běží.
- Porovnejte veškeré požadavky vybraného binárního souboru nebo backendu. Podobně pojmenovaná funkce, alias nebo obecné technologické označení nestačí.
- Ověřte, že aplikace vybrala zamýšlenou implementaci. Pokud nejsou požadavky splněny, použijte její zdokumentovanou diagnostiku a podporované náhradní řešení.
- Provádějte vždy jen jednu podporovanou změnu a zopakujte identickou zátěž. Původní konfiguraci a postup obnovy mějte neustále k dispozici.
Pokud je funkce uvedena, ale software ji nemůže použít
Začněte u přesné komponenty, u níž dochází k selhání. Databáze hardwaru popisuje zaznamenané schopnosti; operační systém nebo hypervizor však může vystavit odlišné efektivní prostředí. Chyba neplatné instrukce vyžaduje také prozkoumání skutečné chybující instrukce a sestavení binárního souboru, protože poškození dat nebo nesouvisející nepodporovaná instrukce mohou vyvolat podobný projev.
Nainstalujte verzi aplikace, ovladače nebo běhového prostředí podporovanou pro danou platformu a v případě potřeby použijte výrobcem zdokumentované základní nebo náhradní sestavení. Aktualizace softwaru nemůže vytvořit instrukci, kterou procesor fyzicky postrádá. Změny firmwaru a zásad zabezpečení by se měly řídit postupem výrobce systému a plánem obnovy, nikoli obecným návodem na optimalizaci.
Zdroje a rozsah tohoto vysvětlení
Intel 64 and IA-32 Architectures Software Developer's Manual · Linuxové jádro: stínový zásobník Control-flow Enforcement Technology
Tyto referenční dokumenty stanovují architektonické chování a softwarové požadavky. Neověřují nezávisle každou hodnotu funkce na odkazované stránce hardwarového modelu. Informace o podpoře konkrétního modelu čerpejte z podkladů výrobce na příslušné stránce a zkontrolujte platnou konfiguraci systému. Tento článek neposkytuje benchmark, certifikaci ani datum nezávislého přezkumu.
Zdroje a ověření
Redakční vlastnictví: Feex. Není zaznamenáno žádné datum nezávislého přezkoumání. Jak provádíme výzkum.
- Intel 64 and IA-32 Architectures Software Developer's Manual · Svazky 1 a 2 popisují jmenovité rodiny instrukcí a CPUID; Svazek 3 popisuje stav, stránkování, VMX a řízení ochrany. Architektonická dokumentace nepotvrzuje podporu pro konkrétní model.
- Linuxové jádro: stínový zásobník Control-flow Enforcement Technology · Rozlišuje hardwarovou podporu, binární značky, aktivaci zavaděčem a aktivní ochranu jednotlivých vláken. Popisuje IBT a stínové zásobníky jako oddělené prostředky.
Byl tento článek užitečný?
Stačí ano nebo ne. Pokud chcete, vyberte důvod nebo přidejte krátkou poznámku.
Děkujeme. Pomáhá nám to tuto stránku vylepšovat.