Аппаратная уязвимость процессоров Intel позволяет пользовательским программам читать память ядра, содержащую конфиденциальную информацию. Группу риска составляют устройства под управлением Windows, Linux и macOS. Ликвидация уязвимости понизит производительность этих устройств от 5 % до 30 %.

В процессорах Intel, выпущенных за последние 10 лет, найдена уязвимость, которая подвергает риску устройства под управлением всех популярных ОС — Windows, Linux и 64-битной macOS. Баг был обнаружен в аппаратуре архитектуры x86-64. По сообщению издания The Register, чтобы обезвредить уязвимость, требуется обновление на уровне ОС, обновление микрокода не поможет. Как вариант, можно купить новый процессор, не содержащий уязвимость.

Судя по поспешности, с которой будут внесены изменения в Windows и Linux, уязвимость является очень серьезной, полагает The Register. Microsoft намерена включить соответствующий патч в ближайшие вторничные обновления. Патчи для Linux тоже уже разрабатываются. Apple, судя по всему, также работает над проблемой.

Помимо ОС, риску подвержены облачные экосистемы, в том числе Amazon EC2, Microsoft Azure и Google Compute Engine. Amazon предупредила пользователей, что обновление безопасности состоится уже на этой неделе. Microsoft собирается выпустить обновление 10 января.

Чем опасна уязвимость

Исчерпывающее описание уязвимости будет представлено позднее в этом месяце. Пока что известно, что она позволяет обычным пользовательским программам видеть содержимое защищенной памяти ядра. То есть, вредоносное ПО также может читать память ядра, где хранятся пароли, логины и другая конфиденциальная информация.

Когда пользовательская программа выполняет такие действия, как запись в файл или открытие сетевого подключения, она передает контроль над процессором ядру. Чтобы переключение между пользовательским режимом и режимом ядра происходило быстро, ядро присутствует во всех адресных пространствах виртуальной памяти процессов, оставаясь при этом невидимым для программ. Уязвимость в процессорах Intel нарушает этот режим невидимости.

Также через уязвимость может быть нарушена рандомизация размещения адресного пространства ядра (KASLR). Предупредить это можно с помощью пакета патчей KAISER, разработанного в Грацком техническом университете в Австрии и направленного на разделение пространства пользователя и пространства ядра.

Потеря производительности

Чтобы обезвредить уязвимость, память ядра нужно изолировать от пользовательских процессов с помощью механизма Kernel Page Table Isolation. Патч переместит ядро в полностью изолированное адресное пространство. То есть, оно не просто станет невидимым для процессов, а вообще перестанет в них присутствовать, пишет The Register.

В результате переключение между режимом пользователя и режимом ядра начнет занимать гораздо больше времени, поскольку процессору придется сбрасывать кэшированные данные и перезагружать информацию из памяти. Это может привести к потери производительности на различных устройствах. По данным The Register, Linux и Windows угрожает замедление работы от 5 % до 30 %. При этом, по macOS данных пока что нет.

Потеря производительности будет зависеть от конкретной модели процессора и выполняемой им в данный момент задачи. Более новые процессоры Intel имеют такие функции как идентификаторы процессов и контекстов (PCID), которые должны помочь уменьшить спад производительности.