En annen sårbarhet er identifisert i AMD-prosessorer som tillater Meltdown-angrep

Et team av forskere fra det tekniske universitetet i Graz (Østerrike) og Helmholtz Center for Information Security (CISPA) har avslørt informasjon om en sårbarhet (CVE-2021-26318) i alle AMD-prosessorer som gjør det mulig å gjennomføre Meltdown-klasse sidekanalangrep (i utgangspunktet ble det antatt at AMD-prosessorer ikke er påvirket av Meltdown-sårbarheten). Rent praktisk kan angrepet brukes til å etablere skjulte kommunikasjonskanaler, overvåke aktivitet i kjernen, eller skaffe informasjon om adresser i kjerneminnet for å omgå KASLR-beskyttelse mens man utnytter sårbarheter i kjernen.

AMD anser det som upassende å iverksette spesielle tiltak for å blokkere problemet, siden sårbarheten, som et lignende angrep oppdaget i august, er til liten nytte under reelle forhold, begrenses av gjeldende grenser for prosessadresserommet og krever tilstedeværelse av visse ferdige sekvenser av instruksjoner (dingser) i kjernen. For å demonstrere angrepet lastet forskerne sin egen kjernemodul med en kunstig tilsatt gadget. Under reelle forhold kan angripere for eksempel bruke regelmessige sårbarheter i eBPF-undersystemet for å erstatte de nødvendige sekvensene.

For å beskytte mot denne nye typen angrep, anbefalte AMD å bruke sikre kodeteknikker som hjelper til med å blokkere Meltdown-angrep, for eksempel bruk av LFENCE-instruksjoner. Forskerne som identifiserte problemet anbefaler å aktivere strengere minnesidetabellisolering (KPTI), som tidligere kun ble brukt for Intel-prosessorer.

Under eksperimentet klarte forskerne å lekke informasjon fra kjernen til en prosess i brukerområdet med en hastighet på 52 byte per sekund, gitt tilstedeværelsen av en gadget i kjernen som utfører operasjonen "if (offset < data_len) tmp = LUT[data[offset] * 4096];” . Det er foreslått flere metoder for å hente informasjon via sidekanaler som havner i cachen under spekulativ utførelse. Den første metoden er basert på å analysere avvik i utførelsestiden til prosessorinstruksjonen “PREFETCH” (Prefetch+Time), og den andre på å endre endringen i energiforbruk ved utføring av “PREFETCH” (Prefetch+Power).

Husk at den klassiske Meltdown-sårbarheten er basert på det faktum at under spekulativ utførelse av instruksjoner kan prosessoren få tilgang til et privat dataområde og deretter forkaste resultatet, siden de angitte privilegiene forbyr slik tilgang fra brukerprosessen. I programmet er den spekulativt utførte blokken atskilt fra hovedkoden med en betinget gren, som under reelle forhold alltid avfyres, men på grunn av det faktum at den betingede setningen bruker en beregnet verdi som prosessoren ikke kjenner under den forebyggende utførelse av koden utføres alle filialopsjoner spekulativt.

Siden spekulativt utførte operasjoner bruker samme hurtigbuffer som normalt utførte instruksjoner, er det mulig under spekulativ utførelse å sette markører i hurtigbufferen som reflekterer innholdet av individuelle biter i et privat minneområde, og deretter i normalt utført kode for å bestemme verdien deres gjennom timing analysetilganger til hurtigbufrede og ubufrede data.

Kilde: opennet.ru

Legg til en kommentar