Прадстаўлены новы клас уразлівасцяў у працэсарах Intel

Кампанія Intel апублікавала звесткі аб новым класе ўразлівасцяў у сваіх працэсарах - МДС (Microarchitectural Data Sampling). Як і мінулыя напады класа Spectre новыя праблемы могуць прывесці да ўцечкі зачыненых дадзеных аперацыйнай сістэмы, віртуальных машын і чужых працэсаў. Сцвярджаецца, што праблемы перш былі выяўлены супрацоўнікамі і партнёрамі Intel падчас унутранага аўдыту, поле чаго інфармацыю аб аналагічных праблемах у Intel перадалі незалежныя даследнікі. Працэсары AMD і ARM праблеме не схільныя.

На аснове выяўленых праблем даследчыкамі з Грацкага тэхнічнага ўніверсітэта (Аўстрыя) распрацавана некалькі практычных нападаў па іншых каналах:

  • ZombieLoad (PDF) - дазваляе атрымаць канфідэнцыйную інфармацыю з іншых працэсаў, аперацыйнай сістэмы, віртуальных машын і абароненых анклаваў (TEE, Trusted Execution Environment). Напрыклад, прадэманстравана магчымасць вызначэння гісторыі адкрыцця старонак у Tor browser, запушчаным у іншай віртуальнай машыне, а таксама вызначэнне выкарыстоўваных у дадатках ключоў доступу і пароляў;


  • РІДЛ (PDF) - дазваляе арганізаваць уцечку інфармацыі паміж рознымі ізаляванымі абласцямі ў працэсарах Intel, такімі як буферы запаўнення, буферы захоўвання і парты загрузкі. Прыклады правядзення нападу паказаны для арганізацыі ўцечак з іншых працэсаў, аперацыйнай сістэмы, віртуальных машын і абароненых анклаваў. Напрыклад, паказана як пазнаць змесціва хэша пароля root з /etc/shadow пры перыядычных спробах аўтэнтыфікацыі (атака заняла 24 гадзіны);

    Акрамя таго паказаны прыклад правядзення нападу з выкарыстаннем JavaScript і WebAssembly пры адкрыцці шкоднаснай старонкі ў рухавічку SpiderMonkey (у сучасных паўнавартасных браўзэрах падобная атака малаверагодная з-за абмежаванні дакладнасці таймера і мер для абароны ад Spectre);

  • Ападкі (PDF) - дае магчымасць чытаць дадзеныя, нядаўна запісаныя аперацыйнай сістэмай і вызначаць раскладку памяці АС для спрашчэння правядзення іншых нападаў;
  • Store-To-Leak Forwarding - эксплуатуе аптымізацыі CPU па рабоце з буферам захоўвання і можа прымяняцца для абыходу механізму рандомизации адраснай прасторы ядра (KASLR), для маніторынгу стану аперацыйнай сістэмы або для арганізацыі уцечак у камбінацыі з гаджэтамі на базе метадаў Spectre.

Выяўленыя уразлівасці:

  • CVE-2018-12126 - MSBDS (Microarchitectural Store Buffer Data Sampling), аднаўленне змесціва буфераў захоўвання. Выкарыстоўваецца ў нападзе Fallout. Ступень небяспекі вызначана ў 6.5 балаў (CVSS);
  • CVE-2018-12127 – MLPDS (Microarchitectural Load Port Data Sampling), аднаўленне змесціва партоў загрузкі. Выкарыстоўваецца ў нападзе RIDL. CVSS 6.5;
  • CVE-2018-12130 – MFBDS (Microarchitectural Fill Buffer Data Sampling), аднаўленне змесціва буфераў запаўнення. Выкарыстоўваецца ў нападах ZombieLoad і RIDL. CVSS 6.5;
  • CVE-2019-11091 – MDSUM (Microarchitectural Data Sampling Uncacheable Memory), аднаўленне змесціва некэшаванай памяці. Выкарыстоўваецца ў нападзе RIDL. CVSS 3.8.

сутнасць выяўленых праблем у магчымасці прымянення метадаў аналізу па іншых каналах да дадзеных у мікраархітэктурных структурах, да якіх прыкладанні напрамую не маюць доступу. Гаворка вядзецца пра такія нізкаўзроўневыя структуры, як буферы запаўнення (Line Fill Buffer), буферы захоўвання (Store Buffer) і парты загрузкі (Load Port), якія з'яўляюцца драбнейшымі складовымі блокамі, чым кэш першага ўзроўня (L1D), кэш загрузкі дадзеных (RDCL ) або L1TF (L1 Terminal Fault), і адпаведна ўключаюць менш інфармацыі і абнаўляюцца больш інтэнсіўна.

Прадстаўлены новы клас уразлівасцяў у працэсарах Intel

Напады па іншых каналах на мікраархітэктурныя структуры істотна складаней у правядзенні ў параўнанні з метадамі аднаўлення змесціва кэша і патрабуюць адсочвання і аналізу значных аб'ёмаў дадзеных для вызначэння іх сувязі з вызначанымі адрасамі ў памяці (па сутнасці, атакавалы не можа мэтанакіравана перахапіць пэўныя дадзеныя, а можа працяглае час назапашваць уцечкі і прымяняць статыстычныя метады для рэканструкцыі пэўных відаў дадзеных). Акрамя таго, напад закранае толькі дадзеныя на тым жа фізічным ядры CPU, што і код атакавалага.

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

Парты загрузкі выкарыстоўваюцца працэсарам для атрымання дадзеных з памяці ці падсістэмы ўводу/высновы і паданні атрыманай інфармацыі ў рэгістры CPU. З-за асаблівасці рэалізацыі дадзеныя ад старых аперацый загрузкі застаюцца ў партах да іх перазапісу новымі дадзенымі, што дазваляе ўскосна вызначыць стан дадзеных у порце загрузкі пры дапамозе маніпуляцый з выключэннямі (fault) і інструкцыямі SSE/AVX/AVX-512, якія загружаюць больш за 64 біт дадзеных. У падобных умовах аперацыі загрузкі спекулятыўна засвечваюць састарэлыя значэнні дадзеных з унутраных структур у залежныя аперацыі. Падобнай выявай арганізуецца ўцечка праз буфер захоўвання, які ўжываецца для паскарэння запісу ў кэш CPU і ўлучальны ў сябе табліцу адрасоў, значэнняў і сцягоў, а таксама праз буфер запаўнення, які ўтрымоўвае дадзеныя, пакуль адсутныя ў кэшы L1 (cache-miss), на час іх загрузкі з кэшаў іншых узроўняў.

Прадстаўлены новы клас уразлівасцяў у працэсарах Intel

праблема закранае мадэлі працэсараў Intel, якія выпускаюцца з 2011 года (пачынаючы з 6 пакалення). Пры гэтым апаратна ўразлівасці блакуюцца пачынальна з некаторых мадэляў 8 і 9 пакаленняў Intel Core і 2 пакаленні Intel Xeon Scalable (праверыць можна праз біт ARCH_CAP_MDS_NO у IA32_ARCH_CAPABILITIES MSR). Уразлівасці таксама ўжо ліквідаваны на ўзроўні прашывак, мікракода і аперацыйных сістэм. Па адзнацы Intel страта прадукцыйнасці пасля актывацыі выпраўлення для большасці карыстачоў не перавышае 3%. Пры адключэнні тэхналогіі Hyper-Threading зніжэнне прадукцыйнасці можа даходзіць да 9% у цесцю SPECint_rate_base, да 11% пры актыўных цэлалікавых вылічэннях і да 19% пры выкананні серверных Java-прыкладанняў (пры ўключаным HT зніжэнне прадукцыйнасці амаль адсутнічае). Выпраўленні практычна не ўплываюць на прадукцыйнасць аперацый, звязаных з уводам / высновай.

У ядры Linux абарона ад MDS дададзена у сённяшніх абнаўленнях 5.1.2, 5.0.16,
4.19.43, 4.14.119 і 4.9.176. Метад абароны будуецца на ачыстцы змесціва мікраархітэктурных буфераў у момант вяртання з ядра ў прастору карыстача ці пры перадачы кіравання гасцёўні сістэме, для чаго выкарыстоўваецца інструкцыя VERW. Для працы зашытыя патрабуецца наяўнасць падтрымкі рэжыму MD_CLEAR, рэалізаванага ў свежым абнаўленні мікракода. Для поўнай засцярогі таксама рэкамендуецца адключыць Hyper Threading. Для праверкі схільнасці сістэме ўразлівасці ў ядро ​​Linux дададзены апрацоўшчык "/sys/devices/system/cpu/vulnerabilities/mds". Для кіравання ўключэннем розных рэжымаў блакавання ўразлівасці ў ядро ​​дададзены параметр "mds=", які можа прымаць значэнні "full", "full, nosmt" (адключэнне Hyper-Threads), "vmwerv" і "off".

Абнаўленні пакетаў ужо выпушчаны для RHEL и Ubuntu, але пакуль застаюцца недаступныя для Debian, Мяккая фетравы капялюш и SUSE.
Выпраўленне для блакавання ўцечак дадзеных з віртуальных машын таксама сфарміравана для гіпервізара Xen. Для абароны сістэм віртуалізацыі, якія выконваюць выклік каманды L1D_FLUSH перад перадачай кіравання іншай віртуальнай машыне, і для абароны анклаваў Intel SGX дастаткова абнаўленні мікракода.

Крыніца: opennet.ru

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