Исследователям из Технического университета 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