Երկու հարձակում քեշի ալիքի կանխատեսման մեխանիզմի վրա AMD պրոցեսորներում

Գրացի (Ավստրիա) տեխնիկական համալսարանի մի խումբ հետազոտողներ, որոնք նախկինում հայտնի էին հարձակման մեթոդների մշակմամբ MDS, NetSpectre, Նետող մուրճ и ZombieLoad, իրականացրել է AMD պրոցեսորներին հատուկ ապարատային օպտիմալացման հետազոտություններ և զարգացել է կողային ալիքի գրոհների երկու նոր մեթոդներ, որոնք շահարկում են տվյալների արտահոսքը AMD պրոցեսորների L1 քեշի ալիքի կանխատեսման մեխանիզմի շահագործման ընթացքում: Տեխնիկաները կարող են օգտագործվել ASLR պաշտպանության արդյունավետությունը նվազեցնելու, խոցելի AES ներդրումներում բանալիները վերականգնելու և Spectre հարձակման արդյունավետությունը բարելավելու համար:

Խնդիրներ են հայտնաբերվել պրոցեսորի առաջին մակարդակի տվյալների քեշում (L1D) կապուղու կանխատեսման մեխանիզմի (ճանապարհի կանխատեսող) ներդրման մեջ, որն օգտագործվում է կանխատեսելու համար, թե որ քեշի ալիքն է պարունակում որոշակի հիշողության հասցե: AMD պրոցեսորներում օգտագործվող օպտիմալացումը հիմնված է μ-պիտակների (μTag) ստուգման վրա: μTag-ը հաշվարկվում է վիրտուալ հասցեի վրա հատուկ հեշ ֆունկցիա կիրառելով: Գործողության ընթացքում ալիքների կանխատեսման շարժիչը օգտագործում է μTag՝ աղյուսակից քեշի ալիքը որոշելու համար: Այսպիսով, μTag-ը թույլ է տալիս պրոցեսորին սահմանափակվել միայն որոշակի ալիք մուտք գործելու մեջ՝ առանց փնտրելու բոլոր տարբերակները, ինչը զգալիորեն նվազեցնում է պրոցեսորի էներգիայի սպառումը:

Երկու հարձակում քեշի ալիքի կանխատեսման մեխանիզմի վրա AMD պրոցեսորներում

2011-ից 2019 թվականներին թողարկված AMD պրոցեսորների տարբեր սերունդներում ալիքների կանխատեսման համակարգի ներդրման հակադարձ ճարտարագիտության ընթացքում հայտնաբերվել են կողային ալիքի հարձակման երկու նոր տեխնիկա.

  • Collide+Probe - թույլ է տալիս հարձակվողին հետևել հիշողության հասանելիությանը նույն տրամաբանական պրոցեսորի միջուկով աշխատող գործընթացների համար: Մեթոդի էությունը վիրտուալ հասցեների օգտագործումն է, որոնք բախումներ են առաջացնում հեշ ֆունկցիայի մեջ, որն օգտագործվում է μTag-ը հաշվարկելու համար՝ հիշողության հասանելիությունը հետևելու համար: Ի տարբերություն Intel-ի պրոցեսորների վրա օգտագործվող Flush+Reload և Prime+Probe գրոհների, Collide+Probe-ը չի օգտագործում ընդհանուր հիշողություն և աշխատում է առանց ֆիզիկական հասցեների իմացության:
  • Load+Reload - թույլ է տալիս շատ ճշգրիտ որոշել հիշողության հասանելիության հետքերը նույն ֆիզիկական պրոցեսորի միջուկում: Մեթոդը հիմնված է այն փաստի վրա, որ ֆիզիկական հիշողության բջիջը կարող է լինել միայն մեկ անգամ L1D քեշում: Նրանք. մեկ այլ վիրտուալ հասցեով միևնույն հիշողության բջիջ մուտք գործելը կհանգեցնի նրան, որ բջիջը կհեռացվի L1D քեշից՝ թույլ տալով հետևել հիշողության հասանելիությանը: Թեև հարձակումը հիմնված է ընդհանուր հիշողության վրա, այն չի մաքրում քեշի գծերը՝ թույլ տալով գաղտնի հարձակումներ, որոնք չեն հեռացնում տվյալները վերջին մակարդակի քեշից:

Հիմնվելով Collide+Probe և Load+Reload տեխնիկայի վրա՝ հետազոտողները ցուցադրել են մի քանի կողային ալիքի հարձակման սցենարներ.

  • Ցուցադրված է երկու գործընթացների միջև թաքնված անուղղակի կապի ալիք կազմակերպելու մեթոդների կիրառման հնարավորությունը, որը թույլ է տալիս տվյալների փոխանցում վայրկյանում մինչև 588 կԲ արագությամբ:
  • Օգտագործելով μTag-ում բախումները, հնարավոր եղավ նվազեցնել էնտրոպիան ASLR-ի տարբեր տարբերակների համար (Address Space Layout Randomization) և շրջանցել ASLR պաշտպանությունը միջուկում ամբողջովին թարմացված Linux համակարգի վրա: Ցուցադրվում է գրոհ իրականացնելու հնարավորությունը ASLR էնտրոպիան նվազեցնելու համար ինչպես օգտագործողի հավելվածներից, այնպես էլ JavaScript-ի կոդով, որն իրականացվում է sandbox միջավայրում և կոդ, որն աշխատում է հյուրի այլ միջավայրում:

    Երկու հարձակում քեշի ալիքի կանխատեսման մեխանիզմի վրա AMD պրոցեսորներում

  • Collide+Probe մեթոդի հիման վրա հարձակում է իրականացվել՝ վերականգնելու կոդավորման բանալին խոցելի ներդրումից (հիմնված T-աղյուսակ) AES կոդավորումը:
  • Օգտագործելով Collide+Probe մեթոդը՝ որպես տվյալների հավաքագրման ալիք, Spectre հարձակումը կարողացավ միջուկից մասնավոր տվյալներ հանել՝ առանց ընդհանուր հիշողություն օգտագործելու:

Խոցելիությունը տեղի է ունենում AMD պրոցեսորների վրա, որոնք հիմնված են միկրոճարտարապետության վրա
Բուլդոզեր, Piledriver, Steamroller, Zen (Ryzen, Epic), Zen+ և Zen2:
ՀՀ դրամ խնդրի մասին ծանուցվել է 23 թվականի օգոստոսի 2019-ին, սակայն մինչ օրս զեկույցը չի հրապարակել խոցելիության արգելափակման մասին տեղեկություններով։ Հետազոտողների կարծիքով՝ խնդիրը կարող է արգելափակվել միկրոկոդի թարմացման մակարդակում՝ տրամադրելով MSR բիթ՝ ալիքների կանխատեսման համակարգը ընտրողաբար անջատելու համար, ինչպես Intel-ն արեց ճյուղերի կանխատեսման մեխանիզմների անջատումը վերահսկելու համար:

Երկու հարձակում քեշի ալիքի կանխատեսման մեխանիզմի վրա AMD պրոցեսորներում

Source: opennet.ru

Добавить комментарий