CET-IBT
CET-IBT je praćenje neizravnih grananja, zaštita toka upravljanja koja provjerava odredišta praćenih neizravnih poziva i skokova. Odvojena je od CET stogova u sjeni.
Što trebate znati
CET-IBT je praćenje neizravnih grananja, zaštita toka upravljanja koja provjerava odredišta praćenih neizravnih poziva i skokova. Odvojena je od CET stogova u sjeni.
Kako funkcionira
Kada je praćenje omogućeno za primjenjivo okruženje izvršavanja, neizravni prijenos mora dosegnuti odgovarajuću instrukciju slijetanja ENDBR prema pravilima arhitekture. Mehanizam koristi arhitektonsko stanje praćenja i podiže iznimku zaštite upravljanja kada se prekrši ugovor. Instrumentacija prevoditelja i binarnih datoteka dio su implementacije.
Gdje je korisno
Prevoditelj može označiti valjane lokacije neizravnog ulaza u biblioteci. OS i runtime moraju primijeniti kompatibilno omogućavanje i pravila na kod koji se izvršava. Puko pronalaženje bajtova ENDBR u rastavljenom kodu (disassembly) samo po sebi ne dokazuje da sustav trenutno provodi IBT.
Kako provjeriti podršku i omogućavanje
CPUID.07H.00H:EDX bit 20 enumerira mogućnost IBT-a. Zasebno provjerite podršku OS-a za korisnički/nadzornički način i binarna pravila. Dijagnosticirajte kompatibilnost koristeći službene smjernice za prevoditelj i OS umjesto uklanjanja instrukcija slijetanja iz binarne datoteke.
Mogućnost, omogućavanje i provođenje moraju se provjeriti zasebno. Procesor može podržavati zaštitu dok je OS, aplikacija ili pravilo virtualnog stroja ne aktiviraju. Polje podrške u bazi podataka nije atestacija pokrenutog sustava.
Što ova značajka ne utvrđuje
IBT ne provjerava obične povrate iz funkcija na način na koji to rade stogovi u sjeni. On nije jamstvo potpunog integriteta toka upravljanja ili sigurnosti aplikacije, a podrška za stogove u sjeni ne uspostavlja podršku za IBT.
Kompatibilnost i performanse u praksi
Održavajte OS, firmware i zahvaćeno izvršno okruženje ažurnima. Ako zaštita izloži problem s kompatibilnošću, najprije upotrijebite proizvođačevu dijagnostiku i podržana ažuriranja. Široko uključivanje ili isključivanje zaštite može utjecati na nepovezane aplikacije i trebalo bi slijediti izričito pravilo uvođenja i oporavka.
Praktičan kontrolni popis za provjeru
- Zabilježite točan model procesora ili platforme te verzije aplikacije, OS-a i izvršnog okruženja. Sačuvajte formulaciju stvarne pogreške ili zahtjeva.
- Provjerite proizvođačevu referencu za taj točan model, a zatim pregledajte stvarnu sposobnost i omogućeno stanje u okruženju u kojem se program izvodi.
- Usporedite svaki zahtjev odabrane binarne datoteke ili pozadinskog sustava. Slično nazvana značajka, pseudonim ili široka tehnološka oznaka nisu dovoljni.
- Potvrdite da je aplikacija odabrala predviđenu implementaciju. Koristite njezinu dokumentiranu dijagnostiku i podržanu zamjensku opciju kada zahtjevi nisu ispunjeni.
- Napravite jednu po jednu podržanu promjenu i ponovite isto radno opterećenje. Zadržite izvornu konfiguraciju i put oporavka dostupnima.
Ako je značajka navedena, ali je softver ne može koristiti
Počnite s točnom komponentom koja zakazuje. Hardverska baza podataka opisuje zabilježenu sposobnost; operacijski sustav ili hipervizor mogu izložiti drukčije stvarno okruženje. Pogreška nedopuštene instrukcije također zahtijeva istragu stvarne instrukcije koja uzrokuje pogrešku i binarne građe, jer oštećenje ili nepovezana nepodržana instrukcija mogu proizvesti sličan simptom.
Instalirajte verziju aplikacije, upravljačkog programa ili izvršnog okruženja podržanu za točnu platformu i upotrijebite proizvođačevu dokumentiranu osnovnu ili zamjensku građu ako je potrebno. Softversko ažuriranje ne može stvoriti instrukciju koja procesoru nedostaje. Promjene u firmwareu i sigurnosnim pravilima trebaju slijediti postupak proizvođača sustava i plan oporavka, a ne generički recept za optimizaciju.
Izvori i opseg ovog objašnjenja
Intel 64 and IA-32 Architectures Software Developer's Manual · Linux kernel: Control-flow Enforcement Technology stog u sjeni
Ove reference utvrđuju arhitekturno ponašanje i softverske zahtjeve. One ne verificiraju neovisno svaku vrijednost značajke na povezanoj stranici hardverskog modela. Za podršku modela upotrijebite proizvođačeve dokaze s te stranice i provjerite stvarnu konfiguraciju sustava. Ovaj članak ne pruža mjerilo performansi, certifikaciju ili datum neovisnog pregleda.
Izvori i provjera
Uredničko vlasništvo: Feex. Nije zabilježen datum neovisnog pregleda. Kako istražujemo.
- Intel 64 and IA-32 Architectures Software Developer's Manual · Svesci 1 i 2 opisuju imenovane obitelji instrukcija i CPUID; Svezak 3 opisuje stanje, straničenje, VMX i kontrole zaštite. Dokumentacija arhitekture ne utvrđuje podršku za određeni model.
- Linux kernel: Control-flow Enforcement Technology stog u sjeni · Razlikuje hardversku podršku, binarne oznake, omogućavanje u učitavaču i aktivnu zaštitu po niti. Opisuje IBT i stogove u sjeni kao zasebne mogućnosti.
Je li ovaj članak bio koristan?
Dovoljno je odgovoriti s da ili ne. Odaberite razlog ako želite ili dodajte kratku bilješku.
Hvala. To nam pomaže poboljšati ovu stranicu.