Control-flow Enforcement (CET)
Chiammato pure CET
CET, Control-flow Enforcement Technology, azzonna mieze hardware pe defennere 'o flusso 'e cuntrollo, prengepalmente li shadow stack e 'o tracciamento d'e rame ndiretti. 'O supporto hardware e 'a prutezziona azziccata dinto a nu prucesso specifico so ddoie cose diverse.
Chello ca t'hê 'a sapé
CET, Control-flow Enforcement Technology, azzonna mieze hardware pe defennere 'o flusso 'e cuntrollo, prengepalmente li shadow stack e 'o tracciamento d'e rame ndiretti. 'O supporto hardware e 'a prutezziona azziccata dinto a nu prucesso specifico so ddoie cose diverse.
Comme fonsiona
Li shadow stack mantènono l'indirizze 'e ritorno prutetti, mentre 'o tracciamento d'e rame ndiretti frena 'e mete d'e rame ndiretti tracciati. Cuntrollano scagnamiente 'e flusso 'e cuntrollo differiente e teneno innice e attivazzione spartute. 'O SO, 'o carrecatore, l'eseguibbele e 'e libbrarie partecipano tutte quante a ffà funziunà 'st'ambiente 'e fravico prutiutto.
Addò serve
N'apprecazziona fravecata a dovere po girà cu nu shadow stack gestito d'o SO accussi n'indirizzo 'e ritorno sbagliato scoppia cu n'eccezziona decisa cchiu tosto ca svià 'o codice azzittato. 'A puliteca 'e cumpatibbilità po cagnà pe moduli viecchi e tra 'a prutezziona 'e user-mode e chidda 'e supervisor-mode.
Comme se cuntrolla 'o supporto e ll'abbilitazzione
Cuntrolla CPUID.07H.00H:ECX bit 7 p'a capatà 'e shadow-stack e EDX bit 20 p'o tracciamento d'e rame ndiretti, po guarda 'o stato 'e prutezziona d'o prucesso signato dinto 'e carte d'o SO. Sulo 'o bit d'a CPU nun abbasta pe stabbilì si 'a prutezziona e attiva pe nu prugramma ca sta currenno.
Capacita, abbilitazzione e apprecazzione s'hann' 'a cuntrollà a parte. Nu prucessore po supportà na prutezzione mentre 'o sistema operativo, ll'applicazzione o 'a puliteca d' 'a macchina virtuale nun ll'attivano. Nu campo 'e supporto dint'a nu database nun e n'attestazzione 'e nu sistema ca sta giranno.
Chello ca 'a funzionalita nun stabbilisce
Nu campo CET nun addimostra ca tutt'e ddoie funziune suttane stanno o so appicciate. CET nun fa addeventà bbuono nu codice fetente, nun para ogne sbaglio 'e corruzziona 'e memoria e nun piglia 'o posto d'all'aggiuste d'o software. Stutà 'a prutezziona pe tutte quante nun e 'a cura pe n'apprecazziona ca cade.
Cumpatibbilita e prestazziune dint' 'a prateca
Mantieni 'o sistema operativo, 'o firmware e 'o runtime 'nteressato agghiuornate. Si na prutezzione mostra nu prubbrema 'e cumpatibbilita, ausa primma 'a diagnosteca e ll'aggiurnamiente supportate d' 'o costruttore. N'interruttore 'e prutezzione generale po tuccà applicazziune ca nun c'entrano e adda siguità na puliteca esplicita d'attivazzione e recuppero.
Na lista 'e verifeca prateca
- Riggistra 'o mudello esatto d' 'o prucessore o d' 'a piattaforma e 'e vversione 'e ll'applicazzione, d' 'o sistema operativo e d' 'o runtime cumbulute. Mantien' 'e pparole esatte 'e ll'errore o d' 'o requisito overo.
- Cuntrolla 'o riferimento d' 'o costruttore pe chillu mudello esatto, po verifeca 'a capacita effettiva e 'o stato abbilitato dint'a ll'ambiente addò gira 'o prugramma.
- Cunfrunta ogne requisito d' 'o binario o backend sciveto. Na funzionalita cu nu nomme sumigliante, n'alias o n'etichetta tecnologgeca generale nun abbasta.
- Cunferma ca ll'applicazzione ha sciveto ll'implementazzione vuluta. Ausa 'a diagnosteca documentata soja e n'alternativa supportata quanno 'e requisite nun songo rispettate.
- Fa nu sulo cagnamento supportato a ll'avota e ripete 'o stesso carico 'e fatica. Mantien' 'a cunfigurazzione origginale e 'a via 'e recuppero a portata 'e mana.
Si 'a funzionalita sta scritta ma 'o software nun 'a po ausà
Pparti d' 'o cumponente esatto ca falla. Nu database hardware descrive 'a capacita riggistrata; 'o sistema operativo o ll'hypervisor po mustrà n'ambiente effettivo diverzo. N'errore 'e struzzione illegale addimanna pure 'e verificà 'a struzzione ca sgarra overamente e 'a build d' 'o binario, pecché na corruzzione o n'ata struzzione nun supportata po dà nu sintomo simile.
Stalla 'a vversione 'e ll'applicazzione, d' 'o driver o d' 'o runtime supportata p' 'a piattaforma esatta, e ausa 'a baseline documentata d' 'o costruttore o na build 'e fallback si serve. N'aggiurnamento software nun po crià na struzzione ca 'o prucessore nun tene. 'E cagnamiente a 'o firmware e 'e puliteche 'e sicurezza hann' 'a siguità 'a prucedura d' 'o costruttore d' 'o sistema e nu pピアノ 'e recuppero mméce 'e na ricetta generale 'e uttimizzazzione.
Funte e ambito 'e sta spiegazzione
Intel 64 and IA-32 Architectures Software Developer's Manual · Linux kernel: Control-flow Enforcement Technology shadow stack
Sti riferimente stabbilisceno 'o cumpurtamento 'e ll'architettura e 'e requisite d' 'o software. Nun verificano 'e manera 'ndipennente ogne valore 'e funzionalita ngopp'a na paggena 'e nu mudello hardware culegato. P' 'o supporto d' 'o mudello, ausa ll'evidenze d' 'o costruttore 'e chella paggena e verifeca 'a cunfigurazzione effettiva d' 'o sistema. St'articulo nun furnesce benchmark, certificazzione o data 'e revisone 'ndipennente.
Funte e verìfeca
Prupietà editoriale: Feex. Nisciuna data 'e revisizzione 'ndipennente è riggistrata. Comme facimmo 'e recerche.
- Intel 64 and IA-32 Architectures Software Developer's Manual · 'E Vulume 1 e 2 descrivono 'e ffamiglie 'e struzzione cu nomme e 'o CPUID; 'o Vulume 3 descrive 'o stato, 'a pagginazzione, VMX e 'e cuntrolle 'e prutezzione. 'A documentazzione 'e ll'architettura nun stabbilisce 'o supporto pe nu mudello particulare.
- Linux kernel: Control-flow Enforcement Technology shadow stack · Sparte 'o supporto hardware, 'e marcature d'e file, ll'abbilitazziona d'o loader e 'a prutezziona viva pe ogne thread. Spiega IBT e shadow stack comme strumiente staccati.
È servuto chist'articulo?
Basta nu sì o nu no. Si vuó, sciglie na mutivazzione o miett' na nota corta.
Grazie. Chisto nce dà 'na mano a fa mèglio 'sta paggena.