Er det mulig at det er nettopp prosessorhastigheten din som kompromitterer sikkerheten din? For å forstå hvordan prosessorer oppnår hastigheten sin , må vi vurdere at de fungerer ved å "forutsi fremtiden"... Nei, de er ikke magiske eller har en liten krystallkule...
Måten prosessorer fungerer på er at i stedet for å vente på å se hvilken vei et program vil ta, forutsier brikken den sannsynlige ruten og forutser den. Hvis forutsigelsen er feil, forkastes arbeidet, men sporene forblir i minnet. Det er her Spectre kommer inn i bildet , en av de viktigste sårbarhetene som er oppdaget de siste årene. Siden oppdagelsen har angripere lært å lese disse sporene, og skapt stadig mer sofistikerte varianter; TONTOU er en av disse nye sårbarhetene.
MIT-forskere har oppdaget TONTOU (Time-of-Neutralization to Time-of-Use), en sofistikert ny teknikk for å utnytte Spectre v2-sårbarheter , som gjør det mulig å lese kjerneminne fra brukerområdet.
Selv om produsenter og utviklere har utviklet ulike beskyttelsesmekanismer mot prediktive angrep i årevis, har angripere klart å oppdage nye ruter, og denne nye CSAIL-studien viser hvordan man kan omgå disse beskyttelsene.
Forskere oppdaget at det er et uunngåelig tidsgap mellom øyeblikket bufferen tømmes og øyeblikket prediksjonene brukes, og det er i dette lille gapet at kode (noen ganger bare en håndfull instruksjoner) injiseres gjennom systemavbrudd, noe som gjør det mulig å forurense maskinvaren på nytt og trekke ut kritiske data.
Angående angrepet: Forstyrrelser og bruddet i Safe-RET
AMD har et forsvar mot SRSO- sårbarheter (Speculative Return Stack Overflow) kalt Saferet, som renser prediksjonsmaskineriet rett før hver bruk. Dette etterlater et sårbarhetsvindu som kan utnyttes på noen titalls nanosekunder. For å angripe et så lite vindu utviklet forskere en teknikk de kalte Interrupt Injection.
Prosessorer setter stadig oppgavene sine på pause for å håndtere avbrudd, og vanlige programmer kan konfigurere disse tidtakerne . Med dette i tankene justerte forskere en tidtaker nøyaktig , og ved å bruke en teknikk for å bremse CPU-en, forårsaket de at prosessoren ble avbrutt på nøyaktig feil tidspunkt . Under dette avbruddet kan en angriper tvinge frem et stort antall anrop, slik at adressestakken blir overfylt. Når den feilaktige kjøringen avsluttes, forkaster prosessoren prosessen, men de tilgjengelige dataene forblir i de delte hurtigbufferne , hvorfra de kan hentes ut ved å analysere tilgangstider.
Passordutvinning og testing på ekte systemer
For å demonstrere alvorlighetsgraden av TONTOU, bygde teamet en fungerende utnyttelse på et AMD-system som kjørte en oppdatert Linux-kjerne. Den første hindringen var å omgå forsvaret som tilfeldiggjør operativsystemets plassering i minnet, noe de klarte på ti forsøk, og tok omtrent ni minutter per test.
Deretter demonstrerte de et lokalt angrep som en uprivilegert bruker for å bestemme root-passordets hash, og utvunnet data med en hastighet på 5.47 byte per sekund med 91.97 % nøyaktighet. I 50 % av testene (som i gjennomsnitt varte 18 minutter) oppdaget og utvunnet de innholdet i passordfilen. Selv om dette er en lav hastighet, er det mer enn tilstrekkelig til å kompromittere en server kritisk.
Innvirkning på Intel, AMD og oppdateringen for avbøtende oppdateringer
Teamet testet fire generasjoner av Intel- og AMD-prosessorer, og oppnådde prediksjonsfeil på begge arkitekturene. Selv om teknikken viste seg å være levedyktig på AMDs Zen 1- til 4- familier , omgikk angrepet to forskjellige beskyttelser på Intel-brikker , selv om inkonsekvent oppførsel ble observert mellom forskjellige Intel-generasjoner, noe som tyder på at de nominelle forsvarene er implementert forskjellig i maskinvaren.
Som en løsning foreslår forskerne å tømme prediksjonsmaskineriet en gang til etter at avbruddet er fullført. Selv om dette tiltaket virker gjennomførbart for AMD, kan det være kontraproduktivt for Intel, siden angrepet er avhengig av at avbruddet etterlater en konsistent tilstand og kan gjøre angrepet mer pålitelig.
Forskerne varslet AMD og Intel tidlig i februar og Linux-kjernens vedlikeholdere i mars. Som et resultat ble kodeblokkeringen for å redusere sårbarheten integrert i Linux-kjernen 5. august.
Til slutt, hvis du er interessert i å lære mer, kan du finne detaljene på følgende lenke.