CET shadow stacks
Chiammato pure CET-SS
CET shadow stacks arricettano 'o stato prutetto 'e ll'indirizze 'e ritorno pe fa scuprì ritorni sgarrupati d'o flusso 'e cuntrollo. 'A capatà 'e shadow-stack d'o prucessore e sulo na cundizziona tra 'e tante pe nu prucesso overamente difiso.
Chello ca t'hê 'a sapé
CET shadow stacks arricettano 'o stato prutetto 'e ll'indirizze 'e ritorno pe fa scuprì ritorni sgarrupati d'o flusso 'e cuntrollo. 'A capatà 'e shadow-stack d'o prucessore e sulo na cundizziona tra 'e tante pe nu prucesso overamente difiso.
Comme fonsiona
Nu shadow stack mantene na copia prutetta d'e nfurmazziune 'e ritorno allato a 'o stack nurmale 'e fravico. Nu ritorno difiso cuntrolla si 'e cose cumbaciano secunno 'e regole d'architettura. 'O SO ammenistre l'appicciamento, 'e permesse 'e memoria e 'o stato d'e thread, mentre 'e runtime hann'a sapé piglià ll'eccezziune e 'e passagge 'e cuntesto.
Addò serve
Na scassatura ngopp'o stack ca cagna n'indirizzo 'e ritorno nurmale po provocà n'eccezziona 'e cuntrollo-prutezziona quanno nun concorda cu 'o stato prutetto. Nu debugger o runtime adda capì 'st'ambiente 'e shadow-stack 'nvece 'e 'o trattà comme nu semprice stack addo se po scriveri sempe.
Comme se cuntrolla 'o supporto e ll'abbilitazzione
CPUID.07H.00H:ECX bit 7 conta 'a capatà 'e shadow-stack. Usa l'interfaccia d'o SO pe verificà 'o stato pe ogne prucesso o pe ogne thread pe vedé si e appicciato. Nu sgarro senza spiegazziona cerca 'e verifecà ll'agghiuornamiente d'o software e 'a cumpatibbilità primma 'e cagnà 'e regole 'e prutezziona.
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
Li shadow stack nun cunfermano 'o supporto pe IBT, nun difenneno tutt'e date 'e ll'apprecazziona e nun cacciano ogne 'ntoppo d'o flusso 'e cuntrollo. N'etichetta 'e CPU nun dimustra ca ogne file eseguibbile o libbraria carrecata vene cupierta sutt'a puliteca 'e cumpatibbilità d'o SO.
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.