В 2018 году одной из главных новостей в сфере информационной безопасности стало обнаружение серьезных аппаратных уязвимостей в процессорах Intel. Уязвимости получили название Meltdown и Spectre. Стопроцентной защиты от использования этих уязвимостей злоумышленниками нет. Как обстоит ситуация с Meltdown и Spectre сейчас?

Опасно? Да!

Исследование, раскрывающее механизм работы Spectre и Meltdown, показало, что обе уязвимости позволяют прочитать пользовательские данные в обход операционной системы. Современные чипы запрограммированы так, что для повышения производительности они часто исполняют команды спекулятивно, основываясь на механизмах предсказания ветвлений. Во время простоя процессор выполняет код, основываясь на вероятном результате проверки какого-то известного условия.

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

Spectre работает несколько иначе, хотя тоже использует адреса из кэша и особенности работы процессоров в спекулятивном режиме. Эта уязвимость позволяет проникнуть в память «соседнего» процесса со сходным набором инструкций. Изоляция между приложениями исчезает, и злоумышленник получает возможность перехвата данных из другого приложения.

Уязвимости Meltdown и Spectre не могут быть полностью закрыты, поскольку их причина кроется в архитектурных особенностях процессоров. Уязвимостям подвержены десятки моделей процессоров, выпущенных за последние двадцать лет.

Исправления на уровне «железа»

В 2018 году было заявлено, что исправления, делающие невозможным использование Meltdown и Spectre, появятся на архитектурном уровне в процессорах Intel. Чипы семейства Whiskey Lake получили аппаратные исправления, защищающие пользователя от уязвимостей. Также исправления получают и процессоры Cascade Lake. Пока исправления на уровне «железа» доступны в основном для высокопроизводительных процессоров, используемых в центрах обработки данных.

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

Еще в прошлом году стало известно, что отдельные разновидности Meltdown и Spectre работают не только на процессорах Intel, но и на ARM, и на AMD. Недавно вышедшие процессоры AMD Zen 2 с техпроцессом 7 нм уже защищены на аппаратном уровне от уязвимостей Meltdown и Spectre.

Но большинству пользователей еще несколько лет придется полагаться на программные патчи, которые доступны для всех основных операционных систем, в том числе Windows 7, 8, 8.1 и 10, а также macOS 10.13 и 10.14.

Как обезопасить себя?

Для подавляющего большинства операционных систем патчи, серьезно затрудняющие использование уязвимостей Meltdown и Spectre, вышли еще в январе 2018 года. Для их получения достаточно своевременно установить официальные обновления своей операционной системы. Впрочем, стоит отметить, что патчи могут серьезно снижать производительность процессора. Синтетические тесты показали, что в Linux (ядро 4.19) падение производительности составляет до 4–5% для процессоров AMD и от 7 до 16% для процессоров Intel. В реальных задачах (компиляция ядра, сборка программ из исходников) потеря производительности составляет около 2–3%.

Для Windows различные синтетические тесты показывали падение производительности до 30–35% при использовании процессоров Intel и до 20% с процессорами AMD. Но на реальных задачах потеря производительности невелика. Будущие обновления в Windows 10 должны снизить реальное снижение производительности до уровня статистической погрешности.

Чтобы частично обезопасить свой компьютер от Spectre и Meltdown, достаточно регулярно получать обновления безопасности для своей ОС. Но стоит понимать, что программные патчи немного снижают производительность процессора, а стопроцентной защиты от уязвимостей все еще нет.

Неполный список уязвимых процессоров можно найти на портале techarp. Для Windows также есть утилита InSpectre, которая мгновенно определит, уязвим ли ваш компьютер. Если защита от Meltdown и Spectre отсутствует, стоит скачать все доступные обновления безопасности для своей системы.

Поделиться