Architektura i Eksperymenty
Ostatnia aktualizacja: 2026-05-27
Architektura systemu
Opis ogólny
System wieloetapowej detekcji botów w e-commerce łączący metody heurystyczne, behavioral features oraz GNN na grafie sesji. Główny wkład techniczny: pierwsza publiczna reprodukcja BOTracle z własnym publicznym datasetem oraz nowatorskie zastosowanie window.dataLayer (GA4/GTM events) jako sygnału bezpieczeństwa w czasie rzeczywistym.
Komponenty główne
| Komponent | Opis | Technologia |
|---|---|---|
| M1 – Heuristic Filter | User-agent parsing, request rate, session duration (wstępny filtr) | regex, rule-based |
| M2 – Technical Features | IP, window size, HTTP headers, browser fingerprint | LightGBM |
| M3 – Behavioral Analyzer | Click patterns, scroll, mouse movement, navigation graph | RF, LSTM |
| M4 – Session Graph (GNN) | Nodes=sessions, edges=IP/UA similarity; fraud propagation | GraphSAGE (PyG) |
| M5 – DataLayer Monitor | Intercept window.dataLayer.push(); sekwencja GA4 events | JavaScript hook, Isolation Forest |
Przepływ danych
flowchart TD HTTP([HTTP requests]) --> M1[M1 Heuristic Filter] M1 -->|rule-based bot| BLOCK([BLOCK]) M1 --> M2[M2 Technical Features] BS([Browser session]) --> M2 BS --> M3[M3 Behavioral Analyzer] M2 --> ENS([Ensemble score]) M3 --> ENS ENS --> M4[M4 GraphSAGE GNN\nSession graph] M4 --> NODE([Node classification\nbot / human]) DL([window.dataLayer events]) --> M5[M5 DataLayer Monitor] M5 --> RT([Real-time bot score]) NODE --> FUSION[Final Fusion\nmajority vote / threshold] RT --> FUSION FUSION --> DEC([BOT / HUMAN])
Stack technologiczny
| Warstwa | Technologia | Uzasadnienie |
|---|---|---|
| Język | Python 3.11+ / JavaScript | ML pipeline / browser instrumentation |
| ML framework | PyTorch Geometric (PyG) | GraphSAGE GNN |
| Classic ML | scikit-learn, LightGBM | heuristic/tabular features |
| Graph construction | NetworkX | session graph builder |
| Browser | JavaScript hook | dataLayer interception |
| Dane | własny 100K sesji + publiczny | partnerstwo sklepy e-commerce |
| Pomiar / eval | precision, recall, AUC, latencja | cost-benefit analysis |
Eksperymenty
BD-EXP-1: BOTracle Replication — Benchmark Metod Bot Detection na Real Traffic
Status: planned
Priorytet: high
Powiązany pomysł: BD-1
Dodano: 2026-05-27
Hipoteza: Reimplementacja 3-etapowego pipeline BOTracle (Heuristic → Technical → Behavioral) osiągnie precision/recall ≥ 0.92 na własnym publicznym zbiorze 100K sesji — oraz wykaże, że dodanie GNN (M4 GraphSAGE) poprawia AUC o ≥ 3 punkty procentowe wobec samego etapu behavioral.
Dane:
- Dataset: własny 100K sesji e-commerce (partnerstwo 1-2 sklepy), ground truth: CAPTCHA + honeypot
- Podział: 60/20/20 train/val/test (stratified per bot type)
- Preprocessing: normalizacja timestampów, binowanie request rate, graf sesji (k-NN po IP/UA)
Metoda:
- Zebranie 100K sesji z instrumentowanego sklepu (CAPTCHA + honeypot labeling)
- Implementacja M1 (heuristic rules), M2 (LightGBM na technical features), M3 (RF/LSTM behavioral)
- Implementacja M4: budowanie grafu sesji (nodes=sesje, edges=IP lub UA similarity > threshold) + GraphSAGE
- Ablation: M1 only → M1+M2 → M1+M2+M3 → M1+M2+M3+M4 (GNN)
- Cost-benefit: precision vs latencja vs compute dla każdego etapu
Modele / Baseline:
| Model | Opis |
|---|---|
| M1 Heuristic | rule-based, <1ms |
| M1+M2 Technical | LightGBM, <5ms |
| M1+M2+M3 Behavioral | pełny BOTracle, ~50ms |
| M1+M2+M3+M4 GNN | z GraphSAGE, ~100ms |
| LSTM Sequence | własny baseline (page views sequence) |
Metryki:
- Główna: AUC (próg sukcesu: ≥0.95 dla pełnego pipeline)
- Dodatkowe: precision@95%recall, latencja per stage [ms], compute cost [GFLOPS]
- Test statystyczny: DeLong test (M3 vs M3+GNN, α=0.05)
Wyniki: (do wypełnienia po wykonaniu)
| Model | AUC | [email protected] | Latencja [ms] |
|---|
Wnioski: (do wypełnienia po wykonaniu)
BD-EXP-2: DataLayer-Based Bot Detection — GA4 Events jako Security Signal
Status: planned
Priorytet: high
Powiązany pomysł: BD-2
Dodano: 2026-05-27
Hipoteza: Cechy wyekstrahowane z window.dataLayer (GA4 events: sekwencja, timing, diversity produktów) pozwalają wykryć boty z AUC ≥ 0.88 przy latencji <100ms — wykazując, że infrastruktura analityczna (GA4/GTM) może służyć jednocześnie jako real-time security signal bez dodatkowej integracji.
Dane:
- Dataset: własny 100K sesji e-commerce (50K human, 50K bot — Selenium/Puppeteer)
- Podział: 70/15/15 train/val/test
- Preprocessing: parsowanie window.dataLayer eventów, ekstrakcja 15+ cech behawioralnych z event sekwencji
Metoda:
- Implementacja JavaScript hook: intercept window.dataLayer.push() → logowanie event sequence
- Ekstrakcja cech: time_to_first_action (<2s = bot heuristic), event_count, cart_diversity, form_autofill_speed, missing_scroll_events
- Trenowanie modeli: Isolation Forest (anomaly), RF, LightGBM, LSTM na event sekwencji
- Porównanie z M3 behavioral features z BD-EXP-1 — czy DataLayer daje addytywną informację?
- Pomiar latencji end-to-end (JS hook → inference → decision)
Modele / Baseline:
| Model | Opis |
|---|---|
| Rule-based (time_to_action <2s) | prosty heuristic baseline |
| Isolation Forest | unsupervised anomaly |
| LightGBM (DataLayer features) | supervised |
| LSTM (event sequence) | temporal pattern |
Metryki:
- Główna: AUC (próg sukcesu: ≥0.88)
- Dodatkowe: latencja end-to-end [ms], FPR na ludzkich sesjach, precision@high_recall
- Test statystyczny: DeLong test (LightGBM DataLayer vs Rule-based, α=0.05)
Wyniki: (do wypełnienia po wykonaniu)
| Model | AUC | FPR (human) | Latencja [ms] |
|---|
Wnioski: (do wypełnienia po wykonaniu)
Pipeline danych
Dane sesji zbierane przez instrumentację sklepu e-commerce: serwer-side log (nginx + custom middleware) + client-side JavaScript (mouse events, scroll, keystrokes, dataLayer hook). Ground truth: CAPTCHA challenges (rozwiązanie = human) + honeypot traps (kliknięcie = bot) + manual review próbki 5%. Format wyjściowy: CSV per session z timestampami eventów + binary label.
Wymagania techniczne
Środowisko
Python: 3.11+
GPU: opcjonalnie (GraphSAGE szybki na CPU dla 100K sesji)
RAM: min. 8 GB
Dysk: ~5 GB (sesje + grafy)
Kluczowe biblioteki
# requirements-research.txt
torch>=2.0
torch-geometric>=2.4 # GraphSAGE
scikit-learn>=1.3
lightgbm>=4.0
networkx>=3.1
pandas>=2.0