Varësia e kohës së ekzekutimit të instruksionit nga të dhënat në CPU-të ARM dhe Intel

Eric Biggers, një nga zhvilluesit e kodit Adiantum dhe një mirëmbajtës i nënsistemit fscrypt të kernel Linux, propozoi një grup arnimesh për të bllokuar problemet e sigurisë që lindin nga një veçori e procesorëve Intel që nuk garanton kohë të vazhdueshme ekzekutimi për të dhëna të ndryshme të përpunuara. Problemi shfaqet në procesorët Intel duke filluar me familjen Ice Lake. Një problem i ngjashëm vërehet në procesorët ARM.

Prania e një varësie të kohës së ekzekutimit të udhëzimeve nga të dhënat e përpunuara në këto udhëzime konsiderohet nga autori i arnimeve si një cenueshmëri në procesorë, pasi një sjellje e tillë nuk mund të garantojë sigurinë e operacioneve kriptografike të kryera në sistem. Shumë zbatime të algoritmeve kriptografike janë krijuar për të siguruar që të dhënat të mos ndikojnë në kohën e ekzekutimit të udhëzimeve, dhe shkelja e kësaj sjelljeje mund të çojë në krijimin e sulmeve të kanalit anësor që rikuperojnë të dhënat bazuar në analizën e kohës së përpunimit të tyre.

Potencialisht, varësia e të dhënave të kohës së ekzekutimit mund të përdoret gjithashtu për të nisur sulmet për të përcaktuar të dhënat e kernelit nga hapësira e përdoruesit. Sipas Eric Biggers, koha konstante e ekzekutimit nuk ofrohet si parazgjedhje edhe për instruksionet që kryejnë operacione shtimi dhe XOR, si dhe për udhëzimet e specializuara AES-NI (informacionet nuk janë konfirmuar nga testet, sipas të dhënave të tjera, ka një vonesë prej një cikli gjatë shumëzimit të vektorëve dhe numërimit të biteve).

Për të çaktivizuar këtë sjellje, Intel dhe ARM kanë propozuar flamuj të rinj: PSTATE bit DIT (Koha e pavarur e të dhënave) për CPU-të ARM dhe biti MSR DOITM (Modaliteti i Kohës së Pavarur të të Dhënave) për CPU-të Intel, duke rikthyer sjelljen e vjetër me kohë ekzekutimi konstante. Intel dhe ARM rekomandojnë aktivizimin e mbrojtjes sipas nevojës për kodin kritik, por në realitet, llogaritja kritike mund të ndodhë kudo në kernel dhe hapësirën e përdoruesit, kështu që ne po konsiderojmë aktivizimin e modaliteteve DOITM dhe DIT për të gjithë kernelin në çdo kohë.

Për procesorët ARM, dega e kernelit Linux 6.2 ka miratuar tashmë arna që ndryshojnë sjelljen e kernelit, por këto arna konsiderohen të pamjaftueshme pasi ato mbulojnë vetëm kodin e kernelit dhe nuk ndryshojnë sjelljen për hapësirën e përdoruesit. Për procesorët Intel, përfshirja e mbrojtjes është ende në fazën e rishikimit. Ndikimi i patch-it në performancën ende nuk është matur, por sipas dokumentacionit të Intel, aktivizimi i modalitetit DOITM zvogëlon performancën (për shembull, duke çaktivizuar disa optimizime, siç është ngarkimi paraprak i të dhënave) dhe në modelet e ardhshme të procesorit ulja e performancës mund të rritet .

Burimi: opennet.ru

Shto një koment