Новая уязвимость LeftoverLocals затрагивает графические процессоры AMD, Apple, Qualcomm и Imagination Technologies. Баг позволяет извлекать данные из локального пространства памяти, восстанавливая информацию с уязвимых GPU, особенно в контексте больших языковых моделей (LLM) и машинного обучения.

Проблема получила идентификатор CVE-2023-4969 и была обнаружена исследователями из компании Trail of Bits, которые ранее, в частном порядке, уведомили о ней производителей, а теперь опубликовали развернутый технический отчет.

Уязвимость связана с тем, что некоторые GPU-фреймворки не полностью изолируют память, и одно ядро, работающее на машине, может читать значения в локальной памяти, записанные другим ядром. Исследователи объясняют, что злоумышленнику достаточно запустить приложение для вычислений на GPU (например, OpenCL, Vulkan, Metal), чтобы прочитать данные, оставленные в локальной памяти GPU.

LeftoverLocals позволяет злоумышленникам запустить на машине листенер (listener) — ядро GPU, которое считывает данные из неинициализированной локальной памяти и может выгрузить их, например, в глобальную память. Если локальная память не очищена, злоумышленник может использовать листенер для чтения значений, оставленных там программой, которая заносит значения в локальную память.

Полученные данные могут содержать конфиденциальную информацию о вычислениях жертвы, включая input, output, веса и промежуточные вычисления модели. В мультитенантном контексте GPU, на которых работают LLM, LeftoverLocals можно использовать для «прослушивания» интерактивных сессий других пользователей и восстановления из локальной памяти GPU данных целевого процесса-писателя.

Исследователи создали PoC-эксплоит для демонстрации уязвимости и показали, что в среднем злоумышленник способен восстановить 5,5 МБ данных за одно обращение к GPU, в зависимости от GPU-фреймворка.

При этом на AMD Radeon RX 7900 XT с опенсорсной LLM llama.cpp злоумышленник может извлечь до 181 МБ за один запрос, а этого уже достаточно для точной реконструкции ответов LLM.

Аналитики Trail of Bits обнаружили CVE-2023-4969 еще в сентябре 2023 года и оповестили об этом CERT/CC, чтобы скоординировать усилия по раскрытию и исправлению проблемы. В настоящее время работы по устранению уязвимости еще не завершены: некоторые производители уже устранили ее, но другие все еще работают над разработкой и внедрением защитных механизмов.

Например, компания Apple сообщает, что последняя модель iPhone 15 не затронута проблемой, а исправления доступны для процессоров A17 и M3. При этом проблема сохраняется на компьютерах, работающих на базе M2.

Компания AMD сообщила, что некоторые модели GPU остаются уязвимыми, так как ее инженеры пока только изучают эффективные методы борьбы с этой проблемой.

Qualcomm выпустила патчи в прошивке v2.0.7, который устраняет LeftoverLocals в некоторых чипах, однако другие пока остаются уязвимыми.

Imagination Technologies представила исправление в DDK v23.3 в декабре 2023 года. Однако в январе 2024 года Google предупредила, что некоторые графические процессоры этого производителя тоже по-прежнему уязвимы.

Представители Intel, NVIDIA и ARM GPU заявили, что проблема утечки данных не затрагивает их продукты вовсе.

Trail of Bits предлагает производителям GPU реализовать механизм автоматической очистки локальной памяти между вызовами ядра, обеспечивая изоляцию конфиденциальных данных, записанных одним процессом. Хотя такой подход может привести к снижению производительности, исследователи считают, что этот компромисс оправдан, учитывая серьезность проблемы.

Среди других предложенных специалистами мер защиты — отказ от использования мультитенантных сред GPU в критически важных сценариях и реализация защиты на уровне пользователя.

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии