AMD har afsløret en ny klasse af mikroarkitektoniske angreb på sine processorer, kaldet TSA (Transient Scheduler Attack). Angrebet giver en angriber mulighed for at omgå CPU-isoleringsmekanismer og bestemme data behandlet i andre sammenhænge, f.eks. fra brugerområdet for at bestemme information behandlet på kerneniveau, eller fra en gæst for at lære data brugt i en anden gæst.
Sårbarhederne blev opdaget under udviklingen af et værktøjssæt skabt af forskere fra Microsoft og ETH Zürich til at stressteste mikroarkitektonisk isolation mellem forskellige sikkerhedszoner såsom kernen, virtuelle maskiner og processer.
Angrebsmetoden er baseret på afhængigheden af udførelsestiden for visse instruktioner af tilstanden af mikroarkitektoniske strukturer. Når processoren forventer en hurtig fuldførelse af instruktionen om at læse data fra hukommelsen (for eksempel antaget at dataene er i L1-cachen), men ikke formår at hente dataene, opstår en "falsk fuldførelses"-tilstand for instruktionen. I dette tilfælde kan processoren, selv før denne tilstand bestemmes, planlægge spekulativ udførelse af andre operationer, der afhænger af resultatet af at udføre instruktionen om at indlæse fra hukommelsen.
Da indlæsningen ikke blev fuldført, ugyldiggøres de tilknyttede data af processoren, og indlæsningsoperationen gentages senere. Afhængige operationer udføres også igen, når de korrekte data er klar. Pipeline-tømningen udføres dog ikke efter udførelsen af den instruktion, for hvilken betingelsen "falsk fuldførelse" er rettet, og de forkerte data kan omdirigeres til afhængige operationer.
Udførelsen af sådanne operationer ændrer ikke cachens og TLB'ens (Translation Lookaside Buffer) tilstand, dvs. dataene kan ikke gendannes ved hjælp af traditionelle metoder til at bestemme cachetilstanden. Men disse data påvirker udførelsestiden for andre instruktioner. Analyse af udførelsestid kan bruges som en kilde til informationslækage fra mikroarkitektoniske strukturer, der er tilbage efter spekulativ udførelse af andre operationer.
Afhængigt af kilden til udtrækning af restdata identificeres to sårbarheder:
- CVE-2024-36350 (TSA-SQ — TSA Store Queue) — en lækage fra den midlertidige lagringsbuffer for skriveoperationer (Store Queue), der gør det muligt at bestemme resultatet af at skriveinstruktioner til hukommelsen.
- CVE-2024-36357 (TSA-L1 — TSA L1-datacache) — lækage gennem L1D-cache.
Sårbarhederne optræder i AMD-processorfamilien (Fam19h) baseret på mikroarkitekturerne Zen 3 og Zen 4. Problemet findes f.eks. i CPU-serien 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.
De ændringer, der var nødvendige for at blokere sårbarheden, blev inkluderet i december-mikrokodeopdateringen og Platform Initialization (PI)-firmwaren, der blev udgivet til OEM'er. Programrettelser, der beskytter mod sårbarheden, er blevet indsendt til inkludering i kernen. Linux (Kernekommandolinjeindstillingen "tsa=off" er angivet for at deaktivere beskyttelse, der påvirker ydeevnen negativt.) Der er også tilføjet en rettelse til Xen-hypervisoren. Blokering af sårbarheden kræver både en mikrokodeopdatering og aktivering af beskyttelsestilstand på kerne- eller hypervisorniveau.
Kilde: opennet.ru
