Не Intel единым: Google обнаружила уязвимости во всех современных процессорах
Вслед за сообщениями о баге в чипах Intel процессорный гигант выпустил официальное заявление, в котором говорится, что проблема затрагивает множество типов устройств, не взирая на производителя CPU и операционную систему. Эту информацию подтверждают специалисты проекта Google Project Zero, которые опубликовали детали двух уязвимостей с кодовыми именами Meltdown и Spectre. Корнем всех проблем оказались недоработки механизма спекулятивного выполнения инструкций процессором, но обо всем по порядку.
Meltdown
Уязвимость Meltdown, которой подвержены процессоры Intel с архитектурой x86-64 и некоторые чипы ARM64, позволяет пользовательским приложениям считывать содержимое памяти ядра операционной системы, в которой могут храниться логины, пароли и другая закрытая информация. Спекулятивное выполнение позволяет оптимизировать работу чипа за счет предсказания и обработки инструкций до их подтверждения. Таким образом не теряется время на ожидание, а если проверка не пройдена, все изменения аннулируются.
Проблема заключается в том, что чипы заходят слишком далеко в предварительных оценках. При определенных условиях перед сбросом результатов выполнения в кэше процессора находятся данные из памяти ядра, и хакеры могут узнать о их наличии по скорости реакции на запросы. Проведение атаки по сторонним каналам позволяет получить содержимое памяти. В общем-то, способ не самый простой, однако его невозможно распознать с помощью антивирусов. Установлено, что с помощью Meltdown реально получить доступ к чужой памяти в системах виртуализации (с другой виртуальной машины или даже хост-системы).
Чтобы залатать брешь в безопасности, разработчикам пришлось разделить память ядра и пользовательское пространство. Необходимые исправления уже добавлены в ядро Linux 4.15, Microsoft обновила Windows 10 и обещает добавить патч для Windows 7 и Windows 8 в следующий вторник. Apple закрыла уязвимость в macOS High Sierra 10.13.2. Google уже выпустила апдейты для Android и Chrome OS, а на подходе браузер Google Chrome 64 с защитой от атак Meltdown. Исправление подготовила и ARM для подверженных проблеме чипов Cortex-A75, Cortex-A73, Cortex-A72, Cortex-A57, Cortex-A17 и Cortex-A9. Обновления также получают «облачные» сервисы, включая Amazon Web Services, Microsoft Azure и Google Cloud Services.
Новый механизм защиты KPTI сказывается на производительности устройств, потому как процессору придется сбрасывать TLB-буфер быстрой переадресации при каждом переключении между режимом ядра и пользовательским режимом. Замедление составляет в среднем 5-30% и сильно зависит от задачи. Более заметное падение скорости будет в приложениях, которые часто обращаются к ядру (например, для операций с диском и сетью). Зато геймерам беспокоиться не о чем. Intel также заявила, что со временем негативный эффект будет минимизирован. Подробный отчет компании ожидается на следующей неделе, поэтому пока без подробностей.
Spectre
Эта уязвимость позволяет обманным путем получить конфиденциальные данные других приложений. Она эксплуатирует особенности спекулятивного выполнения инструкций в большинстве современных процессоров. Под угрозой решения Intel, AMD и ARM. Описанное выше исправление для Meltdown здесь тоже не поможет. На практике воспользоваться Spectre гораздо сложнее (по словам представителей AMD, шансы практически нулевые), но и решения проблемы в настоящий момент не существует. Возможно, для этого понадобится изменить архитектуру всех процессоров. Обновления микрокода чипов и дополнительные уровни безопасности в приложениях позволяют лишь снизить риски.
Как защититься?
Пока единственный способ обезопасить себя — это установка обновлений операционной системы и браузера. Если, конечно, они поддерживаются производителем. По словам представителей Google, даже без патчей им не удалось воспроизвести уязвимость на Android-устройствах с ARM-процессором, но это слабое утешение.
Случаи атак с применением Meltdown и Spectre пока не зарегистрированы.
Источники: Liliputing, Ars Technica, Intel, Google Project Zero