L1DES (CacheOut) і VRS – новыя ўразлівасці ў мікраархітэктурных структурах CPU Intel

Кампанія Intel раскрыла звесткі аб двух новых уразлівасцях у CPU Intel, выкліканых уцечкай дадзеных з кэша L1D (CVE-2020-0549, L1DES - L1D Eviction Sampling) і вектарных рэгістраў (CVE-2020-0548, VRS – Vector Register Sampling). Уразлівасці ставяцца да класа МДС (Microarchitectural Data Sampling) і засноўваюцца на ўжыванні метадаў аналізу па іншых каналах да дадзеных у мікраархітэктурных структурах. AMD, ARM і іншыя працэсары праблемам не схільныя.

Найбольшую небяспеку ўяўляе ўразлівасць L1DES, якая дапускае ссяданне блокаў пракэшаваных дадзеных (cache line), якія выцясняюцца з кэша першага ўзроўня (L1D), у буферы запаўнення (Fill Buffer), які на дадзеным этапе павінен быць пустым. Для вызначэння аселых у буферы запаўнення дадзеных дастасавальныя метады аналізу па іншых каналах, раней прапанаваныя ў нападах МДС (Microarchitectural Data Samping) і таа (Transactional Asynchronous Abort). Сутнасць раней рэалізаванай абароны ад
MDS і TAA у ачыстцы микроархитектурных буфераў перад пераключэннем кантэксту, але, як аказалася, пры некаторых умовах дадзеныя спекулятыўна скідаюцца ў буферы пасля аперацыі ачысткі, таму метады MDS і TAA застаюцца дастасавальныя.

L1DES (CacheOut) і VRS – новыя ўразлівасці ў мікраархітэктурных структурах CPU Intel

У выніку атакавалы можа дамагчыся азначэнні выцесненых з кэша першага ўзроўня дадзеных, якія былі змененыя падчас выкананні прыкладання, да гэтага займалага бягучае ядро ​​CPU, ці прыкладанняў, раўналежна выкананых у іншых лагічных струменях (hyperthread) на тым жа ядры CPU (адключэнне HyperThreading зводзіць на няма эфектыўнасць нападу). У адрозненне ад нападу L1TF, L1DES не дазваляе выбіраць пэўныя фізічныя адрасы для праверкі, але дае магчымасць пасіўна адсочваць актыўнасць у іншых лагічных патоках, звязаную з загрузкай або захаваннем у памяць значэнняў.

На базе L1DES розныя каманды даследнікаў распрацавалі некалькі варыянтаў нападаў, якія патэнцыйна дазваляюць атрымаць канфідэнцыйную інфармацыю з іншых працэсаў, аперацыйнай сістэмы, віртуальных машын і абароненых анклаваў SGX.

  • Каманда VUSec адаптавала метад нападу RIDL для ўразлівасці L1DES. Даступны прататып эксплоіта, Які ў тым ліку абыходзіць прапанаваны Intel метад абароны ад MDS, заснаваны на выкарыстанні інструкцыі VERW для ачысткі змесціва мікраархітэктурных буфераў у момант вяртання з ядра ў прастору карыстальніка або пры перадачы кіравання гасцявой сістэме (даследчыкі першапачаткова настойвалі, што VERW (ачысткі мікраархітэктурных буфераў) для абароны нядосыць і патрабуецца поўны скід кэша L1 пры кожным пераключэнні кантэксту).
  • Каманда ZombieLoad абнавіла свой метад нападу з улікам уразлівасці L1DES.
  • Даследнікі з Мічыганскага ўніверсітэта распрацавалі ўласны метад нападу Кэш (PDF), які дазваляе атрымаць канфідэнцыйную інфармацыю з ядра аперацыйнай сістэмы, віртуальных машын і абароненых анклаваў SGX. Метад грунтуецца на маніпуляцыях з механізмам асінхроннага перапынення аперацый (TAA, TSX Asynchronous Abort) для вызначэння змесціва буфера запаўнення пасля ўцечкі дадзеных з кэша L1D.

    L1DES (CacheOut) і VRS – новыя ўразлівасці ў мікраархітэктурных структурах CPU Intel

Другая ўразлівасць VRS (Vector Register Sampling) звязана з уцечкай у буфер захоўвання (Store Buffer) вынікаў аперацый чытання з вектарных рэгістраў, змененых пры выкананні вектарных інструкцый (SSE, AVX, AVX-512) на тым жа ядры CPU. Уцечка ўзнікае пры досыць рэдкім збегу акалічнасцяў і выклікана тым, што спекулятыўна выкананая аперацыя, якая прыводзіць да адлюстравання стану вектарных рэгістраў у буферы захоўвання, спазняецца і завяршаецца пасля ачысткі буфера, а не да яе. Па аналогіі з уразлівасцю L1DES, змесціва буфера захоўвання затым можа быць вызначана пры дапамозе метадаў нападаў MDS і TAA.

Даследнікі з групы VUSec падрыхтавалі прататып эксплоіта, які дазваляе вызначаць значэння вектарных рэгістраў, атрыманых у выніку вылічэнняў у іншым лагічным струмені таго ж ядра CPU. Кампанія Intel ацаніла уразлівасць VRS як занадта складаную для ажыццяўлення рэальных нападаў і прысвоіла мінімальны ўзровень небяспекі (2.8 СVSS).

Звесткі аб праблемах былі перададзеныя Intel у траўні 2019 года камандай Zombieload з Грацкага тэхнічнага ўніверсітэта (Аўстрыя) і групай VUSec з Амстэрдамскага вольнага ўніверсітэта, і пазней, пасля аналізу іншых вектараў ужывання нападу MDS, уразлівасці былі пацверджаныя некаторымі іншымі даследнікамі. У першую справаздачу MDS інфармацыя аб праблемах L1DES і VRS не была ўключаная з-за адсутнасці выпраўлення. Выпраўленне недаступнае і зараз, але абумоўленыя тэрміны невыдавання скончыліся.
У якасці абыходных метадаў абароны рэкамендуецца адключыць HyperThreading. Для блакавання ўразлівасці на боку ядра прапануецца скідаць кэш L1 пры кожным пераключэнні кантэксту (MSR біт MSR_IA32_FLUSH_CMD) і адключыць пашырэнне TSX (MSR біты MSR_IA32_TSX_CTRL і MSR_TSX_FORCE_ABORT).

Intel абяцае выпусціць абнаўленне мікракода з рэалізацыяй механізмаў для блакавання праблем у бліжэйшы час. Intel таксама адзначае, што прымяненне прапанаваных у 2018 годзе метадаў абароны ад нападу L1TF (L1 Terminal Fault) дазваляе блакаваць эксплуатацыю ўразлівасці L1DES з віртуальных асяроддзяў. Атацы схільныя працэсары Intel Core, пачынальна з шостага пакалення (Sky, Kaby, Coffee, Whiskey, Amber Lake і да т.п.), а таксама некаторыя мадэлі Intel Xeon і Xeon Scalable.

Дадаткова можна адзначыць удасканаленне эксплоіта, які дазваляе прымяніць метады атакі РІДЛ для вызначэння змесціва хэша пароля root з /etc/shadow пры перыядычных спробах аўтэнтыфікацыі. Калі першапачаткова прапанаваны эксплоіт вызначаў хэш пароля за 24 гадзіны, а пасля прымянення ўцечкі пры працы механізму асінхроннага перапынення аперацый (TAA, TSX Asynchronous Abort) выконваў аналагічную аперацыю за 36 секунд, то новы варыянт здзяйсняе напад за 4 секунды.

Крыніца: opennet.ru

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