Выявлена новая уязвимость процессоров Intel, которая позволяет злоумышленникам получать доступ к зашифрованным данных из внутренних процессов CPU. Новая уязвимость, получившая кодовое имя PortSmash (идентификатор — CVE-2018-5407), была открыта группой из пяти учёных из Технологического университета Тампере в Финляндии и Технического университета Гаваны на Кубе.
Исследователи классифицировали PortSmash как атаку по сторонним каналам. Этот класс атак направлен на уязвимости в практической реализации криптосистемы. В отличие от теоретического криптоанализа, атака по сторонним каналам использует информацию о физических процессах в устройстве, которые не рассматриваются в теоретическом описании криптографического алгоритма. Как правило, в нём используются методы анализа расхождений во времени работы, энергопотреблении, электромагнитных утечках или даже звуке для получения дополнительной информации, позволяющей взломать алгоритмы шифрования и получить доступ к обработанным процессором данным.
Исследователи отмечают, что теоретически атаке PortSmash подвержены любые процессоры, использующие технологию Simultaneous Multithreading (SMT), которая позволяет одновременно выполнять несколько вычислительных потоков на одном ядре процессора. Если говорить простыми терминами, атака работает путём запуска вредоносного процесса на одном ядре с обычным потоком, используя возможности SMT. Вредоносный процесс PortSmash затем позволяет производить утечки небольшого количества данных из параллельного процесса, помогая злоумышленникам получить зашифрованные данные. Исследователи уже подтвердили, что PortSmash работает на процессорах Intel с поддержкой Hyper-Threading (HT), собственной реализации SMT.
02 REUTERS/Mike Blake
«Наша атака не имеет ничего общего с подсистемой памяти или кешированием, — отметил один из пяти исследователей Билли Брамли (Billy Brumley), имея в виду наделавшие ранее много шума атаки по сторонним каналам, которые тоже затрагивали SMT и Hyper-Threading. — Характер утечки обусловлен совместным использованием механизмов исполнения команд на архитектурах SMT (например, Hyper-Threading)».
Его команда уже опубликовала на GitHub код, доказывающий возможность работы такого эксплойта, который демонстрирует атаку PortSmash на процессоры Intel семейств Skylake и Kaby Lake. Зловред настроен на кражу закрытого ключа OpenSSL (<= 1.1.0h) P-384 с сервера TLS, но может быть модифицирован для извлечения любого другого типа зашифрованных данных. Следует отметить, что код PortSmash должен обязательно работать на том же физическом ядре, что и код процесса-жертвы, но это не является слишком большим препятствием для злоумышленников, тем более что для PortSmash не требуются Root-привилегии, достаточно базовых пользовательских прав.
Исследователи заявили, что они сообщили о проблеме безопасности Intel ещё в прошлом месяце 1 октября, но на момент публикации выкладок компания не ещё не выпустила заплатку. Вдобавок специалисты не исключают, что PortSmash также можно использовать на других процессорах с SMT, прежде всего, AMD Ryzen. Это предмет дальнейших исследований.
Работа по обнаружению PortSmash является первым результатом пятилетнего исследовательского проекта по безопасности SCARE: Side-Channel Aware Engineering, финансируемого Европейским исследовательским советом. Его цель — найти новые варианты атак по сторонним каналам и средства закрытия таких уязвимостей.
В прошлом году другая группа исследователей обнаружила аналогичный вариант атаки по сторонним каналам TLBleed, связанный с технологией Intel Hyper-Threading. После выявления TLBleed разработчики проекта OpenBSD даже решили отключить поддержку технологии Intel HT в будущих версиях операционной системы в интересах безопасности.
«Основная причина, по которой мы выпустили эксплойт — показать, насколько просто его воспроизвести, — подчеркнул господин Брамли в беседе с журналистами, — и помочь отказаться от тенденции использования SMT в чипах. Безопасность и SMT— взаимоисключающие концепции. Надеюсь, что наша работа побудит пользователей отключать SMT в BIOS или тратить деньги на архитектуру, не использующую SMT».
Представитель Intel сделал следующее официальное заявление относительно PortSmash: «Intel получила уведомление об этом исследовании. Эта проблема не касается спекулятивного исполнения команд и потому не имеет отношения к Spectre, Meltdown или L1 Terminal Fault. Мы ожидаем, что она не уникальна для платформ Intel. Исследования методов анализа атак по сторонним каналам часто концентрируются на манипулировании и измерении характеристик, таких как согласование по времени общих аппаратных ресурсов. ПО или программные библиотеки могут быть защищены от таких проблем при использовании методов безопасной разработки, учитывающих возможность атак по сторонним каналам. Защита данных наших клиентов и обеспечение безопасности наших продуктов является одним из приоритетов Intel, и мы будем продолжать работать с клиентами, партнёрами и исследователями для понимания и устранения выявленных уязвимостей».
В этом году индустрии по-настоящему не везёт с вопросами аппаратной безопасности. Всё началось с публикации в январе информации о трёх видах уязвимостей CPU, связанных со спекулятивными вычислениями (под общим именем Meltdown и Spectre). После этого был вскрыт целый ряд новых аналогичных или иных вариантов атак: например, CVE-2018-3639, BranchScope, SgxSpectre, MeltdownPrime и SpectrePrime, Spectre 1.1 и 1.2, SpectreRSB и L1TF (L1 Terminal Fault). Исследователи не исключают обнаружения новых видов уязвимостей современных CPU, в том числе связанных с работой SMT. Intel после обнародования сведений о Spectre и Meltdown расширила свою программу стимулирования выявления уязвимостей и ошибок, открыв её для большего количества исследователей в области безопасности и предложив более крупные денежные вознаграждения.