Новости и события » Hi-Tech » Представлена SpectreRSB, новая уязвимость в механизме спекулятивного выполнения CPU

Представлена SpectreRSB, новая уязвимость в механизме спекулятивного выполнения CPU

Представлена SpectreRSB, новая уязвимость в механизме спекулятивного выполнения CPU

Как сообщает opennet.ru группа исследователей из Калифорнийского университета в Риверсайде раскрыла сведения о новой уязвимости SpectreRSB, затрагивающей механизм спекулятивного выполнения инструкций в процессорах. Уязвимость базируется на принципе восстановления данных, оставшихся в процессорном кэше в результате спекулятивного выполнения инструкций, ставшим известным под именем Spectre и позднее получившим развитие в атаках SpectrePrime, SgxPectre, BranchScope, Spectre 1.1, Spectre 1.2, LazyFP, Spectre 3a и Spectre 4.

В отличие от прошлых уязвимостей класса Spectre, новая проблема позволяет определять содержимое закрытых областей памяти через манипуляции с буфером возврата из стека (RSB, Return Stack Buffer), применяемым для предсказания вероятного адреса возврата. Несмотря на то, что подобные операции выполняются в ходе спекулятивного выполнения и отбрасываются, если предсказан неверный адрес возврата, результат предсказания остается в процессорном кэше и может быть восстановлен при помощи методов определения содержимого кэша по сторонним каналам, анализирующим изменение времени доступа к прокэшированным и не прокэшированным данным.

Атака сводится к следующим шагам:

  • После переключения контекста на обработчик атакующего выполняется сброс содержимого общих областей (flush RSB) и засорение RSB данными с целевым адресом в адресном пространстве процесса жертвы;
  • CPU переходит к выполнению процесса жертвы;
  • При выполнении в процессе жертвы возврата управления ("ret"), процессор считает, что находящийся в RSB адрес (занесенный атакующим) наиболее вероятно является искомым адресом возврата и спекулятивно использует его в инструкциях, не дожидаясь подтверждения адреса возврата. После определения настоящего адреса спекулятивная операция отбрасывается, но результат обращения по заданным атакующим адресу оседает в кэше.

Так как разные процессорные потоки используют общий буфер RSB, потенциально атака SpectreRSB может применяться не только для выявления значений закрытых областей в текущем процессе для обхода ограничений sandbox-изоляции, но и для организации утечки данных из других процессов и виртуальных машин, а также для обхода средств изоляции кода и данных, предоставляемых технологией Intel SGX (Software Guard Extensions). Наличие уязвимости продемонстировано в процессорах Intel. В частности, рабочие прототипы кода для атаки были протестированы на системах с CPU Intel Haswell и Skylake, а также применялись для определения содержимого анклавов SGX2 на системах с Core i7 Skylake. Процессоры AMD и ARM не проверялись, но, судя по наличию в них поддержки RSB, вероятно они также подвержены уязвимости.

По сведению исследователей, для блокирования SpectreRSB потребуется применение нового метода защиты, так как ни один метод, реализованный для защиты от прошлых атак Spectre, включая Retpoline и новые возможности микрокода Intel, не эффективен для блокировки SpectreRSB. Компания Intel не согласилась с таким мнением и заявила, что для блокирования SpectreRSB можно использовать уже существующие типовые методы защиты от атаки Spectre. Для защиты от утечки данных из областей памяти ядра и при переключении контекста между разными виртуальными машинами энтузиастами предложена техника защиты "RSB refilling", которая уже включена в состав OpenBSD.

Тем временем, компания Red Hat опубликовала утилиту (tar-архив) для анализа исполняемых файлов, библиотек и сборок ядра Linux на предмет наличия последовательностей инструкций, допускающих проведение атаки Spectre v1. Утилита пока поддерживает только анализ кода для архитектур x86_64 и AArch64.

Intel


Свежие новости Украины на сегодня и последние события в мире экономики и политики, культуры и спорта, технологий, здоровья, происшествий, авто и мото

Вверх