Исследования об уязвимостях Spectre и Meltdown были опубликованы в январе 2018 года. С тех пор появилось множество работ, развивающих общую идею использовать механизм предсказания ветвлений в процессоре (или других аппаратных особенностей) для выполнения произвольного кода и кражи секретов. Подтвердилась теоретическая возможность удаленной эксплуатации, нашлись варианты эксплуатации для процессоров всех крупных производителей. Эти многочисленные проблемы решали как в софте, так и в новом железе.


Свежая работа исследователей из Амстердамского свободного университета (описание и FAQ, исходник в PDF) показывает новый вариант атаки Spectre v2, который позволяет обойти как программные заплатки, так и аппаратные. Несущественная, но любопытная деталь данного исследования: компания Intel признала наличие проблемы в собственных процессорах и присвоила соответствующим уязвимостям красивые номера CVE-2022-0001 и CVE-2022-0002.

Обнаруженный в конце 2017 года Spectre v2 считается самым опасным вариантом уязвимости Spectre. Среди более чем десяти различных вариаций Spectre он квалифицируется по методу атаки Branch Target Injection. Работает атака Spectre следующим образом: пользователь с минимальными привилегиями с помощью многочисленных запросов «тренирует» систему предсказания ветвлений процессора так, чтобы в какой-то момент выполнилась инструкция за пределами полномочий.


За четыре года были реализованы и программные, и аппаратные средства, затрудняющие эксплуатацию Spectre v2. Во всех случаях механизм работы ПО или самого процессора усложнялся так, чтобы гарантировать соблюдение привилегий для доступа к данным. Новое исследование показывает метод обхода этих ограничений, названный Branch History Injection. В соответствии с названием, новая атака особым образом модифицирует историю предсказаний, на основе которой процессор принимает решения о спекулятивном выполнении данных.

Помимо компании Intel, подробное описание новой атаки (известной также как Spectre-BHB) применительно к своим процессорам опубликовала ARM. Тема уязвимостей в процессорах стала еще немного сложнее: по сути, аппаратная защита от подобных атак была «выведена из строя». Тем не менее за четыре года исследования Spectre и подобных уязвимостей практической, широкомасштабной их эксплуатации так и не произошло. Наиболее близко к «реальной проблеме» подобралась работа Spook.js, где была показана кража данных из браузера. Но и она решилась так же, как и любая другая тривиальная уязвимость, — патчем для подверженного софта.

Комментарии (2)


  1. avkor2021
    15.03.2022 14:30
    +1

    Вот кстати интересно было бы почитать, почему уязвимость о которой все знают и которая по сути не закрыта не эксплуатируется широкомасштабно?


    1. Throwable
      15.03.2022 17:11
      +1

      На правах гипотезы: скорость эксплуатации утечек чрезвычайно медленная, с низкой гарантией корректности результата, особенно в нагруженных системах. Ну а по поводу закрытия: в общем случае класс спекулятивных утечек в конкурентных средах невозможно "закрыть" впринципе. Они всегда будут существовать, пусть и гипотетически. Это как вы не видите ваших соседей за стенкой, но по иным факторам сможете составить информацию то, кто они и чем занимаются. Можно полностью сбрасывать кеш при переключении контекста, но это сразу затормозит систему в десятки раз.