Уязвимость в SMT/Hyper-Threading, раскрывающая ключи шифрования из других процессов
Группа исследователей из университета технологий в Тампере (Финляндия) и гаванского технологическиого университета (Куба) выявили новую уязвимость (CVE-2018-5407) в реализации технологии одновременной многопоточности (SMT или Hyper-Threading) в процессорах Intel. Уязвимость позволяет определить информацию, обрабатываемую в процессе выполнения чужих процессов, что может использоваться, например, для извлечения ключей шифрования.
Разработанный исследователями прототип эксплоита (zip) позволяет определить содержимое закрытого ключа P-384 на TLS-сервере, использующем OpenSSL. Для успешной эксплуатации уязвимости процесс атакующего должен выполняться на том же физическим ядре CPU, что и процесс жертвы. Атака успешно опробована на процессорах на базе микроархитектуры Intel Skylake и Kaby Lake в окружении Ubuntu 18.04.
Несмотря на то, что уязвимость аппаратная, проблема была блокирована обходным путем в выпуске OpenSSL 1.1.0i и не проявляется в ветке 1.1.1. Детальное описание уязвимости пока не опубликовано, сообщается лишь то, что применяется атака по сторонним каналам, анализирующая изменение времени выполнения операций для мониторинга за выполнением другого процесса.
Атака манипулирует утечкой сведений в процессе совместного использования в одном ядре CPU механизма выполнения целочисленных операций (Execution engine), проявляющейся при работе в режиме Hyper-Threading. Уязвимость в общих чертах напоминает устраненную 13 лет назад проблему CVE-2005-0109, но новая атака никак не связана с подсистемой памяти и кэшированием.