Downfall - атака на CPU Intel, приводящая к утечке данных из других процессов
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Даниэль Могими (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
===========
Похожие новости
- Главная ссылка к новости (https://security.googleblog.co...)
- OpenNews: Уязвимость в ядре Linux 6.2, позволяющая обойти защиту от атак Spectre v2
- OpenNews: Серьёзное снижение производительности ядра 5.19, вызванное защитой от атаки Retbleed
- OpenNews: Retbleed - новая атака на механизм спекулятивного выполнения CPU Intel и AMD
- OpenNews: BHI - новая уязвимость класса Spectre в процессорах Intel и ARM
- OpenNews: Уязвимость в процессорах AMD Zen2, позволяющая определить содержимое регистров в других процессах
Похожие новости:
- Доступна Real-time редакция Ubuntu, оптимизированная для процессоров Intel Core
- Уязвимость в процессорах AMD Zen2, позволяющая определить содержимое регистров в других процессах
- Уязвимости в прошивках AMI MegaRAC, позволяющие удалённо выполнить код на уровне BMC-чипа
- Анализ подверженности репозиториев на GitHub атаке RepoJacking
- Атака PMFault, позволяющая вывести из строя CPU на некоторых серверных системах
- Уязвимость в ядре Linux 6.2, позволяющая обойти защиту от атак Spectre v2
- Опубликован план продвижения в ядро Linux драйвера Xe для GPU Intel
- Intel открыл код реализации OpenCL, выполняемой на CPU
- Зависимость времени выполнения инструкций от данных на CPU ARM и Intel
- Компания Intel опубликовала Xe, новый Linux-драйвер для своих GPU
Теги для поиска: #_attack, #_cpu, #_intel, #_spectre
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 03-Дек 22:40
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Даниэль Могими (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 =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 03-Дек 22:40
Часовой пояс: UTC + 5