Ubuntu отключает защиту от Spectre для GPU — что это значит для вас и как реагировать. Важные детали и рекомендации по безопасности внутри.

Решение Canonical поставлять Ubuntu 24.04 LTS (Noble Numbat) и грядущий релиз 25.10 с отключёнными защитами от Spectre в Intel GPU Compute Runtime вызвало оживлённые дебаты. До 20 процентов прироста производительности для нагрузок OpenCL и Level Zero звучит заманчиво, но энтузиасты безопасности бьют тревогу. Это руководство — без жаргона, но технически глубокое — даст вам всё необходимое как новичку, так и профессионалу: предысторию, реалистичную оценку рисков и пошаговые инструкции по проверке и, при необходимости, повторному обеспечению безопасности вашей системы.
Почему снова все говорят о Spectre?
В 2018 году Spectre и Meltdown взорвали мировые заголовки. Эти два класса атак на основе транзиентного или спекулятивного исполнения позволяют утекать секретам (паролям, ключам, сессионным токенам) из якобы изолированной памяти, используя микроскопические временные различия при ошибках спекулятивного исполнения. Meltdown был относительно быстро смягчён с помощью Kernel Page‑Table Isolation (KPTI). Spectre же оказался гидрой — при устранении одной уязвимости появлялись новые варианты (V2, BHB/BHI, Straight‑Line Spec, Retbleed и многие другие).
Защиты имели свою цену: в зависимости от нагрузки производительность CPU и пропускная способность ввода-вывода заметно снижались. Canonical теперь пересматривает этот компромисс — на этот раз не на стороне CPU, а на стороне GPU вычислений. Согласно баг-репорту Launchpad #2110131, отключение графических защит даёт до 20 процентов прироста производительности OpenCL; Intel уже некоторое время поставляет свои бинарники без этих защит.
CPU ≠ GPU — что именно отключается?
Большинство пользователей связывают Spectre только с CPU. Однако исследования, опубликованные с 2022 года, показывают, что современные интегрированные графические процессоры (iGPU) тоже имеют спекулятивные побочные каналы. Intel ответила добавлением защит в открытый Compute Runtime (NEO), которыми можно управлять через переключатель CMake NEO_DISABLE_MITIGATIONS.
Canonical теперь по умолчанию установила этот переключатель в TRUE — только в библиотеке libigdrcl.so (OpenCL) и бэкенде Level Zero. Защиты ядра (IBRS, IBPB, KPTI и др.) остаются включёнными. Это классический компромисс: меньше накладных расходов на GPU, но теоретически большая поверхность атаки. Phoronix подтвердил около 20‑процентного ускорения, особенно в задачах AI inference, видеокодировании (HandBrake QSV) и рендеринге Blender Cycles.
Как было принято решение?
Intel и Canonical координировали свои усилия. Обе команды по безопасности оценили пользу GPU-защиты как меньшую, чем её стоимость в производительности.
Известных реальных эксплойтов не существует. Публичных доказательств концепции, целенаправленно атакующих iGPU, не появлялось. В отличие от ранних вариантов Spectre на CPU, рабочий код атаки не демонстрировался — это не гарантия безопасности, но важный факт.
Исправления ядра по-прежнему работают. Даже если появится новый вариант для GPU, злоумышленнику сначала придётся обойти барьеры ядра, прежде чем извлечь значимые данные.
Эксперт по безопасности Брюс Шнайер резюмировал: атаки трудно эксплуатировать, существуют более простые пути компрометации системы, а потеря производительности непропорциональна выигрышу в безопасности.
Затронут ли я?
- Используете ли вы нагрузки OpenCL или oneAPI/Level Zero?
Если вы просто просматрива