Процессоры Intel (в том числе поколений Raptor Lake и Alder Lake) подвержены новому типу Branch Target Injection (BTI) атаки, получившей название Indirector. Она может использоваться для кражи конфиденциальных данных.
Indirector эксплуатирует уязвимости в Indirect Branch Predictor (IBP) и Branch Target Buffer (BTB), двух аппаратных компонентах современных процессоров Intel, чтобы манипулировать спекулятивным выполнением с целью извлечения данных.
Атаку Indirector представили исследователи из Калифорнийского университета в Сан-Диего, и все подробности об атаке будут раскрыты на предстоящей конференции USENIX Security Symposium в августе 2024 года.
Специалисты обнаружили, что в упомянутых выше системах IBP и BTB есть недостатки, связанные с механизмами индексации, тегирования и обмена записями, а также они в целом строятся на базе предсказуемой структуры, позволяющей осуществлять целенаправленные и высокоточные манипуляции.
В результате Indirector осуществляет атаки, используя три основные механизма:
- iBranch Locator: кастомный инструмент, использующий методы вытеснения для выявления индексов и тегов ветвей-жертв и точного обнаружения записей IBP для конкретных ветвлений;
- инъекции IBP/BTB: выполнение направленных инжектов для спекулятивного выполнения кода;
- обход ASLR: нарушение Address Space Layout Randomization (ASLR) путем выявления точного расположения косвенных переходов и их целей, что в итоге облегчает прогнозирование и манипулирование потоком управления защищенных процессов.
Также исследователи отмечают, что помимо спекулятивного выполнения кода, достигаемого за счет направленных инъекций, злоумышленники могут использовать side-channel атаки на кеш, например, измерять время доступа, чтобы получить информацию об используемых данных.
Сообщается, что атаки Indirector представляют угрозу для процессоров Intel Raptor Lake и Alder Lake, 12-го и 13-го поколения процессоров Core.
Intel уведомили о проблеме еще в феврале 2024 года, и компания уже сообщила об Indirector другим производителям оборудования и ПО.
Исследователи предлагают два основных способа защиты от от Indirector: более агрессивное использование Indirect Branch Predictor Barrier (IBPB) и усиление Branch Prediction Unit (BPU) за счет применения более сложных тегов, шифрования и рандомизации. Однако при этом следует учитывать заметное влияние на производительность, которое будет особенно заметно при использовании IBPB, поэтому реализация предлагаемых мер потребует весьма тонкой балансировки.
Отмечается, что в Linux IBPB активируется по умолчанию при переходе в режим SECCOMP или в задачах с ограниченными косвенными переходами в ядре, однако его использование ограничено из-за падения производительности на 50%.
Исследователи уже опубликовали на GitHub proof-of-concept и инструменты для реализации описанных ими инжектов.