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

Исследователям из Технического университета Graz удалось провести три атаки на графические карты через WebGPU. Атаки были достаточно быстрыми, чтобы добиться успеха при обычном серфинге.

Сайты предъявляют всё более высокие требования к вычислительной мощности компьютеров. Поэтому браузеры уже несколько лет имеют доступ не только к CPU, но и к вычислительным мощностям графической карты (GPU). Язык сценариев JavaScript может использовать ресурсы GPU через программные интерфейсы WebGL или WebGPU. Однако здесь таятся большие риски. Используя сайт с вредоносным JavaScript, исследователи смогли получить доступ к пользовательскими данными, нажатиям клавиш и ключам шифрования на чужих компьютерах в ходе трёх разных атак через WebGPU.

Обращение к производителям браузеров

В настоящее время WebGPU находится в стадии активной разработки, но такие браузеры, как Chrome, Chromium, Microsoft Edge и Firefox Nightly, уже его поддерживают. Благодаря большей гибкости и модернизированному дизайну по сравнению с WebGL, этот интерфейс будет широко использоваться в ближайшие годы. Проведённые атаки не требуют от пользователей взаимодействия с сайтом, они успевают сделать своё чёрное дело, пока пользователь занимается обычным интернет-серфингом. Исследование как бы намекает производителям браузеров, что с доступом к графическому процессору нужно поосторожнее, как и с другими ресурсами, влияющими на безопасность и конфиденциальность.

Исследовательская группа провела атаки на несколько систем, в которых были установлены разные видеокарты NVIDIA и AMD (NVIDIA из серии GTX 1000 и RTX 2000, 3000 и 4000, а карты AMD — из серии RX 6000). Для всех трёх типов атак исследователи использовали доступ к кэш‑памяти компьютера через WebGPU, который предназначен для быстрого и кратковременного доступа к данным со стороны CPU и GPU. Задействовав этот побочный канал, они получили метаинформацию, которая позволила им заявить о потенциальной угрозе безопасности.

Изменения в кэше как индикатор

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

Они использовали 1024 таких сегмента кэша и добились скорости передачи данных до 10,9 килобайта в секунду, что достаточно для передачи простой информации. Злоумышленники могут использовать этот канал для извлечения данных, которые они получили с помощью других атак на отключенные от интернета области компьютера .

Третья атака была направлена на шифрование AES, которое используется для шифрования документов, соединений и серверов. Здесь они также заполнили кэш, но своим собственным AES-шифрованием. Реакция кэша позволила им определить места в системе, отвечающие за шифрование, и получить доступ к ключам атакуемой системы.

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

Материал опубликован при поддержке сайта habr.com
Комментарии

    Актуальные новости по теме "Array"