Все процессоры под угрозой: глобальные уязвимости Spectre и Meltdown

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

Рассмотрим Spectre и Meltdown подробнее

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

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

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

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

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

Чем опасны Spectre и Meltdown

Само по себе присутствие «секретных» данных в кэш-памяти не представляет опасности, однако атаки с использованием этих «дыр» устрашают. Так, специальный код JavaScript и использование бреши Spectre может показать имя и пароль последнего пользователя, входившего на сайт. При использовании виртуальных серверов ситуация еще опаснее – в руках у злоумышленников могут оказаться данные из другой виртуальной среды или даже сервера в целом. Для того чтобы атаковать бухгалтерскую или финансовую систему теперь достаточно запустить код на виртуальной машине, расположенной на том же физическом сервере, что и атакуемая система, но защищенной значительно хуже. Администратор атакуемой системы не получит никакого оповещения о возможной проблеме, а доступ к ней уже попадет сторонним лицам.

Конечно, заплаты против Spectre и Meltdown разрабатываются и рассылаются пользователям в виде обновлений. Однако их реализация доступна только на программном уровне. Если для серверных и настольных систем последних поколений исправления наверняка будут выпущены (хотя и снизят производительность на 5-10%), то смартфоны и планшеты на android, особенно старых версий, вряд ли будут защищаться. 

Спасибо за внимательность!
Выделите опечатку и нажмите Ctrl + Enter, чтобы отправить сообщение об ошибке.