LVI - новы клас нападаў на механізм спекулятыўнага выканання ў CPU

Абнародаваны звесткі аб новым класе нападаў LVI (Load Value Injection, CVE-2020-0551) на механізм спекулятыўнага выканання ў CPU Intel, якія могуць выкарыстоўвацца для арганізацыі ўцечкі ключоў і сакрэтных дадзеных з анклаваў Intel SGX і іншых працэсаў.

Новы клас нападаў заснаваны на маніпуляцыях з тымі ж мікраархітэктурнымі структурамі, што і ў нападах МДС (Microarchitectural Data Sampling), Spectre і Meltdown. Пры гэтым новыя напады не блакуюцца існуючымі метадамі абароны ад Meltdown, Spectre, MDS і іншых падобных нападаў. Для забеспячэння эфектыўнай абароны ад LVI патрабуецца занясенне апаратных змен у CPU. Пры арганізацыі абароны праграмным шляхам, праз даданне кампілятарам інструкцыі LFENCE пасля кожнай аперацыі загрузкі з памяці і замену інструкцыі RET на POP, LFENCE і JMP, фіксуюцца занадта вялікія накладныя выдаткі - па адзнацы даследнікаў поўная праграмная абарона прывядзе да зніжэння прадукцыйнасці ў 2-19 раз.

Часткова, цяжкасць блакавання праблемы кампенсуецца тым, што ў наш час напад носіць больш тэарэтычны, чым практычны характар ​​(атака тэарэтычна магчымая, але вельмі цяжкая ў рэалізацыі і ўзнаўляльная толькі ў сінтэтычных тэстах).
Кампанія Intel прысвоіла праблеме ўмераны ўзровень небяспекі (5.6 з 10) і выпусціла абнаўленне прашыўкі і SDK для асяроддзя SGX, у якіх паспрабавала блакаваць правядзенне нападу абыходным шляхам. Прапанаваныя метады нападу пакуль дастасавальныя толькі да працэсарам Intel, але не выключаецца магчымасць адаптацыі LVI і для іншых працэсараў, да якіх дастасавальныя напады класа Meltdown.

Праблема была выяўлена ў красавіку мінулага года даследчыкам Джо Ван Балкам (Jo Van Bulck) з Лёвенскага ўніверсітэта, пасля чаго пры ўдзеле 9 даследчыкаў з іншых універсітэтаў, былі распрацаваны пяць базавых метадаў здзяйснення нападаў, кожны з якіх дапускае існаванне больш спецыфічных. варыянтаў. Незалежна ў лютым гэтага года даследнікі з кампаніі Bitdefender таксама выявілі адзін з варыянтаў нападу LVI і паведамілі аб ім у Intel. Варыянты нападаў адрозніваюцца выкарыстаннем розных мікраархітэктурных структур, такіх як буфер захоўвання (SB, Store Buffer), буфер запаўнення (LFB, Line Fill Buffer), буфер пераключэнне кантэксту FPU і кэш першага ўзроўня (L1D), раней ужывальных у такіх нападах як ZombieLoad, РІДЛ, Ападкі, LazyFP, Foreshadow и Расплаўлення.

LVI - новы клас нападаў на механізм спекулятыўнага выканання ў CPU

асноўным адзнакай LVI ад нападаў MDS з'яўляецца тое, што MDS маніпулюе вызначэннем змесціва мікраархітэктурных структур, якія застаюцца ў кэшы пасля спекулятыўнай апрацоўкі выключэнняў (fault) або аперацый load і store, у той час як
напады LVI дазваляюць дамагчыся падстаноўкі дадзеных атакавалага ў мікраархітэктурныя структуры для ўплыву на наступнае спекулятыўнае выкананні кода ахвяры. Пры дапамозе паказаных маніпуляцый атакавалы можа атрымаць змесціва зачыненых структур дадзеных у іншых працэсах пры выкананні вызначанага кода на мэтавым ядры CPU.

LVI - новы клас нападаў на механізм спекулятыўнага выканання ў CPU

Для эксплуатацыі праблемы у кодзе працэсу-ахвяры павінны сустракацца спецыяльныя паслядоўнасці кода (гаджэты), у якіх загружаецца кантраляванае атакавалым значэнне, а загрузка гэтага значэння прыводзіць да ўзнікнення выключэнняў (fault, abort або assist), якія адкідаюць вынік і паўторна выконваюць інструкцыю. Пры апрацоўцы выключэння ўзнікае спекулятыўнае акно, падчас якога адбываецца ўцечка апрацоўваных у гаджэце дадзеных. У прыватнасці, працэсар пачынае выконваць у спекулятыўным рэжыме кавалак кода (гаджэт), потым вызначае, што прадказанне не апраўдалася і адкочвае аперацыі ў зыходны стан, але апрацаваныя падчас спекулятыўнага выканання дадзеныя абсоўваюцца ў кэшы L1D і мікраархітэктурных буферах і даступныя для вымання з іх з выкарыстаннем вядомых метадаў вызначэння рэшткавых дадзеных па іншых каналах.

Выключэнне "assist", у адрозненне ад "fault", апрацоўваецца ўсярэдзіне працэсара без выкліку праграмных апрацоўшчыкаў. Assist можа ўзнікнуць, напрыклад, калі патрабуецца абнавіць біт A (Accessed) ці D (Dirty) у табліцы старонак памяці. Галоўная складанасць правядзення нападу на іншыя працэсы ў тым, як ініцыяваць узнікненне assist, маніпулюючы працэсам ахвяры. У наш час не існуе надзейных спосабаў зрабіць гэта, але ў будучыні не выключаецца іх знаходжанне. Магчымасць здзяйснення нападу пакуль пацверджана толькі для анклаваў Intel SGX, астатнія сцэнары з'яўляюцца тэарэтычнымі ці ўзнаўляюцца ў сінтэтычных умовах (патрабуецца даданне ў код вызначаных гаджэтаў)

LVI - новы клас нападаў на механізм спекулятыўнага выканання ў CPU

LVI - новы клас нападаў на механізм спекулятыўнага выканання ў CPU

Магчымыя вектары нападаў:

  • Уцечка дадзеных са структур ядра ў працэс на ўзроўні карыстальніка. Наяўная ў ядры Linux абарона ад нападаў класа Spectre 1, а таксама механізм абароны SMAP (Supervisor Mode Access Prevention) істотна памяншаюць верагоднасць нападу LVI. Унясенне дадатковай абароны ў ядро ​​можа запатрабавацца пры выяўленні ў будучыні прасцейшых метадаў правядзення нападу LVI.
  • Уцечка дадзеных паміж рознымі працэсамі. Для нападу патрабуецца наяўнасць вызначаных фрагментаў кода ў прыкладанні і вызначэнне метаду фармавання выключэння ў мэтавым працэсе.
  • Уцечка дадзеных з хост-акружэння ў гасцёўню сістэму. Атака аднесена да катэгорыі занадта складаных, патрабавальных выкананні розных цяжкарэалізуемых крокаў і прадказанняў актыўнасці ў сістэме.
  • Уцечка дадзеных паміж працэсамі ў розных гасцявых сістэмах. Вектар нападу блізкі да арганізацыі ўцечкі дадзеных паміж рознымі працэсамі, але дадаткова патрабуе выкананні складаных маніпуляцый для абыходу ізаляцыі паміж гасцёўнямі сістэмамі.

Даследчыкамі апублікавана некалькі прататыпаў з дэманстрацыяй прынцыпаў правядзення нападу, але яны пакуль непрыдатныя для здзяйснення рэальных нападаў. Першы прыклад дазваляе перанакіраваць спекулятыўнае выкананне кода падчас-ахвяры па аналогіі з зваротна-арыентаваным праграмаваннем (ROP, Return-Oriented Programming). У дадзеным прыкладзе ў якасці ахвяры выступае адмыслова падрыхтаваны працэс, утрымоўвальны неабходныя гаджэты (ужыванне нападу да рэальных іншым працэсам абцяжарана). Другі прыклад дазваляе ўклінавацца ў вылічэнні пры шыфраванні AES усярэдзіне анклава Intel SGX і арганізаваць уцечку дадзеных падчас спекулятыўнага выканання інструкцый для ўзнаўлення значэння ўжывальнага для шыфравання ключа.


Крыніца: opennet.ru

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