AMD-ն բացահայտել է իր պրոցեսորների վրա միկրոճարտարապետական հարձակումների նոր դաս, որը կոչվում է TSA (Transient Scheduler Attack): Հարձակումը թույլ է տալիս հարձակվողին շրջանցել պրոցեսորի մեկուսացման մեխանիզմները և որոշել այլ համատեքստերում մշակված տվյալները, օրինակ՝ օգտատիրոջ տարածքից՝ միջուկի մակարդակում մշակված տեղեկատվությունը որոշելու համար, կամ հյուրից՝ մեկ այլ հյուրում օգտագործված տվյալները սովորելու համար:
Խոցելիությունները հայտնաբերվել են Microsoft-ի և ETH Zurich-ի հետազոտողների կողմից ստեղծված գործիքակազմի մշակման ընթացքում, որը նախատեսված է տարբեր անվտանգության գոտիների, ինչպիսիք են միջուկը, վիրտուալ մեքենաները և գործընթացները, միջև միկրոճարտարապետական մեկուսացումը սթրեսային թեստավորելու համար։
Հարձակման մեթոդը հիմնված է որոշ հրահանգների կատարման ժամանակի կախվածության վրա միկրոճարտարապետական կառուցվածքների վիճակից: Երբ պրոցեսորը ակնկալում է հիշողությունից տվյալներ կարդալու հրահանգի արագ ավարտ (օրինակ՝ ենթադրելով, որ տվյալները գտնվում են L1 քեշում), բայց չի կարողանում հաջողությամբ ստանալ տվյալները, առաջանում է հրահանգի «կեղծ ավարտի» վիճակ: Այս դեպքում, նույնիսկ այս վիճակը որոշելուց առաջ, պրոցեսորը կարող է պլանավորել այլ գործողությունների սպեկուլյատիվ կատարում, որոնք կախված են հիշողությունից բեռնելու հրահանգի կատարման արդյունքից:
Քանի որ բեռնումը չի ավարտվել, դրան կից տվյալները պրոցեսորի կողմից անվավեր են ճանաչվում, և բեռնման գործողությունը հետագայում կրկնվում է: Կախյալ գործողությունները նույնպես վերստին կատարվում են, երբ ճիշտ տվյալները պատրաստ են: Այնուամենայնիվ, խողովակաշարի մաքրումը չի կատարվում այն հրահանգի կատարումից հետո, որի համար շտկվել է «սխալ ավարտման» պայմանը, և սխալ տվյալները կարող են վերահղվել կախյալ գործողություններին:
Նման գործողությունների կատարումը չի փոխում քեշի և TLB-ի (Translation Lookaside Buffer) վիճակը, այսինքն՝ տվյալները չեն կարող վերականգնվել քեշի վիճակը որոշելու ավանդական մեթոդներով։ Սակայն այս տվյալները ազդում են այլ հրահանգների կատարման ժամանակի վրա։ Կատարման ժամանակի վերլուծությունը կարող է օգտագործվել որպես տեղեկատվության արտահոսքի աղբյուր միկրոճարտարապետական կառուցվածքներից, որոնք մնում են այլ գործողությունների ենթադրական կատարումից հետո։
Կախված մնացորդային տվյալների արդյունահանման աղբյուրից՝ առանձնանում են երկու խոցելիություններ՝
- CVE-2024-36350 (TSA-SQ — TSA Store Queue) — արտահոսք գրման գործողությունների ժամանակավոր պահեստային բուֆերից (Store Queue), որը թույլ է տալիս որոշել հիշողության մեջ հրահանգների գրելու արդյունքը։
- CVE-2024-36357 (TSA-L1 — TSA L1 տվյալների քեշ) — արտահոսք L1D քեշի միջով։
Խոցելիությունները ի հայտ են գալիս AMD պրոցեսորների ընտանիքում (Fam19h)՝ հիմնված Zen 3 և Zen 4 միկրոճարտարապետականների վրա: Օրինակ, խնդիրը առկա է 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, AMD Ryzen Embedded 5000/7000/V3000 շարքի պրոցեսորներում:
Խոցելիությունը արգելափակելու համար անհրաժեշտ փոփոխությունները ներառվել են դեկտեմբեր ամսվա միկրոկոդի թարմացման և OEM-ներին թողարկված Platform Initialization (PI) firmware-ի մեջ: Խոցելիությունից պաշտպանվելու համար ներկայացվել են թարմացումներ՝ միջուկում ներառելու համար: Linux (Միջուկի հրամանի տողի «tsa=off» տարբերակը տրամադրվում է արտադրողականության վրա բացասաբար ազդող պաշտպանությունն անջատելու համար:) Xen հիպերվիզորին նաև ավելացվել է մի ուղղում: Խոցելիության արգելափակումը պահանջում է ինչպես միկրոկոդի թարմացում, այնպես էլ միջուկի կամ հիպերվիզորի մակարդակում պաշտպանության ռեժիմի ակտիվացում:
Source: opennet.ru
