Сучасні браузери підтримують безліч мов для відображення контенту, локалізації інтерфейсу і роботи з призначеними для користувача уподобаннями. Ця функціональність, будучи спочатку спрямованою на зручність користувачів, стала важливою частиною антифрод-систем. Аналіз мовних налаштувань дає змогу виявляти можливі невідповідності між заявленим профілем користувача і його реальними параметрами пристрою. #### Що таке мови браузера? Мови браузера визначають, яка мова використовується для відображення веб-сторінок, інтерфейсу браузера та інших елементів. Вони представлені у вигляді списку бажаних мов, який браузер відправляє серверу в HTTP-заголовку Accept-Language. Також мовна інформація може бути отримана через об'єкт navigator.language або navigator.languages у JavaScript. #### Як формується мовний відбиток? Мовний відбиток (language fingerprint) включає такі дані: 1. **Accept-Language** - перелік бажаних мов та їхній пріоритет. - Приклад: en-US,en;q=0.9,ru;q=0.8 2. **navigator.language** - основна мова браузера. - Приклад: en-US 3. **navigator.languages** - масив бажаних мов. - Приклад: [ «en-US», «en», «ru-RU» ] 4. **Мова інтерфейсу браузера** - мова, якою відображається сам браузер. 5. **Мова операційної системи** - мова, встановлена на рівні ОС. Ці параметри формують комбінацію, яка може бути використана для ідентифікації користувача. #### Застосування мов в антифрод-системах Антифрод-системи аналізують мовні дані для виявлення потенційно підозрілих користувачів. Ось кілька ключових сценаріїв їх використання: 1. **Виявлення невідповідностей:** - Якщо мова інтерфейсу браузера не збігається з мовою операційної системи. - Якщо Accept-Language містить мови, які не використовуються в регіоні користувача. - Якщо бажані мови користувача змінюються занадто часто. 2. **Перевірка відповідності геолокації:** - Мовні налаштування порівнюються з географічним положенням користувача, визначеним за IP-адресою або GPS. - Наприклад, якщо IP-адреса вказує на Францію, а мовні параметри налаштовані на китайську мову, це може викликати підозри. 3. **Виявлення підміни параметрів:** - Якщо параметри navigator.language і navigator.languages суперечать один одному. - Якщо мова браузера змінюється при кожному новому візиті. ###### Методи підміни мовних параметрів Зловмисники, прагнучи обійти антифрод-системи, можуть використовувати різні методи для зміни мовних налаштувань: 1. **Підміна HTTP-заголовка Accept-Language:** - За допомогою проксі або спеціального ПЗ змінюється вміст заголовка, щоб він відповідав бажаному профілю. 2. **Зміна параметрів браузера:** - Використання антидетект-браузерів, що дають змогу задавати довільні значення navigator.language і navigator.languages. 3. **Емуляція локалізації:** - У браузері змінюється мова інтерфейсу, щоб створити ілюзію відповідності регіону. 4. **Часткове маскування:** - Додавання додаткових мов в Accept-Language, щоб створити більш універсальний профіль. ###### Як антифрод-системи виявляють підміну мов? 1. **Аналіз узгодженості:** - Перевірка, щоб усі мовні параметри (HTTP-заголовок, navigator.language, мова інтерфейсу) відповідали один одному. 2. **Перевірка на рідкісні комбінації:** - Виявлення незвичайних мовних уподобань, які рідко зустрічаються в реальному житті (наприклад, en-GB,ar-KW,ja-JP). 3. **Порівняння з еталонними даними:** - Використання бази даних для перевірки ймовірності використання певних мов у конкретному регіоні. 4. **Динамічне тестування:** - Зміна мовних параметрів на сайті та перевірка реакції браузера. Наприклад, якщо браузер не відображає зміни, це може вказувати на підміну. 5. **Локалізація помилок і повідомлень:** - Аналіз мови системних повідомлень браузера. Це важко підробити, оскільки мова повідомлень залежить від налаштування ОС. #### Аналіз мовних відбитків Перевіримо, які дані про місцезнаходження користувача може отримати сайт, відкриємо сторінку browserleaks.com/javascript у нашому браузері Chrome:  На цій сторінці сайт отримує інформацію про дату і час на пристрої користувача, часовий пояс, локалі, формат годинника, тип календаря, систему запису чисел, основну і бажані мови та інформацію про синтезовані голоси в інтерфейсі контролера мовного сервісу. Перевіримо інформацію про місцезнаходження за ip-адресою, відкриємо сторінку browserleaks.com/ip  На цій сторінці сайт отримує детальну інформацію про ip-адресу користувача і мови в http-заголовках. Подивимося на нашій тестовій сторінці test-webapi.tech/language, яку ще інформацію може збирати сайт про місцезнаходження з браузера користувача, Відкриємо сторінку в браузері Chrome на сервері. Розділ T**ime Accuracy Check:**  У цьому розділі ми отримуємо ip-адресу відвідувача, перевіряємо Location за допомогою стороннього сервісу за ip-адресою, отримуємо Coordinates і Browser Timezone з браузера користувача **ВАЖЛИВО:** на тестовій сторінці, всі висновки про невідповідність параметрів не є точними та наведені лише для прикладу аналізу отриманих даних. У розділі **Geolocation Services Results** сторінка отримує інформацію про ip-адресу з декількох баз і порівнює з отриманою інформацією в розділі Time Accuracy Check:  У розділі **Local Time Information** ми бачимо час, дату і часовий пояс безпосередньо з браузера відвідувача:  У розділі **Browser Language Settings** визначаються мови браузера за допомогою JavaScript і http-заголовків в основному потоці, web worker і service worker, після чого значення порівнюються між собою:  Зауважимо, що наявність російської мови у користувача з Фінляндії, вже може визначатися Антифрод-системами як нетиповий показник, особливо при масових реєстраціях акаунтів. Розглянемо наступний розділ - **System Messages Language Analysis:**  У цьому розділі визначається мова повідомлень про помилки, мова тексту валідації повідомлень форм і мова системних повідомлень у браузері користувача. У розділі **Internationalization Details** ми бачимо регіональні налаштування, тип календаря, часовий пояс і систему числення за допомогою браузера із системних налаштувань пристрою користувача. Так само визначаються формати дат і формат відображення валют:  Формат відображення валют залежить від мовних налаштувань системи   Перейдемо до останнього розділу **Speech Synthesis Voices**. У цьому розділі перевіряються доступні голоси для синтезу мови в браузері:  Набір голосів і їхня кількість відрізняються в браузерах, пристроях, і цей параметр дає змогу Антифрод-системам доволі точно ідентифікувати користувачів і визначати підозрілі візити, особливо порівняно з мовними налаштуваннями браузера. Далі наведено кілька прикладів із різних пристроїв: ПК Intel (браузер Chrome)  ПК Intel (браузер Chromium)  ПК Intel (браузер Firefox)  ПК AMD (браузер Chrome)  ПК AMD (браузер Chromium)  ПК AMD (браузер Firefox)  У результатах тестів ми бачимо, що список голосів для синтезу мови відрізняється як між різними пристроями, так і в різних браузерах. Перевіримо антидетект-браузер, відкриємо сторінку без профілю, з базовими налаштуваннями: У результатах цього тесту є кілька розбіжностей у значеннях: - Антидетект-браузер вказує на Time Zone - Europe/Moscow. - Представляє використання тільки en-US мови. - Використовує всього 2 Voices з Ru локалі (аналогічно браузеру Chromium). - Представляється в заголовку User-Agent браузером Chrome. Спробуємо застосувати профіль в антидетект-браузері та повторити тест: Після застосування профілю, антидетект-браузер правильно підміняє всі параметри мови відносно заданого місця розташування, окрім одного: повідомлення валідації форм браузер показує En-мовою, що є підозрілим за умови використання основною Ru-мовою в браузері. #### Визначення Мови в браузері користувача на прикладі Amazon і Google Перевіримо, яку інформацію про мови з нашого браузера отримує сайт Amazon. Відкриємо головну сторінку в браузері Chrome:  При простому аналізі файлів JavaScript можна помітити, що сайт отримує інформацію про бажану мову і доступні мови в нашому браузері. Перевіримо, яку інформацію про мови збирає Google. Відкриємо пошукову видачу і подивимося на код.  Сайт точно визначив, що ми використовуємо ru-мову, зауважимо, що браузер відкритий на сервері, розташованому в Німеччині, що Google так само визначає (ru-DE).   Google так само збирає інформацію про бажану мову і доступні мови. Так само сайт аналізує події зміни мови голосу, мови цільового перекладу і фіксує інформацію про вибір запропонованої мови. #### Висновок Аналіз мовних параметрів браузера надає антифрод-системам значний обсяг інформації для перевірки автентичності користувача. Ці параметри допомагають виявляти невідповідності між налаштуваннями браузера, операційної системи, HTTP-заголовків і геолокацією, що дає змогу розпізнавати потенційно підозрілу поведінку. Тести показали, що методи підміни мовних параметрів, як-от використання антидетект-браузерів або зміна HTTP-заголовків, не завжди ефективні. Навіть незначні розбіжності, наприклад, мова системних повідомлень, можуть викликати підозри. Таким чином, мовні налаштування стають важливим компонентом комплексної оцінки профілю користувача. Багато антифрод-систем активно використовують мовний відбиток як одну з основних метрик для аналізу поведінки, зіставлення даних і виявлення підмін. Мовні параметри браузера - це потужний інструмент, який допомагає антифрод-системам виявляти невідповідності та підвищувати безпеку перевірок. Попри спроби зловмисників підміняти мовні дані, системи виявляють такі маніпуляції завдяки аналізу узгодженості параметрів і рідкісних комбінацій. Мовний відбиток, що формується на основі безлічі параметрів, широко застосовується для ідентифікації користувачів і виявлення підозрілої активності. Використання цих даних у поєднанні з іншими механізмами, такими як геолокація та часові пояси, дає змогу значно підвищити точність детектування шахрайства. У наступній статті ми продовжимо розбір технологій браузера, що використовуються в антифрод-системах. *Bannykh M.V.*