Դարբին - նոր հարձակում DRAM հիշողության և DDR4 չիպերի վրա

Ցյուրիխի, Vrije Universiteit Amsterdam-ի և Qualcomm-ի հետազոտողների թիմը հրապարակել է RowHammer հարձակման նոր մեթոդ, որը կարող է փոխել դինամիկ պատահական մուտքի հիշողության (DRAM) առանձին բիթերի բովանդակությունը: Հարձակումը կրել է «Դարբին» ծածկագիրը և նույնականացվել է որպես CVE-2021-42114: Նախկինում հայտնի RowHammer դասի մեթոդներից պաշտպանված շատ DDR4 չիպեր ենթակա են խնդրին: Ձեր համակարգերը խոցելիության համար ստուգելու գործիքները հրապարակված են GitHub-ում:

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

RowHammer-ից պաշտպանվելու համար չիպերի արտադրողները առաջարկել են TRR (Target Row Refresh) մեխանիզմը, որը պաշտպանում է հարակից տողերի բջիջների կոռուպցիայից, բայց քանի որ պաշտպանությունը հիմնված էր «անվտանգության կողմից անհայտության» սկզբունքի վրա, այն չլուծեց խնդիրը: արմատը, բայց պաշտպանված է միայն հայտնի հատուկ դեպքերից, ինչը հեշտացրել է պաշտպանությունը շրջանցելու ուղիներ գտնելը: Օրինակ, մայիսին Google-ն առաջարկեց Half-Double մեթոդը, որի վրա TRR պաշտպանությունը չէր ազդել, քանի որ հարձակումը ազդել է բջիջների վրա, որոնք ուղղակիորեն չեն հարում թիրախին:

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

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

Պարզվեց, որ մեթոդը զգալիորեն ավելի արդյունավետ է, քան նախկինում առաջարկված TRR-ի շրջանցման մեթոդները. հետազոտողներին հաջողվել է հասնել բիթային խեղաթյուրման բոլոր վերջերս գնված 40 տարբեր DDR4 հիշողության չիպերում, որոնք արտադրվել են Samsung-ի, Micron-ի, SK Hynix-ի և անհայտ արտադրողի կողմից (արտադրողը նշված չէ 4 չիպերի վրա): Համեմատության համար նշենք, որ նախկինում նույն հետազոտողների կողմից առաջարկված TRRespass մեթոդն արդյունավետ է եղել այն ժամանակ փորձարկված 13 չիպերից միայն 42-ի համար։

Ընդհանուր առմամբ, ակնկալվում է, որ Blacksmith մեթոդը կկիրառվի շուկայում առկա բոլոր DRAM չիպերի 94%-ի վրա, սակայն հետազոտողները ասում են, որ որոշ չիպեր ավելի խոցելի են և ավելի հեշտ են հարձակվել, քան մյուսները: Չիպերում սխալների ուղղման կոդերի (ECC) օգտագործումը և հիշողության թարմացման արագության կրկնապատկումը չի ապահովում ամբողջական պաշտպանություն, բայց բարդացնում է աշխատանքը: Հատկանշական է, որ խնդիրը չի կարող արգելափակվել արդեն թողարկված չիպերում և պահանջում է նոր պաշտպանության ներդրում ապարատային մակարդակում, ուստի հարձակումը երկար տարիներ ակտուալ կմնա։

Գործնական օրինակները ներառում են Blacksmith-ի օգտագործման մեթոդները հիշողության էջերի աղյուսակում մուտքերի բովանդակությունը փոխելու համար (PTE, էջի աղյուսակի մուտքագրում) միջուկի արտոնություններ ստանալու համար՝ փչացնելով OpenSSH հիշողության մեջ պահվող RSA-2048 հանրային բանալին (կարող եք հանրային բանալին բերել ուրիշի վիրտուալ մեքենան, որը կհամապատասխանի հարձակվողի անձնական բանալին՝ զոհի VM-ին միանալու համար) և շրջանցելու հավատարմագրերի ստուգումը` փոփոխելով sudo գործընթացի հիշողությունը՝ արմատային արտոնություններ ստանալու համար: Կախված չիպից, մեկ թիրախային բիթ փոխելու համար պահանջվում է 3 վայրկյանից մինչև մի քանի ժամ հարձակման ժամանակ:

Բացի այդ, մենք կարող ենք նշել բաց LiteX Row Hammer Tester շրջանակի հրապարակումը RowHammer դասի հարձակումներից հիշողության պաշտպանության մեթոդների փորձարկման համար, որը մշակվել է Antmicro-ի կողմից Google-ի համար: Շրջանակը հիմնված է FPGA-ի օգտագործման վրա՝ ամբողջությամբ վերահսկելու հրամանները, որոնք ուղղակիորեն փոխանցվում են DRAM չիպին՝ վերացնելու հիշողության կարգավորիչի ազդեցությունը: Toolkit-ը Python-ում առաջարկվում է FPGA-ի հետ փոխգործակցության համար: FPGA-ի վրա հիմնված դարպասը ներառում է փաթեթային տվյալների փոխանցման մոդուլ (սահմանում է հիշողության հասանելիության օրինաչափությունները), Payload Executor, LiteDRAM-ի վրա հիմնված վերահսկիչ (մշակում է DRAM-ի համար անհրաժեշտ ողջ տրամաբանությունը, ներառյալ տողերի ակտիվացումը և հիշողության թարմացումը) և VexRiscv CPU: Ծրագրի մշակումները բաշխվում են Apache 2.0 լիցենզիայի ներքո: Աջակցվում են տարբեր FPGA հարթակներ, ներառյալ Lattice ECP5, Xilinx Series 6, 7, UltraScale և UltraScale+:

Source: opennet.ru

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