Уязвимост в 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

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster