Passa ô cuntinutu

Control-flow Enforcement (CET)

Rifirimentu d'archititturaFeex

Chiamatu puru CET

CET, Control-flow Enforcement Technology, junci miccanismi hardware pi prutègghiri lu flussu di cuntrollu, principarmenti shadow stacks e indirect branch tracking. Lu supportu hardware e la prutizzioni attiva nta un prucessu particulari sunnu stati diffirenti.

Chiḍḍu ca t'hà sapiri

CET, Control-flow Enforcement Technology, junci miccanismi hardware pi prutègghiri lu flussu di cuntrollu, principarmenti shadow stacks e indirect branch tracking. Lu supportu hardware e la prutizzioni attiva nta un prucessu particulari sunnu stati diffirenti.

Comu funziona

Li shadow stacks mantèninu lu statu prutettu di l'indirizzu di ritornu, mentri l'indirect branch tracking lìmmita li distinazzioni dî rami ndiretti tracciati. Tràttanu passaggi di flussu di cuntrollu diffirenti e hannu annumurazzioni e abbilitazzioni siparati. Lu sistema upirativu, lu loader, lu binàriu di l'applicazzioni e li libbrirìi cullàbbùranu pi fari funziunari n'ambienti d'esecuzzioni prutettu.

Unni e' ùtili

N'applicazzioni fabbricata 'n modu adattu pò curriri cu na shadow stack gistita di l'OS accussì un ncurrispunnenza nta l'indirizzu di ritornu scateni l'eccizzioni difinita mmeci di ridirìggiri l'esecuzzioni 'n silenziu. La pulìtica di cumpatibilitati pò èssiri diffirenti pi mòduli legacy e prutizzioni 'n user-mode rispettu a supervisor-mode.

Comu cuntrollari lu supportu e l'abbilitazzioni

Cuntrolla CPUID.07H.00H:ECX bit 7 pâ capacitati di shadow-stack e EDX bit 20 pi l'indirect branch tracking, poi talìa lu statu di prutizzioni dû prucessu ducumintatu di l'OS. Un bit di CPU dispunìbbili di sulu non pò stabbiliri l'esecuzzioni pi un prugramma 'n cursu.

Capacitati, abbilitazzioni e applicazzioni s'hànnu a cuntrollari siparatamenti. Un prucissuri po suppurtari na prutizzioni mentri lu SO, l'applicazzioni o la pulìtica dâ màchina virtùali nun l'attivanu. Un campu di supportu nta un database nun e' n'attistazzioni d'un sistema 'n funzioni.

Zoccu la funziunalitati nun stabbilisci

Un campu CET non prova ca tutti dui li suttacarattirìstichi sunnu prisenti o abbilitati. CET non renni fidatu un binàriu, non ferma ogni bug di corruzzioni dâ mimoria e non rimpiazza l'agghiurnamenti. Disabbilitari na prutizzioni 'n modu glubbali non esti na suluzzioni di rutina pi un crash di l'applicazzioni.

Cumpatibbilitati e pristazzioni nnâ pràtica

Manteni lu SO, lu firmware e lu runtime nterissatu sempri aggiurnati. Si na prutizzioni ammustra un prubbrema di cumpatibbilitati, usa prima la diagnòstica dû prudutturi e l'aggiurnamenti suppurtati. N'interrutturi ginèricu di prutizzioni po nfruinzari applicazzioni nun culligati e avissi a sèquiri na pulìtica splìcita di distribbuzzioni e ricùpiru.

Na lista di virìfica pràtica

  1. Riggistra lu mudellu esattu dû prucissuri o dâ piattafurma e li virsioni di l'applicazzioni, dû SO e dû runtime cuinvorti. Manteni la formulazzioni di l'erruri o dû requisitu riali.
  2. Cuntrolla lu rifirimentu dû prudutturi pi ddu mudellu esattu, poi spizziona la capacitati effittiva e lu statu abbilitatu nta l'ambienti unni lu prugramma gira.
  3. Cunfrunta ogni requisitu dû binariu o dû backend silizziunatu. Na funziunalitati cû nomu sìmili, un pseudònimu o n'etichetta ticnulòggica ginèrica nun abbàstanu.
  4. Cunferma ca l'applicazzioni hà silizziunatu la mplimintazzioni privista. Usa la sò diagnòstica ducumintata e un fallback suppurtatu quannu li requisiti nun sunnu suddisfatti.
  5. Fai un canciamentu suppurtatu a la vota e ripeti lu stissu caricu di travagghiu. Manteni dispunìbbili la cunfigurazzioni urigginali e lu pircorsu di ricùp ситуаazzioni.

Si la funziunalitati e' ndicata ma lu software nun la po usari

Accumenza cû cumpunenti esattu ca fallisci. Un database d'hardware discrivi la capacitati riggistrata; lu sistema upirativu o l'hypervisor ponnu ammustrari n'ambienti effittivu diffirenti. N'erruri di struzzioni illigali addanna puru n'indàggini supra la struzzioni ca fallisci pi daveru e supra la build binaria, picchì la curruzzioni o na struzzioni nun currilata e nun suppurtata ponnu fari un sìntumu sìmili.

Installa la virsioni di l'applicazzioni, dû driver o dû runtime suppurtata pâ piattafurma esatta, e usa la build di basi o di fallback ducumintata dû prudutturi si n'hai bisognu. N'aggiurnamentu dû software nun po criari na struzzioni ca manca nnô prucissuri. Li canciamenti di firmware e di pulìtica di sicurizza avìssiru a sèquiri la prucidura dû prudutturi dû sistema e un pianu di ricùpiru mmeci d'un ricittariu d'uttimizzazzioni ginèricu.

Funti e scanciu di st'esplicazzioni

Intel 64 and IA-32 Architectures Software Developer's Manual · Kernel Linux: shadow stack di Control-flow Enforcement Technology

Sti rifirimenti stabbilìscinu lu cumpurtamentu architittùnicu e li requisiti dû software. Nun virìficanu di manera ndipinnenti ogni valuri di funziunalitati nta na pàggina d'un mudellu hardware culligatu. Pû supportu dû mudellu, usa li provi dû prudutturi di dda pàggina e cuntrolla la cunfigurazzioni effittiva dû sistema. St'artìculu nun duna un benchmark, na cirtificazzioni o na data di rivisioni ndipinnenti.

Funti e virìfica

Titularità editoriali: Feex. Nudda data di rivisioni nnipinnenti è riggistrata. Comu facemu i ricerchi.

Fu ùtili st'artìculu?

Un sì o un no abbasta. Scegghi un mutivu si voi, o junci na nota curta.

Fu ùtili st'artìculu?