Разработчиците от екипа на Google Cloud уязвимост (CVE-2019-9836) в реализацията на технологията AMD SEV (Сигурна криптирана виртуализация), позволяваща да бъдат компрометирани данни, защитени с помощта на тази технология. 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
