LVI-ն CPU-ում սպեկուլյատիվ կատարման մեխանիզմի վրա հարձակումների նոր դաս է

Հրատարակվել է տեղեկություններ հարձակումների նոր դասի մասին LVI (Բեռի արժեքի ներարկում, CVE-2020-0551- ը) Intel CPU-ների սպեկուլյատիվ կատարման մեխանիզմի վրա, որը կարող է օգտագործվել Intel SGX անկլավներից և այլ գործընթացներից բանալիների և գաղտնի տվյալների արտահոսքի համար:

Հարձակումների նոր դասը հիմնված է հարձակումների ժամանակ օգտագործվող նույն միկրոճարտարապետական ​​կառույցների մանիպուլյացիայի վրա MDS (Միկրոճարտարապետական ​​տվյալների նմուշառում), Spectre և Meltdown. Միևնույն ժամանակ, նոր հարձակումները չեն արգելափակվում Meltdown-ի, Spectre-ի, MDS-ի և այլ նմանատիպ հարձակումներից պաշտպանության գոյություն ունեցող մեթոդներով։ LVI-ի արդյունավետ պաշտպանությունը պահանջում է պրոցեսորի ապարատային փոփոխություններ: Պաշտպանությունը ծրագրային կերպով կազմակերպելիս, յուրաքանչյուր բեռնման գործողությունից հետո կոմպիլյատորի կողմից ավելացնելով LFENCE հրահանգը հիշողությունից և փոխարինելով RET հրահանգը POP, LFENCE և JMP-ով, գրանցվում է չափազանց մեծ ծախսեր. ըստ հետազոտողների, ծրագրային ապահովման ամբողջական պաշտպանությունը կհանգեցնի կատարումը 2-19 անգամ:

Խնդիրն արգելափակելու դժվարության մի մասը փոխհատուցվում է նրանով, որ հարձակումը ներկայումս ավելի շատ տեսական է, քան գործնական (հարձակումը տեսականորեն հնարավոր է, բայց շատ դժվար է իրականացնել և վերարտադրելի է միայն սինթետիկ թեստերում):
Intel յուրացված խնդիրն ունի չափավոր վտանգի աստիճան (5.6-ից 10) և ազատ է արձակվել թարմացնելով որոնվածը և SDK-ն SGX միջավայրի համար, որում այն ​​փորձել է արգելափակել հարձակումը՝ օգտագործելով լուծում: Առաջարկվող հարձակման մեթոդները ներկայումս կիրառելի են միայն Intel պրոցեսորների համար, սակայն չի կարելի բացառել LVI-ի հարմարեցման հնարավորությունը այլ պրոցեսորների համար, որոնց վրա կիրառելի են Meltdown-ի դասի հարձակումները:

Խնդիրը բացահայտվել է անցյալ տարվա ապրիլին Լյովենի համալսարանի հետազոտող Ջո Վան Բալքի կողմից, որից հետո այլ համալսարանների 9 հետազոտողների մասնակցությամբ մշակվել են հարձակման հինգ հիմնական մեթոդներ, որոնցից յուրաքանչյուրը թույլ է տալիս ավելի կոնկրետ գոյություն ունենալ։ տարբերակներ. Անկախ այս տարվա փետրվարին Bitdefender-ի հետազոտողները նույնպես հայտնաբերված LVI հարձակման տարբերակներից մեկը և դրա մասին հայտնել Intel-ին: Հարձակման տարբերակները տարբերվում են տարբեր միկրոճարտարապետական ​​կառույցների օգտագործմամբ, ինչպիսիք են պահեստավորման բուֆերը (SB, Store Buffer), լրացման բուֆերը (LFB, Line Fill Buffer), FPU համատեքստի փոխարկիչի բուֆերը և առաջին մակարդակի քեշը (L1D), որոնք նախկինում օգտագործվել են: այնպիսի հարձակումներում, ինչպիսիք են ZombieLoad, RIDL, Fallout, LazyFP, Նախագուշակել и Meltdown.

LVI-ն CPU-ում սպեկուլյատիվ կատարման մեխանիզմի վրա հարձակումների նոր դաս է

Հիմնականը պատիվներ LVI-ն ընդդեմ MDS գրոհների այն է, որ MDS-ը շահարկում է միկրոճարտարապետական ​​կառույցների բովանդակության որոշումը, որոնք մնում են քեշում սպեկուլյատիվ անսարքությունների մշակումից կամ բեռնման և պահեստավորման գործողություններից հետո, մինչդեռ
LVI հարձակումները թույլ են տալիս հարձակվողի տվյալները ներդնել միկրոճարտարապետական ​​կառույցներում՝ ազդելու զոհի կոդի հետագա սպեկուլյատիվ կատարման վրա: Օգտագործելով այս մանիպուլյացիաները, հարձակվողը կարող է դուրս հանել մասնավոր տվյալների կառուցվածքների բովանդակությունը այլ գործընթացներում՝ թիրախային պրոցեսորի միջուկի վրա որոշակի կոդ կատարելիս:

LVI-ն CPU-ում սպեկուլյատիվ կատարման մեխանիզմի վրա հարձակումների նոր դաս է

Համար շահագործման խնդիր տուժողի գործընթացի օրենսգրքում պետք է հանդիպեն Կոդի հատուկ հաջորդականություններ (գործիքներ), որոնցում բեռնված է հարձակվողի կողմից վերահսկվող արժեքը, և այս արժեքի բեռնումը հանգեցնում է բացառությունների (անսարքության, ընդհատման կամ օժանդակության) նետման՝ չեղարկելով արդյունքը և նորից կատարել հրահանգը: Երբ բացառություն է մշակվում, սպեկուլյատիվ պատուհան է հայտնվում, որի ընթացքում գաջեթում մշակված տվյալները արտահոսում են։ Մասնավորապես, պրոցեսորը սկսում է սպեկուլյատիվ ռեժիմով կատարել կոդի մի կտոր (գործիք), այնուհետև որոշում է, որ կանխատեսումը չի արդարացվել և գործառնությունները վերադարձնում է իրենց սկզբնական վիճակին, սակայն սպեկուլյատիվ կատարման ընթացքում մշակված տվյալները պահվում են L1D քեշում։ և միկրոճարտարապետական ​​բուֆերներ և հասանելի է դրանցից որոնման համար՝ օգտագործելով հայտնի մեթոդներ՝ երրորդ կողմի ալիքների միջոցով մնացորդային տվյալները որոշելու համար:

«Աջակցող» բացառությունը, ի տարբերություն «անսարքության» բացառության, ներքին կարգով մշակվում է պրոցեսորի կողմից՝ առանց ծրագրակազմի մշակողներին կանչելու: Assist-ը կարող է առաջանալ, օրինակ, երբ անհրաժեշտ է թարմացնել հիշողության էջի աղյուսակի A (Accessed) կամ D (Dirty) բիթը: Այլ գործընթացների վրա հարձակում իրականացնելու հիմնական դժվարությունն այն է, թե ինչպես կարելի է նախաձեռնել օգնության առաջացումը՝ մանիպուլյացիայի ենթարկելով զոհի գործընթացը: Ներկայումս չկան դրա համար հուսալի ուղիներ, սակայն հնարավոր է, որ դրանք հետագայում գտնվեն: Հարձակման հնարավորությունը մինչ այժմ հաստատվել է միայն Intel SGX անկլավների համար, մյուս սցենարները տեսական են կամ վերարտադրելի են սինթետիկ պայմաններում (պահանջում է որոշակի գաջեթներ ավելացնել կոդի մեջ)

LVI-ն CPU-ում սպեկուլյատիվ կատարման մեխանիզմի վրա հարձակումների նոր դաս է

LVI-ն CPU-ում սպեկուլյատիվ կատարման մեխանիզմի վրա հարձակումների նոր դաս է

Հարձակման հնարավոր վեկտորները.

  • Տվյալների արտահոսք միջուկի կառուցվածքներից դեպի օգտագործողի մակարդակի գործընթաց: Linux միջուկի պաշտպանությունը Spectre 1 հարձակումներից, ինչպես նաև SMAP (Supervisor Mode Access Prevention) պաշտպանական մեխանիզմը զգալիորեն նվազեցնում է LVI հարձակման հավանականությունը։ Միջուկին լրացուցիչ պաշտպանություն ավելացնելը կարող է անհրաժեշտ լինել, եթե ապագայում հայտնաբերվեն LVI հարձակման ավելի պարզ մեթոդներ:
  • Տվյալների արտահոսք տարբեր գործընթացների միջև: Հարձակումը պահանջում է հավելվածում որոշակի կոդի առկայություն և թիրախային գործընթացում բացառություն գցելու մեթոդի սահմանում:
  • Տվյալների արտահոսք հյուրընկալող միջավայրից դեպի հյուրի համակարգ: Հարձակումը դասակարգվում է որպես չափազանց բարդ, որը պահանջում է տարբեր դժվար իրագործելի քայլեր և համակարգի գործունեության կանխատեսումներ:
  • Տվյալների արտահոսք տարբեր հյուր համակարգերի գործընթացների միջև: Հարձակման վեկտորը մոտ է տարբեր գործընթացների միջև տվյալների արտահոսքի կազմակերպմանը, բայց լրացուցիչ պահանջում է բարդ մանիպուլյացիաներ՝ հյուրերի համակարգերի միջև մեկուսացումը շրջանցելու համար:

Հրատարակվել է հետազոտողների կողմից մոտ նախատիպերը հարձակման իրականացման սկզբունքների ցուցադրմամբ, սակայն դրանք դեռ պիտանի չեն իրական հարձակումներ իրականացնելու համար։ Առաջին օրինակը թույլ է տալիս վերաուղղորդել սպեկուլյատիվ կոդի կատարումը զոհի գործընթացում, որը նման է վերադարձի վրա հիմնված ծրագրավորմանը (ROP,Վերադարձի վրա հիմնված ծրագրավորում): Այս օրինակում զոհը հատուկ պատրաստված պրոցես է, որը պարունակում է անհրաժեշտ գործիքներ (հարձակումը իրական երրորդ կողմի գործընթացների վրա դժվար է): Երկրորդ օրինակը թույլ է տալիս մեզ միջամտել Intel SGX անկլավի ներսում AES գաղտնագրման ժամանակ հաշվարկներին և կազմակերպել տվյալների արտահոսք հրահանգների սպեկուլյատիվ կատարման ժամանակ՝ վերականգնելու համար օգտագործվող բանալու արժեքը:


Source: opennet.ru

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