24.09.2020

L1DES (CacheOut) и VRS — новые уязвимости в микроархитектурных структурах CPU Intel


Компания Intel раскрыла сведения о двух новых уязвимостях в CPU Intel, вызванных утечкой данных из кэша L1D (CVE-2020-0549, L1DES — L1D Eviction Sampling) и векторных регистров (CVE-2020-0548, VRS — Vector Register Sampling). Уязвимости относятся к классу MDS (Microarchitectural Data Sampling) и основываются на применении методов анализа по сторонним каналам к данным в микроархитектурных структурах. AMD, ARM и другие процессоры проблемам не подвержены.

Наиболее опасная уязвимость связана с возможностью утечки блоков прокэшированных данных (cache line), вытесняемых из кэша первого уровня (L1D), в неиспользованный (некорректный) буфер заполнения L1D (Fill Buffer). Для определения осевших в буфере заполнения данных применимы методы анализа по сторонним каналам, ранее предложенные в атаках MDS (Microarchitectural Data Samping) и TAA (Transactional Asynchronous Abort).

В итоге, атакующий может добиться определения вытесненных из кэша CPU первого уровня данных, которые были изменены в ходе выполнения приложения, до этого занимавшего ядро CPU, или приложений, параллельно выполняющихся в других логических потоках (hyperthread) в том же ядре CPU (отключение HyperThreading существенно снижает эффективность атаки). В отличие от атаки L1TF, L1DES не даёт возможность выбирать конкретные физические адреса для проверки, но позволяет пассивно отслеживать активность в других логических потоках, связанную с загрузкой или сохранением в память значений.

На базе L1DES различные команды исследователей разработали несколько вариантов атак, которые, потенциально позволяют извлечь конфиденциальную информацию из других процессов, операционной системы, виртуальных машин и защищённых анклавов SGX.

  • Команда VUSec адаптировала метод атаки RIDL для уязвимости L1DES. Доступен прототип эксплоита, который в том числе обходит предложенных Intel метод защиты от MDS, основанный на использовании инструкции VERW для очистки содержимого микроархитектурных буферов в момент возвращения из ядра в пространство пользователя или при передаче управления гостевой системе (исследователи изначально настаивали, что VERW для защиты недостаточно и требуется полный сброс L1 кэша при каждом переключении контекста).
  • Команда ZombieLoad обновила свой метод атаки c учётом уязвимости L1DES.
  • Исследователи из Мичиганского университета разработали собственный метод атаки CacheOut (PDF), позволяющий извлечь конфиденциальную информацию из ядра операционной системы, виртуальных машин и защищённых анклавов SGX. Метод базируется на манипуляциях с механизмом асинхронного прерывания операций (TAA, TSX Asynchronous Abort) для определения содержимого буфера заполнения после утечки данных из кэша L1D.

Вторая уязвимость VRS (Vector Register Sampling) связана с утечкой в буфер хранения (Store Buffer) результатов операций чтения из векторных регистров, изменённых при выполнении векторных инструкций на том же ядре CPU. Утечка возникает при достаточно редком стечении обстоятельств. По аналогии с уязвимостью L1DES, содержимое буфера хранения затем может быть определено при помощи методов от атак MDS и TAA. Исследователи из группы VUSec подготовили прототип эксплоита, позволяющего определять значения векторных регистров, полученных в результате вычислений в другом логическом потоке того же ядра CPU. Компания Intel оценила уязвимость VRS, как слишком сложную для осуществления реальных атак и присвоила минимальный уровень опасности (2.8 СVSS).

Сведения о проблемах были переданы Intel в мае 2019 года командой Zombieload из Грацского технического университета (Австрия) и группой VUSec из Амстердамского свободного университета, и позднее, после анализа других векторов применения атаки MDS, подтверждены некоторыми другими исследователями. В первый отчёт MDS информация о проблемах L1DES и VRS не была включена из-за отсутствия исправления. Исправление не доступно и сейчас, но оговорённые сроки неразглашения истекли.

Intel обещает выпустить обновление микрокода с реализацией механизмов для блокирования проблем в ближайшее время. Intel также отмечает, что применение предложенных в 2018 году методов защиты от атаки L1TF (L1 Terminal Fault) позволяет блокировать эксплуатацию уязвимости L1DES из виртуальных окружений. Атаке подвержены процессоры Intel Core, начиная с шестого поколения (Sky, Kaby, Coffee, Whiskey, Amber Lake и т.п.), а также некоторые модели Intel Xeon и Xeon Scalable.

Дополнительно можно отметить усовершенствование эксплоита, позволяющего применить методы атаки RIDL для определения содержимого хэша пароля root из /etc/shadow при периодических попытках аутентификации. Если изначально предложенный эксплоит определял хэш пароля за 24 часа, а после применения утечки при работе механизма асинхронного прерывания операций (TAA, TSX Asynchronous Abort) выполнял аналогичную операцию за 36 секунд, то новый вариант совершает атаку за 4 секунды.

Источник: https://www.opennet.ru/opennews/art.shtml?num=52260

Добавить комментарий