Уязвимость Meltdown процессоров Intel и возможные способы защиты

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

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

Уязвимость Meltdown процессоров Intel

Что подвержено уязвимости?

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

Как изолируются процессы?

Чтобы не возникало пересечения пространств, у приложений отсутствует доступ к физической памяти компьютера. Вместо этого они работают с виртуальными адресными пространствами, причём их отображение на физической памяти происходит так, что совмещение исключено. Контролируются адресные пространства с помощью блока управления памятью (Memory Management Unit, или MMU). Попытки превысить выделенную этим блоком для приложения память вовремя пресекает процессор.

Помимо этого, уровень доступа к различным участкам памяти не одинаковый. Контроль уровней доступа также осуществляется посредством MMU. Именно поэтому пользовательскому приложению недоступна память, которую занимают системное ядро или драйверы.

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

Как возникает Meltdown?

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

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

С помощью спекулятивных алгоритмов обеспечивается основное преимущество Intel — высокая производительность. Основываются они на том, что любая периферия работает медленней, чем центральный процессор. Это касается и оперативной памяти. Если выполнение очередной инструкции требует ожидать данные, поступающие извне, то в период ожидания процессором инициируется выполнение следующего кода. Выбор исходит из наибольшей вероятности поступления тех или иных данных. Выполняя следующую строку, он не ждёт, пока будет вычислено предыдущее условие.

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

Мощные процессоры Intel способны забегать вперёд на несколько десятков инструкций. Именно поэтому они наиболее уязвимы для ошибки, о которой будет рассказано ниже.

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

Такая уязвимость, получившая название Meltdown представляет собой серьёзную угрозу информационной безопасности.

Каким процессорам угрожает Meltdown

Однозначно уязвимы следующие линейки:

  • Xeon.
  • Celeron.
  • Pentium.

Под вопросом находится ARM Cortex-A75, в том числе ARM для новых моделей iPhone и iPad. Существует большая степень вероятности, что уязвимости не подвергается MIPS.

Есть ли возможность программной защиты?

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

(7 votes, average: 4,86 out of 5)
Загрузка...