Уязвимость связана с функциями оптимизации памяти в процессорах Intel.
опять же, обнаружена уязвимость в системе спекулятивного выполнения инструкций процессоров Intel, и на этот раз исследователь Google, объявил, что обнаружил новую уязвимость (уже занесенную в каталог CVE-2022-40982), под названием «Падение»
Downfall — уязвимость, позволяющая определить содержимое XMM, YMM и векторные регистры ZMM, ранее использовавшиеся другими процессами при выполнении инструкций AVX на том же ядре ЦП.
О падении
Относительно уязвимости упоминается, что непривилегированный злоумышленник с возможностью запуска собственного кода в системе, может использовать уязвимость для утечки данных из других пользовательских процессов, ядро системы, изолированные анклавы Intel SGX и виртуальные машины.
Фильтруемые векторные регистры широко используются в шифровании, функциях копирования памяти и обработке строк, например, эти регистры используются в библиотеке Glibc в функциях memcpy, strcmp и strlen, среди прочего. С практической точки зрения уязвимость может быть использована для определения данных, обрабатываемых в инструкциях AES-NI или REP-MOVS (используемых в функции memcpy) в других процессах, что может привести к утечке ключей шифрования, конфиденциальных данных и паролей пользователей.
Уязвимость проявляется в процессорах Intel которые поддерживают расширенные наборы инструкций AVX2 и AVX-512 (это означает, что это влияет на процессоры с 6-го по 11-е поколения), в то время как процессоры Intel на базе микроархитектур Alder Lake, Raptor Lake и Sapphire Rapids, похоже, не затронуты.
Как и в случае с недавно обнаруженной уязвимостью Zenbleed, затрагивающей процессоры AMD Zen2, в Downfall причиной уязвимости является утечка данных из файлов журналов, которые используются для совместного использования содержимого журналов всеми приложениями, выполняющими задачи на одном ядре ЦП.
Утечка произошла из-за спекулятивной передачи данных при выполнении оператора GATHER., доступный в расширениях AVX2 и AVX-512 и предназначенный для обеспечения быстрого доступа к разрозненным данным в памяти. Во время выполнения оператора GATHER старые данные в регистровом файле используются для спекулятивного выполнения зависимых инструкций. Эти данные не отражаются напрямую в журналах программного обеспечения, но могут быть определены с помощью методов атак по сторонним каналам, разработанных для атак Meltdown, таких как анализ оставшихся данных в кэше ЦП.
Чтобы использовать Падение, была разработана техника атаки под названием Gather Data Sampling. (GDS) и для которых опубликованы прототипы эксплойтов для извлечения криптографических ключей из чужого пользовательского процесса, утечки данных после их копирования в ядро Linux функцией memcpy и перехвата печатных символов, оставшихся в векторных регистрах после работы других процессов. Например, он демонстрирует возможность определения ключей AES, которые используются для шифрования данных в процессе другого пользователя с помощью библиотеки OpenSSL.
Метод показал высокую эффективность: путем проведения эксперимента со 100 различными ключами были определены 100 % ключей AES-128 и 86 % ключей AES-256 с продолжительностью каждой попытки определения не более 10 секунд. В облачных системах атака может использоваться для определения того, какие данные обрабатываются на других виртуальных машинах. Возможно, уязвимость может быть использована путем выполнения кода JavaScript в веб-браузере.
Следует упомянуть, что яntel узнала о проблеме еще в прошлом году (точно в августе месяце) и что уязвимость была обнародована только в этом году на конференции BlackHat USA. а исправления для защиты от уязвимости уже включены в различные обновления ядра Linux, начиная с версии 6.4.9, 6.1.44 и заканчивая 4.14.321.
Кроме того, среди возможных мер, позволяющих избежать негативного влияния защиты от уязвимости Downfall на производительность, упоминается внесение изменений в компиляторы для отключения использования оператора GATHER или добавления оператора сразу после GATHER LFENCE, который отключает упреждающее выполнение последующих операторов до завершения всех предыдущих коммитов.
Для систем, где исправления прошивки недоступны, поддержка всех расширений AVX отключена, а для части обновления микрокода Intel также предоставляется возможность использовать интерфейс MSR для выборочного отключения защиты прошивки в разрезе отдельных процессов.
Наконец, если вам интересно узнать об этом больше, вы можете проверить подробности в по следующей ссылке.