Компания Intel объявила об обнаружении в своих процессорах трех уязвимостей, позволяющих злоумышленникам считывать содержимое кэша процессора, а также областей памяти, защищенных технологией SGX. Как и обнаруженные в начале года уязвимости Meltdown и Spectre, новые уязвимости основаны на особенностях реализации механизма спекулятивного исполнения. Исследователи заранее оповестили Intel и производителей операционных систем, поэтому обновления безопасности были выпущены до объявления об обнаружении уязвимостей.
В январе 2018 года группа специалистов в области компьютерной безопасности раскрыла данные о найденных двух типах критических уязвимостей в современных процессорах — Meltdown и Spectre. Опасность уязвимостей заключается в том, что с их помощью вредоносная программа может читать содержимое кэша процессора, в том числе его областей, в которых хранятся данные других программ. Таким способом злоумышленник может украсть пароли или другую конфиденциальную информацию. Хотя бы одной из этих уязвимостей оказалось подвержено большинство процессоров, используемых в современных компьютерах и смартфонах, независимо от того, какая операционная система на них установлена.
После обнародования данных об этих уязвимостях многие исследователи в области компьютерной безопасности начали искать в процессорах Intel, которые больше всего пострадали от Meltdown и Spectre, новые уязвимости того же типа. О первых подобных уязвимостях стало известно уже в феврале, также новые варианты уязвимостей были обнародованы в мае. Эксплуатация этих уязвимостей происходит по-разному, но основаны они на одном механизме, используемом во многих процессорах, выпущенных в последние два десятилетия — спекулятивном исполнении инструкций. При использовании этого механизма процессор не простаивает, ожидая нужных ему инструкций и данных, а на основе предыдущих данных предсказывает значения ожидаемых и продолжает упреждающим образом исполнять инструкции.
В случае, если прогноз оказался ложным, процессор отбросит просчитанную ветвь и не выдаст программе полученные данные. Но в реализации этого механизма есть особенность, которой и воспользовались несколько групп исследователей. Несмотря на то, что процессор не раскрывает данных отброшенной ветви исполнения напрямую, он может загрузить полученные данные в кэш. Поскольку кэш процессора выдает данные гораздо быстрее обычной памяти, злоумышленник может определить содержимое кэша, измеряя задержку получения данных.
В обнаруженных новых уязвимостях Foreshadow используется такой же принцип атаки. Всего исследователи обнаружили три типа уязвимостей, которые имеют различные реализации, но все они основаны на особенностях проверки наличия и доступности данных в физической памяти при обращении по адресу виртуальной памяти. Благодаря эксплуатации уязвимостей злоумышленники могут получить доступ к кэшу первого уровня (L1).
Одна из уязвимостей направлена на области памяти, защищенные с помощью технологии SGX. Эта технология используется в процессорах Intel Core начиная с поколения Skylake. Она позволяет программам создавать в памяти защищенные области, к которым не имеют доступа даже компоненты с более высоким уровнем привилегий, к примеру, ядро операционной системы. Данные в областях SGX шифруются при загрузке в память и расшифровываются при загрузке в процессор, а в кэше процессора они находятся в «открытом» состоянии. Этим и воспользовались исследователи. Опасность несанкционированного доступа к SGX заключается в том, что обычно использующие ее программы хранят в таких областях особо критичные данные, к примеру, ключи шифрования.
Другая уязвимость относится к виртуальным машинам. В частности, она позволяет программе в одной виртуальной машине получать данные других виртуальных машин, работающих на том же физическом ядре процессора или к основной операционной системе компьютера. Это особенно критично для облачных хостингов, которые могут разбивать одно физическое ядро сервера на несколько логических и запускать на них разные виртуальные машины.
Исследователи заранее связались с Intel, специалисты которой передали данные разработчикам операционных систем. Обновления безопасности, закрывающие уязвимости или усложняющие их использование, уже выпущены для Windows, ядра и некоторых дистрибутивов Lunix, а также некоторых виртуальных машин и гипервизоров. По данным Intel, в большинстве случаев обновления не снизят производительность компьютеров даже на один процент, хотя для некоторых случаев тесты показали падение на семь процентов. По данным Red Hat, в отдельных случаях производительность может падать на 14 процентов.
Именно падение производительности, а также нестабильность работы компьютеров после обновления, стали одними из самых заметных последствий найденных в начале года уязвимостей Meltdown и Spectre. Intel заявила, что падение производительности составит не более десяти процентов, а в Microsoft дали более пессимистичную оценку. Кроме того, некоторое промышленное оборудование стало работать нестабильно, а часть компьютеров, работающих под управлением процессоров AMD вовсе перестали загружаться после установки обновления.
Иллюстрация к статье:
Обсуждение