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