Logo GH

Bot Protection və antifrod API

1) Niyə lazımdır

Botlar və təcavüzkarlar artım və pul giriş nöqtələrinə hücum edirlər: qeydiyyat, giriş (ATO), depozitlər/nəticələr, promo-mexanika, oyun kataloqları/əmsalları. Əl qaydaları və təmiz rate limiti artıq kifayət deyil: çox səviyyəli siqnallar, real vaxt skorları və biznes hadisələrindən (çarjbeklər, chargeback-ratio, KYC-feyllər) əks-əlaqə ilə həll nəzarəti (allow/deny/challenge/throttle) lazımdır.

2) Təhdidlərin taksonomiyası

Qeydiyyat/onbording: kütləvi hesablar, birdəfəlik e-mail/SİM banklar, cihazların fermaları.
ATO (Account Takeover): credential stuffing, password spraying, session hijack.
Bonus sui-istifadə: multi-akkauting, arbitraj geo/yurisdiksiya, özünü-exclusion dolama.
Kartinq/ödəniş frod: kart testi, oğurlanmış pul kisələri, geri qaytarmalar.
Scraping/inventar: aqressiv məzmun, qiymətlər, əmsallar.
API-DoS aşağı intensivliyi: tısbağalar hücum, slow-POST, mobil SDK emulasiya.
Vebhuki/inteqrasiya: HMAC/mTLS olmadan bildirişlərin saxtalaşdırılması, replay.

3) Mühafizə arxitekturası

3. 1 qat

1. Edge (CDN/WAF/şluz): erkən uğursuzluqlar (ASN/Geo/IP-nüfuz), yüngül çağırışlar, limitlər, PoW.
2. Risk API (Risk PDP): mərkəzləşdirilmiş qaydalar/ML mühərriki; ответ — `decision`, `score`, `reason`, `ttl`.
3. App səviyyəsi: domen invariantları, biznes məntiqi (limitlər, KYC, AML), asinxron review.
4. Hadisələr axını: Kafka/Kinesis → feature store/model → ödənişlər/mübahisələr rəy.

3. 2 Həllin konturu


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

Həll açarla (məsələn, device × account × route) 'ttl' saniyədə keşləşdirilir.

4) Siqnallar və zənginləşdirmə

Şəbəkə/kanal: IP/ASN, proxy/VPN/Tor, rdns, rtt/jitter, SYN-rate, TLS-fingerprint (JA3/JA4), HTTP/2/3 davranış.
Cihaz/brauzer: canvas/audio/WebGL FP (diqqətlə), platforma/SDK, timezone/locale, qətnamə, şriftlər, WebDriver/headless göstəriciləri, mobile attestation (SafetyNet/DeviceCheck, mümkünsə).
Davranış: giriş sürəti, siçan/taç trayektoriyası, ekran ardıcıllığı, dwell-time, cəhd tezliyi, brauzer identifikatorları arasında keçidlər.
Məzmun/sorğu: e-poçt forması/domen, disposable-provayderləri, telefon HLR/və ya nömrə növü, BIN kartları, sank-reyestrlərdə/IBAN hesabı, ad/ünvanların oxşarlığı.
Hesab/tarix: hesabın yaşı, KYC statusu, retenshn, ARPPU, depozitlər/çıxışlar/bonuslar üzrə velocity.
Xarici mənbələr: güzəşt siyahıları (HIBP-oxşar), ödəniş risk siqnalları (PSP), ASN-nüfuz.

5) Həll: qaydalar + ML

5. 1 Qaydalar (determinated)

Velocity: «10 dəqiqə ərzində/24-dən N qeydiyyat», «X hesablarına bir cihaz ilə M giriş», «ardıcıl olaraq K 3DS faylları».
Geo/yurisdiksiya: IP-geo münaqişələri vs ünvan/sənəd, qəfil yer atlama.
Biznes invariantları: məsuliyyətli ödənişlərin limitləri, özünü istismar, sanksiya siyahıları.

5. 2 ML-skorinq (real vaxt)

Yüngül model (GBM/logreg) online işarələr üzərində: 'ip _ risk', 'device _ age', 'account _ age', 'pwd _ fail _ rate', 'bin _ risk', 'velocity _', 'behavioral _'.
ATO və ayrıca - ödənişlər/nəticələr üçün ayrıca model.
Yurisdiksiya/tenant üzrə seqmentasiya (per-bazar eşik kalibrləmə).

5. 3 Qərarın qəbulu


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

'challenge' keçid/uğursuzluq faktlarını saxlamaq; dinamik sürtünməni artırmaq/azaltmaq.

6) Velocity və kvotalar (açarlar və pəncərələr)

Ключи: `ip`, `ip/24`, `device_id`, `account_id`, `payment_instrument`, `email_domain`, `bin`.
Pəncərələr: sürüşmə (1m/5m/1h/24h) + ayrı-ayrı «burst «/« sustained ».
Siyasətçilər: isti marşrutlarda «sərt» deny (giriş/depozit), məzmunda yumşaq throttle.

Redis qaydaları nümunəsi (psevdo):
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) Challenge və «insanlıq» testi

CAPTCHA/turnstile: как soft-challenge; «təmiz» sessiyaya yüksək əminlikdən sonra təmizləmək.
Proof-of-Work (PoW): API/skriptlər üçün - verilmiş çətinliklə hash hesablamaq; yükün artması ilə dinamik çətinlik.
OTP/SMS/Email/Push: ATO/kritik əməliyyatlar üçün; sui-istifadə etməyin (dəyəri/UX).
WebAuthn/biometrik: cash-out/payout-detalları dəyişdirmək üçün yüksək səviyyədə inam.
Device trust: etibarlı cihaza hesabın bind; yeni cihazlar → challenge.

8) Şluz/proxy inteqrasiya

8. 1 Envoy: ext_authz → Risk API (psevdo)

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: yüngül PoW və velocity

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) Risk API müqaviləsi

Sorğu (zənginləşdirilmiş):
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}
}
Cavab:
json
{ "decision":"challenge", "score":0. 83, "reason":"high_velocity+new_device", "ttl_sec":900, "challenge":"captcha" }

10) Data, Ficks və Modellər

Feature Store (online): Redis/Scylla/KeyDB - sayğaclar/velocity/vaxt işarələri.
Batch/offline: DWH (BigQuery/S3 + Athena) təlim/refit üçün; axın işarələri saxlamaq, chargeback, əl revyu.
Modellər: real vaxt üçün asan (logreg/GBM); ağır (XGBoost/NN) - PGMs/scaling və sonrakı distillə ilə oflayn.
Drift nəzarəti: PSI, AUC/PR, bölgələr/kanallar üzrə astanaların kalibrovkası.

11) Müşahidə və əməliyyat konturu

Metriklər:
  • `risk_requests_total{route,decision}`
  • `risk_score_bucket` (distribution)
  • `waf_block_total`, `velocity_block_total`, `challenge_pass_rate`
  • `ato_incidents`, `carding_detected`, `cashout_denied`
  • biznes metrikası: 'chargeback _ rate', 'bonus _ abuse _ rate', 'false _ positive _ rate'
  • Qeydlər (redaktə edilmişdir): 'decision', 'score', açar siqnalları, 'trace _ id', PII/sirləri yoxdur.
  • A/B və Shadow: shadow rejimində yeni siyasət (həllərin loqosu), sonra canary (1-5%), SLO/FP ilə autorolback.
  • Playbooks: eskalasiya, müvəqqəti sərtləşdirmə, geri dönüş, «virtual yamalar».

12) Gizlilik və uyğunluq

PII-ni minimuma endirin; sabit identifikatorları (məsələn, duz ilə email SHA-256) heş edin.
Regional yurisdiksiyaya hörmət edin (məlumatların lokallaşdırılması, razılıq).
Əl review üçün həllərin şəffaf izahı; yalnız lazım olan və TTL ilə saxlayın.

13) iGaming/Maliyyə Xüsusiyyətləri

Qeydiyyat: disposable e-mail/VoIP, velocity/24, device-ferma → challenge/deny.
Giriş/ATO: yeni cihazlar/geo-jumping → OTP/WebAuthn; password spraying → throttle/deny.
Bonuslar: «çirkli pulların yuyulması yolu» limitləri (depozit → bonus → minimum dövriyyə → çıxış), graph-bağlı analiz (ünvanlar/cihazlar/kartlar).
Ödənişlər/nəticələr: BIN-risk, country-mismatch, PSP siqnalları; yeni alət cashout → yüksək eşik və KYC çekap.
PSP/KYC vebhukları: HMAC + mTLS, dar IP-allow siyahısı, anti-replay ('X-Timestamp', pəncərə ± 5 dəq).

14) Antipattern

Bir universal captcha «hər yerdə və həmişə» → yüksək FP/dönüşüm düşməsi.
davranış/cihaz siqnalları olmadan yalnız rate limit.
«Xam» izlərin və PII-nin saxlanması müddətsizdir.
Yeni siyasətlər üçün shadow-run və canary yoxdur.
Öz validasiyası olmadan xarici «nüfuzlu» etiketlərə tam etibar.
Server yoxlaması olmadan müştəriyə (JS/mobil SDK) qərar vermək.

15) Qaydalar və psevdokod nümunələri

15. 1 Kompozit qayda (real vaxt)

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 Əlaqələr qrafiki (multiakkaunt)


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

16) Prod hazırlıq yoxlama siyahısı

  • Çox səviyyəli memarlıq: Edge → Risk API → App, hadisələr axını.
  • Siqnallar: şəbəkə, cihaz, davranış, məzmun, ödəniş; PII-nin minimuma endirilməsi.
  • Velocity/GCRA ip/device/account/payment açarları, sürüşmə pəncərələri.
  • Həllər: allow/deny/challenge/throttle; TTL ilə cache həlləri; challenge faktları saxlama.
  • Çağırışlar: captcha/PoW/OTP/WebAuthn; dinamik mürəkkəblik.
  • Risk API: SLA <100 ms, cache, «minimum təhlükəsiz» rejimdə deqradasiya.
  • Müşahidə: risk metrikası, FP/FN, daşbordlar, alertlər; biznes metrikası (chargeback/bonus-abuse).
  • Shadow → canary → enforce; eskalasiya və geri qaytarma pleybukları.
  • PSP/KYC vebhukları: HMAC + mTLS + anti-replay + allow-list.
  • Həssas məlumatlara regional tələblər və TTL.

17) TL; DR

Laylı qorunma qurun: erkən edge filtrələri və çağırışlar, + ML qaydaları ilə mərkəzləşdirilmiş Risk API və rəy üçün hadisələr axını. velocity limitləri, şəbəkə/cihaz/davranış siqnalları, dinamik challenge (captcha/PoW/OTP/WebAuthn) istifadə edin. allow/deny/challenge/throttle qərarları qəbul edin, FP/FN və iş effekti ölçün, shadow/canary vasitəsilə yuvarlanın. Ödəniş/bonus yolları üçün - ayrı-ayrı sərtləşdirilmiş profillər və KYC/AML ilə əlaqə.

Contact

Bizimlə əlaqə

Hər hansı sualınız və ya dəstək ehtiyacınız varsa — bizimlə əlaqə saxlayın.Həmişə köməyə hazırıq!

Telegram
@Gamble_GC
İnteqrasiyaya başla

Email — məcburidir. Telegram və ya WhatsApp — istəyə bağlıdır.

Adınız istəyə bağlı
Email istəyə bağlı
Mövzu istəyə bağlı
Mesaj istəyə bağlı
Telegram istəyə bağlı
@
Əgər Telegram daxil etsəniz — Email ilə yanaşı orada da cavab verəcəyik.
WhatsApp istəyə bağlı
Format: ölkə kodu + nömrə (məsələn, +994XXXXXXXXX).

Düyməyə basmaqla məlumatların işlənməsinə razılıq vermiş olursunuz.