Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Программно эксплуатируемая аппаратная уязвимость — явление редкое. Обнаружить такую непросто, а пофиксить — еще сложнее: если проблема скрывается в архитектуре процессора, она вполне может оказаться и вовсе неустранимой. Технология Intel SGX уже неоднократно подвергалась атакам, и вот недавно объединенная группа исследователей обнаружила в процессорах Intel еще один архитектурный баг, позволяющий организовать утечку ключей шифрования и другой критичной информации.
Баг получил наименование AEPIC Leak. Давай разберемся в его устройстве и посмотрим, так ли он опасен, как об этом говорят.
Технологию SGX (Software Guard Extensions) называют краеугольным камнем системы безопасности процессоров Intel. По большому счету SGX представляет собой набор инструкций, позволяющих программам, в частности операционным системам и виртуальным машинам, создавать так называемые анклавы — защищенные участки памяти для хранения ключей шифрования и прочих критичных данных.
Главная особенность анклавов заключается в том, что, кроме процесса‑владельца, ни один другой процесс, включая ядро ОС, гипервизоры виртуальных машин, периферийные устройства, обращающиеся к памяти с прямыми запросами DMA, не имеют прав на чтение из защищенной области памяти и запись в нее. Это гарантирует целостность хранящихся там данных.
Теоретически нет никакой возможности изменить содержимое анклавов SGX, даже если сама операционная система скомпрометирована или в ней работает вредоносное ПО с высокими привилегиями. С использованием этого инструмента можно организовать надежное шифрование данных (например, для создания защищенных дисковых разделов), выполнять безопасные удаленные вычисления, хранить цифровые сертификаты или реализовать системы защиты от копирования — так, SGX активно использовался в технологии записи данных Blu-ray. Изначально SGX создавался именно для вычислений на удаленных машинах в обособленном и полностью защищенном окружении.
SGX появилась в 2015 году в процессорах Intel шестого поколения Skylake. Именно в эти чипы был встроен аппаратный модуль Memory Encryption Engine, обеспечивающий шифрование данных, которые передаются от процессора в анклавы памяти SGX. Поскольку шифрование выполнялось компонентом CPU, периметр безопасности ограничивался только процессором, без обмена незашифрованными данными с оперативной памятью, всегда считавшейся ненадежной в плане информационной безопасности.
AEPIC Leak — первый архитектурный баг CPU, позволяющий атакующему сливать данные из процессора без использования стороннего канала. Такие уязвимости, как Meltdown или Spectre, не являются полностью аппаратными багами. Они представляют собой аппаратные уязвимости, которые эксплуатируются из программного обеспечения. Следовательно, сторонний канал — это внешнее ПО. Другими словами, брешь AEPIC Leak позволяет уводить данные напрямую, без использования специальных программ. Тем не менее, чтобы создать эти данные, применяются специальные архитектурно зависимые библиотеки Intel IPP и SGX. Атаки на уязвимости Meltdown и Spectre называются атаками переходного исполнения из‑за необходимости использования такого специального софта.
К чисто архитектурным багам также относятся широко известные уязвимости FDIV и F00F. Первый из них был обнаружен в оригинальных процессорах Pentium и приводил к неверным результатам при делении чисел с плавающей запятой с помощью инструкции FDIV
. Второй же присутствовал в большем числе моделей процессоров, включая всю линейку микроархитектурного ряда P5. Ошибка могла привести к останову процессора еще при загрузке операционной системы, а «лечили» это, обновляя ОС.
Между тем в девяностые годы прошлого века, когда были выявлены две эти уязвимости, диапазон вычислений не распространялся дальше локального компьютера. Поэтому, хотя выявление этих багов наделало много шума, умышленная их эксплуатация не создавала для пользователей серьезных проблем, особенно после выхода заплаток. В наше время картина выглядит иначе. Мир зависит от вычислений в облаках, а так как SGX — главный защитный механизм удаленных вычислений, эксплуатация хакерами его уязвимости наносит сокрушительный удар по конфиденциальности данных.
Исследователи просканировали адресное пространство ввода/вывода процессоров, базирующихся на микроархитектуре Intel Sunny Cove. В результате удалось обнаружить, что не все регистры локального APIC проинициализированы должным образом. Другими словами, после выполнения операции чтения/записи эти регистры не очищаются и продолжают хранить старые значения, которые использовались в предыдущем вычислении.
Посредством AEPIC Leak можно прочесть зарезервированную часть APIC-регистров. APIC использует суперочередь между L2 и LLC для передачи данных ядру процессора. Зарезервированная часть не перезаписывается, что позволяет хакеру прочесть устаревшие данные другого приложения.
Наиболее уязвимым участком передачи данных внутри CPU, откуда можно утянуть ценную информацию, является суперочередь — буфер для передачи данных из кеша L2 в LLC и обратно. При наличии административных привилегий в системе это позволяет похитить хранящиеся в анклаве SGX данные без использования сложных схем.
Уязвимости AEPIC Leak подвержены все процессоры Intel на базе архитектуры Sunny Cove (такие как Ice Lake и Alder Lake), то есть клиентские микропроцессоры 10, 11 и 12-го поколений, а также серверные процессоры Xeon третьего поколения.
При этом сама Intel выкатила более широкий список процессоров, подверженных уязвимости AEPIC Leak, включающий Ice Lake Xeon-SP, Ice Lake D, Gemini Lake, Ice Lake U, Y и Rocket Lake.
Сведения о том, подвержены ли атакам на эту брешь процессоры фирмы AMD, разнятся. Кто‑то сообщает, что такие процессоры не имеют этой уязвимости, другие утверждают, будто атакам подвержены процессоры на архитектурах Zen 1–3.
Даниель Грусс (исследователь из группы Грацского технического университета, опубликовавшей отчет об уязвимости) утверждает, что, поскольку Apple M1 (и, возможно, M2) построены на основе того же дизайна, что и Sunny Cove, они тоже подвержены атакам на уязвимость AEPIC Leak.
Хотя установлено, что наибольшую опасность AEPIC Leak представляет для локальных систем, это не значит, что хакер не может на своем компьютере подготовить эксплуатирующую уязвимость малварь и подсунуть ее пользователю, работающему на целевой системе. Останется заставить пользователя запустить вредоносную программу, а дальше уже дело техники.
Как все‑таки работает уязвимость AEPIC Leak? Сейчас разберемся.
Современные процессоры — крайне сложные устройства, состоящие из набора логических элементов, управляемых собственным набором микропрограмм. Один из них — расширенный программируемый контроллер прерываний (APIC), управляющий, как следует из его названия, прерываниями. Он состоит из локального APIC, интегрированного в каждое логическое ядро и ответственного за обработку межпроцессорных прерываний, и внешнего APIC, управляющего прерываниями ввода/вывода.
В свою очередь, локальный APIC содержит так называемые регистры, предназначенные для управления его функциональностью или отображения состояния прерываний в системе. По умолчанию современные контроллеры APIC функционируют в режиме xAPIC, в котором каждый регистр представляет собой область размером 4 Кбайт в физическом адресном пространстве памяти. Разные модели процессоров имеют разное количество APIC-регистров: от 32 до 256.
Источник: xakep.ru