Розробка AI-системи детекції ботового трафіку
Бот-трафік може генерувати до 70% запитів, обходячись бізнесу в тисячі доларів щомісяця через перевитрату ресурсів та витік даних. Rule-based WAF не справляється з просунутими ботами, тому AI-система детекції ботів — необхідність для сучасного сайту. Ми стикаємося з ботами, які — не примітивні скрипти з одним IP. Це headless Chrome через Puppeteer з рандомізованим fingerprint, human-like затримками між кліками та ротацією residential proxy. Rule-based WAF на такий трафік не реагує. ML-підхід потрібен не тому що це модно, а тому що сигнатурна детекція фізично не встигає за еволюцією ботів.
Як ML-модель відрізняє бота від людини?
Credential stuffing. Масова перевірка витікших пар логін/пароль. Характерний burst-патерн з перебором по user list, часто з одного ASN через residential proxies.
Scraping. Систематичний збір даних: ціни, товарні каталоги, контакти. Поведінка: строгий патерн обходу, ігнорування елементів UX, нетипові user agents або надто «правильні».
Account creation abuse. Масове створення fake-акаунтів для спаму, бонус-фроду, астротурфінгу. Carding. Перевірка вкрадених карткових даних через невеликі тестові транзакції.
Inventory hoarding. Боти викуповують дефіцитний товар (кросівки, квитки) для перепродажу.
Сигнали для ML-моделі
| Сигнал | Приклади | Чому важливий |
|---|---|---|
| Browser fingerprint | Canvas, WebGL, fonts | Боти з headless мають низьку ентропію |
| Поведінкові патерни | Mouse movement, keyboard timing | Людина ≠ бот |
| Мережеві сигнали | IP reputation, JA3 hash | Проксі та Tor |
| Session-level аномалії | Швидкість обходу, порядок URL | Надлюдська швидкість |
Browser fingerprint. Canvas fingerprint, WebGL renderer, audio context, installed fonts, screen resolution, timezone. Боти з headless Chrome дають специфічні значення (наприклад, WebGL renderer = "SwiftShader" у старих версіях Puppeteer). Ентропія fingerprint у ботів нижча — вони клонують один і той же профіль. Детальніше про Browser fingerprint.
Поведінкові патерни. Mouse movement (реальна людина — криві лінії з прискореннями, бот — прямі лінії або відсутність руху), keyboard timing (людина — варіативність IAT, бот — рівномірний ввід), scroll patterns, hover time на елементах.
Мережеві сигнали. IP reputation (Tor, datacenter ASN, known proxy providers), TLS fingerprint (JA3 hash), HTTP header ordering (боти часто порушують canonical order), request timing distribution (надто рівномірна — бот, надто хаотична — теж підозріло).
Session-level аномалії. Швидкість обходу сторінок вища за human-possible (100 сторінок за 30 секунд), відсутність ідлінгу, нетиповий порядок відвідування URL.
Як влаштована AI-система детекції ботів?
Дворівневий підхід:
Рівень 1: Real-time scoring. JavaScript-агент у браузері збирає fingerprint та поведінкові сигнали, надсилає при кожній критичній дії (login, checkout, form submit). Backend класифікує за <50ms. Модель: LightGBM на 40–80 ознаках, ONNX Runtime інференс.
Рівень 2: Session-level analysis. Асинхронний аналіз всієї сесії та історії IP/fingerprint через 5–15 хвилин після початку активності. Багатший feature set, включаючи graph features (цей fingerprint пов'язаний з іншими підозрілими акаунтами?). Оновлює ризик-профіль сесії, може ініціювати блокування із затримкою.
class BotScorer: def __init__(self): self.realtime_model = ort.InferenceSession("bot_detector.onnx") self.feature_extractor = FeatureExtractor() def score_request(self, request_data: dict) -> BotScore: features = self.feature_extractor.extract(request_data) score = self.realtime_model.run(None, {"input": features})[0][0] return BotScore( score=float(score), is_bot=score > 0.72, confidence_level=self._get_confidence_level(score) ) Архітектура дворівневого детектора
Рівень 1: Real-time scoring на JavaScript-агенті та LightGBM. Рівень 2: Session-level analysis з graph features.Як боти адаптуються і як ми протидіємо?
Просунуті боти адаптуються під детектор. Стратегія протидії:
- Різноманіття сигналів. Не покладатися на один тип ознак. Якщо бот навчився генерувати human-like mouse movement — інші сигнали все ще працюють.
- Honeypot elements. Невидимі для людини елементи (display:none), на які тільки бот може клікнути або з якими може взаємодіяти.
- Challenge-response. При середньому score (0.4–0.7) — CAPTCHA або proof-of-work. Не блокувати, але ускладнити.
- Rate limiting з jitter. Не детермінований rate limit — бот не може відкалібрувати швидкість запитів.
Чому rule-based WAF недостатній?
Порівняння методів детекції:
| Метод | Точність | Адаптивність | Хибні спрацювання |
|---|---|---|---|
| Rule-based (WAF) | 40–50% | Низька | ~1% |
| ML (LightGBM) | 90–95% | Висока | 0.3–0.5% |
| ML + поведінковий аналіз | 94–98% | Дуже висока | 0.1–0.3% |
ML-підхід забезпечує зростання точності на 40–50% порівняно з правилами, а з поведінковим аналізом — до 55%. LightGBM у 2 рази точніший за rule-based WAF.
Що входить у роботу
- Аудит поточної архітектури та профілювання трафіку.
- Розробка та калібрування ML-моделі (LightGBM, ONNX Runtime).
- Інтеграція JavaScript-агента збору fingerprint.
- Опціональне налаштування honeypot та challenge-response.
- Дашборд моніторингу (Weights & Biases, Grafana).
- Документація, навчання команди та підтримка 1 місяць.
Практичний кейс з нашої практики
E-commerce платформа, проблема: 35% трафіку на сторінках товарів — боти-скрепери конкурентів. Навантаження на сервер, витік цінової інформації, спотворення аналітики.
Після впровадження ML-детектора:
- Bot detection rate: 94% (оцінка по honeypot + manual analysis)
- FPR на реальних користувачах: 0.3% (challenged CAPTCHA)
- Scraping-трафік знизився на 87% — боти перестали отримувати ROI і переключилися
- Економія на серверних ресурсах: близько $2 300/місяць
Бонус: очищена аналітика показала реальну конверсію на 12% вищу, ніж передбачалося (боти раніше занижували conversion rate).
Терміни: 3–6 тижнів для базового детектора, 8–14 тижнів для production-системи з поведінковим аналізом та adversarial adaptation.
Наша команда має понад 5 років досвіду в AI-безпеці та реалізувала більше 20 проєктів з детекції ботів. Зв'яжіться з нами для оцінки вашого проєкту — розробимо рішення під ключ. Замовте пілотний запуск і переконайтеся в ефективності.







