Downfall - атака на CPU Intel, приводящая к утечке данных из других процессов

Автор Сообщение
news_bot ®

Стаж: 6 лет 3 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
09-Авг-2023 13:09

Даниэль Могими (Daniel Moghimi) из компании Google, занимающийся исследовательской деятельностью в Калифорнийском университете в Сан-Диего, выявил новую уязвимость (CVE-2022-40982) в системе спекулятивного выполнения инструкций процессоров Intel, позволяющую определить содержимое векторных регистров XMM, YMM и ZMM, до этого использованных в других процессах при выполнении инструкций AVX (Advanced Vector Extensions) на том же ядре CPU. Уязвимости присвоено имя Downfall, а техника атаки названа Gather Data Sampling (GDS).
Непривилегированный атакующий, имеющий возможность выполнить свой код в системе, может использовать уязвимость для организации утечки данных из процессов других пользователей, ядра системы, изолированных анклавов Intel SGX и виртуальных машин. Подверженные утечке векторные регистры активно применяются при шифровании, в функциях копирования памяти и при обработке строк, например, среди прочего данные регистры применяются в библиотеке Glibc в функциях memcpy, strcmp и strlen. С практической стороны уязвимость можно использовать для определения данных, обрабатываемых в инструкциях AES-NI или REP-MOVS (применяется в функции memcpy) в других процессах, что может привести к утечке ключей шифрования, конфиденциальных данных и паролей пользователей.
В качестве демонстрации работы метода опубликованы прототипы эксплоитов для извлечения криптографических ключей из процесса другого пользователя, организации утечки данных после их копирования функцией memcpy в ядре Linux и перехвата печатных символов, остающихся в векторных регистрах после работы других процессов. Например, показана возможность определения ключей AES, применяемых для шифрования данных в процессе другого пользователя, использующего библиотеку OpenSSL.
Метод показал высокую эффективность:
при проведении эксперимента со 100 различными ключами было определено 100% ключей AES-128 и 86% ключей AES-256 при продолжительности каждой попытки определения не более 10 секунд. В облачных системах атака может использоваться для определения данных, обрабатываемых в других виртуальных машинах. Не исключена возможность эксплуатации уязвимости через запуск JavaScript-кода в web-браузере.
Как и в недавно выявленной уязвимости
Zenbleed, затрагивающей процессоры AMD Zen2, причиной появления уязвимости Downfall
является утечка данных из регистровых файлов (RF, Register File), которые используются для совместного хранения содержимого регистров во всех задачах на том же ядре CPU. Утечка происходит из-за спекулятивной пересылки данных при выполнении AVX2-инструкции GATHER, предназначенной для предоставления быстрого доступа к разрозненным данным в памяти. В ходе выполнения инструкции GATHER старые данные из регистрового файла используются при спекулятивном выполнении зависимых инструкций. Указанные данные напрямую не отражаются в программных регистрах, но могут быть определены при помощи методов атаки по сторонним каналам, разработанных для атак класса Meltdown, таких как анализ остаточных данных в кэше CPU.
Уязвимость проявляется в процессорах Intel, имеющих поддержку расширенных наборов инструкций AVX2 и AVX-512 (c 6 "Skylake" по 11 "Tiger Lake" поколение Intel Core), т.е. в процессорах, выпускаемых с 2014 года. Процессоры Intel на базе микроархитектур Alder Lake, Raptor Lake и Sapphire Rapids проблеме не подвержены. Все ранее доступные методы защиты от атак, связанных со спекулятивным выполнением инструкций в CPU, не блокируют проблему. Средства для защиты от уязвимости Downfall предложены в свежем обновлении микрокода, но блокирование уязвимости может приводить к снижению производительности до 50% при использовании в коде инструкции GATHER.
Исправления для защиты от уязвимости включены в состав обновлений ядра Linux 6.4.9, 6.1.44, 5.15.125, 5.10.189, 5.4.252, 4.19.290, 4.14.321. Для систем, для которых недоступно устранение проблемы при помощи микрокода, реализовано отключение поддержки всех расширений AVX (отдельно AVX2 и AVX512 отключить невозможно). Для управления включением защиты добавлен параметр ядра "gather_data_sampling" и информационный файл "/sys/devices/system/cpu/vulnerabilities/gather_data_sampling". В обновлении микрокода Intel также предоставлена возможность использования интерфейса MSR (Model-specific register) для выборочного отключения защиты в контексте отдельных процессов.
Среди возможных мер для предотвращения негативного влияния зашиты от уязвимости на производительность упоминается внесение изменений компиляторы для исключения использования инструкции GATHER (в GCC можно использовать опцию "-mtune-ctrl=^use_gather,^use_gather_2parts,^use_gather_4parts "). Проследить за появлением защиты от уязвимости в дистрибутивах можно на следующих страницах: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch, OpenBSD, FreeBSD, NetBSD.
Отмечается, что реализованное отключение AVX может нарушить работу некоторого кода в пространстве пользователя, который некорректно определяет наличие поддержки AVX2. В частности, проблемы возникают, если приложение проверяет только наличие поддержки AVX, но не учитывает информацию о поддержке XSAVE YMM. Судя по всему, данная логика применяется достаточно часто, так как, например, перестала работать команда 'wc -l'.
===========
Источник:
OpenNet.RU
===========

Похожие новости: Теги для поиска: #_attack, #_cpu, #_intel, #_spectre
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 11-Май 01:34
Часовой пояс: UTC + 5