Логотип
Главная | Статьи | SGX Enclave Attacks: взламываем “защищённые” области
SGX Enclave Attacks: взламываем

SGX Enclave Attacks: взламываем “защищённые” области

13 марта, 2026

27

Intel SGX (Software Guard eXtensions) – это хардварная технология изоляции, которая создаёт так называемые enclaves – зашифрованные области памяти, защищённые даже от операционной системы. Но “защищённый” не значит “непробиваемый”. Давай разберём, как это ломают.

Что такое SGX и почему это интересно

SGX создаёт изолированные области (enclave) прямо в памяти процессора. Данные внутри enclave зашифрованы аппаратно – их не видит ни ОС, ни гипервизор, ни другие процессы. Используется для хранения криптоключей, приватных вычислений, биометрии и т.п.. Коммуникация с внешним миром идёт только через строго определённые ECALL (вход в enclave) и OCALL (выход) – это и есть главная поверхность атаки.​

Вектор 1: Side-Channel через кэш (Prime+Probe)

Самый классический путь – атаки по побочным каналам через кэш. Суть в том, что SGX прячет содержимое памяти, но не прячет паттерны доступа к ней.​

Prime+Probe – атакующий заполняет кэш-сет своими данными (prime), даёт enclave поработать, затем измеряет время доступа (probe). Долгий доступ = этот кэш-сет был использован enclave’ом.

Controlled Channel Attack – злоумышленник с контролем над ОС намеренно создаёт page faults, отслеживая доступ к страницам памяти enclave на уровне PTE (Page Table Entries). Это даёт пошаговую картину того, какие страницы использует enclave при обработке разных входных данных.​

Вектор 2: SGXPectre – Spectre внутри enclave

SGXPectre – это Spectre, заточенный под SGX. Атака заставляет процессор спекулятивно выполнять код внутри enclave таким образом, что данные утекают через кэш-side-channel.​

Механика:

  1. Атакующий отравляет BTB (Branch Target Buffer) через свой контролируемый enclave
  2. Жертва-enclave спекулятивно переходит по подложному адресу
  3. Спекулятивно выполненный код читает данные за пределами enclave
  4. Через FLUSH+RELOAD атакующий вытаскивает прочитанные данные

Вектор 3: SGX-Step + AEX-NStep (Single-Stepping)

SGX-Step – это наступательный фреймворк, который позволяет прерывать enclave после каждой инструкции . Делается это через манипуляцию с PTE: атакующий сбрасывает accessed bit страницы перед входом в enclave, что вызывает микрокодовый путь при каждом обращении – и значительно растягивает окно выполнения инструкции, давая таймеру APIC точно попасть в нужный момент.

Intel ответил AEX-Notify – механизмом, который делает prefetch рабочего набора следующей инструкции перед её выполнением, сужая окно для прерывания. Казалось бы, защита работает. Но в 2025 году появился AEX-NStep:​

  • Probabilistic Single-Stepping (PSS) – атакующий отключает кэш на ядре enclave (wbinvd), что делает prefetch-митигацию AEX-Notify бесполезной, затем стреляет IPI (Inter-Processor Interrupt) с соседнего потока SMT. Вероятность попасть в одну инструкцию – 45% для 5-цикловых инструкций​
  • Lower-Bounded Multi-Stepping (LBMS) – прерывание калибруется так, чтобы гарантированно упасть после N инструкций, что позволяет детектировать секрет-зависимые ветки даже с эфемерными ключами​

Вектор 4: SmashEx / SIGY – атаки через исключения

SmashEx эксплуатирует обработку асинхронных исключений в SGX. Суть: ОС посылает исключение в enclave, пока он выполняет не атомарную последовательность – возникает состояние гонки (re-entrancy). Результат: утечка 1024-битного RSA приватного ключа через OpenSSL внутри enclave. Уязвимость пофикшена в SGX SDK 2.14+.​

SIGY (2025) – аналогичная атака нового поколения: untrusted ОС инжектирует поддельные hardware events и сигналы в enclave в произвольный момент выполнения. По сути – управляемый chaos-инжекшн в доверенную среду.​

Вектор 5: TEE.Fail – физическая атака за $1000

Самый хардкорный вектор 2025 года – TEE.Fail от исследователей Georgia Tech и Purdue. Атака использует устройство-интерпозер, собранное из off-the-shelf железа дешевле $1000, которое физически инспектирует весь трафик памяти внутри DDR5-сервера.

Результат: извлечение криптографических ключей из Intel TDX и AMD SEV-SNP, включая секретные attestation ключи с полностью обновлённых машин

CVE: свежие дыры в SGX

CVEТипСутьCVSS
CVE-2024-36293Improper Access ControlМанипуляция EDECCSSA инструкцией → DoS enclave, corruption SSA frames Medium
Downfall (CVE-2022-40982)Transient ExecutionGDS-атака через AVX-инструкции, утечка данных между процессамиHigh
ÆPIC LeakArch. BugПервая архитектурная утечка SGX данных без side-channelHigh

Как защититься (если ты на стороне защиты)

  • Constant-time код – алгоритмы должны выполняться одинаково независимо от секретных данных​
  • Обновляй microcode – большинство transient execution атак закрывается апдейтами​
  • Отключай SMT на чувствительных машинах – большинство interrupt-stepping атак требуют гипертрединга​
  • Используй AEX-Notify – да, он обошел (AEX-NStep), но он всё равно поднимает планку​
  • Минимизируй attack surface – ECALL/OCALL интерфейс должен быть максимально узким​
  • Избегай C/C++ внутри enclave там, где можно – memory safety языки режут вектор SmashEx/SnakeGX​

Инструменты для исследования

SGX – это не серебряная пуля, а сложная система с огромной поверхностью атаки на уровне микроархитектуры. Каждый год выходят новые CVE и исследования, которые показывают: хардварная изоляция ломается так же, как и программная – просто требует больше скилла и понимания CPU internals.