Уязвимост, обхващаща цялото семейство процесори на AMD, основани на архитектурата Zen 2, включително чиповете за центрове за данни EPYC на сериите Ryzen 3000, 4000 и 5000, позволява кражба на защитена информация. Реализирането на подобна атака не изисква физически достъп до компютъра или сървъра и дори може да бъде изпълнена чрез javascript на уеб страница.
Грешката, получила името Zenbleed, бе открита от Тавис Орманди, изследовател от Google Information Security, а информация за нея бе публикувана за пръв път в понеделник. Тя позволява извличане на данни с около 30 килобайта в секунда от всяко ядро, което според експерта е достатъчно бързо, за да се наблюдават ключове за шифроване и да се крадат пароли, докато бъдат въвеждани.
Нападател, влязъл в облачна машина, би могъл да използва Zenbleed, за да шпионира други наематели, без специални привилегии.
Няколко часа след публикацията на експерта от Google AMD публикува свой бюлетин, в който обяви, че вече разполага с актуализации за процесорите EPYC 7002, но и че няма да поправя своите потребителски чипове Zen 2 Ryzen 3000, 4000, както и някои продукти от серията 5000 до ноември и декември тази година. Не е ясно дали са засегнати процесорите на AMD в конзолите PS5, Xbox Series X и S и Steam Deck, които също са базирани на Zen 2.
AMD не предостави конкретни подробности за евентуално въздействие върху производителността, но от Tom's Hardware публикуваха следното изявление, получено от компанията: "Всяко въздействие върху производителността ще варира в зависимост от натоварването и конфигурацията на системата."
От компанията подчертават, че засега няма данни за експлоатация на уязвимостта извън изследователската среда.
Zenbleed е получи официално име CVE-2023-20593 и CVSS оценка от 6.5 (т.е. средно ниво на риск). Тя позволява ексфилтриране на данни, преминаващи през процесора. Атаката може да засяга целия софтуер, работещ на процесора, включително виртуални машини и контейнери. Възможността тази атака да чете данни във виртуални машини е особено заплашителна за доставчиците на облачни услуги и тези, които използват облачни инстанции.
Атаката може да бъде извършена чрез непривилегировано изпълнение на произволен код. Орманди публикува хранилище в GitHub за изследване на сигурността и код на експлойта. Тя работи чрез манипулиране на регистрационни файлове, за да се предизвика неправилно предвиждане на команда за процесора.
Новината за уязвимостта предизвика бърза реакция от страна на облачни компании като Cloudflare, която използва сървъри с Zen 2 процесори. От там обявиха, че са приложили всички актуализации на микрокода, публикувани от AMD.
Какво по-точно представлява Zenbleed?
Допълнително, от Cloudflare публикуваха по-разгърнато описание на атаката. За целта обаче трябва да се започне малко по-отдалеч. Съвременните процесори разполагат с блок за аритметична обработка, наречен Arithmetic logic unit (ALU). Операции като събиране, умножение и изчисления с плаваща запетая попадат и се изпълняват от него. Преди това обаче обработваната информация преминава серия системи за съхранение на данни.С увеличаването на нуждата от по-бързи начини за извършване на изчисления в процесорите с добавени т.нар. Advanced Vector Extensions (AVX). Това са разширения на архитектурата на набора от инструкции x86 за процесори от Intel и AMD. С помощта на съвместим софтуер и допълнителен набор от инструкции съвместимите процесори могат да се справят с по-сложни задачи. Основната мотивация за разработването на този набор от инструкции е да се ускорят операциите, свързани с компресиране на данни, обработка на изображения, както и криптографските изчисления. Векторните данни, използвани от AVX инструкциите, се съхраняват в т.нар. YMM и XMM регистри.
Т.нар. спекулативни атаки (каквато е Zenbleed) се възползват от спекулативните възможности за изпълнение в съвременните процесори, които са разработени за предварително изпълнение на команди. С други думи, процесорът предвижда каква ще е следващата задача, а спекулативното изпълнение ускорява работата му.
Поради използването им за съхраняване на лична информация регистрите на AVX са особено податливи на такъв вид атаки. Криптографските ключове и пароли например могат да бъдат достъпни чрез такъв подход.
Уязвимостта в процесорите, базирани на Zen 2-архитектура на AMD, произхожда от това, че данни от друг процес и/или нишка могат да се съхраняват в YMM регистрите, което потенциално може да даде на атакуващия достъп до чувствителна информация. Тази уязвимост се причинява от некоректно записана стойност от 0 в комбинация със специфични микроархитектурни обстоятелства.
Атаката се реализира чрез манипулиране на регистрационни файлове, за да се принуди неправилно предвиждане на команда, обясняват от Cloudflare. Задейства се т.нар. XMM Register Merge Optimization2 - функция, която по ирония на съдбата може да се използва за защита срещу спекулативни атаки. След това погрешно извиканата инструкция се използва за споменатото нулиране на част от регистрите.
Тъй като информацията в регистрационнните файлове се споделя от всички процеси, изпълнявани на едно физическо ядро, даденият експлойт може да се използва за подслушване дори на най-фундаменталните системни операции чрез наблюдение на данните, прехвърляни между процесора и останалата част от компютъра.
Уязвимост, обхващаща цялото семейство процесори на AMD, основани на архитектурата Zen 2, включително чиповете за центрове за данни EPYC на сериите Ryzen 3000, 4000 и 5000, позволява кражба на защитена информация. Реализирането на подобна атака не изисква физически достъп до компютъра или сървъра и дори може да бъде изпълнена чрез javascript на уеб страница.
Грешката, получила името Zenbleed, бе открита от Тавис Орманди, изследовател от Google Information Security, а информация за нея бе публикувана за пръв път в понеделник. Тя позволява извличане на данни с около 30 килобайта в секунда от всяко ядро, което според експерта е достатъчно бързо, за да се наблюдават ключове за шифроване и да се крадат пароли, докато бъдат въвеждани.