Исследователи из Швейцарской высшей технической школы Цюриха (ETH Zurich) выявили новый тип атаки на механизм спекулятивного выполнения команд в процессорах, позволяющий извлекать данные из памяти ядра. С помощью обнаруженного метода, получившего название Retbleed, можно украсть пароли и другие конфиденциальные данные. Исследователи доказали эффективность Retbleed против современных чипов Intel и AMD, включая Kaby Lake, Coffee Lake, Zen 1, Zen 1+ и Zen 2.
Отличие Retbleed (уязвимости CVE-2022-29900 и CVE-2022-29901) от Spectre-v2 сводится к организации спекулятивного выполнения произвольного кода при обработке инструкции «ret» (return), которая извлекает адрес для перехода из стека, вместо косвенного перехода при помощи инструкции «jmp» с загрузкой адреса из памяти или регистра процессора. Злоумышленник может создать условия для неверного предсказания перехода и организовать целенаправленный спекулятивный переход на блок кода, не предусмотренный логикой выполнения программы.
В итоге процессор определит, что предсказание ветвления не оправдалось и откатит операцию в исходное состояние, но обработанные при спекулятивном выполнении данные останутся в кеше и микроархитектурных буферах. Если же ошибочно выполненный блок обращается к памяти, то его спекулятивное выполнение приведёт к переносу в кеш прочитанных из памяти данных. Для определения данных из кеша атакующий может задействовать методы выявления остаточных данных по сторонним каналам, например, анализ изменения времени доступа к кешированным и не кешированным данным.
Для защиты от атак класса Spectre с использованием инструкций условного и косвенного перехода во многих операционных системах используется техника «retpoline», предполагающая замену операций косвенного перехода на инструкцию «ret», для которой в процессорах применяется отдельный блок предсказания состояния стека, не использующий блок предсказания переходов. Авторы метода атаки Retbleed продемонстрировали возможность организации микроархитектурных условий для инициирования спекулятивного перехода с помощью инструкции «ret» и опубликовали инструмент выявления в ядре Linux подходящих для эксплуатации уязвимости последовательностей инструкций, в которых появляются подобные условия.
В рамках проделанной работы исследователи подготовили эксплойт, позволяющий на системах с процессорами Intel из непривилегированного процесса в пространстве пользователя извлекать произвольные данные из памяти ядра со скоростью 219 байт/с и точностью 98 %. На процессорах AMD скорость утечки может достигать 3,9 Кбайт/с. Это кажется небольшой скоростью, но для кражи конфиденциальных данных её вполне хватит. В качестве примера исследователи показали, как с помощью эксплойта определить содержимое файла /etc/shadow. На системах с процессорами Intel атака для определения хеша пароля пользователя root заняла 28 минут, а на системах с процессорами AMD — 6 минут.
Согласно имеющимся данным, схема атаки Retbleed может использоваться на системах с процессорами Intel с шестого по восьмое поколение, которые выпускались до третьего квартала 2019 года, а также с процессорами AMD на базе архитектур Zen 1, Zen 1+ и Zen 2, которые выпускались до второго квартала 2021 года. В более новых процессорах такая атака блокируется имеющимися механизмами защиты.
Intel и AMD выпустили официальные рекомендации, следуя которым можно минимизировать риски, связанные с эксплуатацией упомянутых уязвимостей. Отмечается, что защита от атак по схеме Retbleed потребует от 12 до 28 % дополнительных вычислительных затрат. Иными словами, «заплатки» для обнаруженных уязвимостей могут очень сильно снизить производительность затронутых процессоров.
Intel подтвердила актуальность уязвимости для процессоров на архитектуре Skylake и родственных ей, которые не имею защиты eIRBS. В сообщении сказано, что компания готовит подробные рекомендации для минимизации рисков. Отмечается, что системы Windows не затронуты, поскольку в них по умолчанию используется технология IBRS, позволяющая регулировать спекулятивное исполнение инструкций процессором. Intel неизвестно о случаях эксплуатации данной уязвимости. AMD также опубликовала соответствующие рекомендации, для защиты систем от атак Retbleed.
Источник: 3dnews.ru