SpectreRSB: Новая уязвимость «класса Spectre» процессоров Intel, AMD и ARM

2018-07-24 6237 комментарии
Ученые из Калифорнийского университета в Риверсайде опубликовали подробную информацию о новой атаке «класса Spectre», получившей название SpectreRSB

Как и другие атаки «класса Spectre», SpectreRSB использует метод спекулятивного исполнения канала, который поддерживается всеми современными процессорами. Данная технология позволяет заблаговременно выполнять вычислительные операции, а затем отбрасывать ненужные данные.

Новая атака Spectre нацелена на область RSB

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

В архитектуре современных процессоров компонент RSB вовлечен в процессы спекулятивного исполнения и занимается прогнозированием адреса возврата операции, которую процессор пытается вычислить заранее.

Исследователям из университета в Риверсайде удалось модифицировать код RSB, чтобы получить контроль над адресами возврата и нарушить процессы спекулятивного исполнения.

Так как компонент RSB используется одновременно несколькими аппаратными потоками, которые выполняются на одном и том же виртуальном процессоре, то данная уязвимость позволяет осуществлять «загрязнение» RSB между процессами и даже между виртуальными машинами.

SpectreRSB может использоваться для восстановления данных из Intel SGX

В своем отчете исследователи описали три типа атак, которые могут использовать уязвимость SpectreRSB, чтобы модифицировать RSB и получит доступ к данным, которые не предназначены для просмотра.

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

Последняя атака представляет большую проблему, потому что Intel SGX (Software Guard Extensions) — это защищенные аппаратно-разделенные области, которые предназначены для обработки конфиденциальных данных. Технология SGX предоставляет один из самых высоких уровней защиты, которую процессоры Intel предоставляют разработчикам приложений.

Исследователи сообщили об обнаруженной уязвимости компаниям Intel, AMD и ARM. Однако, тестирование проходило только на процессорах Intel. Учитывая, что процессоры Intel и ARM также используют компонент RSB для прогнозирования адресов возврата, то, скорее всего, они также подвержены данной уязвимости. Red Hat также приступила к расследованию проблемы.

Предыдущие патчи Spectre не помогут

Исследователи из Калифорнийского университета в Риверсайде отмечают:

Важно помнить, что ни одна из известных мер устранения рисков против Spectre, включая технику Retpoline и обновления микропрограммы Intel не может остановить атаки SpectreRSB.

Это означает, что злоумышленник, который хочет восстановит данные с ПК жертвы, на котором установлены патчи против Spectre, получит возможность обновить оригинальный код Spectre, чтобы нацелить компонент RSB на обход любых защитных мер, применяемых владельцем устройства.

С другой стороны, исследователи сообщают, что Intel разработала патч, который останавливает данную атаку на некоторых процессорах, но он не был развернут на всех процессорах производителя:

В частности, на Core-i7 Skylake и более новых процессорах (не включая линейку Xeon) патч под названием RSB refilling используется для устранения уязвимости в случае неполного заполнения RSB.

Данная защитная мера блокирует SpectreRSB возможность запускать атаки, которые переключаются в ядро. Мы рекомендуем использовать этот патч на всех компьютерах для защиты от SpectreRSB

Тем не менее, официальная позиция Intel расходится с мнением исследователей. Компания уверена, что данные методы устранения рисков не могут предотвратить атаки SpectreRSB:

SpectreRSB связана с манипуляцией целевым кэшем адресов ветвлений (Branch Target Injection, CVE-2017-5715). Мы считаем, что эксплойты, описанные в отчете могут быть устранены аналогичным образом. Мы уже опубликовали инструкции для разработчиков в техническом документе «Speculative Execution Side Channel Mitigations». Мы благодарны за текущую работу исследовательского сообщества. Мы работает в тесном сотрудничестве, чтобы улучшить защиту наших клиентов.

Список раскрытых атак Meltdown и Spectre пополняется каждый месяц, отслеживать их становится все сложнее. Ниже представлена таблица со сводной информацией по уязвимостям.

ВариантОписаниеCVEКодовое имяЗатронутые CPUПодробности
Variant 1Bounds check bypass - обход проверки границCVE-2017-5753Spectre v1Intel, AMD, ARMВеб-сайт
Variant 1.1Bounds check bypass on stores - обход проверки границ хранилищаCVE-2018-3693Spectre 1.1Intel, AMD, ARMPaper
Variant 1.2Read-only protection bypass - обход защиты от внесения измененийCVE unknownSpectre 1.2Intel, AMD, ARMPaper
Variant 2Branch target injection - манипуляция целевым кэшем адресов ветвленийCVE-2017-5715Spectre v2Intel, AMD, ARMВеб-сайт
Variant 3Rogue data cache load - оседание данных в кэше после отмены операцииCVE-2017-5754MeltdownIntel, ARMВеб-сайт
Variant 3aRogue system register read - чтение содержимого системных регистровCVE-2018-3640-Intel, AMD, ARM, IBMMitre
Variant 3aSpeculative store bypass - обход спекулятивного сохраненияCVE-2018-3639SpectreNGIntel, AMD, ARM, IBMБлог Microsoft
-Return Mispredict - возвращение неверных значений прогнозирования-SpectreRSBIntel, AMD, ARMPaper

По материалам Bleeping Computer

© .
Комментарии и отзывы

Нашли ошибку?

Новое на сайте