Группа исследователей представила атаку TEE.Fail, которая позволяет извлекать ключи и другие секретные данные из защищенных областей процессоров Intel (SGX, TDX) и AMD (SEV-SNP). Эти области, называемые Trusted Execution Environments (TEE), изолированы от ОС и предназначены для безопасного выполнения кода и хранения криптографических ключей.

Специалисты из Технологического института Джорджии и Университета Пердью продемонстрировали, что современные реализации TEЕ не так надежны, как обещают их производители. Корень проблемы кроется в переходе на серверное железо с памятью DDR5, где ради производительности отказались от защиты целостности и механизма защиты от повторов, оставив только шифрование AES-XTS.

Для реализации атаки TEE.Fail требуется физический доступ к целевому оборудованию, а также привилегии уровня root для модификации драйвера ядра.

В целом TEE.fail похожа на недавно представленные атаки WireTap и Battering RAM, которые также были связаны с использованием интерпозера для захватом данных из памяти. Однако WireTap и Battering RAM работали только с памятью DDR4, тогда как TEE.fail нацелена на DDR5.

Фактически атака представляет собой перехват трафика на шине памяти DDR5. Для эксперимента исследователи собрали специальное устройство-интерпозер стоимостью менее тысячи долларов США и разместили его между модулем памяти и материнской платой, а также использовали собственный логический анализатор. Замедлив частоту памяти до 3200 MT/s, специалисты смогли считывать зашифрованные блоки данных, записываемые и читаемые TEE.

Также исследователи модифицировали драйвер SGX в ядре Linux, чтобы сопоставлять виртуальные и физические адреса, и заставили анклав многократно обращаться к одной и той же ячейке памяти. Это позволило установить, что шифрование AES-XTS детерминировано — один и тот же адрес всегда дает одинаковый шифротекст. Благодаря этому удалось построить таблицу соответствий и извлечь криптографические ключи.

В итоге экспертам удалось использовать восстановленный nonce и публичную подпись, и реконструировать приватные ключи подписи, что дало им возможность подделывать аттестации SGX и TDX и выдавать себя за настоящие TEE. Такой же подход они применили для извлечения ключей подписи из OpenSSL, работающего в виртуальной машине под защитой AMD SEV-SNP. Похожие методы сработали и против AMD SEV-SNP, даже при включении Ciphertext Hiding.

Кроме того, в ходе проведенных тестов исследователи смогли:

  • подделать аттестацию TDX в Ethereum BuilderNet и получить доступ к конфиденциальным данным и ключам транзакций;
  • фальсифицировать аттестацию Intel и Nvidia, чтобы запускать код вне TEE, который при этом выглядел легитимным;
  • извлечь приватные ключи ECDH непосредственно из анклавов, восстановить сетевой мастер-ключ и полностью нарушить конфиденциальность.

Также они атаковали сервер на базе Xeon и получили Provisioning Certificate Key (PCK) — ключ, который используется для подтверждения подлинности устройства.

Исследователи уведомили о проблемах Intel в апреле, Nvidia — в июне, AMD — в августе. Все компании признали уязвимости и заявили, что работают над мерами смягчения. Позже AMD выпустила отдельный бюллетень, отметив, что не планирует выпускать патчи, поскольку атаки с физическим доступом выходят за рамки обычной модели угроз для их продуктов.

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии