WebGPU (Web Graphics Processing Unit) - це новітня технологія для рендерингу графіки в браузерах і виконання обчислень на GPU, що надає розробникам можливість доступу до апаратних прискорень як для 3D-графіки, так і для високопродуктивних обчислень. WebGPU - це значний крок уперед порівняно з попередніми технологіями, як-от WebGL, оскільки він відкриває доступ до низькорівневого API, що дає змогу створювати складні графічні сцени та виконувати інтенсивні обчислення з високою ефективністю. Завдяки цим можливостям, WebGPU знайшов своє місце і в антифрод-системах, де допомагає відстежувати унікальні особливості пристроїв для ідентифікації користувачів. ##### Історія створення та призначення WebGPU WebGPU був розроблений консорціумом W3C як відповідь на прагнення поліпшити доступ до можливостей GPU для веб-додатків. Стандарт був представлений як більш продуктивна і сучасна альтернатива WebGL і OpenGL, і дає змогу використовувати можливості сучасних API для графіки, таких як Vulkan, Direct3D 12 і Metal, через браузер. WebGPU значно спрощує інтеграцію з апаратними прискореннями для задач рендерінгу та обчислень, що робить його корисним не тільки для візуальних ефектів, ігор та наукових обчислень, а й для антифрод-систем, де цифровий відбиток пристрою допомагає в ідентифікації. ##### Технологічні можливості WebGPU WebGPU надає розробникам такі ключові можливості: - **Низькорівневий доступ до GPU:** WebGPU дає змогу працювати безпосередньо з обчислювальними потужностями GPU, забезпечуючи високу продуктивність і контроль над графічними обчисленнями. - Підтримка 3D- і 2D-графіки:** WebGPU здатний створювати як прості, так і складні тривимірні моделі та сцени, роблячи його придатним для завдань, що вимагають великої кількості ресурсів. - Шейдери та обчислювальні завдання:** У WebGPU можна використовувати користувацькі шейдери для створення унікальних текстур і реалістичних візуальних ефектів, а також виконувати складні обчислення безпосередньо на GPU. Ці особливості роблять WebGPU потужним інструментом для веб-розробників, які працюють над інтенсивними графічними та обчислювальними додатками, а також для спеціалістів, які створюють антифрод-системи. ##### WebGPU в антифрод-системах: захист від шахрайства Одним із застосувань WebGPU в антифрод-системах є створення унікального графічного відбитка пристрою. Цей відбиток враховує, як апаратне забезпечення і драйвери пристрою обробляють графіку та обчислювальні завдання. На відміну від Canvas і WebGL, WebGPU надає додаткові параметри для відстеження, як-от кількість доступних обчислювальних ядер GPU, підтримувані розширення і точні характеристики обробки шейдерів, що дає змогу антифрод-системам створювати унікальні цифрові підписи для кожного пристрою. ##### Як WebGPU допомагає ідентифікувати користувача? Рендеринг графіки та виконання обчислень за допомогою WebGPU може по-різному працювати на різних пристроях залежно від конфігурації обладнання, GPU і драйверів. Відмінності можуть спостерігатися в продуктивності обчислень, якості рендерингу, підтримці різних розширень і шейдерів. Ці відмінності використовуються для створення унікального відбитка пристрою, який важко підробити. Ключові фактори, що впливають на унікальність WebGPU-відбитка: - **Модель і архітектура GPU:** Різні моделі GPU обробляють обчислення з різною швидкістю і точністю. - Підтримка розширень і шейдерів:** Набір доступних розширень і специфікацій виконання шейдерів варіюється залежно від пристрою. - Конфігурація браузера і драйверів:** Особливості налаштування браузера і версій драйверів також впливають на результати виконання шейдерів і обчислень. Ці особливості дають змогу антифрод-системам створювати точні відбитки для унікалізації пристроїв і виявлення спроб підміни даних. ##### Методи підміни відбитків WebGPU Зловмисники також намагаються обходити WebGPU-відбитки за допомогою різних методів підробки. До найпоширеніших методів належать: - Зміна результатів шейдерів: Для підробки відбитків зловмисники можуть втручатися в роботу шейдерів, додаючи шум або змінюючи текстури, щоб змінити кінцеве зображення і приховати характеристики пристрою. - Впровадження заздалегідь підготовлених даних: Цей метод полягає в тому, щоб підмінити результати роботи WebGPU заздалегідь записаними відбитками інших пристроїв. Такі дані дають змогу шахраям імітувати роботу інших пристроїв, обходячи антифрод-системи. ##### Як антифрод-системи визначають підміну відбитка WebGPU? Антифрод-системи застосовують кілька підходів для виявлення підробки відбитків WebGPU. Основні з них включають: - Аналіз результатів обчислень і графічного рендерингу: Системи можуть генерувати кілька тестів, результати яких порівнюють для виявлення відхилень. Наприклад, незначні відмінності в продуктивності та деталях рендерингу можуть вказувати на використання підроблених даних. - Порівняння продуктивності динамічних шейдерів: Використовуючи динамічні шейдери, системи можуть змусити пристрій виконувати унікальні завдання в реальному часі. Це ускладнює підробку відбитків, оскільки зловмисникам складно відтворити поведінку справжнього пристрою без значних затримок. Таким чином, завдяки використанню WebGPU, антифрод-системи можуть виявляти підозрілі активності за допомогою глибшого аналізу характеристик пристроїв і їхньої поведінки під час рендерінгу та обчислень, що робить підробку відбитків складнішим завданням. #### Відбиток WebGPU Подивимося на прикладах, які дані можна отримати з браузера за допомогою WebGPU API. Перейдемо на сторінку browserleaks.com/webgpu Перший розділ: Інформація про адаптер  Другий розділ: Інформація про ліміти адаптера  Третій розділ: Функції, підтримувані адаптером  Четвертий розділ: Підтримувані формати текстур  П'ятий розділ: Підтримувані мовні можливості WGSL (WebGPU Shading Language).  Шостий розділ: Додаткова інформація про адаптер (кращий формат bgra8unorm, режим альфа-каналу, режим тонального відображення).  Перевіримо цю інформацію на нашій тестовій сторінці, відкриємо test-webapi.tech/webgpufull у браузері Chrome на комп'ютері   На цій сторінці ми бачимо адаптери, які можуть використовуватися системою: високопродуктивний адаптер, енергоефективний адаптер, резервний адаптер. Розділ Format Support не менш важливий, перевіримо які формати підтримують десктоп-пристрої та мобільні пристрої  Простою перевіркою підтримуваних форматів можна з високою точністю визначити чи є пристрій мобільним телефоном або десктопом. Так само важливо розуміти, що часто користувачі запускають антидетект-браузери на орендованих серверах без відеоадаптера і намагаються представити антидетект-браузер браузером мобільного пристрою. У таких випадках подібні тести дають змогу визначити, що у користувача немає GPU адаптера, тоді як реальний мобільний пристрій покаже очікувані результати:  GPU Features меншою мірою, але допомагає ідентифікувати користувачів. Значення залежать від відеоадаптера та налаштувань браузера. На наступному прикладі можна побачити, що Features мають відмінності на різних пристроях.  ##### Відбиток продуктивності WebGPU Розглянемо на простому прикладі, як антифрод-системи можуть ідентифікувати користувачів за допомогою відбитка продуктивності WebGPU Відкриємо нашу тестову сторінку https://test-webapi.tech/webgpuperf у браузері Chrome на комп'ютері  На цій сторінці представлена інформація про відеокарту, отримана за допомогою двох API: WebGL і WebGPU, і результати двох тестів на продуктивність адаптера GPU. Перший тест показує час ініціалізації адаптера і час рендерингу. Другий тест відрізняється від першого тим, що ми одночасно з тестом додаємо додаткове навантаження на адаптер. Повторимо цей тест на інших пристроях:    Порівняємо цей відбиток продуктивності з відбитком з Антидетект-браузера:  Тест в антидетект-браузері показує результати на рівні відеокарти з високою продуктивністю, хоча заявлено, що пристрій використовує адаптер Intel. Це пояснюється тим, що антидетект-браузер запущено на нашому комп'ютері з відеокартою Nvidia. Перевіримо продуктивність на різних мобільних пристроях:   За результатами проведених тестів на різних пристроях можна зробити кілька цікавих спостережень. На ПК з низькопродуктивними GPU рендеринг часто виконується швидше, ніж на сучасних мобільних пристроях, що підтверджує значну роль апаратної складової в продуктивності. Водночас, відеокарти Radeon на тестах з високим навантаженням показують результати, що відрізняються від карт Nvidia, що підкреслює відмінності в архітектурі та оптимізації драйверів. Однак варто зазначити, що результати тестів можуть істотно залежати від версії браузера, а також від паралельного навантаження під час проведення тесту. Цікавим моментом є те, що час ініціалізації адаптера на сучасних мобільних пристроях у більшості випадків виявляється коротшим, ніж на ПК. У нашому тесті ми прагнули охопити ключові характеристики продуктивності, щоб забезпечити об'єктивне порівняння. Для більш точного поділу часу рендерингу за різними типами адаптерів, надалі ми проводили додаткові тести, які дали змогу чіткіше розмежувати результати на високопродуктивних і низькопродуктивних адаптерах, а також мобільних пристроях. Ці дані відіграють важливу роль при налаштуванні антифрод-систем і допомагають більш точно враховувати особливості кожної платформи. ##### Висновок У цій статті ми розібралися яким чином антифрод-системи за допомогою технології WebGPU можуть ідентифікувати користувачів і виявляти фродовий трафік. Насамкінець, можна зазначити, що використання технології WebGPU в антифрод-системах є значним кроком уперед у сфері захисту від шахрайства в інтернеті. Завдяки високій продуктивності і точності, ця технологія дозволяє ефективно ідентифікувати користувачів, а також точно виявляти фродовий трафік. Порівняння даних, отриманих за допомогою WebGPU і WebGL, демонструє її переваги у визначенні типу пристрою, браузера і виявленні спроб підміни характеристик, що робить її незамінним інструментом для забезпечення безпеки в мережі. В умовах зростання кількості кіберзагроз, подальший розвиток таких рішень може істотно підвищити ефективність боротьби з інтернет-шахрайством. У наступній статті ми продовжимо розбір технологій браузера, що використовуються в антифрод-системах. _Bannykh M.V._