AMD har avslørt en ny klasse mikroarkitektoniske angrep på prosessorene sine, kalt TSA (Transient Scheduler Attack). Angrepet lar en angriper omgå CPU-isolasjonsmekanismer og bestemme data behandlet i andre sammenhenger, for eksempel fra brukerområdet for å bestemme informasjon behandlet på kjernenivå, eller fra en gjest for å lære data som brukes i en annen gjest.
Sårbarhetene ble oppdaget under utviklingen av et verktøysett laget av forskere fra Microsoft og ETH Zürich for å stressteste mikroarkitektonisk isolasjon mellom ulike sikkerhetssoner som kjernen, virtuelle maskiner og prosesser.
Angrepsmetoden er basert på avhengigheten av utførelsestiden til noen instruksjoner av tilstanden til mikroarkitektoniske strukturer. Når prosessoren forventer en rask fullføring av instruksjonen om å lese data fra minnet (for eksempel, antatt at dataene er i L1-hurtigbufferen), men ikke klarer å hente dataene, oppstår en "falsk fullførings"-tilstand for instruksjonen. I dette tilfellet, selv før denne tilstanden bestemmes, kan prosessoren planlegge spekulativ utførelse av andre operasjoner som avhenger av resultatet av å utføre instruksjonen om å laste fra minnet.
Siden lastingen ikke ble fullført, blir dataene som er knyttet til den ugyldiggjort av prosessoren, og lasteoperasjonen gjentas senere. Avhengige operasjoner utføres også på nytt når riktige data er klare. Imidlertid utføres ikke pipeline-tømmingen etter at instruksjonen som "falsk fullføring"-betingelsen er rettet for, er utført, og de feilaktige dataene kan omdirigeres til avhengige operasjoner.
Utførelse av slike operasjoner endrer ikke tilstanden til hurtigbufferen og TLB (Translation Lookaside Buffer), dvs. dataene kan ikke gjenopprettes ved hjelp av tradisjonelle metoder for å bestemme hurtigbuffertilstanden. Men disse dataene påvirker utførelsestiden for andre instruksjoner. Analyse av utførelsestid kan brukes som en kilde til informasjonslekkasje fra mikroarkitekturstrukturer som gjenstår etter spekulativ utførelse av andre operasjoner.
Avhengig av kilden til utvinning av restdata, identifiseres to sårbarheter:
- CVE-2024-36350 (TSA-SQ — TSA Store Queue) — en lekkasje fra den midlertidige lagringsbufferen for skriveoperasjoner (Store Queue), som gjør det mulig å bestemme resultatet av å skriveinstruksjoner til minnet.
- CVE-2024-36357 (TSA-L1 — TSA L1-databuffer) — lekkasje gjennom L1D-bufferen.
Sårbarhetene forekommer i AMD-prosessorfamilien (Fam19h) basert på mikroarkitekturene Zen 3 og Zen 4. Problemet finnes for eksempel i CPU-seriene AMD Ryzen 5000/6000/7000/8000, AMD EPYC Milan/Milan-X/Genoa/Genoa-X/Bergamo/Siena, AMD Instinct MI300A, AMD Ryzen Threadripper PRO 7000 WX, AMD EPYC Embedded 7003/8004/9004/97X4 og AMD Ryzen Embedded 5000/7000/V3000.
Endringene som var nødvendige for å blokkere sårbarheten, ble inkludert i mikrokodeoppdateringen i desember og Platform Initialization (PI)-fastvaren som ble utgitt til OEM-er. Oppdateringer for å beskytte mot sårbarheten er sendt inn for inkludering i kjernen. Linux (Kjernekommandolinjealternativet «tsa=off» brukes for å deaktivere beskyttelse som påvirker ytelsen negativt.) En rettelse er også lagt til for Xen-hypervisoren. Blokkering av sårbarheten krever både en mikrokodeoppdatering og aktivering av beskyttelsesmodus på kjerne- eller hypervisornivå.
Kilde: opennet.ru
