Новы варыянт нападу Foreshadow, які закранае працэсары Intel, AMD, ARM і IBM

Група даследчыкаў з Грацкага тэхнічнага ўніверсітэта (Аўстрыя) і Цэнтра Гельмгольца па інфармацыйнай бяспецы (CISPA), выявіла (PDF) новы вектар ужывання нападу па іншых каналах Foreshadow (L1TF), якая дазваляе атрымаць дадзеныя з памяці анклаваў Intel SGX, SMM (System Management Mode), абласцей памяці ядра АС і віртуальных машын у сістэмах віртуалізацыі. У адрозненне ад прапанаванага ў 2018 годзе першапачатковага нападу Foreshadow новы варыянт не спецыфічны для працэсараў Intel і закранае CPU іншых вытворцаў, такіх як ARM, IBM і AMD. Акрамя таго, новы варыянт не патрабуе высокай прадукцыйнасці і напад можа быць ажыццёўлена нават пры дапамозе запуску JavaScript і WebAssembly у web-браўзэры.

Атака Foreshadow карыстаецца тым, што пры доступе да памяці па віртуальным адрасе, які прыводзіць да выключэння (terminal page fault), працэсар спекулятыўна разлічвае фізічны адрас і загружае дадзеныя, калі яны маюцца ў L1-кэшы. Спекулятыўны зварот выконваецца да завяршэння перабору табліцы старонак памяці і незалежна ад стану запісу ў табліцы старонак памяці (PTE), г.зн. да праверкі наяўнасці дадзеных у фізічнай памяці і іх даступнасці для чытання. Пасля завяршэння праверкі даступнасці памяці, у выпадку адсутнасці сцяга Present у PTE аперацыя адкідваецца, але дадзеныя асядаюць у кэшы і іх можна атрымаць пры дапамозе метадаў вызначэння змесціва кэша па іншых каналах (праз аналіз змены часу доступу да пракэшаваных і не пракэшаваных дадзеных).

Даследнікі паказалі, што існуючыя метады абароны ад Foreshadow неэфектыўныя і рэалізаваны з няслушнай трактоўкай праблемы. Уразлівасць
Foreshadow можа быць эксплуатаваная незалежна ад ужывання ў ядры механізмаў абароны, якія раней лічыліся дастатковымі. У выніку даследнікамі была прадэманстравана магчымасць здзяйснення нападу Foreshadow у сістэмах з адносна старымі ядрамі, у якіх уключаны ўсе наяўныя рэжымы абароны ад Foreshadow, а таксама з новымі ядрамі, у якіх адключаная толькі абарона ад Spectre-v2 (выкарыстоўваецца опцыя ядра Linux nospectre_v2).

Было выяўлена, што эфект папераджальнай загрузкі не злучаны з праграмнымі інструкцыямі prefetch або апаратным эфектам
папераджальнай загрузкі падчас доступу да памяці, а ўзнікае пры спекулятыўным разнаймення рэгістраў прасторы карыстача ў ядры. Падобнае няправільнае тлумачэнне прычыны ўзнікнення ўразлівасці першапачаткова прывяло да здагадкі, што ўцечка дадзеных у Foreshadow можа адбыцца толькі праз кэш L1, у той час як наяўнасць у ядры вызначаных урыўкаў кода (prefetch-гаджэтаў) можа спрыяць уцечцы дадзеных па-за L1-кэшам. кэш L3.

Выяўленая асаблівасць таксама адкрывае магчымасці па стварэнні новых нападаў, накіраваных на працэсы трансляцыі віртуальных адрасоў у фізічныя ў ізаляваных асяродках і вызначэнне адрасоў і дадзеных, захаваных у рэгістрах CPU. У якасці дэманстрацый даследнікі паказалі магчымасць выкарыстання выяўленага эфекту для вымання дадзеных з аднаго працэсу ў іншы з прадукцыйнасцю каля 10 біт у секунду на сістэме з CPU Intel Core i7-6500U CPU. Таксама паказана магчымасць уцечкі змесціва рэгістраў з анклава Intel SGX (на вызначэнне 32-разраднага значэння, запісанага ў 64-разрадны рэгістр сышло 15 хвілін). Некаторыя віды нападаў аказалася магчымым рэалізаваць на JavaScript і WebAssembly, напрыклад, атрымалася вызначыць фізічны адрас JavaScript-пераменнай і запоўніць 64-разрадныя рэгістры значэннем, кантраляваным атакавалым.

Для блакавання нападу Foreshadow праз кэш L3 эфектыўны метад абароны Spectre-BTB (Branch Target Buffer), рэалізаваны ў наборы патчаў retpoline. Такім чынам, даследнікі лічаць неабходным пакіданне retpoline уключаным нават на сістэмах з новымі CPU, у якіх ужо маецца абарона ад вядомых уразлівасцяў у механізме спекулятыўнага выканання інструкцый CPU. Пры гэтым прадстаўнікі Intel заявілі, што не плануюць дадаваць у працэсары дадатковыя меры абароны ад Foreshadow і лічаць дастатковым уключэнні абароны ад нападаў Spectre V2 і L1TF (Foreshadow).

Крыніца: opennet.ru

Дадаць каментар