Программисты из числа владельцев новых ноутбуков MacBook Air и Surface Pro, оборудованных процессорами Intel Ice Lake 10-го поколения, пожаловались на постоянные перезагрузки и «падения» операционной системы. Все они являются пользователями инструментов разработчика компании Jetbrains и их производных. Однако, по мнению некоторых из них, создатели популярнейшей среды разработки IntelliJ IDEA в этом не виноваты – проблема может заключаться в дизайне процессоров Intel.
Трудности программирования на новых Macbook и Surface Pro
Процессоры семейства Ice Lake корпорации Intel могут содержать аппаратную ошибку, которая приводит к аварийному завершению работы операционной системы, пишет Techpowerup со ссылкой на обсуждение на площадке компании Jetbrains, создателя популярных инструментов для разработчиков программного обеспечения.
По сообщению портала, проблему неожиданного «краха» или перезагрузки операционной системы отмечают программисты – владельцы ноутбуков Apple Macbook Air 2020 под управлением macOS Catalina 10.15.4 и Microsoft Surface Pro, работающего на Windows 10. Эти ПК оснащаются процессорами Intel Core 10 поколения, продажи которых стартовали осенью 2019 г.
Кроме того, пострадавших от потенциально опасного бага объединяет то, что все они являются пользователями интегрированных сред разработки компании Jetbrains или их производных В частности, упоминаются популярные IntelliJ IDEA, CLion, Pycharm и Android Studio (основана на IntelliJ IDEA), написанные на языке программирования Java и выполняющиеся в среде JVM (Java Virtual Machine, «Виртуальная машина Java»). «Крах» системы, как отмечают пользователи, может наблюдаться при различных обстоятельствах, в том числе при индексировании проекта, редактировании кода или даже простое. Кроме того, в некоторых случаях ошибка провоцирует «падение» самой среды разработки, а не операционной системы.
Напомним, компания Jetbrains с главным офисом в Праге (Чехия) была основана в 2000 г. россиянами Сергеем Дмитриевым, Евгением Беляевым и Валентином Кипятковым. Наиболее известный продукт компании – интегрированная среда разработки IntelliJ IDEA, на сегодняшний день представленная коммерческой и бесплатной (Community Edition) версиями. По состоянию на 2018 г. у Jetbrains было более 5 млн пользователей, среди них Google, Twitter, HP.
Почему проблему приписывают процессорам Intel
К выводу об аппаратной природе описанной выше ошибки одного из участников обсуждения под псевдонимом Adam Ierymenko подтолкнули результаты проведенного им эксперимента. В его рамках среда CLion была запущена в гостевой операционной системе на базе ядра Linux, которая, в свою очередь, выполнялась в виртуальной машине Parallels на хостовой macOS. Другими словами, программа CLion была изолирована внутри своего рода «песочницы», ее «крах», по логике экспериментатора, не смог бы спровоцировать сбой macOS. Однако на практике все произошло вопреки ожиданиям программиста.
«JVM делает что-то, что активизирует некий баг в процессорах Ice Lake, возможно, связанный с исправлениями Spectre/Meltdown и гипертрейдингом», – отметил Adam Ierymenko в одном из своих сообщений.
По его мнению, ошибка, если она действительно существует, может представлять серьезную угрозу, причем не столько для программистов, предпочитающих ПО Jetbrains, сколько, к примеру, для провайдеров облачных сервисов вроде Amazon Web Services, использующих технологии виртуализации. Ведь злоумышленники, изучив проблему, в теории могут подготовить эксплойт, который позволит прерывать работу физических серверов провайдера. Стоит отметить, что продажи серверных процессоров Intel Ice Lake еще не начались. Их старт, как ожидается, состоится до конца 2020 г.
По сообщению пользователей, столкнувшихся с данной проблемой, смена оригинального набора разработчика Java (JDK, Java Development Kit) компании Oracle на свободную реализацию OpenJDK не приносит надежного положительного результата. Попытка подобрать универсальные параметры запуска JVM, которые подошли бы пользователям всех «проблемных» разработок Jetbrains, также пока не увенчалась успехом.
Другие проблемы с чипами Intel
В марте 2020 г. CNews писал о том, что специалисты Positive Technologies обнаружили в большинстве выпущенных за последние пять лет чипсетов Intel неустранимую уязвимость. С ее помощью можно не только извлекать конфиденциальную информацию с ПК жертвы, но и выдавать за него собственный компьютер, причем не оставляя следов.
В марте 2019 г. стало известно об обнаружении ранее неизвестной широкой общественности функции в чипах Intel, которая называется Intel VISA. Это полноценный логический анализатор сигналов, который потенциально может быть использован злоумышленниками для получения доступа к критически важной информации из оперативной памяти компьютера, в том числе к персональным данным и паролям пользователей. Проанализировать технологию Intel VISA позволила ранее выявленная экспертами Positive Technologies уязвимость в подсистеме Intel Management Engine (IME), получившая индекс INTEL-SA-00086. IME – это закрытая технология, которая представляет собой интегрированный в микросхему Platform Controller Hub (PCH) микроконтроллер с набором встроенных периферийных устройств. Недостаток в IME дает злоумышленникам возможность атаковать компьютеры – например, устанавливать шпионское ПО в код данной подсистемы. Для устранения этой проблемы недостаточно обновления операционной системы, необходима установка исправленной версии прошивки.
В августе 2018 г. Positive Technologies обнаружила баг в JTAG (Joint Test Action Group), специализированном аппаратном интерфейсе на базе стандарта IEEE 1149.1, который предназначен для подключения сложных цифровых микросхем или устройств уровня печатной платы к стандартной аппаратуре тестирования и отладки. Реализация JTAG в IME обеспечивает возможность отладочного доступа к процессору (при наличии физического доступа). Уязвимость позволяла получать низкоуровневый доступ к аппаратной части компьютера и запускать произвольный код «за пределами видимости пользователя и операционной системы».
Широкий резонанс в экспертном сообществе вызвали уязвимости, эксплуатирующие недостатки механизма спекулятивного выполнения инструкций. Чтобы повысить скорость работы, процессоры прогнозируют, выполнение каких инструкций потребуется от них в ближайшее время, и начинают их выполнять досрочно. Если прогноз подтверждается, процессор продолжает выполнять инструкцию. Если же оказывается, что в ее выполнении не было необходимости, все то, что процессор уже успел сделать, откатывается назад. При этом данные прерванного выполнения могут сохраняться в кэше, к содержимому которого при определенных условиях можно получить доступ. Яркий пример таких уязвимостей – Meltdown и Spectre, которые были обнаружены в январе 2018 г. в процессорах Intel, AMD и ARM64. Meltdown давала возможность пользовательскому приложению получить доступ к памяти ядра, а также к другим областям памяти устройства. Spectre же нарушала изоляцию памяти приложений, благодаря чему через эту уязвимость можно получить доступ к данным чужого приложения. В совокупности эти проблемы и получили название «чипокалипсиса». Чуть позднее были обнаружены еще семь разновидностей Meltdown/Spectre.
В марте 2019 г. стало известно об уязвимости под названием Spoiler, которая использует особенности микроархитектуры Intel и обеспечивает доступ к личным данным и паролям любого ПК. Для взлома системы достаточно вируса или скрипта в браузере. Spoiler затрагивает все поколения процессоров Intel Core. Аппаратной защиты от нее не существует, и появится она только в следующих поколениях процессоров после «существенной работы по перепроектированию на уровне кремния».