Կասպերը՝ կոդերի կատարման հետ կապված խնդիրների սպեկուլյատիվ սկաներ Linux միջուկում, հասանելի է

Ամստերդամի Ազատ համալսարանի հետազոտողների թիմը հրապարակել է Kasper գործիքակազմ, որը նախատեսված է Linux միջուկում կոդերի հատվածները հայտնաբերելու համար, որոնք կարող են օգտագործվել պրոցեսորի վրա սպեկուլյատիվ կոդի կատարման հետևանքով առաջացած Specter դասի խոցելիությունը շահագործելու համար: Գործիքակազմի սկզբնական կոդը բաշխվում է Apache 2.0 լիցենզիայի ներքո:

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

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

Խնդրահարույց գաջեթների հայտնաբերման որակը բարելավելու համար Kasper-ը մոդելավորում է խոցելիությունները, որոնք հարձակվողը կարող է օգտագործել Specter դասի գրոհներն իրականացնելու յուրաքանչյուր քայլում. մոդելավորվում են խնդիրները, որոնք թույլ են տալիս տվյալների վերահսկում (օրինակ՝ փոխարինելով հարձակվողի տվյալները միկրոճարտարապետական ​​կառույցներով՝ ազդելու հետագա սպեկուլյատիվ կատարման վրա՝ օգտագործելով LVI դասի հարձակումներ), մուտք գործեք գաղտնի տեղեկատվություն (օրինակ, երբ դուրս եք գալիս բուֆերային սահմաններից կամ օգտագործում եք հիշողությունը այն ազատելուց հետո) և գաղտնի տեղեկատվության արտահոսք (օրինակ՝ վերլուծելով պրոցեսորի քեշի վիճակը կամ օգտագործելով MDS մեթոդը):

Կասպերը՝ կոդերի կատարման հետ կապված խնդիրների սպեկուլյատիվ սկաներ Linux միջուկում, հասանելի է

Փորձարկելիս միջուկը կապվում է Kasper գործարկման գրադարանների հետ և ստուգում է LLVM մակարդակով: Ստուգման գործընթացը ընդօրինակում է կոդերի սպեկուլյատիվ կատարումը, որն իրականացվում է անցակետի վերականգնման մեխանիզմի միջոցով, որը հատուկ կատարում է սխալ կանխատեսված ծածկագրի ճյուղը, այնուհետև վերադառնում է սկզբնական վիճակին՝ նախքան ճյուղը սկսելը: Kasper-ը նաև փորձում է մոդելավորել տարբեր ծրագրային և ապարատային խոցելիություններ, վերլուծում է ճարտարապետական ​​և միկրոճարտարապետական ​​էֆեկտների ազդեցությունը և կատարում հարձակվողի հնարավոր գործողությունների fuzz թեստավորում: Կատարման հոսքերը վերլուծելու համար օգտագործվում է Linux միջուկի DataFlowSanitizer պորտը, իսկ fuzzing թեստավորման համար՝ syzkaller փաթեթի փոփոխված տարբերակը:

Կասպերը՝ կոդերի կատարման հետ կապված խնդիրների սպեկուլյատիվ սկաներ Linux միջուկում, հասանելի է

Linux-ի միջուկի սկանավորումը Kasper-ի միջոցով հայտնաբերել է 1379 նախկինում անհայտ գաջեթներ, որոնք կարող են հանգեցնել տվյալների արտահոսքի հրահանգների սպեկուլյատիվ կատարման ժամանակ: Նշվում է, որ թերևս դրանցից միայն մի քանիսը կարող են իրական խնդիրներ առաջացնել, բայց ցույց տալու համար, որ կա իրական վտանգ, և ոչ միայն տեսական, խնդրահարույց կոդի բեկորներից մեկի համար մշակվել է շահագործման գործող նախատիպը, որը հանգեցնում է տեղեկատվության: արտահոսք միջուկի հիշողությունից:

Source: opennet.ru

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