Раскрыты сведения о новой атаке на процессоры Intel – AEPIC Leak (CVE-2022-21233), приводящей к утечке конфиденциальных данных из изолированных анклавов Intel SGX (Software Guard eXtensions). Проблема затрагивает 10, 11 и 12 поколения CPU Intel (включая новые серии Ice Lake и Alder Lake) и вызвана архитектурной недоработкой, позволяющей получить доступ неинициализированным данным, оставшимся в регистрах APIC (Advanced Programmable Interrupt Controller) после выполнения прошлых операций.
В отличие от атак класса Spectre, утечка в AEPIC Leak происходит без применения методов восстановления по сторонним каналам – сведения о конфиденциальных данных передаются напрямую через получение содержимого регистров, отражённых в странице памяти MMIO (memory-mapped I/O). В общем виде атака позволяет определить данные, передаваемые между кэшами второго и последнего уровней, включая содержимое регистров и результаты операций чтения из памяти, которые до этого обрабатывались на том же ядре CPU.
Так как для осуществления атаки необходимо наличие доступа к физическим страницам APIC MMIO, т.е. требуются привилегии администратора, метод ограничен атакой на анклавы SGX, к которым администратор не имеет прямого доступа. Исследователями разработан инструментарий, позволяющий в течение нескольких секунд определить хранимые в SGX ключи AES-NI и RSA, а также аттестационные ключи Intel SGX и параметры генератора псевдослучайных чисел. Код для проведения атаки опубликован на GitHub.
Компания Intel заявила о подготовке исправления в форме обновления микрокода, в котором реализована поддержка чистки буферов и добавлены дополнительные меры для защиты данных анклавов. Также подготовлен новый выпуск SDK для Intel SGX с изменениями, предотвращающими утечки данных. Разработчикам операционных систем и гипервизоров рекомендовано использовать вместо устаревшего режима xAPIC, режим x2APIC, в котором для доступа к регистрам APIC вместо MMIO используются MSR-регистры.