Потребительские и серверные процессоры Intel последних поколений, а также процессоры AMD на старых микроархитектурах оказались уязвимыми перед атаками с использованием механизмов спекулятивного выполнения, которые обходят существующие средства защиты от уязвимости Spectre.
Источник изображения: Damian / pixabay.com
Новой уязвимости подвержены потребительские процессоры Intel Core 12, 13 и 14 поколений, серверные Xeon 5 и 6 поколений, а также чипы AMD Zen 1, Zen 1+ и Zen 2. Обнаруженная исследователями Швейцарской высшей технической школы Цюриха (ETH Zurich) схема атаки позволяют обойти защитный механизм IBPB (Indirect Branch Predictor Barrier), не позволяющий злоупотреблять спекулятивным выполнением.
Спекулятивное выполнение — функция, которая оптимизирует работу процессора, выполняя инструкции ещё до того, как становится ясно, есть ли в них потребность: если прогноз верен, процесс ускоряется. Результаты инструкций, выполненных на основе неверного прогноза, игнорируются. Этот механизм составил основу для атак вроде Spectre, поскольку при спекулятивном выполнении могут быть задействованы конфиденциальные данные, которые злоумышленник может извлечь из кеша процессора.
Швейцарские учёные подтвердили возможность перехватывать результаты спекулятивного выполнения даже после срабатывания механизма IBPB, то есть с обходом существующих средств защиты и с утечкой конфиденциальной информации — в частности, это может быть извлечённый из процесса suid хэш пароля root. В случае процессоров Intel механизм IBPB не в полной мере устраняет результат выполнения недействительной функции после смены контекста. У процессоров AMD метод IBPB-on-entry в ядре Linux срабатывает неправильно, из-за чего результаты работы устаревших функций не удаляются после IBPB.
Источник изображения: Colin Behrens / pixabay.com
О своём открытии исследователи сообщили Intel и AMD в июне 2024 года. В Intel ответили, что к тому моменту проблема уже была обнаружена силами самой компании — соответствующей уязвимости присвоили номер CVE-2023-38575. Ещё в марте Intel выпустила обновление микрокода, но, как установили исследователи, это не помогло исправить ошибку во всех операционных системах, включая Ubuntu.
В AMD также подтвердили факт наличия уязвимости и заявили, что она уже была задокументирована и зарегистрирована под номером CVE-2022-23824. При этом производитель включил в список уязвимых архитектуру Zen 3, которую швейцарские учёные в своей работе не отметили. В AMD ошибку охарактеризовали как программную, а не аппаратную; учитывая, что производитель знает о ней давно, и она затрагивает только старые микроархитектуры, в компании приняли решение не выпускать закрывающее уязвимость обновление микрокода.
Таким образом, оба производителя знали о механизме обхода уязвимости, но в документации они отметили его как потенциальный. Швейцарские учёные, однако, продемонстрировали, что атака срабатывает на Linux 6.5 с защитой IBPB-on-entry, которая считается наиболее эффективной против эксплойтов типа Spectre. И поскольку AMD отказалась закрывать её, исследователи связались с разработчиками ядра Linux с намерением самостоятельно разработать патч для «красных» процессоров.
Источник: 3DNews