«Чипокалипсис» продолжается: Найден способ воровать данные с помощью защищенного режима процессора
По данным бывших сотрудников Intel, существует возможность получать доступ к памяти системы, находящейся в режиме системного управления (SMM), и ее аппаратным интерфейсам.«Дыра» в суперзащищенной области
Эксперты компании Eclypsium нашли новый вариант атаки на уязвимость Spectre, известную с начала 2018 г. и получившую в прессе название «чипокалипсис» за массовую опасность, затрагивающую, в основном, прошивки 64-битных процессоров Intel.
Этот вариант атаки на процессоры Intel позволяет выводить данные из памяти системы, находящейся в режиме системного управления (System Management Mode, SMM).
SMM - это защищенный режим исполнения на процессорах x86/x86-64, специальное состояние процессора, используемое для выполнения функций по управлению платформой. В этом состоянии приостанавливается исполнение всякого другого кода (включая операционные системы и гипервизор), и на уровне UEFI/BIOS запускается специальная программа, хранящаяся в специализированном сегменте оперативной памяти (SMRAM) в наиболее привилегированном режиме.
Технология SMM сама по себе очень старая: ее первая реализация приходится на начало 1990-х годов и процессоры Intel 386 SL; в дальнейшем она была реализована в процессорах Intel 80486 и Pentium.
Процессор переходит в режим SMM при получении сигнала запроса на прерывание SMI (System Management Interrupt), генерируемого специальными схемами системной платы при наступлении определенных контролируемых событий.
Код, работающий в режиме SMM, получает неограниченный доступ ко всей системной памяти, включая память ядра и память гипервизора.
Общедоступный эксплойт
Область памяти, выделенная под SMM, на процессорах Intel защищена специальным типом диапазонных регистров - System Management Range Registers (SMRR). Эксперты Eclypsium, используя общедоступный экспериментальный эксплойт к уязвимости CVE-2017-5753, она же Spectre variant 1, нашли способ обходить механизм SMRR и получать доступ к содержимому SMRAM, в котором хранятся и исполняются все данные, используемые в режиме системного управления (SMM).
«Поскольку SMM имеет привилегированный доступ к физической памяти, в том числе, памяти, изолированной от операционных системы, наше исследование показало, что атаки на уязвимость Spectre позволяют получить доступ к другим секретным данным в памяти - сведениям о гипервизоре, операционной системе, приложении и т.д., - говорится в исследовании Eclypsium. - Усовершенствованные атаки на Spectre позволяют хакеру, не имеющему никаких привилегий в системе, считывать содержимое памяти, в том числе той, которая должна защищаться диапазонными регистрами, например, памяти SMM. Это может выдать код SMM и данные, которые должны были оставаться конфиденциальными, с одновременным раскрытием хакеру уязвимостей SMM и его секретных данных».
Исследователи портировали экспериментальный код на драйвер ядра и продемонстрировали, как можно запускать его с максимальными привилегиями.
В результате им удалось «...получить доступ к различным аппаратным интерфейсам, что обеспечивает злоумышленникам повышенный контроль над системным оборудованием и доступ к другим компонентам, таким как память и интерфейсы IO, PCI и MMIO. Этим обеспечивается доступ к интерфейсам с более высокими привилегиями, как, например, сигнал прерывания SMI со стороны ПО».
«Фирма Eclypsium создана и возглавляется бывшими экспертами по безопасности самой корпорации Intel, - отмечает Олег Галушкин, эксперт по информационной безопасности компании SEC Consult Services. - В частности, исполнительный директор Юрий Булыгин возглавлял подразделение McAfee, и затем работал в Intel в качестве руководителя подразделений по изучению продвинутых угроз. Уже поэтому их исследование заслуживает внимания.
Эксперты Eclypsium уверены, что атаку, аналогичную описанной, можно провести и с помощью эксплуатации уязвимости Spectre 2.
Информация была представлена в Intel еще в марте. Представители компании утверждают, что вышедших на сегодняшний день патчей для Spectre 1 и 2 будет достаточно, чтобы нейтрализовать угрозу.