Նոր հարձակում Intel և AMD պրոցեսորների միկրոճարտարապետական ​​կառույցների վրա

Վիրջինիայի և Կալիֆորնիայի համալսարանների մի խումբ հետազոտողներ ներկայացրել են Intel և AMD պրոցեսորների միկրոճարտարապետական ​​կառուցվածքների վրա հարձակման նոր տեսակ, որը հայտնաբերվել է չփաստաթղթավորված պրոցեսորի հնարավորությունների հակադարձ ճարտարագիտության ժամանակ: Առաջարկվող հարձակման մեթոդը ներառում է միջանկյալ micro-op cache-ի օգտագործումը պրոցեսորներում, որը կարող է օգտագործվել հրահանգների սպեկուլյատիվ կատարման ընթացքում կուտակված տեղեկատվությունը ստանալու համար:

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

Նշվում է, որ նոր մեթոդը զգալիորեն գերազանցում է Spectre v1 հարձակումը, դժվարացնում է հարձակումը հայտնաբերելը և չի արգելափակվում կողմնակի ալիքի հարձակումներից պաշտպանվելու գոյություն ունեցող մեթոդներով, որոնք նախատեսված են հրահանգների սպեկուլյատիվ կատարման հետևանքով առաջացած խոցելիությունը արգելափակելու համար (օրինակ՝ օգտագործումը LFENCE հրահանգը արգելափակում է արտահոսքերը սպեկուլյատիվ կատարման վերջին փուլերում, բայց չի պաշտպանում միկրոճարտարապետական ​​կառույցների միջոցով արտահոսքից):

Մեթոդը վերաբերում է Intel և AMD պրոցեսորների մոդելներին, որոնք թողարկվել են 2011 թվականից, ներառյալ Intel Skylake և AMD Zen սերիաները: Ժամանակակից պրոցեսորները բաժանում են պրոցեսորի բարդ հրահանգները RISC-ի նման ավելի պարզ միկրոգործառնությունների, որոնք պահվում են առանձին քեշում: Այս քեշը սկզբունքորեն տարբերվում է ավելի բարձր մակարդակի քեշերից, ուղղակիորեն հասանելի չէ և գործում է որպես հոսքային բուֆեր՝ CISC հրահանգները RISC միկրոհրահանգներում վերծանելու արդյունքներին արագ մուտք գործելու համար: Այնուամենայնիվ, հետազոտողները գտել են մի միջոց՝ ստեղծելու պայմաններ, որոնք առաջանում են քեշի մուտքի կոնֆլիկտների ժամանակ և թույլ են տալիս դատել միկրոօպերացիոն քեշի բովանդակությունը՝ վերլուծելով որոշակի գործողությունների կատարման ժամանակի տարբերությունները:

Նոր հարձակում Intel և AMD պրոցեսորների միկրոճարտարապետական ​​կառույցների վրա

Intel պրոցեսորներում միկրոգործողության քեշը բաժանված է պրոցեսորի թելերի հետ կապված (Hyper-Threading), մինչդեռ AMD Zen պրոցեսորներն օգտագործում են ընդհանուր քեշ, որը պայմաններ է ստեղծում տվյալների արտահոսքի համար ոչ միայն մեկ կատարողական շղթայում, այլև SMT-ի տարբեր թելերի միջև: (Տվյալների հնարավոր արտահոսք տարբեր տրամաբանական պրոցեսորի միջուկների վրա աշխատող կոդի միջև):

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

Spectre-ի հարձակման տարբերակ կազմակերպելիս՝ օգտագործելով միկրո օպերացիոն քեշը, հետազոտողները կարողացել են հասնել 965.59 Կբիթ/վրկ արագության՝ 0.22% սխալի արագությամբ և 785.56 Կբիթ/վրկ սխալի ուղղում օգտագործելիս՝ նույն հասցեում արտահոսքի կազմակերպման դեպքում։ տարածք և արտոնությունների մակարդակ: Տարբեր արտոնությունների մակարդակներով (միջուկի և օգտագործողների տարածքի միջև) ընդգրկող արտահոսքի դեպքում կատարողականը 85.2 Կբիթ/վրկ էր՝ ավելացված սխալի ուղղումով և 110.96 Կբիթ/վրկ՝ 4% սխալի գործակիցով: AMD Zen պրոցեսորների վրա հարձակվելիս՝ առաջացնելով արտահոսք տարբեր տրամաբանական պրոցեսորի միջուկների միջև, կատարումը եղել է 250 Կբիթ/վրկ՝ 5.59% սխալի արագությամբ և 168.58 Կբիթ/վ՝ սխալի ուղղման դեպքում։ Համեմատած դասական Spectre v1 մեթոդի հետ՝ նոր հարձակումը 2.6 անգամ ավելի արագ էր։

Ակնկալվում է, որ micro-op cache-ի հարձակումից պաշտպանվելու համար կպահանջվեն փոփոխություններ, որոնք ավելի շատ կնվազեցնեն կատարողականությունը, քան եթե միացնեիք Spectre հարձակման պաշտպանությունը: Որպես օպտիմալ փոխզիջում, առաջարկվում է արգելափակել նման հարձակումները ոչ թե անջատելով քեշավորումը, այլ անոմալիաների մոնիտորինգի և հարձակումներին բնորոշ քեշի վիճակների հայտնաբերման մակարդակով։

Ինչպես Spectre-ի հարձակումներում, միջուկից կամ այլ գործընթացներից արտահոսքի կազմակերպումը պահանջում է հրամանների (գործիքների) որոշակի հաջորդականության կատարում զոհի գործընթացների կողմից, ինչը հանգեցնում է հրահանգների սպեկուլյատիվ կատարմանը: Linux-ի միջուկում մոտ 100 նմանատիպ գաջեթ է հայտնաբերվել, որոնք կհեռացվեն, սակայն դրանց ստեղծման համար պարբերաբար հայտնաբերվում են լուծումներ, օրինակ՝ կապված միջուկում հատուկ մշակված BPF ծրագրերի գործարկման հետ:

Source: opennet.ru

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