Odvisnost časa izvajanja navodil od podatkov o procesorjih ARM in Intel

Eric Biggers, eden od razvijalcev šifre Adiantum in vzdrževalec podsistema fscrypt jedra Linuxa, je predlagal nabor popravkov za blokiranje varnostnih težav, ki izhajajo iz funkcije procesorjev Intel, ki ne zagotavlja stalnih časov izvajanja za različne obdelane podatke. Težava se pojavi pri procesorjih Intel, začenši z družino Ice Lake. Podoben problem opazimo pri procesorjih ARM.

Prisotnost odvisnosti časa izvajanja ukazov od podatkov, obdelanih v teh navodilih, avtor popravkov obravnava kot ranljivost v procesorjih, saj takšno vedenje ne more zagotoviti varnosti kriptografskih operacij, ki se izvajajo v sistemu. Številne izvedbe kriptografskih algoritmov so zasnovane tako, da zagotovijo, da podatki ne vplivajo na čas izvajanja navodil, kršitev tega vedenja pa lahko privede do ustvarjanja stranskih kanalskih napadov, ki obnovijo podatke na podlagi analize njihovega časa obdelave.

Potencialno se lahko odvisnost od podatkov med izvajanjem uporabi tudi za zagon napadov za določanje podatkov jedra iz uporabniškega prostora. Po mnenju Erica Biggersa stalen čas izvajanja ni privzeto zagotovljen niti za navodila, ki izvajajo operacije seštevanja in XOR, kot tudi za specializirana navodila AES-NI (informacija ni potrjena s testi, po drugih podatkih obstaja zakasnitev enega cikel med vektorskim množenjem in štetjem bitov).

Za onemogočanje tega vedenja sta Intel in ARM predlagala nove zastavice: PSTATE bit DIT (Data Independent Timing) za procesorje ARM in MSR bit DOITM (Data Operand Independent Timing Mode) za procesorje Intel, ki vrača staro vedenje s konstantnim časom izvajanja. Intel in ARM priporočata, da po potrebi omogočite zaščito za kritično kodo, vendar se v resnici lahko kritično računanje zgodi kjer koli v jedru in uporabniškem prostoru, zato razmišljamo o tem, da bi za celotno jedro ves čas omogočili načina DOITM in DIT.

Za procesorje ARM je veja jedra Linux 6.2 že sprejela popravke, ki spreminjajo vedenje jedra, vendar se ti popravki štejejo za nezadostne, saj pokrivajo samo kodo jedra in ne spreminjajo vedenja za uporabniški prostor. Za procesorje Intel je vključitev zaščite še v fazi pregleda. Vpliv popravka na zmogljivost še ni bil izmerjen, vendar glede na Intelovo dokumentacijo omogočanje načina DOITM zmanjša zmogljivost (na primer z onemogočanjem nekaterih optimizacij, kot je prednalaganje za posamezne podatke) in v prihodnjih modelih procesorjev se lahko zmanjšanje zmogljivosti poveča. .

Vir: opennet.ru

Dodaj komentar