Logo GH

Bot Protection i anti-fraud API

1) Dlaczego go potrzebujesz

Boty i atakujący atakują punkty wzrostu i pieniędzy: rejestracja, logowanie (ATO), depozyty/wnioski, mechanika promocyjna, katalogi gier/współczynników. Zasady ręczne i limit czystej prędkości nie wystarczą już: potrzebujesz sygnałów wielopoziomowych, punktacji w czasie rzeczywistym i kontroli rozwiązań (zezwalaj/zaprzeczaj/wyzwanie/przepustnica) z informacjami zwrotnymi z wydarzeń biznesowych (obciążenia zwrotne, stosunek obciążenia zwrotnego, pliki KYC).

2) Taksonomia zagrożenia

Rejestracja/wejście na pokład: rachunki zbiorcze, jednorazowy e-mail/banki SIM, gospodarstwa urządzeń.
ATO (Przejęcie konta): wiarygodne nadziewanie, rozpylanie haseł, porwanie sesji.
Nadużycia bonusowe: multi-booking, geo/arbitraż jurysdykcyjny, obwodnica samodzielnego wykluczenia.
Karting/oszustwo płatności: test karty, skradzione portfele, refundacje.
Skrobanie/inwentaryzacja: agresywne ciągnięcie zawartości, ceny, wskaźniki.
API-DoS o niskiej intensywności: ataki żółwia, powolny POST, mobilne emulsje SDK.
Haki/integracje: fałszywe powiadomienia bez HMAC/mTLS, powtórka.

3) Architektura ochrony

3. 1 Warstwy

1. Krawędź (CDN/WAF/gateway): wczesne awarie (reputacja ASN/Geo/IP), wyzwania świetlne, limity, PoW.
2. API ryzyka (Risk PDP): silnik scentralizowany reguły/ML; отвей - "decyzja", "ocena", "powód", "ttl'.
3. Poziom aplikacji: niezmienne domeny, logika biznesowa (limity, KYC, AML), asynchroniczne opinie.
4. Przepływ zdarzeń: Kafka/Kinesis → sklep z funkcjami/model → opinie z płatności/sporów.

3. 2 Pętla roztworu


[Request] → Edge Plugins → (enrich) → Risk API (rules+ML) → Decision:
allow      deny      throttle      challenge(type=captcha    sms    PoW    biometry)

Rozwiązanie jest buforowane przez klucz (na przykład urządzenie × konto × trasa) przez sekundy 'ttl'.

4) Sygnały i wzbogacenie

Sieć/kanał: IP/ASN, proxy/VPN/Tor, rdns, rtt/jitter, wskaźnik SYN, odcisk palca TLS (JA3/JA4), zachowanie HTTP/2/3.
Urządzenie/przeglądarka: płótno/audio/WebGL FP (ostrożnie), platforma/SDK, timezone/locale, rozdzielczość, czcionki, wskaźniki WebDriver/bezgłowy, certyfikat mobilny (w miarę możliwości, w zależności od tego, czy jest to możliwe).
Zachowanie: prędkość wejścia, trajektorie myszy/dotyku, sekwencja ekranu, dwell-time, częstotliwość prób, przejścia między identyfikatorami przeglądarki.
Treść/żądanie: formularz e-mail/domena, dostawcy jednorazowego użytku, telefon HLR/lub typ numeru, karta BIN, konto/IBAN w rejestrach sanka, podobieństwo pełnej nazwy/adresów.
Konto/historia: wiek konta, status KYC, retencja, ARPPU, prędkość według depozytów/wypłat/bonusów.
Źródła zewnętrzne: listy kompromisowe (podobne do HIBP), sygnały ryzyka płatniczego (PSP), reputacja ASN.

5) Rozwiązanie: Zasady + ML

5. 1 Zasady (deterministyczne)

Prędkość: „N rejestracji z/24 w 10 minut”, „M login z jednym urządzeniem do X kont”, „K 3DS-files z rzędu”.
Geo/jurysdykcja: konflikty geo IP vs adres/dokument, nagłe skoki lokalizacji.
Niezmienne przedsiębiorstwa: limity odpowiedzialnych płatności, samowykluczenie, listy sankcji.

5. 2 ML punktacja (w czasie rzeczywistym)

Model światła (GBM/logreg) na temat charakterystyki internetowej: 'ip _ risk', 'device _ age', 'account _ age', 'pwd _ fail _ rate', 'bin _ risk', 'speed _',' behavioral _'.
Oddzielny model dla ATO i oddzielnie dla płatności/produktów.
Segmentacja według jurysdykcji/najemcy (kalibracja progów na rynku).

5. 3 Podejmowanie decyzji


if ip_blacklisted or bad_asn then deny else if rule_severe then challenge(hard)
else if score >= 0. 9 then deny else if 0. 7 <= score < 0. 9 then challenge(soft)
else allow

Kiedy „wyzwanie”, przechowywać fakty przejścia/awarii; przyspieszyć/zmniejszyć tarcie dynamicznie.

6) Prędkość i kwoty (klucze i okna)

Клика: 'ip', 'ip/24', 'device _ id',' account _ id', 'payment _ instrument', 'email _ domain', 'bin'.
Okna: przesuwne (1m/5m/1h/24h) + indywidualne „burst „/” sustained „.
Politycy: „twarde” zaprzeczanie na gorących trasach (login/deposit), miękka przepustnica na treści.

Przykład reguły Redis (pseudo):
pseudo allow, retry_after = gcra_allow(key="login:ip:"+ip, rate=60/min, burst=30)
if not allow:
return 429, {"Retry-After": retry_after}

7) Wyzwania i testowanie „ludzkości”

CAPTCHA/turnstile: кай soft-challenge; usunąć po dużym zaufaniu do „czystej” sesji.
Proof-of-Work (PoW): dla API/skryptów - oblicz hash o określonej złożoności; dynamiczna złożoność podczas wzrostu obciążenia.
OTP/SMS/Email/Push: dla operacji ATO/krytycznych; nie nadużywać (koszt/UX).
WebAuthn/biometria: wysoki poziom zaufania do szczegółów wypłat gotówkowych/zmian.
Zaufanie urządzenia: powiązać konto ze zweryfikowanym urządzeniem; nowe urządzenia → wyzwanie.

8) Integracja bramy/serwera proxy

8. 1 Wysłannik: ext_authz → API ryzyka (pseudo)

yaml http_filters:
- name: envoy. filters. http. ext_authz typed_config:
http_service:
server_uri: { uri: http://risk-api:8080, cluster: risk, timeout: 80ms }
authorization_request:
allowed_headers:
patterns:
- exact: "x-tenant"
- exact: "x-device-id"
- exact: "user-agent"
authorization_response:
allowed_upstream_headers:
patterns: [{ exact: "x-risk-score" }, { exact: "x-risk-decision" }]
- name: envoy. filters. http. router

8. 2 NGINX/Lua: łatwy PoW i prędkość

nginx lua_shared_dict vel 20m;

access_by_lua_block {
local ip = ngx. var. remote_addr if not gcra_allow("reg:ip:"..ip, 20, 40) then ngx. header["Retry-After"] = 30; return ngx. exit(429)
end

local pow = ngx. req. get_headers()["X-POW"]
if not verify_pow(pow, ngx. var. request_id, 18) then ngx. status = 401; ngx. say('need-pow'); return ngx. exit(401)
end
}

9) Umowa API ryzyka

Żądanie (wzbogacone):
json
{
"tenant":"eu-1",
"route":"POST /v1/login",
"subject":{"account_id":"a123","email":"u@d. com"},
"device":{"id":"d-xyz","fp":"...","ja3":"...","headless":false},
"network":{"ip":"203. 0. 113. 10","asn":12345,"country":"DE","rtt_ms":42},
"context":{"fail_5m":3,"pwd_reset_24h":1}
}
Odpowiedź:
json
{ "decision":"challenge", "score":0. 83, "reason":"high_velocity+new_device", "ttl_sec":900, "challenge":"captcha" }

10) Dane, cechy i modele

Sklep funkcyjny (online): Redis/Scylla/МDB - liczniki/prędkość/znaczniki czasu.
Seria/offline: DWH (BigQuery/S3 + Athena) do szkolenia/napraw; przechowywać ślady odpływu, obciążenia zwrotnego, ręcznie recenzje.
Modele: proste w czasie rzeczywistym (logreg/GBM); ciężkie (XGBoost/NN) - offline z PGM/skalowaniem, a następnie destylacją.
Kontrola dryfu: PSI, AUC/PR, kalibracja progów według regionu/kanału.

11) Obserwowalność i obwód operacyjny

Metryka:
  • „risk _ requests _ total {route, decision}”
  • „risk _ score _ wiadro” (dystrybucja)
  • „waf _ block _ total”, „velocity _ block _ total”, „challenge _ pass _ rate”
  • "ato _ incidents", "carding _ detected", "cashout _ denied'
  • wskaźniki biznesowe: 'chargeback _ rate', 'bonus _ abuse _ rate', 'false _ positive _ rate'
  • Dzienniki (edytowane): "decyzja", "wynik", sygnały kluczowe, "trace _ id', brak PII/tajemnic.
  • A/B i Shadow: nowa polityka w trybie cienia (logujemy decyzje), następnie canary (1-5%), auto-rollback przez SLO/FP.
  • Playbooks: eskalacja, tymczasowe dokręcanie, rollback, „wirtualne plastry”.

12) Prywatność i zgodność

Zminimalizować PII; stabilne identyfikatory hash (na przykład SHA-256 e-mail z solą).
Przestrzeganie jurysdykcji regionalnej (lokalizacja danych, zgoda).
przejrzyste wyjaśnienia decyzji dotyczących ręcznych przeglądów; zachować tylko to, czego potrzebujesz i z TTL.

13) Szczegóły dotyczące iGaming/Finance

Rejestracja: jednorazowy e-mail/filtry VoIP, prędkość przez/24, urządzenie gospodarstwa → wyzwanie/zaprzeczenie.
Login/ATO: nowe urządzenia/geo-skoki → OTP/WebAuthn; rozpylanie hasła → przepustnica/zaprzeczenie.
Bonusy: limity na „ścieżce do prania” (depozit → bonus → minimalnyy oborot → vyvod), analiza wykresu przynależności (adresy/urządzenia/karty).
Płatności/wypłaty: ryzyko BIN, niedopasowanie kraju, sygnały PSP; cashout do nowego instrumentu → wysoki próg i KYC kontroli.
Haki internetowe PSP/KYC: HMAC + mTLS, wąska lista IP-permit, anty-replay („X-Timestamp”, okno ± 5 minut).

14) Antypattery

Jeden uniwersalny captcha „wszędzie i zawsze” → wysoki spadek FP/konwersji.
Tylko limit prędkości bez sygnałów behawioralnych/urządzenia.
Przechowywanie „surowych” nadruków i PII jest nieograniczone.
Brak cieni i kanarka dla nowych polityk.
Pełne zaufanie do zewnętrznych etykiet „reputacyjnych” bez własnej walidacji.
Podejmowanie decyzji o kliencie (JS/Mobile SDK) bez weryfikacji serwera.

15) Przykłady reguł i pseudokody

15. 1 Reguła złożona (w czasie rzeczywistym)

pseudo score = 0 if ip_asn in bad_asn_list then score += 0. 5 if device_age < 1d and route in {login, withdraw} then score += 0. 3 if velocity("login:account", 5m) > 10 then score += 0. 3 if geovelocity(last_login_loc, current_loc) > 800km/h then score += 0. 2 decision = score>=0. 9? "deny": score>=0. 7? "challenge": "allow"

15. 2 Wykres zależności (wielofunkcyjny)


edge(accountA, deviceX)
edge(accountB, deviceX)
edge(accountB, cardY)
edge(accountC, cardY)
Threshold by common nodes → investigation/deny bonus

16) Lista kontrolna gotowości Prod

  • Architektura wielopoziomowa: Krawędź → API ryzyka → Aplikacja, przepływ zdarzeń.
  • Sygnały: sieć, urządzenie, zachowanie, zawartość, płatność; Minimalizacja PII.
  • Prędkość/GCRA na ip/urządzenie/konto/klucze płatnicze, okna przesuwne.
  • Rozwiązania: zezwalaj/zaprzeczaj/wyzwanie/przepustnica; Pamięć podręczna rozwiązania z TTL repozytorium wyzwań faktów.
  • Wyzwania: captcha/PoW/OTP/WebAuthn; dynamiczna złożoność.
  • API ryzyka: SLA <100 ms, pamięć podręczna, zdegradowana do trybu „minimum safe”.
  • Obserwowalność: ryzyko, FP/FN, deski rozdzielcze, wpisy; wskaźniki biznesowe (obciążenie zwrotne/nadużycie bonusowe).
  • Cień → kanaryjski → egzekwować; eskalacja i rollback playbooks.
  • Webhooks PSP/KYC: HMAC + mTLS + anty-replay + permit-list.
  • Wymogi regionalne i TTL dotyczące danych wrażliwych.

17) TL; DR

Zbuduj zabezpieczenie warstwowe: wczesne filtry krawędzi i wyzwania, scentralizowany API ryzyka z zasadami + ML i przepływ zdarzeń dla informacji zwrotnych. Użyj limitów prędkości, sygnałów sieciowych/urządzeń/zachowań, wyzwań dynamicznych (captcha/PoW/OTP/WebAuthn). Podejmowanie decyzji zezwalających/zaprzeczających/wyzwanie/przepustnica, pomiar FP/FN i efekt biznesowy, rolka przez cień/kanarka. Dla ścieżek płatniczych/bonusowych - oddzielne dokręcone profile i link z KYC/AML.

Contact

Skontaktuj się z nami

Napisz do nas w każdej sprawie — pytania, wsparcie, konsultacje.Zawsze jesteśmy gotowi pomóc!

Telegram
@Gamble_GC
Rozpocznij integrację

Email jest wymagany. Telegram lub WhatsApp są opcjonalne.

Twoje imię opcjonalne
Email opcjonalne
Temat opcjonalne
Wiadomość opcjonalne
Telegram opcjonalne
@
Jeśli podasz Telegram — odpowiemy także tam, oprócz emaila.
WhatsApp opcjonalne
Format: kod kraju i numer (np. +48XXXXXXXXX).

Klikając przycisk, wyrażasz zgodę na przetwarzanie swoich danych.