Профиль: Аноним (вход | регистрация) неRU opennet.me  
OpenNET

[ новости /+++ | форум | теги |    ]

BTR - атака на CPU Intel, AMD и ARM, эксплуатируемая через JIT-компиляторы

30.09.2026 21:05 (MSK)

Группа исследователей из Амстердамского свободного университета разработала новый метод атаки BTR (Branch Target Reuse), относящийся к классу Spectre-v2 и позволяющий обойти механизмы изоляции памяти на системах с процессорами Intel, AMD и ARM. Инициирование утечки содержимого памяти в ходе спекулятивного выполнения инструкций при проведении атаки BTR осуществляются через манипуляции с JIT-компиляторами. Исследователями проанализирована возможность совершения атаки через JIT-движки cBPF в ядре Linux, Oracle GraalVM и SpiderMonkey в Firefox.

Для подтверждения практичности атаки подготовлены два эксплоита, позволяющие извлечь хэш пароля пользователя root, загруженного из файла /etc/shadow в память после запуска утилиты su. Атака осуществляется через манипуляции с поставляемым в ядре Linux движком cBPF (Classic Berkeley Packet Filter), который, среди прочего, применяется в механизме seccomp для ограничения доступа к системным вызовам. Работа эксплоитов продемонстрирована в Ubuntu 24.04 с ядром 6.14.0-27-generic в конфигурации по умолчанию. На компьютере с CPU Intel скорость утечки составляет 8 байт в секунду, чего достаточно для извлечения из памяти хэша пароля за 3-5 минут.

В атаках класса Spectre-v2 для организации утечки данных используется подстановка значений в буфер адреса ветвления (Branch Target Buffer) или буфер с историей переходов (Branch History Buffer), применяемые для предсказания следующей операции ветвления. Через манипуляции с историей переходов создаются условия неверного предсказания перехода при спекулятивном выполнении инструкций. Задача атакующего в том, чтобы при выполнении спекулятивной операции ветвления адрес для перехода был взят из желаемой области памяти. После выполнения спекулятивного перехода, в процессорном кэше остаётся считанный из памяти адрес перехода (под видом адреса считываются необходимые атакующему данные из памяти). Для извлечения информации из кэша может применяться один из способов определения содержимого кэша на основе анализа изменения времени доступа к прокэшированным и не прокэшированным данным.

Атака BTR основывается на том, что кэширование предсказаний ветвления не синхронизировано с размещением JIT-компилятором инструкций в памяти. Состояние буфера адреса ветвления (BTB, Branch Target Buffer) сохраняется после модификации машинного кода JIT-компилятором, из-за чего оставшиеся в буфере BTB неочищенные устаревшие записи продолжают влиять на спекулятивное предсказание переходов. В итоге, CPU может предсказать переход по старому целевому адресу и выполнить чтение адреса из памяти в спекулятивном режиме даже если код в этот момент уже заменён.

В опубликованном эксплоите на первой стадии через JIT инициируется выполнение "тренировочного" BPF-кода (BPF-программа оформляется в виде seccomp-фильтра), приводящего к тому, что система предсказания переходов запоминает определённый адрес косвенного перехода как точку входа в исполняемый блок. На второй стадии атакующий добивается замены кода в памяти без сброса состояния буфера предсказания переходов, для чего он вначале выгружает "тренировочную" BPF-программу, а потом добивается загрузки новой BPF-программы в память, освобождённую после выгрузки прошлой BPF-программы. Новая BPF-программа содержит гаджеты - заданные атакующим цепочки инструкций.

Для обхода применяемой в JIT-компиляторах защиты "constant-blinding", не позволяющей эксплоитам кодировать гаджеты с машинным кодом в форме констант для последующего перехода на них в исполняемой памяти, в подготовленных экплоитах реализован метод кодирования гаждетов в форме операндов в инструкциях перехода. В случае изменения выравнивания потока исполнения (перехода на середину машинного кода с инструкцией jmp), вместо набора инструкций jmp начинают выполняться инструкции, закодированные в адресах перехода.

На третьей стадии в новой BPF-программе выполняется тот же косвенный переход, что использовался в первой BPF-программе. Так как состояние буфера адреса ветвления не было сброшено, процессор извлекает из него запомненный старый адрес точки входа и выполняет переход в спекулятивном режиме. В заменённом коде старая точка входа приходится на середину инструкции jmp и процессор начинает спекулятивно выполнять код закодированного через операнды гаджета.

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

Защита для противодействия новому виду атак добавлена в ядро Linux в начале июля и вошла в состав выпусков 7.2-rc2, 7.1.4, 6.18.39, 6.12.97 и 6.6.145. Защита реализована через вызов процессорных инструкций IBPB (Indirect Branch Prediction Barriers) для сброса состояния блока предсказания переходов после каждого повторного использования исполняемой области памяти в cBPF/eBPF.

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

В GraalVM эксперименты также не привели к созданию рабочего эксплоита, так как активность сборщика мусора приводила к слишком быстрой очистке буфера адреса ветвления (BTB), но исследователи не считают это полноценной защитой и полагают, что данное ограничение при желании можно обойти. Для усиления противодействия атаке BTR компания Oracle реализовала в GraalVM рандомизацию размещения кэша с кодом для JIT.

  1. Главная ссылка к новости (https://www.openwall.com/lists...)
  2. OpenNews: Уязвимость в загрузчике микрокода в CPU AMD, позволяющая обойти изоляцию SEV-SNP
  3. OpenNews: Новый вариант атаки BHI на CPU Intel, позволяющий обойти защиту в ядре Linux
  4. OpenNews: SLAM - атака на CPU Intel, AMD и ARM, позволяющая определить содержимое памяти
  5. OpenNews: Phoenix - атака на чипы DDR5, приводящая к искажению содержимого памяти
  6. OpenNews: TONTOU - атака на CPU Intel и AMD, позволяющая обойти защиту от уязвимостей Spectre v2
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/66374-spectre
Ключевые слова: spectre, cpu, attack
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (15) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 21:43, 30/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/–
    >Защита для противодействия новому виду атак добавлена в ядро Linux в начале июля и вошла в состав выпусков

    Ну и хорошо, поэтому и надо держать актуальное ПО:
    https://www.kernel.org

     

  • 1.6, Аноним (6), 22:18, 30/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/–
    >JIT-движки cBPF

    А я говорил, что окончательного кода там где есть JIT нет.

     
  • 1.7, Аноним (7), 22:30, 30/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    хорошие бекдоры, все сделано, чтобы бекдор работал, от линукса до цпу интела.
     
     
  • 2.8, Аноним (1), 22:36, 30/09/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    >и позволяющий обойти механизмы изоляции памяти на системах с процессорами Intel, AMD и ARM

    Обновляйтесь.

     
     
  • 3.10, Аноним (7), 23:02, 30/09/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    обнуляйся
     
  • 3.14, Tron is Whistling (?), 23:19, 30/09/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Сцрать. mitigations=off как modus operandi. За исключением систем, где есть сторонние пользователи либо важные закрытые ключи.
     

  • 1.9, Tron is Whistling (?), 22:39, 30/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/–
    "На компьютере с CPU Intel скорость утечки составляет 8 байт в секунду, чего достаточно для извлечения из памяти хэша пароля за 3-5 минут"
    Уху. Только на интеле, только в лабораторных условиях, без запущенных сторонних приложений, и зная, под каким ковриком лежит ключ. Реальный шанс эксплуатации - 0.00.
     
     
  • 2.11, Аноним (7), 23:05, 30/09/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/–
    для альтернативно одаренного нейрослоупока там видео демонстрация работы эксплоита есть. Я совсем забыл, у тебя же глаз нет :)
     
     
  • 3.12, Tron is Whistling (?), 23:14, 30/09/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    В реальных условиях? Прямо на неизвестной чужой системе?
     
     
  • 4.17, Аноним (7), 00:54, 01/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    ну вот там ссылка на эксплоит показанный на видео, дерзай и проверяй хоть на своей, хоть на чужОЙ, и в правде ОЙ, я совсем забыл, что нейрослоупок по ссылкам ведь не ходит :) Давай придумай, что-нибудь оригинальное!
     
  • 3.13, Tron is Whistling (?), 23:18, 30/09/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/–
    Прямо вот реальный пароль получен?
    А нет, только хеш из кеша от passwd, который из памяти долго не вытирается, никуда не перемещается, старт которого определяется по префиксу, и который вообще в целом бесполезен.
    Ну и да, ps -ef, top, версия ядра где?
    У (с)траха глаза велики, да.
     
     
  • 4.18, Аноним (7), 00:55, 01/10/2026 Скрыто ботом-модератором     [к модератору]
  • +/–
     

  • 1.16, Аноним (16), 00:36, 01/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    Можно ли её использовать для получения рута на Андроиде или PS5?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    XSQUARE
    Inferno Solutions
    Hosting by Hoster.ru
    Хоcтинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить новость, Поддержать