Control-flow Enforcement (CET)
Također se naziva CET
CET, Control-flow Enforcement Technology, dodaje hardverske mehanizme za zaštitu toka upravljanja, uglavnom stogove u sjeni (shadow stacks) i praćenje neizravnih grananja (indirect branch tracking). Hardverska podrška i aktivna zaštita u određenom procesu različita su stanja.
Što trebate znati
CET, Control-flow Enforcement Technology, dodaje hardverske mehanizme za zaštitu toka upravljanja, uglavnom stogove u sjeni (shadow stacks) i praćenje neizravnih grananja (indirect branch tracking). Hardverska podrška i aktivna zaštita u određenom procesu različita su stanja.
Kako funkcionira
Stogovi u sjeni održavaju zaštićeno stanje povratnih adresa, dok praćenje neizravnih grananja ograničava odredišta praćenih neizravnih grananja. Oni adresiraju različite prijenose toka upravljanja te imaju zasebnu enumeraciju i omogućavanje. OS, učitavač, binarna datoteka aplikacije i biblioteke sudjeluju u omogućavanju rada zaštićenog okruženja za izvršavanje.
Gdje je korisno
Prikladno izgrađena aplikacija može raditi sa stogom u sjeni kojim upravlja OS tako da nepodudarna povratna adresa pokreće definiranu iznimku umjesto tihog preusmjeravanja izvršavanja. Pravila kompatibilnosti mogu se razlikovati za naslijeđene module te zaštitu korisničkog načina u odnosu na nadzornički način rada.
Kako provjeriti podršku i omogućavanje
Provjerite CPUID.07H.00H:ECX bit 7 za mogućnost stoga u sjeni i EDX bit 20 za praćenje neizravnih grananja, a zatim pregledajte dokumentirani status zaštite procesa u OS-u. Sam dostupan procesorski bit ne može utvrditi provođenje zaštite za pokrenuti program.
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
Polje CET ne dokazuje da su obje podznačajke prisutne ili omogućene. CET ne čini binarnu datoteku pouzdanom, ne sprječava svaku grešku oštećenja memorije niti zamjenjuje ažuriranja. Globalno onemogućavanje zaštite nije rutinsko rješenje za rušenje aplikacije.
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.