CROSSTalk - уязвимост в процесорите на Intel, която води до изтичане на данни между ядрата

Екип от изследователи от Vrije Universiteit Amsterdam идентифицира нов уязвимост (CVE-2020-0543) в микроархитектурните структури на процесорите на Intel, забележително с това, че ви позволява да възстановите резултатите от изпълнението на някои инструкции, изпълнени на друго ядро ​​на процесора. Това е първата уязвимост в механизма за изпълнение на спекулативни инструкции, който позволява изтичане на данни между отделните процесорни ядра (преди течовете бяха ограничени до различни нишки на едно и също ядро). Изследователите нарекоха проблема CROSSTalk, но Документи на Intel Уязвимостта се нарича SRBDS (Special Register Buffer Data Sampling).

Уязвимостта е свързана с представени преди година към класа на проблемите с MDS (микроархитектурно вземане на проби от данни) и се основава на прилагането на методи за анализ на странични канали към данни в микроархитектурни структури. принцип на работа CROSSTalk е близо до уязвимостта RIDL, но се различава по източника на теча.
Новата уязвимост манипулира изтичането на предварително недокументиран междинен буфер, който се споделя от всички процесорни ядра.

CROSSTalk - уязвимост в процесорите на Intel, която води до изтичане на данни между ядрата

Същността на проблема е, че някои микропроцесорни инструкции, включително RDRAND, RDSEED и SGX EGETKEY, се изпълняват с помощта на вътрешната микроархитектурна операция SRR (Special Register Reads). При засегнатите процесори данните, върнати за SRR, се депозират в междинен буфер, общ за всички ядра на процесора, след което се прехвърлят към буфер за запълване, свързан с конкретното физическо ядро ​​на процесора, на което е стартирана операцията за четене. След това стойността от буфера за запълване се копира в регистри, видими за приложенията.

Размерът на междинния споделен буфер съответства на реда на кеша, който обикновено е по-голям от размера на данните, които се четат, а различните четения засягат различни отмествания в буфера. Тъй като споделеният буфер се копира изцяло в буфера за запълване, не само частта, необходима за текущата операция, се премества, но и данните, останали от други операции, включително тези, извършени на други процесорни ядра.

CROSSTalk - уязвимост в процесорите на Intel, която води до изтичане на данни между ядрата

CROSSTalk - уязвимост в процесорите на Intel, която води до изтичане на данни между ядрата

Ако атаката е успешна, локален потребител, удостоверен в системата, може да определи резултата от изпълнението на инструкциите RDRAND, RDSEED и EGETKEY в чужд процес или вътре в Intel SGX анклав, независимо от ядрото на процесора, на което се изпълнява кодът.
Изследователи, които идентифицираха проблема публикувано Експлойт на прототип, демонстриращ възможността за изтичане на информация за произволни стойности, получени чрез инструкциите RDRAND и RDSEED, за възстановяване на частен ключ ECDSA, обработен в анклава Intel SGX, след извършване само на една операция за цифров подпис в системата.


проблем податлив широка гама от настолни, мобилни и сървърни процесори Intel, включително Core i3, i5, i7, i9, m3, Celeron (серии J, G и N), Atom (серии C, E и X), Xeon (E3, E5, Семейства E7, W и D), Xeon Scalable и др. Трябва да се отбележи, че Intel беше уведомен за уязвимостта през септември 2018 г., а през юли 2019 г. беше предоставен прототип на експлойт, демонстриращ изтичане на данни между процесорните ядра, но разработването на корекция беше забавено поради сложността на внедряването му. Предложената днес актуализация на микрокод адресира проблема, като променя поведението на инструкциите RDRAND, RDSEED и EGETKEY за презаписване на данни в споделения буфер, за да се предотврати установяването на остатъчна информация там. Освен това достъпът до буфера се поставя на пауза, докато съдържанието не бъде прочетено и пренаписано.

Страничен ефект от този тип защита е увеличената латентност при изпълнение на RDRAND, RDSEED и EGETKEY и намалена пропускателна способност при опит за изпълнение на тези инструкции едновременно на различни логически процесори. Изпълнението на RDRAND, RDSEED и EGETKEY също спира достъпа до паметта от други логически процесори. Тези функции могат да повлияят отрицателно на производителността на някои сървърни приложения, така че фърмуерът предоставя механизъм (RNGDS_MITG_DIS) за деактивиране на защитата за RDRAND и RDSEED инструкции, изпълнявани извън Intel SGX анклава.

Източник: opennet.ru

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