Уразлівасць у AMD SEV, якая дазваляе вызначыць ключы шыфравання

Распрацоўнікі з каманды Google Cloud выявілі уразлівасць (CVE-2019-9836) у рэалізацыі тэхналогіі AMD SEV (Secure Encrypted Virtualization), якая дазваляе скампраметаваць абароненыя пры дапамозе дадзенай тэхналогіі дадзеныя. AMD SEV на апаратным узроўні забяспечвае празрыстае шыфраванне памяці віртуальных машын, пры якой доступ да расшыфраваных дадзеных мае толькі бягучая гасцёўня сістэма, а астатнія віртуальныя машыны і гіпервізор пры спробе звароту да гэтай памяці атрымліваюць зашыфраваны набор дадзеных.

Выяўленая праблема дазваляе цалкам аднавіць змесціва зачыненага PDH-ключа, апрацоўванага на ўзроўні асобнага абароненага працэсара PSP (AMD Security Processor), недаступнага для асноўнай АС.
Маючы PDH-ключ атакуючы затым можа аднавіць сесійны ключ і сакрэтную паслядоўнасць, зададзеную пры стварэнні віртуальнай машыны, і атрымаць доступ да зашыфраваных дадзеных.

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

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

Праблеме схільныя серверныя платформы AMD EPYC, якія выкарыстоўваюць прашыўкі SEV аж да версіі 0.17 build 11. Кампанія AMD ужо апублікавала абнаўленне прашыўкі, у якім дададзена блакіроўка выкарыстання кропак, якія не адпавядаюць крывой NIST. Пры гэтым раней згенераваныя сертыфікаты для ключоў PDH застаюцца валіднымі, што дазваляе зламысніку правесці атаку па міграцыі віртуальных машын з акружэнняў, абароненых ад уразлівасці, у асяроддзі, схільныя праблеме. Таксама згадваецца магчымасць здзяйснення нападу па адкаце версіі прашыўкі на стары ўразлівы выпуск, але дадзеная магчымасць пакуль не пацверджана.

Крыніца: opennet.ru

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