Исследователи из Microsoft и Google обнаружили четвёртый вариант уязвимости современных процессоров класса Meltdown-Spectre, позволяющий несанкционированно получать доступ к данным. Эти ошибки спекулятивного исполнения команд в теории могут быть использованы вредоносным ПО, запущенным на уязвимом устройстве или компьютере, или злоумышленником, зарегистрированным в системе, для постепенного получения секретов (например, паролей) из защищённого ядра или памяти приложения.
Ранее были известны три основных варианта таких атак. Spectre — это название двух уязвимостей: вариант 1 или CVE-2017-5753 (обход проверки границ) и вариант 2 или CVE-2017-5715 (целевое внедрение в ветвь). Вариант 3 назывался Meltdown или CVE-2017-5754 (загрузка в кеш мошеннических данных).
Теперь исследователи рассказали о варианте 4 (CVE-2018-3639). Он затрагивает современные процессорные ядра, поддерживающие исполнение команд с изменением последовательности от Intel, AMD, ARM, а также процессоры IBM Power 8, Power 9 и System z. Следует помнить, что ядра ARM применяются во всём мире в смартфонах, планшетах и встраиваемой электронике.
Четвёртый вариант уязвимостей может быть в теории использован даже скриптами, запущенными внутри программ — например, с помощью кода JavaScript на веб-странице на вкладке браузера — для похищения конфиденциальной информации из других частей приложения (например, личных данных с другой вкладки).
Исправления, уже выпущенные против варианта 1, который является самой трудной для исправления уязвимостью, должны сделать атаки с применением варианта 4 намного сложнее. Другими словами, веб-браузеры и аналогичные программы с исполнением скриптов и другого внешнего кода, защищённые от атак Spectre 1, одновременно должны ослаблять результативность атак по варианту 4. На данный момент о реальном вредоносном ПО, которое бы задействовало вариант 4, ничего не известно.
Специалистами по безопасности, кстати, была также раскрыта ещё одна ошибка CVE-2018-3640: это мошенническое считывание системного реестра, позволяющее обычным программам получать доступ к флагам состояния оборудования — например, к регистрам, которые должны быть в идеальном мире доступны только ядру операционной системы, драйверам и гипервизорам.
Вариант 4 также называется Speculative Store Buffer Bypass и связан со спекулятивным исполнением подходящих по мнению процессорной логики команд в те моменты, когда текущие инструкции занимаются сохранением данных в медленную память. Современные CPU не желают простаивать и используют это время для ускорения работы, что серьёзно отражается на быстродействии.
Этот метод спекулятивных вычислений подразумевает перенос данных в кеш-память первого уровня. Именно на основе анализа этих остаточных данных в кеше вредоносная программа, повторяя процедуру снова и снова, может извлекать критически важную информацию. Название Spectre вполне подходит этому методу, который в чём-то похож на наблюдение за призраком.
Вариант 4 был обнаружен ещё в ноябре 2017 года совместными усилиями Янна Хорна (Jann Horn) из команды Google Project Zero и Кена Джонсона (Ken Johnson) из Microsoft. Поэтому у производителей было достаточно времени, чтобы разработать средства борьбы с уязвимостью. Сообщается, что программные заплатки против этого метода приведут к очередной деградации производительности на значение до 8 % (в перспективе за счёт оптимизаций планируется снизить урон).