Группа исследователей из Принстонского университета и компании NVIDIA опубликовали новые варианты атак Meltdown и Spectre, получившие названия MeltdownPrime и SpectrePrime, которые отличаются иным способом воссоздания информации из процессорного кэша. Ключевым отличием новых методов является задействование двух ядер CPU для проведения атаки с применением в качестве канала утечки данных особенностей работы протокола согласования содержимого кэша для разных ядер CPU (Invalidation-Based Coherence Protocol).
Для организации атаки по сторонним каналам в классических Meltdown и Spectre применяется восстановление содержимого кэша на основе техники FLUSH+RELOAD, в то время как в новых вариантах применён метод «Prime and Probe». Суть метода в том, что перед выполнением операции с кэшем, содержимое которой требуется восстановить, атакующие заполняют кэш эталонным набором значений на отдельном ядре CPU. В ходе спекулятивного выполнения доступа к памяти, связанные с ним значения могут быть аннулированы во всех когерентных кэшах, даже если спекулятивный запрос был отменён. После попытки доступа к сторонней памяти, выполненной и отклонённой в ходе спекулятивного выполнения, осуществляется перебор ранее прокэшированных эталонных значений и измерение времени доступа к ним, что позволяет судить о том были они аннулированы или нет.
Утверждается, что MeltdownPrime и SpectrePrime позволяют добиться большей точности воссоздания информации. Для демонстрации метода опубликован прототип эксплоита SpectrePrime, который при 100 тестовых запусках продемонстрировал точность работы 99.95%, в то время как точность классического эксплота для уязвимости Spectre составляет 97.9%.
Новый прототип эксплоита отличается проведением атаки в два параллельных потока: первый поток «primeProbe» осуществляет эталонное заполнение кэша CPU, после чего ожидает завершения выполнения функциональности, контролируемой вторым потоком «primeTest», который инициирует штатные для атаки Spectre операции спекулятивного чтения вне границ дозволенных блоков памяти. Затем «primeProbe» выполняет измерение времени доступа к набору данных и определяет, какие байты вероятно были прочитаны на этапе выполнения кода жертвы. В ходе многократных запусков операции накапливается статистика, позволяющая судить о характере данных процесса-жертвы.
Авторы MeltdownPrime и SpectrePrime считают, что текущие программные методы защиты от Meltdown и Spectre будут эффективны и для новых вариантов атак, поэтому выпускать дополнительные патчи не придётся - уже защищённые от Meltdown и Spectre системы будут защищены и от MeltdownPrime и SpectrePrime. Сложнее обстоит дело в области разработки методов аппаратной защиты.
Исследователи полагают, что блокирование новых атак на уровне оборудования потребует принципиально иного подхода и развиваемые ныне новые модели CPU с защитой от классических Meltdown и Spectre могут оказаться незащищёнными от новых вариантов атак. Представители компании Intel опровергли данные предположения и заявили, что, изучив сведения о MeltdownPrime и SpectrePrime, инженеры компании пришли в выводу, что подготовленные ныне аппаратные методы защиты от Meltdown и Spectre будут эффективны и для новых вариантов атак.
Также можно отметить, что против компании Intel было подано 32 судебных иска, связанных с Spectre и Meltdown. В 30 исках потребители пытаются возместить ущерб, например, из-за существенной потери производительности после применения методов защиты. В двух других исках компания Intel была обвинена в ложных публичных заявлениях, которые публиковались в течение 6 месяцев до публичного обнародования информации об уязвимостях, но после уведомления о проблемах по закрытым каналам. В процессе рассмотрения также находятся три иска от акционеров, в которых совет директоров и сотрудники Intel обвиняются в злоупотреблении инсайдерской информацией о проблемах с безопасностью, которые могла повлиять на стоимость акций (в ноябре директор Intel продал все свои акции, которые смог выставить на продажу).
>>> Подробности