Внеочередное и спекулятивное исполнения стали брешью в безопасности почти всех компьютеров

Stefan / Flickr

Подавляющее большинство современных процессоров, построенных по архитектурам Intel, AMD и ARM, имеет две масштабные уязвимости, с помощью которых злоумышленники могут перехватывать зашифрованные пользовательские данные, пароли и другую зашифрованную информацию. Об этом заявила группа специалистов по кибербезопасности, давшая уязвимостям название Meltdown и Spectre. По данным специалистов, обнаруженные уязвимости характерны для большинства процессоров, разработанных и выпущенных после 1995 года. Слабыми местами в чипах оказались наборы алгоритмов, называемые внеочередным и спекулятивным исполнениями. Эти инструкции позволяют существенно сократить время простоя процессора и значительно ускорить вычисления.

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

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

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

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

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

Как ожидается, производители операционных систем и программного обеспечения начнут публиковать патчи с 9 января 2018 года. При этом сообщество Linux уже выложило обновленное ядро операционной системы, на уровне самой системы устраняющее уязвимости (на уровне процессора они должны быть закрыты производителями процессоров). Как отмечает TechCrunch, устранение уязвимостей приведет к заметному уменьшению производительности компьютеров. Падение производительности в лучшем случае составит пять процентов, а в худшем — 30 процентов. Меньше всего пострадают пользователи современных процессоров, для которых падение производительности будет минимальным, но все же ощутимым.

Исправления в свое программное обеспечение, частично закрывающее уязвимости, в свои программы внесла и компания VMWare. Она наиболее известна, как разработчик виртуальных машин. Следует отметить, что даже закрытие уязвимости на уровне операционной системы все равно позволит злоумышленникам использовать через другое программное обеспечение, в том числе и браузеры. В Google заявили, что включение в Chrome функции изоляции сайтов позволяет частично решить проблему. При этом полностью уязвимости будут закрыты с релизом браузера Chrome 64. Исправления будут внесены и в браузер Firefox после его обновления компанией Mozilla до версии 57. О работе над исправлениями и их применении объявили и некоторые облачные сервисы, включая DigitalOcean, Microsoft, Google и AWS.

Василий Сычёв

Нашли опечатку? Выделите фрагмент и нажмите Ctrl+Enter.