• XSS.stack #1 – первый литературный журнал от юзеров форума

Цифровые отпечатки GPU позволяют отслеживать пользователей в Сети

INC.

REVERSE SIDE OF THE MEDAL
Эксперт
Регистрация
02.02.2008
Сообщения
3 950
Реакции
1 872
Группа исследователей из университета имени Бен-Гуриона, университета Лилль и университета Аделаиды изучила возможность использования графических процессоров для создания уникальных цифровых отпечатков и их использования в целях web-слежки.

Результаты крупномасштабного эксперимента с участием 2550 устройств с 1605 различными конфигурациями ЦП показывают, что метод под названием DrawnApart может увеличить медианную продолжительность отслеживания до 67% по сравнению с современными методами.

Исследователи рассмотрели возможность создания отличительных цифровых отпечатков на основе GPU (графического процессора) отслеживаемых систем с помощью WebGL (Web Graphics Library). WebGL — кроссплатформенный API для рендеринга 3D-графики в браузере. Используя данную библиотеку, система отслеживания DrawnApart может подсчитывать количество и скорость исполнительных блоков в графическом процессоре, измерять время, необходимое для завершения рендеринга вершин, обрабатывать функции остановки и многое другое.

DrawnApart использует короткие программы GLSL, выполняемые целевым графическим процессором как часть вершинного шейдера, чтобы решить проблему наличия случайных исполнительных блоков, обрабатывающих вычисления. Следовательно, распределение рабочей нагрузки предсказуемо и стандартизировано.

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

Процесс генерирует следы, состоящие из 176 измерений, сделанных в 16 точках, которые используются для создания цифрового отпечатка. Даже при визуальной оценке отдельных необработанных следов можно заметить отчетливые временные различия между устройствами.

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

Они неразличимы в обычных повседневных операциях, но они могут стать полезными в контексте сложной системы отслеживания, такой как DrawnApart, которая специально разработана для запуска функциональных аспектов, выделяя их.

Автономный алгоритм отслеживания может обеспечить среднее время слежки 17,5 дня, но с помощью цифровых отпечатков графического процессора это время увеличивается до 28 дней. Оценка была основана на условиях тестирования, при которых диапазон рабочих температур графического процессора составляет от 26,4 °C до 37 °C, без колебаний напряжения.

Помимо этих условий, на DrawnApart не влияют изменения рабочей нагрузки, полезная нагрузка графического процессора с других вкладок браузера, перезагрузка системы и другие изменения во время выполнения.

Потенциальные меры противодействия новому методу снятия отпечатков включают изменение значения атрибута, предотвращение параллельного выполнения, блокировку скриптов, блокировку API и предотвращение измерения времени.

Промышленный консорциум Khronos Group, разработавший WebGL API, получил отчет исследователей и сформировал группу технических специалистов для обсуждения возможных решений с поставщиками браузеров и другими заинтересованными сторонами.


• Source: https://arxiv.org/pdf/2201.09956.pdf
 
Исследователи из Университета имени Бен-Гуриона (Израиль), Университета Лилля (Франция) и Университета Аделаиды (Австралия) разработали новую технику идентификации устройств пользователя через определение параметров работы GPU в web-браузере. Метод получил название "Drawn Apart" и основан на использовании WebGL для получения профиля производительности GPU, позволяющего значительно повысить точность пассивных методов отслеживания, работающих без применения Cookie и без сохранения идентификатора на системе пользователя.

Методы, учитывающие при идентификации особенности отрисовки, GPU, графического стека и драйверов использовались и ранее, но они ограничивались возможностью разделения устройств только на уровне разных моделей видеокарт и GPU, т.е. могли применяться лишь как дополнительный фактор для повышения вероятности идентификации. Ключевой особенностью нового метода "Drawn Apart" является то, что он не ограничивается разделением разных моделей GPU, а пытается выявить различия между идентичными GPU одной модели, обусловленные неоднородностью процесса производства чипов, рассчитанных на массивные параллельные вычисления. Отмечается, что возникающие в процессе производства вариации позволяют формировать неповторяющиеся слепки для одних и тех же моделей устройств.

83ad914e7c.png

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

Так как операции через WebGL выполняются асинхронно, для измерения времени их выполнения нельзя напрямую использовать JavaScript API performance.now(), поэтому для измерения времени было предложено три трюка:

onscreen - отрисовка сцены в HTML canvas с измерением времени срабатывания callback-функции, выставленной через API Window.requestAnimationFrame и вызываемой после завершения отрисовки.

offscreen - использование worker-а и отрисовки сцены в объект OffscreenCanvas с измерением времени выполнения команды convertToBlob.

GPU - отрисовка в объект OffscreenCanvas, но использование для измерения времени предоставляемого в WebGL таймера, учитывающего продолжительность выполнения набора команд на стороне GPU.

В процессе создания идентификатора на каждом устройстве производится 50 проверок, каждая из которых охватывает 176 измерений 16 различных характеристик. Эксперимент, в ходе которого была собрана информация о 2500 устройствах с 1605 разными GPU, показал повышение эффективности комбинированных методов идентификации на 67% при добавлении в них поддержки Drawn Apart. В частности, комбинированный метод FP-STALKER в среднем обеспечивал идентификацию в течение 17.5 дней, а в сочетании с Drawn Apart продолжительность идентификации увеличилась до 28 дней.

7ba3d396b8.png

• Точность разделения 10 систем с чипами Intel i5-3470 (GEN 3 Ivy Bridge) и GPU Intel HD Graphics 2500 в тесте onscreen составила 93%, а в offscreen - 36.3%.

• Для 10 систем Intel i5-10500 (GEN 10 Comet Lake) с видеокартой NVIDIA GTX1650 точность составила 70% и 95.8%.

• Для 15 систем Intel i5-8500 (GEN 8 Coffee Lake) с GPU Intel UHD Graphics 630 - 42% и 55%.

• Для 23 систем Intel i5-4590 (GEN 4 Haswell) c GPU Intel HD Graphics 4600 - 32.7% и 63.7%.

• Для шести смартфонов Samsung Galaxy S20/S20 Ultra с GPU Mali-G77 MP11 в тесте с выводом на экран точность идентификации составила 92.7%, а для смартфонов Samsung Galaxy S9/S9+ с Mali-G72 MP18 - 54.3%.

e870aae70d.png

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

Компании Intel, ARM, Google, Khronos, Mozilla и Brave были уведомлены о проблеме ещё в 2020 году, но детали метода раскрыты только сейчас. В том числе исследователи опубликовали написанные на JavaScript и GLSL рабочие примеры, которые могут работать с выводом и без вывода информации на экран. Также для систем на базе GPU Intel GEN 3/4/8/10 опубликованы наборы данных для классификации извлекаемой информации в системах машинного обучения.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх