Web Audio API - це потужний інструмент для роботи зі звуком у браузері, що надає можливості обробки, синтезу та аналізу аудіосигналів. Спочатку створена для створення інтерактивних звукових ефектів, ігор і музичних додатків, технологія знайшла застосування в антифрод-системах, де її можливості дозволяють виявляти унікальні характеристики пристроїв. #### Історія створення та призначення Web Audio API Web Audio API було представлено як частину специфікації HTML5 на початку 2010-х років. Її розробка велася для заміни застарілих технологій, таких як Flash, забезпечуючи високу продуктивність і універсальність у створенні аудіоконтенту. Першу реалізацію технології представила компанія Google у браузері Chrome у 2011 році. До 2014 року Web Audio API стала стандартом, підтримуваним усіма сучасними браузерами. Основне призначення Web Audio API - це створення та обробка аудіо в реальному часі, включно з генерацією звуків, додаванням ефектів і аналізом звукових даних. Однак, як і у випадку з Canvas, одна з несподіваних сфер застосування Web Audio API - це антифрод-системи, де її можливості використовуються для унікалізації пристроїв користувачів. #### Технологічні можливості Web Audio API Web Audio API надає розробникам великий набір інструментів для роботи зі звуком: - **Генерація звуків.** Створення простих і складних звукових сигналів, включно з синтезаторними ефектами. - **Обробка аудіо.** Можливість застосовувати ефекти, такі як реверберація, фільтри та еквалізація. - **Аналіз звукових даних.** Web Audio API дає змогу аналізувати аудіосигнали в реальному часі, отримуючи дані про частотні характеристики та амплітуду. Ці можливості роблять Web Audio API універсальним інструментом для веб-розробки, використовуваним в іграх, мультимедіа та інтерактивних додатках. #### Web Audio API та антифрод: захист від шахраїв Антифрод-системи використовують Web Audio API для створення аудіофінгерпринта (audio fingerprinting) - цифрового відбитка пристрою, який допомагає унікалізувати користувача. #### Як Web Audio API допомагає ідентифікувати користувача? Коли браузер генерує звук або аналізує аудіосигнал, кожен пристрій обробляє звук трохи по-різному. Це пов'язано з особливостями апаратного та програмного забезпечення: - Відмінності в цифрових сигнальних процесорах (DSP). - Використання різних драйверів аудіокарт. - Особливості реалізації Web Audio API в браузерах. Ці фактори призводять до того, що одне й те саме аудіо, оброблене різними пристроями, містить унікальні характеристики, які можна зафіксувати. Антифрод-системи використовують ці особливості для створення відбитка пристрою, аналізуючи аудіосигнали на рівні частотних і часових характеристик. #### Методи підміни відбитків Web Audio Зловмисники, намагаючись обійти антифрод-системи, застосовують різні методи для підміни аудіофінгерпринта: - **Спотворення сигналів.** Вбудовування невеликих змін в аудіосигнал, щоб відбиток пристрою виглядав унікальним. Це може бути зміна амплітуди, фази або додавання шуму. - **Використання попередньо записаних даних.** Заздалегідь підготовлені аудіосигнали можуть підмінити реальний рендеринг звуку, видаючи підроблені дані. Такий підхід ускладнює виявлення підміни, оскільки сигнали виглядають коректними. - **Емуляція аудіообладнання.** Програми-емулятори можуть створювати аудіофінгерпринт, ідентичний справжньому пристрою, обходячи перевірку. #### Як антифрод-системи виявляють підміну відбитків? Антифрод-системи застосовують різні підходи для виявлення фальсифікацій: - **Аналіз частотних характеристик.** Порівнюючи спектрограми аудіосигналів, системи можуть виявити аномалії, характерні для штучно змінених даних. - **Генерація динамічних сигналів.** Створення аудіосигналів у реальному часі, з подальшим аналізом їх обробки. Такі тести складніше підробити, оскільки вони вимагають швидкої реакції від пристрою. - **Порівняння з еталонними даними.** Система порівнює результати обробки сигналу з очікуваними характеристиками, оцінюючи відхилення. #### Динамічні аудіосигнали Динамічні тести, що включають зміну звукових характеристик (наприклад, частоти або амплітуди), ускладнюють завдання для шахраїв. Ці тести дають змогу оцінити продуктивність пристрою в реальному часі та виявити розбіжності в обробці сигналу. #### Аналіз відбитка WebAudio Подивимося, які дані можна отримати про користувача за допомогою Web Audio API, відкриємо сторінку browserleaks.com/javascript у нашому браузері Chrome:  Відкриємо сторінку в нашому антидетект-браузері:  Цей сайт отримує невелику кількість інформації за допомогою технології Web Audio API. Відкриємо нашу тестову сторінку test-webapi.tech/audiofull на комп'ютері Intel у браузері Chrome:  На цій сторінці в розділі Media Devices ми отримуємо інформацію про пристрій. У розділі Audio Fingerprint (HEX) ми отримуємо довжину результатів двох обчислень із різними завданнями для перевірки можливостей пристрою (Fingerprint Length) і результат MD5 Hash від кодування результатів обчислень і значень параметрів пристрою. У розділі Audio Context Data ми бачимо параметри пристрою, отримані за допомогою Web Audio API та їхні значення. Відкриємо цю сторінку в антидетект-браузері без застосування шуму:  Можемо помітити, що результати Audio Fingerprint (HEX) збігаються, наш антидетект-браузер не підміняє результати обчислень. Але виявляється дивним, що в нашому профілі антидетект-браузера немає пристроїв для виведення звуку в розділі Media Devices. Повторимо перевірку з накладенням шуму аудіо в антидетект-браузері:  Ми бачимо, що довжина рядка з результатами обчислень значно збільшилася, а значення MD5 Hash змінилося. Можемо зробити висновок: антидетект-браузер успішно змінює відбиток Аудіо. Щоб зрозуміти як Антифрод системи можуть реагувати на таку зміну, перевіримо результати на інших десктоп-пристроях. Комп'ютер AMD:  Ноутбук AMD:  Ноутбук Intel:  Зазначимо, що на десктоп-пристроях ми отримали однаковий відбиток Аудіо. Продовжимо перевірку на мобільних пристроях:    Для мобільних пристроїв відмінності у відбитках Аудіо трапляються частіше, ніж на десктоп-пристроях, але варто зауважити, що довжина значення Fingerprint Length для різних типів пристроїв змінюється незначно, на відміну від довжини рядка результатів в антидетект-браузері з накладенням шуму. #### Визначення шуму Web Audio API За результатами тестів, які ми навели раніше, можна помітити, що під час накладення шуму розмір рядка з результатами збільшується на значну величину, що вже може бути розцінено антифрод-системами, як невідповідність очікуваним результатам. Спробуємо розібратися, якими способом антифрод-системи можуть більш точно визначати використання шуму у відбитку Аудіо. Відкриємо нашу тестову сторінку test-webapi.tech/audiotamper на комп'ютері в браузері Chrome:  Відкриємо цю саму сторінку в антидетект-браузері без накладення шуму:  Повторимо тест із використанням шуму у відбитку аудіо:  У цьому тесті ми використовували наступний метод визначення шуму: ми перевіряємо частини відбитка, які не повинні змінюватися на різних пристроях і порівнюємо їх з еталонними значеннями. При використанні шуму, змінюється частина значень таких ділянок у відбитку, і це робить визначення підміни відбитка простим завданням. Ще одним способом визначення підміни може слугувати отримання реальних значень характеристик аудіо та порівняння із заявленими характеристиками у властивостях браузера. Спробуємо провести цей тест, відкриємо сторінку test-webapi.tech/audiodetect у браузері Chrome:  Запустимо тест  Відкриємо цю саму сторінку в антидетект-браузері без використання шуму:  Повторимо тест в антидетект-браузері з накладенням шуму:  Подібні тести дозволяють виявити підміну значень властивостей аудіо за допомогою вимірювання різниці значень і порівняння з допустимими значеннями для конкретних тестів. #### Висновок У цій статті ми розглянули яким чином відбиток Аудіо використовується в антифрод-системах. Web Audio API не є унікальним, і з його допомогою антифрод-системи не можуть точно ідентифікувати користувача. Водночас використання шуму у відбитку Аудіо визначається досить просто і користувачів, які використовують підміну, антифрод-системи можуть легко ідентифікувати. У наступній статті ми продовжимо розбір технологій браузера, що використовуються в антифрод-системах. *Bannykh M.V.*