Indirector: новый вектор атаки затрагивает современные процессоры Intel

Indirector: новый вектор атаки затрагивает современные процессоры Intel

Indirector: новый вектор атаки затрагивает современные процессоры Intel

Современные процессоры Intel — например, 12 и 13 поколение Raptor Lake и Alder Lake — уязвимы для нового вектора инъекции целевой линии (branch target injection), получившего название «Indirector». В случае его эксплуатации злоумышленники могут слить конфиденциальные данные из CPU.

Indirector использует уязвимости в двух аппаратных компонентах современных процессоров — Indirect Branch Predictor (IBP) и Branch Target Buffer (BTB). Такой подход позволяет управлять спекулятивным выполнением для извлечения данных.

На Indirector указали специалисты Калифорнийского университета в Сан-Диего. Они же обещают представить все подробности атаки на предстоящем мероприятии USENIX Security Symposium, запланированном на август 2024 года.

Indirect Branch Predictor предназначена для прогнозирования целевых адресов косвенных линий, для чего используется информация о прошлых выполнениях. Branch Target Buffer, в свою очередь, прогнозирует целевые адреса прямых линий через структуру кеша.

 

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

Отталкиваясь от этих вводных, Indirector проводит атаку с помощью трёх основных подходов:

  • iBranch Locator — специально подготовленный инструмент, который может идентифицировать индексы и теги целевых линий и точно определить IBP-записи для конкретных линий.
  • Инъекция IBP/BTB. Осуществляет внедрения в структуры прогнозирования для спекулятивного выполнения кода.
  • Обход ASLR. Прерывает рандомизацию размещения адресного пространства (Address Space Layout Randomization, ASLR) с помощью точного определения местоположения косвенных линий и их целей. Этот подход упрощает прогнозирование и управление потоком контроля защищённых процессов.

Известно, что Indirector (PDF) работает против процессоров семейств Raptor Lake и Alder Lake. На GitHub эксперты разместили код демонстрационного эксплойта.

Linux-руткиты поумнели: теперь они прячутся в eBPF и io_uring

Linux-руткиты долго оставались где-то в тени по сравнению с Windows-аналогами, но сейчас ситуация меняется. Причина понятная: Linux всё плотнее сидит в облаках, контейнерах, IoT и корпоративной инфраструктуре, а значит, и интерес злоумышленников к нему растёт. Исследователи из Elastic обратили внимание на новую тенденцию: современные Linux-руткиты всё чаще прячутся не в «экзотике», а во вполне легитимных механизмах ядра — eBPF и io_uring.

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

Защитные меры в Linux-средах стали жёстче: Secure Boot, подпись модулей, режимы lockdown, стандартные средства аудита. В результате старые методы либо быстро выявляются, либо вообще не работают. И вот тут злоумышленники начали использовать то, что уже встроено в систему и изначально создавалось совсем не для атак.

Один из главных инструментов в этой новой волне — eBPF. Изначально он нужен для фильтрации пакетов, трассировки и других полезных низкоуровневых задач. Но проблема в том, что eBPF позволяет выполнять код внутри ядра, не подгружая классический модуль. Для атакующего это почти подарок: можно цепляться к системным вызовам или событиям Linux Security Module и делать это так, что обычные сканеры вроде rkhunter или chkrootkit просто ничего не заметят. Формально модуль ядра не загружался, и искать вроде бы нечего.

 

По сути, это даёт злоумышленнику очень тихий способ вмешиваться в работу системы: скрывать файлы, влиять на процессы, фильтровать сетевой трафик и при этом почти не оставлять привычных следов. Elastic приводит в пример такие проекты, как TripleCross и Boopkit, которые показывают, как eBPF можно использовать для перехвата системных вызовов и даже для скрытого канала управления.

Вторая интересная история — io_uring. Интерфейс io_uring появился в Linux как быстрый способ асинхронного ввода-вывода: он позволяет пачками отправлять операции в ядро через кольцевые буферы общей памяти. Для производительности это отлично. Для атакующего — тоже. Вместо того чтобы вызывать множество отдельных системных вызовов, процесс может передать целую очередь операций сразу. А значит, системам мониторинга, которые привыкли ловить активность по отдельным системным вызовам, становится заметно сложнее увидеть полную картину.

Именно поэтому io_uring всё чаще рассматривают как удобный механизм ухода от EDR и других средств наблюдения. Если упрощать, телеметрии становится меньше, шума тоже, а вредоносная активность растворяется в «нормальной» работе системы. В материале Elastic упоминается, например, экспериментальный руткит RingReaper, который показывает, как через io_uring можно скрытно подменять типовые операции вроде read, write и connect.

RSS: Новости на портале Anti-Malware.ru