На прошлой неделе исследователь Тавис Орманди из команды Google Information Security опубликовал подробности о новой уязвимости в процессорах AMD поколения Zen 2. Эта аппаратная проблема связана с ошибкой в логике работы процессоров, которую AMD, к счастью, решает обновлением микрокода. Исправление уже вышло, но пока только для серверных процессоров EPYC, где эта проблема наиболее актуальна. Патчи для десктопных и мобильных процессоров Zen 2, которые выпускались в период с 2019 по 2022 год, AMD обещает выпустить до конца 2023 года.



Пример на скриншоте выше максимально коротко описывает уязвимость. На GitHub также выложен работающий Proof of Concept. При удачном стечении обстоятельств Zenbleed позволяет извлекать информацию, хранящуюся в регистрах процессора, надежно и быстро: до 30 килобайт в секунду на каждое ядро. Хотя PoC написан под Linux, эксплуатация уязвимости возможна в любой операционной системе.

В своей публикации Тавис Орманди объясняет суть уязвимости. Ключевой ошибкой оказалась особенность работы vzeroupper — инструкции, предназначенной для обнуления «верхней части» 256-битных векторных регистров YMM. Эти регистры появились в 2008 году вместе с расширенным набором инструкций AVX и с тех пор широко используются в процессорах x86-64. В качестве примера использования регистров YMM и инструкции vzeroupper Орманди приводит функцию strlen из библиотеки glibc. При спекулятивном выполнении инструкции и последующем откате регистр остается в «неопределенном» состоянии, что и открывает возможность чтения данных, которые записывают в регистровый файл другие процессы. Орманди, в частности, показал вариант, при котором вредоносная программа может перехватывать пароли и ключи шифрования других пользователей в системе.

Опасность Zenbleed в реальных условиях остается неизвестной. Специалисты из Cloudflare в своем обзоре допускают теоретическую возможность проведения атаки даже через браузер. Уязвимость в процессорах Zen 2 имеет общие черты с атаками класса Spectre: все они так или иначе полагаются на особенности спекулятивного выполнения инструкций, то есть фундаментальную фичу современных процессоров. Но есть важное отличие: в атаках Spectre секретные данные «вытаскиваются» по сторонним каналам, крайне медленно и с ошибками. Zenbleed позволяет считывать информацию из регистров напрямую и с высокой скоростью.

Отдельным интересным моментом является способ обнаружения уязвимости: Орманди нашел Zenbleed с помощью фаззинга. В своей публикации он обсуждает особенности применения данного метода для поиска аппаратных уязвимостей и предлагает способы организации подобного тестирования. Например, одновременный запуск одного и того же кода на двух разных процессорах. Если код при этом ведет себя по-разному, это может указывать на аномалию.

Что еще произошло:

Эксперты «Лаборатории Касперского» опубликовали отчет по эволюции таргетированных атак за второй квартал 2023 года.

Серьезная уязвимость (CVE-2023-30799, рейтинг CVSS 9,1 балла) закрыта в роутерах Mikrotik.

Команда Google Threat Analysis Group выпустила очередной отчет об уязвимостях zero-day (это проблемы, которые активно эксплуатируются на момент обнаружения) с данными за 2022 год. Всего за этот год была выявлена 41 уязвимость такого типа против рекордных 69 в 2021 году. 40% из этих уязвимостей являлись вариантами ранее обнаруженных проблем. Особое внимание эксперты уделили уязвимостям, которые к zero-day не относятся, но имеют похожие последствия из-за задержки в выпуске патча. В качестве примера исследователи приводят уязвимости в Android. Например, одна проблема была найдена в ноябре 2022 года, а закрыта только в апреле 2023-го. В промежутке между этими датами уязвимость использовалась в реальных атаках.

Apple в конце этого года начнет требовать у разработчиков объяснения при использовании определенных API. Целью этого нововведения является ограничение возможностей идентификации пользователя по уникальному набору характеристик его устройства, установленного ПО и подобного.

Комментарии (1)


  1. radium
    01.08.2023 16:51
    +1

    @Kaspersky_Lab, а как подобные уязвимости вляют на безопасность Kaspersky OS? Насколько я знаю, эта ОС заточена на контроль потоков данных на уровне архитектуры ядра, но как она позволяет бороться с чисто аппаратной возможностью получить неавторизованный доступ к защищённым данным?