> > > > Уязвимость Crosstalk: атака на другие ядра

Уязвимость Crosstalk: атака на другие ядра

Опубликовано:

crosstalkОригинальные уязвимости Spectre и Meltdown стали лишь началом вереницы различных "дыр" и атак, которые были выявлены в современных CPU. Процессоры AMD тоже были подвержены уязвимости Spectre, пусть и менее серьезно.

Основная причина уязвимостей кроется в отсутствии разделения между кодом программ и пользовательским данными, то есть во временном хранении данных по общим адресным пространствам, к которым другие приложения доступа иметь не должны, но каким-либо образом получили. Атаковать можно различные внутренние ресурсы процессора, в том числе Line Fill Buffer, Load Port и Store Buffer.

Но доступ к памяти можно было получить только в том же ядре. Причем отключение Simultaneous Multithreading (SMT) существенно снижало риск атаки, тем более многие процессы работают на одном ядре. Intel выпустила несколько обновлений прошивки, а также программные патчи, но они приводили к падению производительности, иногда ощутимому.

Используя механизм Special Register Buffer Data Sampling (SRBDS), группа исследователей обнаружила еще одну уязвимость (CVE-2020-0543), которая позволяет получать данные не только в текущем ядре, но и с других ядер процессора. Уязвимость была обнаружена еще в сентябре 2018 года, первая практическая реализация появилась в июле 2019. С Intel было заключено соглашение о неразглашении, которое как раз закончилось. Между тем Intel опубликовала подробности атаки Deep Dive for Special Register Buffer Data Sampling и список уязвимых процессоров.

Суть в следующем. Профайлер под названием CrossTalk исследует поведение инструкций x86, которые выходят за пределы ядра. Было быстро обнаружено, что некоторые инструкции считывают данные из Staging Buffer, общий для всех ядер. Буфер Staging Buffer обменивается данными с Line Fill Buffer (LFB) на ядре. Таким образом, Staging Buffer содержит важные данные, в том числе результаты the Hardware Digital Random Number Generator (DRNG), что позволяет провести те же атаки MDS. Что верно и для процессоров, работающих в защищенных пространствах через Software Guard Extension (SGX) от Intel.

Была продемонстрирована атака "Transient Execution Attack", которая нацеливалась на другое ядро. Атака позволила получить результаты инструкций RDRAND и RDSEED из буфера Staging Buffer.

Какие процессоры уязвимы?

Судя по имеющейся информации, пока речь идет только о процессорах Intel. Были протестированы процессоры Broadwell, Skylake, Kaby Lake, Coffee Lake и Whiskey Lake. Процессоры Xeon на дизайне Cascade Lake, по всей видимости, не являются уязвимыми.

Есть ли патчи?

Да, Intel представила исправление уязвимости SRBDS 9 июня в виде обновленного микрокода. Он полностью блокирует внутреннюю шину памяти и доступ к Staging Buffer, открывая его только для текущего ядра. Конечно, подобный шаг сказывается на производительности. Поэтому Intel ограничила блокировку только инструкциями RDRAND, RDSEED и EGETKEY. По остальным инструкциям, таким как RDMSR, ограничений доступа к Staging Buffer нет, поскольку влияние на производительность было бы слишком велико. Пока нет результатов, насколько сильно снижается производительность.

Дополнительные подробности уязвимости CrossTalk приведены в документе (PDF).

Подписывайтесь на группы Hardwareluxx ВКонтакте и Facebook, а также на наш канал в Telegram (@hardwareluxxrussia).

Мы рекомендуем ознакомиться с нашим руководством по выбору лучшего процессора Intel и AMD на текущий квартал. Оно поможет выбрать оптимальный CPU за свои деньги и не запутаться в ассортименте моделей на рынке.