Уязвимость ZombiLoad 2 позволяет выводить данные из ядра операционной системы. Ей подвержены как потребительские, так и серверные процессоры Intel, включая самые новые.

Зомби против процессоров

Новейшие процессоры Intel подвержены очередной разновидности спекулятивных атак. Используя уязвимость в наборе инструкций TransactionalSynchronizationExtensions (TSX), потенциальные злоумышленники могут вывести по побочному каналу конфиденциальные данные из ядра операционной системы и других процессов. Уязвимость получила официальное определение «Асинхронная отмена транзакции» и неофициальное название ZombieLoad 2 (CVE-2019-11135).

Спекулятивное выполнение инструкций — ключевой метод повышения производительности в современных процессорах: с его помощью они прогнозируют, выполнение каких инструкций потребуется от них в ближайшее время, и начинают их выполнять досрочно. Если прогноз подтверждается, процессор продолжает выполнять инструкцию. Если же оказывается, что в ее выполнении не было необходимости, все то, что процессор уже успел сделать, откатывается назад. Данные прерванного выполнения могут сохраняться в кэше.

Набор инструкций TSX (расширение синхронизации для транзакций) призван перенести значительную часть работы по распределению ресурсов между вычислительными ядрами на аппаратный уровень. Этот механизм также направлен на повышение производительности. 

Паспорт, ключи, партбилет

Согласно бюллетеню безопасности Intel, TSX «поддерживает атомарные транзакции памяти, которые либо выполняются, либо отменяются. Когда происходит отмена транзакции в памяти IntelTSX синхронно или несинхронно, все относящиеся к транзакции данные, ранее записанные в память, откатываются к состоянию до начала транзакции. В то время как происходит асинхронная отмена, определенные незавершенные загрузки внутри транзакции могут считывать данные их микроархитектурных структур и спекулятивно передавать эти данные зависимым операциям. Это приводит к побочным микроархитектурным эффектам, которые затем можно измерить для опеределения значения данных внутри микроархитектурных структур».

К этим данным относятся ключи шифрования, пароли и другая важная информация. Доступ к ней можно получить только локально. Впрочем, вредоносная программа, присутствующая в системе, может считать и отправить эти данные удаленному оператору.

В новогодний период 2018 г. мир потрясло известие об обнаружении первых уязвимостей, связанных со спекулятивным выполнением инструкций, — Meltdown и Spectre. И в то время как киберуязвимости лишь в исключительных случаях получают собственное название, выявление Spectre и Meltdown оказалось беспрецедентным по своим масштабам и степени угрозы событием: эти уязвимости затрагивали все мало-мальски новые процессоры Intel, и, как выяснилось позже, разработки других производителей тоже. В результате в мировой прессе произошедшее стали именовать «чипокалипсисом». В дальнейшем оказалось, что помимо Spectre и Meltdown современные процессоры содержат еще множество сходных ошибок.

В мае 2019 г. эксперты обнаружили ряд аналогичных атак спекулятивного выполнения, получившие названия RIDL, Fallout и ZombieLoad. 

Похоже, но не совсем

Новая атака получила название ZombieLoad 2 в силу того, что она, так же, как и первая ZombieLoad, эксплуатирует слабые места в TSX. Однако перед ZombieLoad 2 уязвимы, в том числе, новейшие процессоры Intel Cascade Lake, защищенные от более ранних атак.

По данным производителя процессоров, проблема затрагивает процессоры IntelCore восьмого, девятого и десятого поколений для ноутбуков и только девятого поколения для десктопов, а также второе поколение масштабируемых процессоров Xeon, процессоры серий Xeon W и Xeon E, процессоры Intel Pentium Gold и Celeron 5000. Microsoft уже выпустил соответствующие обновления для Windows — и серверных, и клиентских.

«С самого момента обнаружения Spectre и Meltdown были все основания полагать, что аналогичных уязвимостей в процессорах Intel найдется еще множество, — считает Алексей Водясов, эксперт по информационной безопасности компании SEC Consult Services. — Это предположение подтвердилось и продолжает подтверждаться. Корень проблемы скрывается в самой архитектуре процессоров и принципе спекулятивного выполнения функций. Скорее всего, мы еще не раз услышим об аналогичных уязвимостях и их частичном или полном исправлении».