AMD har afsløret information om en ny klasse af mikroarkitektur-angreb på sine processorer - TSA (Transient Scheduler Attack). Angrebet gør det muligt for en angriber at omgå CPU'ens isoleringsmekanismer og bestemme data, der behandles i andre kontekster, for eksempel at bestemme information, der behandles på kerne-niveau fra brugerplads, eller at hente data fra et gæstesystem, der bruges i et andet gæstesystem.
Sårbarhederne blev opdaget under udviklingen af et værktøj, som blev lavet af forskere fra Microsoft og ETH Zürich til stresstestning af mikroarkitektonisk isolation mellem forskellige adgangsgrænser, såsom kerne, virtuelle maskiner og processer.
Angrebsmetoden er baseret på afhængigheden af udførelsestid for nogle instruktioner fra tilstanden af mikroarkitektoniske strukturer. Når processoren venter på, at en instruktion til at læse data fra hukommelsen (f.eks. i troen på, at dataene er i L1-cachen) hurtigt skal afsluttes, men ikke opnår at hente dataene, opstår der en tilstand af "falsk afslutning" (false completion) af instruktionen. I denne tilstand kan processoren, før den identificerer dette tilstand, planlægge spekulativ udførelse af andre operationer, der afhænger af resultatet af instruktionen til at hente data fra hukommelsen.
Da indlæsningen ikke er afsluttet, betragtes de tilknyttede data som ugyldige af processoren, og indlæsningsoperationen gentages senere. Afhængige operationer udføres også igen, når de korrekte data er klar. I denne proces udføres der ikke en pipeline flush efter udførelsen af den instruktion, for hvilken der er registreret "falsk afslutning", og de forkerte data kan dirigeres til de afhængige operationer.
Udførelsen af disse operationer ændrer ikke tilstanden af cachen og TLB (Translation Lookaside Buffer), dvs. dataene kan ikke gendannes ved hjælp af traditionelle metoder til at bestemme cache-tilstanden. Men disse data påvirker udførelsestiden for andre instruktioner. Tidsanalysen kan anvendes som en kilde til informationslækage fra mikroarkitektoniske strukturer, der er tilbage efter spekulativ udførelse af andre operationer.
Afhængigt af kilden til de resterende data er der identificeret to sårbarheder:
- CVE-2024-36350 (TSA-SQ — TSA Store Queue) — en lækage fra buffer til midlertidig lagring af skriveoperationer (Store Queue), som gør det muligt at bestemme resultatet af udførelsen af skriveinstruktioner i hukommelsen.
- CVE-2024-36357 (TSA-L1 — TSA L1 Data Cache) — en lækage gennem L1D-cache.
Sikkerhedsbristerne optræder i AMD processorfamilien (Fam19h) baseret på mikroarkitekturerne Zen 3 og Zen 4. For eksempel er problemet til stede i AMD Ryzen 5000/6000/7000/8000 serien, 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, AMD Ryzen Embedded 5000/7000/V3000.
De nødvendige ændringer for at blokere sikkerhedsbristen er inkluderet i december-opdateringen af mikrocode og PI-firmware (Platform Initialization), der er sendt til OEM-producenterne. Patches til beskyttelse mod sårbarheden er sendt til inkludering i Linux-kernen (for at deaktivere beskyttelsen, der negativt påvirker ydeevnen, er der en kernel-kommando mulighed «tsa=off»). Rettelsen er også tilføjet til Xen-hypervisoren. For at blokere sårbarheden kræves både mikrocodeopdateringer og aktivering af beskyttelsesmodus på kerne- eller hypervisor-niveau.
Kilde: opennet.ru
