WebAssembly-фінгерпринт: як браузер перетворюється на віртуальну машину і починає розпізнавати користувача


03.05.26

Технологія, про яку майже ніхто не говорить

Іноді найпомітніші зміни в інтернеті починаються непомітно. Поки всі зайняті війнами навколо блокування JavaScript і «правильних» налаштувань приватності, у браузері вже кілька років існує інструмент, який розширює межі можливого. Це WebAssembly (Wasm): спосіб виконувати код у вебі майже з нативною швидкістю.

Я називаю Wasm «новим звіром» вебу не заради красивої метафори. З ним у сайту з’являється новий клас можливостей, включаючи те, про що зазвичай не люблять говорити вголос: нові способи дізнаватися про користувача.

Чому JavaScript перестав бути головним підозрюваним

Довгий час JavaScript був зручною мішенню. На ньому тримаються десятки механізмів трекінгу та ідентифікації, тому в Tor Browser за замовчуванням блокують скрипти, а NoScript та подібні розширення стали символом «жорсткої приватності».

Проблема в тому, що Wasm змінює баланс. Він не скасовує JavaScript, але робить браузер помітно більш «обчислювальним». Старі уявлення про «безпечний браузер» починають тріщати, тому що частина вимірювань тепер переходить у сферу, де прості заборони не працюють так, як ви звикли.

Що таке WebAssembly і чому він важливий

WebAssembly — це формат і середовище виконання, які дозволяють запускати в браузері код, скомпільований з C, C++, Rust та інших мов. Якщо простіше, сайт отримує доступ до більш низькорівневих обчислень, ніж типовий JavaScript.

Звідси й моє улюблене формулювання: браузер отримує шанс стати «міні-комп’ютером усередині комп’ютера». У крайньому випадку це відчувається як «майже звичайна програма» у вікні вкладки: гаманці, месенджери, складні антифрод-агенти. Так, порівняння з VirtualBox звучать провокаційно. Але сенс простий: браузер стає ближчим до заліза.

Новий відбиток: коли швидкість стає ідентифікатором

Найцікавіше починається там, де Wasm використовують не заради зручності, а заради фінгерпринтингу.

Коли я говорю про «величезну кількість відбитків» через WebAssembly, я не маю на увазі старі добрі Canvas або WebGL, які багато хто вже навчився спотворювати. Тут у гру входить те, що ви зазвичай сприймаєте як «просто швидкодію»: продуктивність і характер виконання.

Схема виглядає майже смішно через свою простоту:

  • JavaScript викликає функції WebAssembly.
  • WebAssembly викликає JavaScript назад.
  • Цей «пінг-понг» повторюється багато разів.
  • Ви вимірюєте, як саме і наскільки швидко виконуються однакові операції.

Далі ви перетворюєте статистику на компактний ідентифікатор. У практичній реалізації це легко упаковується, наприклад, у SHA-256.

Точність, яка лякає

Якщо все правильно зібрати, такий підхід здатний розрізняти користувачів із похибкою менше 1%.

Тому «підміна user-agent» у цій картині світу виглядає косметичним заходом. Коли движок і апаратна база зчитуються через поведінку обчислень, рядок у заголовку запиту мало що змінює.

На практиці подібні тести вміють:

  • виявляти використання віртуальної машини,
  • відрізняти VPS і серверне залізо від домашнього ПК,
  • підсвічувати відмінності в типах CPU та характері обчислень.

Важливо: обхід можливий. Але найчастіше це вже не про «встановив розширення і забув», а про інженерне розуміння та тонке налаштування ресурсів. Для пересічного користувача це, як правило, недоступно.

Де це вже використовують

Це перестає бути «експериментом» саме в той момент, коли починають з’являтися конкретні назви.

Те, що я бачу, вже з’являється в арсеналі великих антифрод-платформ, зокрема:

  • CyberSource
  • PerimeterX

Також є ознаки того, що Microsoft був серед перших, хто почав впроваджувати Wasm-фінгерпринтинг на своїх ресурсах, зокрема для фільтрації реєстрацій, які виглядають як автоматизація або надходять із віртуалізованого середовища.

Чому це стане «топовим» відбитком

Причина банальна і неприємна:

  • висока точність,
  • відносна легкість запуску в браузері,
  • прив'язка до реальних апаратних особливостей.

Якщо сайти масово почнуть збирати таку телеметрію, це швидко стане стандартом ідентифікації, який складно ігнорувати. І чекати «колись потім» не потрібно: Wasm вже давно в браузерах і вже використовується.

Що з цього випливає

Якщо звести все до однієї думки, то вона така: конфіденційність у браузері дедалі менше залежить від вимкнених галочок і дедалі більше — від того, як поводиться апаратне забезпечення під навантаженням.

WebAssembly придумували як прискорювач вебу. На практиці він став ще й прискорювачем для антифрод-систем, яким потрібно відрізняти людей від ботів і реальні пристрої від віртуалізованих середовищ.

Тому Wasm-фінгерпринтинг — не чергова «страшилка», а тема, яку варто розуміти хоча б на рівні принципів. Далі ви будете зустрічати це все частіше, особливо там, де ставки високі: фінанси, великі платформи, реєстрації та захист від зловживань.

Ще не з нами?

Зареєструйтеся, щоб отримати доступ до всіх можливостей сайту.

Зареєструватися

Пов'язані публікації

Натискаючи "Прийняти", ви погоджуєтеся з тим, що Detect Expert може використовувати файли cookie для персоналізації контенту.

Ви завжди можете відмовитися від участі, дотримуючись інструкцій у нашому Cookie Policy.