Зупиняємо credential stuffing на межі мережі
Як tracio.ai виявляє автоматизовані спроби входу ще до того, як вони дійдуть до вашої системи автентифікації, поєднуючи device fingerprint, перевірки швидкості та поведінкові сигнали.
Credential stuffing
атаки використовують автоматизовані інструменти, щоб перевіряти вкрадені комбінації імені користувача та пароля на сторінках входу. Масштаб атак величезний — один оператор може перевіряти мільйони облікових даних на день на сотнях цільових сайтів. Традиційні захисти на кшталт обмеження швидкості та CAPTCHA недостатні, бо зловмисники розподіляють свої запити між тисячами IP-адрес і користуються сервісами розв'язання CAPTCHA. Ось як ми зупиняємо credential stuffing на межі мережі, ще до того, як запити дійдуть до вашої системи автентифікації.
Поверхня атаки
Типова операція credential stuffing використовує список вкрадених облікових даних (доступний на маркетплейсах даркнету всього за $10 за мільйон записів), інструмент автоматизації (зазвичай власний скрипт або інструмент на кшталт OpenBullet) і пул проксі-IP (residential-проксі, що ротуються на кожному запиті, аби обійти обмеження швидкості за IP).
Зловмисник налаштовує свій інструмент надсилати запити на вхід із контрольованою швидкістю — достатньо повільно, щоб не спрацьовували прості обмеження швидкості, але достатньо швидко, щоб перевіряти тисячі облікових даних на годину. Кожен запит надходить з іншої IP-адреси, з іншим рядком user agent, через що це виглядає як потік легітимних спроб входу від різних користувачів.
Чому обмеження швидкості не працює
Обмеження швидкості за IP — це перша лінія оборони, яку розгортає більшість команд, і вона ж падає першою. Сервіси residential-проксі надають доступ до мільйонів реальних IP-адрес — домашніх роутерів, мобільних пристроїв та IoT-пристроїв, — які ротуються на кожному запиті. З погляду сервера кожна спроба входу надходить з унікальної residential-IP, що не має історії зловживань.
Обмеження швидкості за акаунтом (ліміт спроб входу на одне ім'я користувача) ефективніше, але створює вектор відмови в обслуговуванні: зловмисник може заблокувати легітимних користувачів, навмисно провалюючи кілька спроб входу під їхніми іменами.
Device fingerprinting як фундамент
Device fingerprinting змінює правила гри, бо ідентифікує пристрій, що виконує атаку, а не IP, яким він користується. Інструмент credential stuffing, запущений на одній машині чи фермі віртуальних машин, видає стабільний device fingerprint у всіх своїх запитах, незалежно від того, який проксі-IP він ротує.
Наш рушій Bot Detection ідентифікує самі інструменти автоматизації. Selenium лишає артефакти navigator.webdriver. Puppeteer і Playwright мають характерні особливості середовища виконання JavaScript. У Headless Chrome бракує певних браузерних API, які є в звичайному Chrome. Навіть власні HTTP-клієнти, що не виконують JavaScript, виявляються через TLS fingerprinting — їхні повідомлення Client Hello видають базову HTTP-бібліотеку.
Відстеження швидкості за пристроєм
Щойно ми маємо стабільний ідентифікатор пристрою (через Device Identification), ми можемо застосовувати перевірки швидкості на рівні пристрою, а не IP. Якщо один пристрій робить 50 спроб входу за 5 хвилин — незалежно від того, зі скількох різних IP надходили ці запити, — патерн однозначно є credential stuffing.
Наш модуль IP Intelligence відстежує швидкість у трьох часових вікнах: 5 хвилин, 1 година та 24 години. Такий багатовіконний підхід ловить і агресивні атаки (сотні спроб на хвилину), і повільні атаки (кілька спроб на годину, розтягнуті на дні).
Аналіз поведінкових сигналів
Окрім bot detection і відстеження швидкості, наш аналіз Smart Signals досліджує поведінкові сигнали, що відрізняють автоматизовані атаки від легітимних входів. Реальні користувачі демонструють природну варіативність у часі запитів, швидкості набору та патернах навігації. Автоматизовані інструменти схильні видавати механічно однаковий час, ідентичні заголовки запитів і жодного руху миші чи подій прокручування.
Ми також перевіряємо неузгодженості сигналів, що вказують на підробку середовища. Браузер, який стверджує, що це Chrome на macOS, але видає параметри WebGL, пов'язані з Linux-VM, позначається негайно. Рядок user agent, який не відповідає TLS fingerprint, викликає сповіщення про втручання.
Розгортання на межі мережі
Ключ до зупинки credential stuffing — зупинити його ще до того, як він дійде до вашої системи автентифікації. Наш агент завантажується на сторінці входу й збирає сигнали під час завантаження сторінки — ще до того, як користувач (чи бот) надішле облікові дані. Результати fingerprint і bot detection доступні вже на момент надсилання форми входу, що дозволяє вашому серверу миттєво відхиляти автоматизовані спроби.
Для цілей з великим обсягом трафіку ми рекомендуємо розгортати нашу інтеграцію Cloudflare Worker або CloudFront Lambda@Edge, яка виконує перевірку fingerprint на межі CDN. Це означає, що запити credential stuffing блокуються на межовому вузлі, найближчому до зловмисника, і взагалі не доходять до ваших серверів origin.
Результати
Наші клієнти повідомляють про зменшення обсягу credential stuffing на 99% після розгортання tracio.ai на своїх сторінках входу. Решта 1% складається з надзвичайно витончених атак із повною автоматизацією браузера й ретельно підробленими сигналами — їх ловить наше багатометодне виявлення в межах перших кількох десятків запитів, щойно проступають патерни швидкості.