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

Добавяне на нов коментар