տեղեկություններ նոր հարձակումների դասի մասին (Բեռի արժեքի ներարկում, ) Ինտել CPU-ի սպեկուլյատիվ կատարումի մեխանիզմում, որոնք կարող են օգտագործվել Intel SGX-ի անքլավներից և այլ գործընթացներից բանալիների և գաղտնի տվյալների արտահոսք կազմակերպելու համար:
Նոր հարձակումների դասը հիմնված է նույն միկրոէնթերապատչական կառուցվածքների манипуля շատ դեպքերում, ինչպիսին են ահազանգերը (Միկրոէնթերապատչական տվյալներիSampling), . Մյուս կողմից, նոր հարձակումները չեն արգելափակվում նախկինի պաշտպանական մեթոդներով Meltdown-ի, Spectre-ի, MDS-ի և նման այլ հարձակումների դեմ: LVI-ի արդյունավետ պաշտպանությունն ապահովելու համար անհրաժեշտ է սարքային փոփոխություններ CPU-ում: Ծրագրային պաշտպանության կազմակերպման դեպքում, LFENCE հրահանգի հավելմամբ յուրաքանչյուր հիշողության բեռից հետո և RET հրահանգի փոխարինմամբ POP-ի, LFENCE-ի և JMP-ի, առաջանում է չափազանց մեծ ծախսեր, ըստ հետազոտողների գնահատումների, լրիվ ծրագրային պաշտպանության դեպքում կատարողականությունը կկրճատվի 2-19 անգամ:
Մասնակիորեն, խնդրի արգելափակման բարդությունը փոխհատվում է նրանով, որ ներկայումս հարձակման տեսքը ավելի շատ Teորիական է, քան գործնական (հարձակումը Teորենական է, բայց շատ դժվար է իրագործելը և կրկնվող միայն սինթետիկ փորձարկումներում):
Ինտել Համέρα խնդրին չափազանց միջին մակարդակ է տրվել (5.6 ից 10) և SGX միջավայրի firmware-ի և SDK-ի թարմացում, որտեղ փորձում էին արգելափակել հարձակման իրականացումը շրջանցող ճանապարհով: Առաջարկված հարձակումների մեթոդները ներկայումս կիրառելի են միայն Intel վճարիչների համար, բայց չի բացառվում LVI-ն մյուս հաձորումների համար ադապտացում հնարավորությունը, որոնց վրա կիրառվում են Meltdown դասի հարձակումները:
Խնդիրը հայտնաբերվել է անցյալ տարվա ապրիլին Լյովենի համալսարանի հետազոտող Ջո Վան Բալկի կողմից, որից հետո 9 հետազոտողների մասնակցությամբ այլ համալսարաններից մշակվել են հարձակման իրականացման հինգ հիմնական մեթոդ, որոնցից յուրաքանչյուրը թույլատրում է գոյություն ունեցող տարիների ավելի հատուկ . Անկախ հունվարին այս տարվա,Bitdefender ընկերության հետազոտողները նույնպես LVI հարձակման մեկ տարբերակն ու նշել են Intel-ին: Հարձակման տարբերակները տարբերվում են տարբեր միկրոէնթերապատչական կառուցվածքների օգտագործմամբ, ինչպես պահպանումը (SB, Store Buffer), ներբեռնման բալանսավորման (LFB, Line Fill Buffer), FPU-ի համահեղինակման բալանսացման և առաջին մակարդակի կեշի (L1D), որը նախկինում օգտագործվել է նման հարձակումներում, ինչպիսիք են , , , , և .
Գլխավոր LVI-ն MDS հարձակումներից այն է, որ MDS-ն է մեզ շարք ունեցող միկրոէնթերապատչական կառուցվածքներ, որոնք մնում են կեշում սպեկուլյատիվ բացառությունների (fault) կամ բեռի և պահպանման գործողությունների արդյունքում, մինչդեռ
LVI հարձակման տեխնիկան թույլ է տալիս հարձակվողի տվյալների ներարկում միկրոարխիտեկտուրայով կառուցվածքներին, որպեսզի ազդի զոհի կոդի հետագա սպեկուլյատիվ կատարման վրա: Այդ տեխնիկաների միջոցով հարձակվողը կարող է մուտք գործել փակ տվյալների կառուցվածքների պարունակությունը այլ գործընթացներում, երբ որոշակի կոդ է կատարվում նպատակային CPU միջուկի վրա:
Այդուհանդերձ զոհի գործընթացի կոդում հատուկ կոդի հաջորդականություններ (գաջեթներ), որտեղ ներբեռնվում է հարձակվողի կողմից վերահսկվող արժեք, իսկ այդ արժեքի ներբեռնման գործընթացը հանգեցնում է բացառությունների (fault, abort կամ assist) առաջացմանը, որոնք գցում են արդյունքը և կրկին կատարում հրաման: Աբստրակտի մշակման ժամանակ տեղի է ունենում սպեկուլյատիվ պատուհան, որտեղ հավատարմագրված տվյալները արտահոսք են դառնում: Դրանով, պրոցեսորը սկսում է սպեկուլյատիվ ռեժիմում իրականացնել կոդի պահածոն (գաջեթ), ապա որոշում է, որ կանխատեսումը ճիշտ չի եղել և հետ կանչում է գործողությունները սկզբնական վիճակին, սակայն միկրոարխիտեկտուրական բուֆերները և L1D կեշը պահում են մշակված տվյալները, որոնք հասանելի են լինելու հայտնի աչքի ճեղքերի մեթոդներով:
Assist բացառությունը, ի տարբերություն fault-ի, մշակվում է ներսում պրոցեսորի կողմից՝ առանց ծրագրային մշակողների զանգերի: Assist կարող է առաջանալ, օրինակ, երբ պահանջվում է թարմացնել A (Accessed) կամ D (Dirty) բիտը հիշողության էջերի աղյուսակում: Վարկածների համակարգողների վրա հարձակման իրականացումն այդքան հեշտ չէ, քանի որ պետք է խառնել զոհի գործընթացը: Այս պահին դեռևս չի եղել հուսալի մեթոդներ այդ նպատակով, սակայն ապագայում ռազմավարությունների հայտնվելը չի բացառվում: Հարձակման հնարավորությունը մինչ այժմ հաստատված է միայն Intel SGX анклавներում, մյուս սցենարները θεωանաբար կամ սինթետիկ պայմաններում կատարվող են (պահանջվում է որոշակի գրանցող гаджетների հավելում կոդում)
Հնարավոր հոսքերի հարձակման շրջաններ:
- Տվյալների արտահոսք միջուկային կառուցվածքներից դեպի օգտվողի մակարդակի գործընթաց: Linux Kernel-ի մեջ լուրջ պաշտպանությունը Spectre 1 հարձակումներից և SMAP (Supervisor Mode Access Prevention) պաշտպանական մեխանիզմը զգալիորեն նվազեցնում են LVI հարձակման հնարավորությունը: Գներն ավելացնող պաշտպանությունը Kerneli-ում կարող է պահանջվել, եթե ապագայում պարզություն չգտնվեն պարզ մեթոդներ LVI հարձակման իրականացման համար:
- Տվյալների արտահոսք տարբեր գործընթացների միջև: Հարձակման համար անհրաժեշտ են որոշակի կոդի հատվածներ ծրագրում և բացառության առաջացման մեթոդի որոշումը նպատակային գործընթացում:
- Տվյալների արտահոսք հյուրընկալող միջավայրից դեպի հյուր համակարգ: Հարձակումը դասակարգվել է որպես չափազանց դժվարներին, պահանջելով տարբեր কঠին իրականացնելու քայլեր և համակարգում գործողությունների կանխատեսումներ:
- Տվյալների արտահոսքը հյուրընկալում համակարգերի միջև: Ամբողջական հարձակման ձևը մոտ է տվյալների արտահոսքին տարբեր գործընթացների միջև, սակայն լրացուցիչ պահանջում է բարդ манիպուլյացիաներ հյուրընկալող համակարգերի միջև օպտիմալիզացիա շրջանցելու համար:
Կիրառված են հետազոտողները հարձակման սկզբունքները ցուցադրելու համար, սակայն դրանք դեռևս չեն պատրաստակամ իրական հարձակումներ իրականացնել: Առաջին օրինակը թույլ է տալիս ուղղել չարաշահող նյութի կատարումը զոհական գործընթացում՝ նմանատիպ հետադարձ-հենված ծրագրավորմանը (, Return-Oriented Programming): Այս օրինակին զոհ է հանդիսանում հատուկ նախապատրաստված գործընթաց, որը պարունակում է անհրաժեշտ սարքեր (հարձակումն իրական, արտաքնային գործընթացների դեմ մեծ դժվարություններ ունի): Երկրորդ օրինակը թույլ է տալիս ներթափանցել AES-ով Encryption հաշվարկներում Intel SGX-ում և կազմակերպել տվյալների արտահոսքը համեմատելով հատուկ հրամանների կատարումը, որը վերականգնելու կարևոր արժեքներն է, օգտագործված շինարարական բանալին:

Ընտանիք: opennet.ru
