TONTOU: Новая атака Spectre v2 на AMD и Intel.

Ключевые моменты:
  • TONTOU использует временной промежуток между очисткой буфера прогнозирования и его использованием.
  • Злоумышленники используют «внедрение прерываний» для перенаправления потока выполнения ядра и заражения механизмов прогнозирования.
  •  Это затрагивает архитектуры AMD Zen 1–4, а также несколько поколений процессоров Intel.
  • Патчи для устранения уязвимостей уже включены в последние обновления ядра Linux (от 5 августа).

атака Тонту

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

Принцип работы процессоров таков: вместо того, чтобы ждать, какой путь выберет программа, чип предсказывает вероятный маршрут и прогнозирует его. Если прогноз неверен, работа отбрасывается, но следы остаются в памяти. Именно здесь вступает в игру Spectre — одна из самых значительных уязвимостей, обнаруженных в последние годы. С момента её обнаружения злоумышленники научились читать эти следы, создавая всё более сложные варианты; TONTOU — одна из таких новых уязвимостей.

Исследователи из Массачусетского технологического института обнаружили TONTOU (Time-of-Neutralization to Time-of-Use) — новую сложную технику для эксплуатации уязвимостей Spectre v2 , позволяющую считывать данные из памяти ядра в пользовательском пространстве.

Несмотря на то, что производители и разработчики годами создавали различные механизмы защиты от атак с использованием алгоритмов прогнозирования, злоумышленникам удалось обнаружить новые пути обхода защиты, и это новое исследование CSAIL демонстрирует, как обойти эти средства защиты.

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

Что касается атаки: сбои и утечка данных в Safe-RET

Компания AMD разработала защиту от уязвимостей SRSO (Speculative Return Stack Overflow) под названием Saferet, которая очищает механизм предсказания непосредственно перед каждым использованием. Это оставляет окно уязвимости , которое можно использовать за несколько десятков наносекунд. Для атаки в такое короткое окно исследователи разработали метод, который они назвали внедрением прерываний (Interrupt Injection).

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

Извлечение и тестирование паролей на реальных системах.

Чтобы продемонстрировать серьезность уязвимости TONTOU, команда разработала работающий эксплойт на системе AMD с установленным современным ядром Linux. Первой задачей было обойти защиту, которая рандомизирует положение операционной системы в памяти, что им удалось сделать за десять попыток, потратив около девяти минут на каждый тест.

Впоследствии они продемонстрировали локальную атаку от имени непривилегированного пользователя для определения хеша пароля root, успешно извлекая данные со скоростью 5.47 байт в секунду с точностью 91.97%. В 50% тестов (в среднем 18 минут) им удалось обнаружить и извлечь содержимое файла с паролями. Хотя это низкая скорость, её более чем достаточно для критического взлома сервера.

Влияние на Intel, AMD и патч для устранения проблемы.

Команда протестировала четыре поколения процессоров Intel и AMD, добившись сбоев в прогнозировании на обеих архитектурах. Хотя метод оказался жизнеспособным на семействах AMD Zen 1–4 , на чипах Intel атака обошла две разные защиты , хотя наблюдалось непоследовательное поведение между разными поколениями Intel, что предполагает, что номинальные средства защиты реализованы по-разному на аппаратном уровне.

В качестве решения исследователи предлагают повторно очистить механизм прогнозирования после завершения прерывания. Хотя эта мера кажется жизнеспособной для AMD, она может оказаться контрпродуктивной для Intel, поскольку атака основана на том, что прерывание оставляет согласованное состояние, и может сделать атаку более надежной.

В начале февраля исследователи уведомили AMD и Intel, а в марте — сопровождающих ядра Linux. В результате, 5 августа в ядро ​​Linux был интегрирован блокирующий код для устранения уязвимости.

Наконец, если вас интересует более подробная информация, вы можете найти ее по следующей ссылке.


Добавить в качестве предпочтительного источника в Google