Plundervolt-ը Intel-ի պրոցեսորների վրա հարձակման նոր մեթոդ է, որն ազդում է SGX տեխնոլոգիայի վրա

Intel ազատ է արձակվել միկրոկոդի թարմացում, որը շտկում է խոցելիություն (CVE-2019-14607) թույլ տալով պրոցեսորում դինամիկ լարման և հաճախականության վերահսկման մեխանիզմի մանիպուլյացիայի միջոցով վնաս է հասցնում տվյալների բջիջների բովանդակությանը, ներառյալ այն տարածքներում, որոնք օգտագործվում են մեկուսացված Intel SGX անկլավներում հաշվարկների համար: Հարձակումը կոչվում է Plundervolt և պոտենցիալ թույլ է տալիս տեղական օգտագործողին մեծացնել իրենց արտոնությունները համակարգում, առաջացնել ծառայության մերժում և մուտք ունենալ դեպի զգայուն տվյալներ:

Հարձակումը վտանգավոր է միայն SGX անկլավներում հաշվարկներով մանիպուլյացիաների համատեքստում, քանի որ այն իրականացնելու համար պահանջում է համակարգում արմատային իրավունքներ: Ամենապարզ դեպքում հարձակվողը կարող է հասնել անկլավում մշակված տեղեկատվության աղավաղմանը, սակայն ավելի բարդ սցենարներում RSA-CRT և AES-NI ալգորիթմների միջոցով գաղտնագրման համար օգտագործվող անկլավում պահվող մասնավոր բանալիների վերստեղծման հնարավորությունը բացակայում է: բացառված. Տեխնիկան կարող է օգտագործվել նաև ի սկզբանե ճիշտ ալգորիթմներում սխալներ առաջացնելու համար՝ հիշողության հետ աշխատելիս խոցելիություններ առաջացնելու համար, օրինակ՝ հատկացված բուֆերի սահմանից դուրս գտնվող տարածք կազմակերպելու համար:
Հարձակում կատարելու նախատիպի կոդը հրատարակված GitHub-ում

Մեթոդի էությունն այն է, որ պայմաններ ստեղծվեն SGX-ում հաշվարկների ժամանակ տվյալների անսպասելի կոռուպցիայի առաջացման համար, որից անկլավում գաղտնագրման և հիշողության վավերացման օգտագործումը չի պաշտպանում: Խեղաթյուրումը ներմուծելու համար պարզվեց, որ հնարավոր է օգտագործել ստանդարտ ծրագրային ինտերֆեյսներ հաճախականության և լարման վերահսկման համար, որոնք սովորաբար օգտագործվում են համակարգի անգործության ժամանակ էներգիայի սպառումը նվազեցնելու և ինտենսիվ աշխատանքի ընթացքում առավելագույն կատարումն ակտիվացնելու համար: Հաճախականության և լարման բնութագրերը ընդգրկում են ամբողջ չիպը, ներառյալ հաշվարկների ազդեցությունը մեկուսացված անկլավում:

Փոխելով լարումը, դուք կարող եք ստեղծել այնպիսի պայմաններ, որոնց դեպքում լիցքը բավարար չէ պրոցեսորի ներսում հիշողության բջիջը վերականգնելու համար, և դրա արժեքը փոխվում է: Հիմնական տարբերությունը հարձակումից RowHammer այն է, որ RowHammer-ը թույլ է տալիս փոխել առանձին բիթերի պարունակությունը DRAM հիշողության մեջ՝ ցիկլային կերպով կարդալով տվյալները հարևան բջիջներից, մինչդեռ Plundervolt-ը թույլ է տալիս փոխել բիթերը պրոցեսորի ներսում, երբ տվյալները արդեն բեռնված են հիշողությունից՝ հաշվարկման համար: Այս հատկությունը թույլ է տալիս շրջանցել ամբողջականության վերահսկման և գաղտնագրման մեխանիզմները, որոնք օգտագործվում են SGX-ում հիշողության մեջ եղած տվյալների համար, քանի որ հիշողության մեջ արժեքները մնում են ճիշտ, բայց կարող են աղավաղվել դրանց հետ գործառնությունների ընթացքում՝ նախքան արդյունքը հիշողության մեջ գրելը:

Եթե ​​այս փոփոխված արժեքը օգտագործվում է գաղտնագրման գործընթացի բազմապատկման գործընթացում, ելքը մերժվում է սխալ ծածկագրված տեքստով: Ունենալով SGX-ի մշակողի հետ կապվելու հնարավորություն՝ դրա տվյալները գաղտնագրելու համար, հարձակվողը կարող է ձախողումներ առաջացնելով, կուտակել վիճակագրություն ելքային գաղտնագրման տեքստի փոփոխությունների մասին և մի քանի րոպեում վերականգնել անկլավում պահվող բանալին: Բնօրինակ մուտքային տեքստը և ճիշտ ելքային գաղտնագրված տեքստը հայտնի են, բանալին չի փոխվում, իսկ սխալ ծածկագրված տեքստի ելքը ցույց է տալիս, որ որոշ բիթ խեղաթյուրվել է հակառակ արժեքին:

Վերլուծելով տարբեր խափանումների ժամանակ կուտակված ճիշտ և կոռումպացված գաղտնագրային տեքստերի արժեքների զույգերը՝ օգտագործելով դիֆերենցիալ ձախողման վերլուծության մեթոդները (DFA, Դիֆերենցիալ սխալների վերլուծություն) Կարող է կանխատեսել հավանական բանալիներ, որոնք օգտագործվում են AES սիմետրիկ գաղտնագրման համար, այնուհետև, վերլուծելով ստեղների խաչմերուկները տարբեր հավաքածուներում, որոշել ցանկալի բանալին:

Խնդիրն ազդում է Intel պրոցեսորների տարբեր մոդելների վրա, ներառյալ 6-ով Intel Core պրոցեսորները
10-րդ սերունդը, ինչպես նաև Xeon E3-ի հինգերորդ և վեցերորդ սերունդները, Intel Xeon Scalable-ի առաջին և երկրորդ սերունդները, Xeon D,
Xeon W և Xeon E.

Հիշեցնենք, որ SGX տեխնոլոգիան (Softwareրագրաշարի պահապանի ընդլայնումներ) հայտնվել է վեցերորդ սերնդի Intel Core պրոցեսորներում (Skylake) և առաջարկություններ մի շարք հրահանգներ, որոնք թույլ են տալիս օգտվողի մակարդակի հավելվածներին հատկացնել փակ հիշողության տարածքներ՝ անկլավներ, որոնց բովանդակությունը չի կարող կարդալ կամ փոփոխվել նույնիսկ ring0, SMM և VMM ռեժիմներում աշխատող միջուկի և կոդի միջոցով: Անհնար է հսկողությունը փոխանցել անկլավում գտնվող ծածկագրին՝ օգտագործելով ավանդական ցատկման գործառույթները և ռեգիստրների և կույտի հետ մանիպուլյացիաները, հսկողությունը անկլավին փոխանցելու համար օգտագործվում է հատուկ ստեղծված նոր հրահանգ, որը կատարում է լիազորությունների ստուգում: Այս դեպքում անկլավում տեղադրված ծածկագիրը կարող է օգտագործել դասական զանգի մեթոդներ՝ անկլավի ներսում գործառույթներ մուտք գործելու համար և արտաքին գործառույթներ կանչելու հատուկ հրահանգներ: Անկլավային հիշողության կոդավորումն օգտագործվում է ապարատային հարձակումներից պաշտպանվելու համար, ինչպիսիք են DRAM մոդուլին միանալը:

Source: opennet.ru

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