Qualcomm չիպերի խոցելիություն, որը թույլ է տալիս մասնավոր բանալիներ հանել TrustZone պահեստից

NCC խմբի հետազոտողները բացված մանրամասները խոցելիություններ (CVE-2018-11976- ը) Qualcomm չիպերում, որը թույլ է տալիս որոշել մասնավոր գաղտնագրման բանալիների պարունակությունը, որոնք տեղակայված են Qualcomm QSEE մեկուսացված անկլավում (Qualcomm Secure Execution Environment)՝ հիմնված ARM TrustZone տեխնոլոգիայի վրա: Խնդիրն իրեն դրսևորում է մեծ մասը Snapdragon SoC, որը լայն տարածում է գտել Android հարթակի վրա հիմնված սմարթֆոններում։ Խնդիրը շտկող շտկումներն արդեն կան ներառյալ ապրիլի Android-ի թարմացման և Qualcomm չիպերի նոր որոնվածի թողարկումներում: Qualcomm-ից ավելի քան մեկ տարի պահանջվեց ուղղման պատրաստման համար, խոցելիության մասին տեղեկատվությունը սկզբնապես ուղարկվել էր Qualcomm-ին 19 թվականի մարտի 2018-ին:

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

Խոցելիությունը պայմանավորված է էլիպսային կորի մշակման ալգորիթմի ներդրման թերությամբ, որը հանգեցրել է տվյալների մշակման առաջընթացի մասին տեղեկատվության արտահոսքի: Հետազոտողները մշակել են կողային ալիքի հարձակման տեխնիկա, որը թույլ է տալիս օգտագործել առկա անուղղակի արտահոսքերը՝ վերականգնելու անձնական բանալիների պարունակությունը, որոնք գտնվում են ապարատային մեկուսացված վիճակում: Android Keystore. Արտահոսքերը որոշվում են ճյուղի կանխատեսման բլոկի գործունեության և հիշողության մեջ տվյալների մուտքի ժամանակի փոփոխության հիման վրա: Փորձի ընթացքում հետազոտողները հաջողությամբ ցուցադրեցին 224 և 256 բիթանոց ECDSA ստեղների վերականգնումը Nexus 5X սմարթֆոնում օգտագործվող ապարատային մեկուսացված բանալիների պահեստից: Բանալին վերականգնելու համար պահանջվում էր մոտ 12 հազար թվային ստորագրություն ստեղծել, ինչը տևեց ավելի քան 14 ժամ։ Հարձակումն իրականացնելու համար օգտագործվող գործիքներ Cachegrab.

Խնդիրի հիմնական պատճառը TrustZone-ում և հիմնական համակարգում հաշվարկների համար ընդհանուր ապարատային բաղադրիչների և քեշի համօգտագործումն է. մեկուսացումն իրականացվում է տրամաբանական տարանջատման մակարդակով, բայց օգտագործելով ընդհանուր հաշվարկային միավորներ և հաշվարկների և ճյուղի մասին տեղեկատվության հետքերով: հասցեները պահվում են ընդհանուր պրոցեսորի քեշում: Օգտագործելով Prime+Probe մեթոդը, որը հիմնված է քեշավորված տեղեկատվության մուտքի ժամանակի փոփոխության գնահատման վրա, հնարավոր է, ստուգելով որոշակի օրինաչափությունների առկայությունը քեշում, վերահսկել տվյալների հոսքերը և կոդի կատարման նշանները՝ կապված թվային ստորագրությունների հաշվարկների հետ: TrustZone-ը բավականին բարձր ճշգրտությամբ:

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

Qualcomm-ի դեպքում, բազմապատկման ալգորիթմում հայտնաբերվել են երկու տեղ, որտեղ նման տեղեկատվության արտահոսք է եղել՝ աղյուսակներում որոնողական գործողություններ կատարելիս և պայմանական տվյալների որոնման կոդում, որը հիմնված է «ոչ» վեկտորի վերջին բիտի արժեքի վրա: Չնայած այն հանգամանքին, որ Qualcomm կոդը պարունակում է միջոցներ երրորդ կողմի ալիքներով տեղեկատվության արտահոսքին հակազդելու համար, մշակված հարձակման մեթոդը թույլ է տալիս շրջանցել այդ միջոցները և որոշել «ոչ» արժեքի մի քանի բիթ, որոնք բավարար են 256-բիթանոց ECDSA ստեղները վերականգնելու համար:

Source: opennet.ru

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