Сотрудник Google Дэниел Могими (Daniel Moghimi) обнаружил уязвимость процессоров Intel, которая позволяет похищать ключи шифрования, пароли, электронные письма и сообщения, а также банковские данные. Проблема затрагивает чипы от Skylake до настольных Alder Lake и серверных Ice Lake, то есть до решений предпоследнего поколения. Уязвимость Downfall (INTEL-SA-00828) эксплуатируется через инструкции AVX2 и AVX-512 посредством атаки, которую Intel назвала Gather Data Sampling (GDS).
Уязвимость связана с векторными инструкциями AVX2 и AVX-512 и реализуется в процессе сбора данных. Могими утверждает, что его методы атаки Downfall используют инструкцию gather, которая «сливает содержимое внутреннего файла векторного регистра во время спекулятивного выполнения». Gather является частью оптимизаций памяти в процессорах Intel и используется для ускорения доступа к разрозненным данным в памяти. Однако, как объясняет Могими: «Инструкция gather, по-видимому, использует временной буфер, разделяемый между потоками CPU, и транзитно передает данные более поздним зависимым инструкциям, причем данные принадлежат другому процессу и выполнению gather, работающим на одном ядре».
Могими разработал две техники атаки Downfall: Gather Data Sampling (GDS) и Gather Value Injection (GVI) — объединяющая GDS с техникой Load Value Injection (LVI). Используя технику GDS, Могими смог похитить 128- и 256-разрядные криптографические ключи AES отдельной от контролируемой им виртуальной машины, причем каждая виртуальная машина работала на отдельных потоках одного и того же ядра процессора. Менее чем за 10 секунд, по 8 байт за раз, исследователю удалось похитить ключи AES и объединить их для взлома шифрования.
Как видно, уязвимость легко воспроизводится в лабораторных условиях, но не позволяет целенаправленно похищать определённые данные в памяти, ограничиваясь только тем, что находится в доступном контексте. Downfall будет частично нейтрализована программным методом — сейчас Intel координирует выпуск микрокода с партнёрами по прошивкам и ОС. Уязвимость имеет высокий приоритет, поэтому по умолчанию исправляющий её фрагмент будет активен, но администраторы систем при необходимости смогут его деактивировать — эта опция будет доступна в Windows, Linux и VMM. В облачных инфраструктурах вопрос придётся решать через поставщика услуг.
В большинстве рабочих нагрузок обновленный микрокод на производительность процессора влияния не оказывает, но если речь идёт о нагрузках, связанных с уязвимыми инструкциями AVX2 и AVX-512, то оно может быть ощутимым, признали в Intel — эти инструкции наиболее востребованы в сфере высокопроизводительных вычислений (HPC). Примечательно, что Intel позиционирует набор AVX-512 как важнейшее конкурентное преимущество, но теперь ей пришлось заявить, что в большинстве рабочих нагрузок эта функция интенсивно не используется, и значительной потери производительности не ожидается.
Уязвимость Downfall эксплуатируется только в том случае, когда на том же ядре целевого процесса находится другой пользователь, добавили в Intel. Таким образом в куда большей опасности находятся облачные системы, а не настольные. В теории при многих рабочих нагрузках HPC отдельным пользователям выделяются отдельные ядра, а значит, устраняющую уязвимость опцию можно будет отключить, чтобы вернуться на полную производительность. В общем случае при наличии значительных рабочих нагрузок AVX2 и AVX-512 рекомендуется произвести замеры производительности с активной и деактивированной опцией, оценить связанные с уязвимостью риски и принять окончательное решение.
В intel перечислили, какие процессы затронула уязвимость Downfall:
- семейство Skylake (Skylake, Cascade Lake, Cooper Lake, Amber Lake, Kaby Lake, Coffee Lake, Whiskey Lake, Comet Lake);
- семейство Tiger Lake;
- семейство Ice Lake (Ice Lake, Rocket Lake).
Речь идёт о настольных и серверных процессорах. Производитель подчеркнул, что чипы последнего поколения Sapphire Rapids уязвимость не затронула. Raptor Lake, по всей видимости, тоже не пострадали.