TONTOU: Et nyt Spectre v2-angreb på AMD og Intel

Centrale punkter:
  • TONTOU udnytter tidsrummet mellem rensning af forudsigelsesbufferen og dens brug.
  • Angribere bruger "Interrupt Injection" til at omdirigere kernelflow og kontaminere forudsigelsesmaskineriet.
  •  Det påvirker AMDs Zen 1 til 4-arkitekturer og flere generationer af Intel-processorer.
  • Afhjælpningsrettelserne er allerede blevet integreret i de seneste Linux-kerneopdateringer (5. august).

TONTOU-angreb

Er det muligt, at det netop er din processorhastighed, der kompromitterer din sikkerhed? For at forstå, hvordan processorer opnår deres hastighed , må vi overveje, at de fungerer ved at "forudsige fremtiden"... Nej, de er ikke magiske og har ikke en lille krystalkugle...

Processorer fungerer på en måde, der i stedet for at vente på at se, hvilken vej et program vil tage, forudsiger chippen den sandsynlige rute og foregriber den. Hvis forudsigelsen er forkert, kasseres arbejdet, men sporene forbliver i hukommelsen. Det er her, Spectre kommer ind i billedet, en af ​​de mest betydelige sårbarheder, der er opdaget i de senere år. Siden opdagelsen har angribere lært at læse disse spor og skabt stadig mere sofistikerede varianter; TONTOU er en af ​​disse nye sårbarheder.

MIT-forskere har opdaget TONTOU (Time-of-Neutralization to Time-of-Use), en sofistikeret ny teknik til at udnytte Spectre v2-sårbarheder , der gør det muligt at læse kernehukommelse fra brugerens plads.

Selvom producenter og udviklere i årevis har designet forskellige beskyttelsesmekanismer mod prædiktive angreb, er det lykkedes angribere at opdage nye ruter, og denne nye CSAIL-undersøgelse viser, hvordan man omgår disse beskyttelser.

Forskere opdagede, at der er et uundgåeligt tidsrum mellem det øjeblik, bufferen ryddes, og det øjeblik, forudsigelserne bruges, og det er i dette lille mellemrum, at kode (nogle gange blot en håndfuld instruktioner) injiceres via systemafbrydelser, hvilket gør det muligt at rekontaminere hardwaren og udtrække kritiske data.

Angående angrebet: Forstyrrelser og bruddet på Safe-RET

AMD har et forsvar mod SRSO (Speculative Return Stack Overflow) sårbarheder kaldet Saferet, som renser forudsigelsesmaskineriet umiddelbart før hver brug. Dette efterlader et sårbarhedsvindue , der kan udnyttes på få ti nanosekunder. For at angribe et så lille vindue udviklede forskere en teknik, de kalder Interrupt Injection.

Processorer sætter konstant deres opgaver på pause for at håndtere afbrydelser, og almindelige programmer kan konfigurere disse timere . Med dette i tankerne har forskere præcist justeret en timer og ved hjælp af en teknik til at bremse CPU'en forårsaget, at processoren bliver afbrudt på præcis det forkerte tidspunkt . Under denne afbrydelse kan en angriber tvinge et stort antal kald til at blive udført, hvilket overfylder adressestakken. Når den fejlagtige udførelse slutter, kasserer processoren processen, men de tilgåede data forbliver i de delte caches , hvorfra de kan udvindes ved at analysere adgangstider.

Udtrækning og test af adgangskoder på rigtige systemer

For at demonstrere alvoren af ​​TONTOU, byggede teamet et fungerende angreb på et AMD-system, der kørte en aktuel Linux-kerne. Den første udfordring var at omgå forsvaret, der randomiserer operativsystemets position i hukommelsen, hvilket de formåede at gøre på ti forsøg, hvilket tog omkring ni minutter pr. test.

Efterfølgende demonstrerede de et lokalt angreb som en ikke-privilegeret bruger for at bestemme root-adgangskoden hash, og udtrak succesfuldt data med en hastighed på 5.47 bytes pr. sekund med en nøjagtighed på 91.97%. I 50% af testene (som i gennemsnit varede 18 minutter) registrerede og udtrak de succesfuldt indholdet af adgangskodefilen. Selvom dette er en langsom hastighed, er det mere end tilstrækkeligt til kritisk at kompromittere en server.

Indvirkning på Intel, AMD og afhjælpningsrettelsen

Holdet testede fire generationer af Intel- og AMD-processorer og oplevede forudsigelsesfejl på begge arkitekturer. Teknikken viste sig at være brugbar på AMD's Zen 1- til 4- familier , men på Intel-chips omgik angrebet to forskellige beskyttelser , selvom der blev observeret inkonsekvent adfærd mellem forskellige Intel-generationer, hvilket tyder på, at de nominelle forsvar er implementeret forskelligt i hardwaren.

Som en løsning foreslår forskerne at rydde forudsigelsesmaskineriet en anden gang efter afbrydelsen er afsluttet. Selvom denne foranstaltning synes brugbar for AMD, kan den være kontraproduktiv for Intel, da angrebet er afhængigt af, at afbrydelsen efterlader en konstant tilstand, og kan gøre angrebet mere pålideligt.

Forskerne underrettede AMD og Intel i starten af ​​februar og Linux-kernens vedligeholdere i marts. Som følge heraf blev kodeblokeringen for at afbøde sårbarheden integreret i Linux-kernen den 5. august.

Endelig, hvis du er interesseret i at lære mere, kan du finde detaljerne på følgende link.


Tilføj som foretrukken kilde i Google