Bot Films և API հակաֆրոդ
1) Ինչո՞ ւ է դա անհրաժեշտ
Բոտները և հարձակվողները հարձակվում են աճի և փողի մուտքային կետերի վրա ՝ 108, լոգին (ATO), դեպոզիտներ/եզրակացություններ, պրոմո մեխանիկա, խաղային և խաղեր/գործակիցներ։ Ձեռքի կանոնները և մաքուր rate limit-ը արդեն բավարար չեն, անհրաժեշտ են բազմաշերտ ազդանշաններ, իրական ժամանակում սկորինգ և լուծման վերահսկողություն (allow/deny/challenge/throtttle) բիզնեսի իրադարձությունների հետադարձ կապի հետ (chargeback-ratio, KYC-feils)։
2) Վտանգների տաքսոնոմիա
Express/onbording: զանգվածային հաշիվներ, միանգամյա օգտագործված e-mail/sim բանկեր, dewaiss ֆերմերներ։
ATO (Account Takeover): credential stuffing, password spraying, session hijack.
Բոնուս Աբյուզ 'մուլտիկաուտինգ, ռուսական գեո/միգրացիաներ, wwww.f-www.lusion շրջանցող։
Նկար/ստացիոնար ֆրոդ ՝ քարտերի թեստ, գողացված դրամապանակներ, դրամավարկներ։
Սկրիփինգը/կիսագունդը 'բովանդակության, գնի, գործակիցների ագրեսիվ ձգումը։
API-DoS ցածր ինտենսիվություն 'կրիայի հարձակումներ, slow-POST, բջջային SDK էմոմաներ։
Webhuki/2019 'ծանուցումների կեղծումը առանց HMAC/mTSA, replay։
3) Պաշտպանության ճարտարապետությունը
3. 1 Շերտեր
1. Edge (CDN/WAF/դարպաս) 'վաղ ձախողումներ (ASN/Geo/IP հեղինակություն), թեթև Chelengi, limits, PoW։
2. Risk API (PDP ռիսկի վրա) 'կանոնների կենտրոնացված շարժիչ/ML; ответ — `decision`, `score`, `reason`, `ttl`.
3. App-մակարդակը 'հիբրիդային ինվարանտներ, բիզնես տրամաբանություն (limits, KYC, AML), ասինխրոն հեղափոխություն։
4. Իրադարձությունների հոսքը ՝ Kafka/Kinesis www.feature store/մոդելը հաստատեց վճարման/բանավեճերի հակառակ կապը։
3. 2 Վերջնական որոշումներ
[Request] → Edge Plugins → (enrich) → Risk API (rules+ML) → Decision:
allow deny throttle challenge(type=captcha sms PoW biometry)
Լուծումը քաշվում է բանալիով (օրինակ, device medaccount europe) "ttl 'վայրկյանում։
4) Ազդանշաններ և հարստացում
Ցանցը/ջրանցքը ՝ IP/ASN, 2019/MSN/Tor, rdns, rtt/jitter, MSN-rate, TMS-fingerprint (JA4), HTTP/2/3 վարք։
Devis/զննարկիչ ՝ canvas/audio/WinGL FP (խնամքով), պլատֆորմ/MSK, timezone/windale, թույլտվություն, տառատեսակներ, WindDriver/headless ցուցանիշներ, mobile atestation (SafetyNetyNet/det/Dvicrocock), հնարավորության դեպքում)։
Վարքագիծը 'մուտքագրման արագությունը, մկնիկի/տաչի հետքերը, էկրանների հաջորդականությունը, www.elll-time-ը, փորձերի հաճախականությունը, զննարկիչների միջև անցումը։
Բովանդակություն/հարցում 'e-mail/տիրույթ, www.posable-պրովայդերներ, phone HLR/կամ տիպ, BIN քարտեր, հաշիվ/IBAN sank-restrach-ում, FIO/հասցեների նման։
Ակկաունտ/պատմություն 'հաշիվի տարիքը, KYC կարգավիճակը, retenshn, ARPPU, velocity ավանդների/եզրակացությունների/բոնուսների։
Արտաքին աղբյուրները ՝ փոխզիջման ցուցակները (HIBP-նման), հիբրիդային ռիսկային ազդանշանները (PSA), ASN-հեղինակությունը։
5) Լուծում ՝ կանոնները + ML
5. 1 Կանոններ (դետերմինացված)
Velocity: «N գրանցումները 10 րոպեում», «M լոգինսը X հաշիվներում», «K 3DS ֆեյլները անընդմեջ»։
Գեո/միգրացիա. IP-geo-vs-ի հակամարտությունները հասցեն/փաստաթուղթ, հանկարծակի տեղանքի ցատկ։
Բիզնես ինվարանտներ 'վճարումների սահմանափակումներ, www.f-www.lusion, սանկցիոն ցուցակներ։
5. 2 ML սկորինգը (real-timm)
Թեթև մոդել (GBM/լոգրեգ) առցանց նշանների վրա '«ip _ risk», «device _ age», «account _ age», «pwd _ fail _ rate», «bin _ risk», «velocity _», «beavioral _»։
ATO-ի համար առանձին մոդել և առանձին 'վճարելու/եզրակացության համար։
Իրավասության/տենանտուի սեգմենտացիան (հոսքերի տրամաչափման տեղեկատվական շուկան)։
5. 3 Որոշում կայացնելը
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» -ի դեպքում պահեք անցման/ձախողման փաստերը։ ուղեկցել/նվազեցնել շփումը դինամիկ։
6) Velocity և քվոտաներ (բանալիներ և պատուհաններ)
Ключи: `ip`, `ip/24`, `device_id`, `account_id`, `payment_instrument`, `email_domain`, `bin`.
Պատուհաններ ՝ սայթաքող (1m/5m/1h/111 ժամ) + առանձին «burst «/« sustained »։
Քաղաքական գործիչները ՝ «կոշտ» դենի տաք երթուղիներում (լոգին/դեպոզիտ), փափուկ throtttle-ը բովանդակության վրա։
Redis-կանոնների օրինակ (կեղծ)
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) Չելենջին և «մարդկության» ստուգումը
CAPTCHA/turnstile: как soft-challenge; հեռացնել բարձր վստահությունից «մաքուր» նստաշրջանում։
Proof-of-Work (PoW) 'API/ջութակների համար - հաշվարկել հեշը տվյալ բարդությամբ։ դինամիկ բարդություն բեռի աճի ժամանակ։
OTP/SMS/Email/Push: ATO/քննադատական վիրահատությունների համար; չարաշահել (արժեքը/UX)։
Authn/կենսաչափություն. Վստահության բարձր մակարդակը cash-out/payout-մանրամասների փոփոխությունը։
Device trust: bind հաշիվը ստուգված dewis; նոր dewiss www.challenge.
8) Ինտեգրումը դարպասի/108
8. 1 Envoy: ext _ authz no Risk API (կեղծ)
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: թեթև PoW և 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 Պայմանագիրը
Հարցումը (հարստացված)
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}
}
Պատասխանը
json
{ "decision":"challenge", "score":0. 83, "reason":"high_velocity+new_device", "ttl_sec":900, "challenge":"captcha" }
10) Տվյալները, ֆիչիները և մոդելները
Feature Store (առցանց): Redis/Scylla/KronDB - հաշվիչներ/velocity/ժամանակավոր լուծումներ։
Batch/ofline: SNH (BigQuery/S3 + Athena) ուսուցման/ռեփիտների համար; պահեք հոսանքը, chargeback, ձեռքով։
Մոդելներ 'պարզ real-time (լոգրեգ/GBM); Ծանր (XGBoost/NN) - ofline PGMS/պահարան և հաջորդ կրակոցով։
Դրիֆտի վերահսկումը 'PSI, AUC/PR, շեմերի կալիբրովկան տարածաշրջաններում/112։
11) Դիտողությունն ու վիրահատական համակարգը
Մետրիկները
`risk_requests_total{route,decision}`
`risk_score_bucket` (distribution)
`waf_block_total`, `velocity_block_total`, `challenge_pass_rate`
`ato_incidents`, `carding_detected`, `cashout_denied`
բիզնես մետրերը ՝ «chargeback _ rate», «bonus _ abuse _ rate», «false _ positive _ rate»
Լոգները (խմբագրված) '«decision», «score», հիմնական ազդանշաններ, «trace _ id», առանց PII/գաղտնիքների։
A/B և Shadow: նոր քաղաքականությունը shadow ռեժիմում (լուծումների տրամաբանությունը), ապա canary (1-5%), SLO/FP-ի վրա։
Playbooks: Էսկալացիա, ժամանակավոր խստացում, արձագանք, «վիրտուալ փամփուշտներ»։
12) Գաղտնիությունը և համապատասխանությունը
Microsoft PII; Խրիշիրուզե դիմացկուն ցուցիչներ (օրինակ ՝ email SHA-256 աղով)։
Հարգեք կառավարական միգրացիան (տվյալների տեղայնացումը, համաձայնությունը)։
Ձեռքի խանդի համար որոշումների թափանցիկ բացատրությունները. պահեք միայն անհրաժեշտ և TTL-ի հետ։
13) iGaming/ֆինանսական առանձնահատկությունները
Շվեյցարիա 'ֆիլտրեր wwww.posable e-mail/VoIP, velocity/24, devis-fermes www.challenge/deny։
Login/ATO 'նոր սարքեր/geo-ցատկ www.OTP/Windows Authn; password spraying → throttle/deny.
Բոնուսներ ՝ «լվացքի ճանապարհը» (դեպոզիտ 105 բոնուս), գրաֆի վերլուծություն (108/dewiss/քարտեր)։
Վճարումներ/եզրակացություններ ՝ BIN ռիսկ, country-mismatch, PMS ազդանշաններ; cashout-ը նոր գործիքի վրա բարձր շեմն է և KYC-ի չեկապը։
Webhuks PMS/KYC: HMAC + mTSA, նեղ IP-allow-թերթ, anti-replay («X-Timestamp», պատուհանը 355 րոպե)։
14) Անտիպատերնի
Մեկ համընդհանուր captcha «ամենուր և միշտ» բարձր FP/հակադարձման անկում։
Միայն rate limit առանց վարքագծային/deway ազդանշանների։
«Հում» տպագրության և PII-ի պահպանումը անսահման է։
Shadow-ի և canary-ի բացակայությունը նոր քաղաքական գործիչների համար։
Արտաքին «հեղինակավոր» պիտակների ամբողջական վստահությունը առանց սեփական վալիդացիայի։
Կլենտում որոշումների ընդունումը (JS/բջջային PPK) առանց սերվերի ստուգման։
15) Կանոնների և կեղծիքների օրինակներ
15. 1 Կոմպոզիտային կանոն (real-timm)
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 Կապերի գրաֆիկ (մուլտիկկաունտ)
edge(accountA, deviceX)
edge(accountB, deviceX)
edge(accountB, cardY)
edge(accountC, cardY)
Threshold by common nodes → investigation/deny bonus
16) Չեկ-թուղթ պատրաստակամության համար
- Բազմաստիճան ճարտարապետություն 'Edge no Risk API no Appe, իրադարձությունների հոսք։
- Ազդանշաններ ՝ ցանց, dewis, վարք, բովանդակություն, կոդավորում։ PII-ի նվազեցումը։
- Velocity/GCRA-ն ip/device/account/payronics բաների վրա, որոնք սահում են պատուհանները։
- Լուծումներ ՝ allow/deny/challenge/throttle; լուծումներ TTL-ի հետ; փաստերի պահեստ։
- Chelengy: captcha/PoW/OTP/Windows Authn; դինամիկ բարդություն։
- Risk API: SLA <100 ms, kash, դեգրադացիա «նվազագույն անվտանգ» ռեժիմում։
- Դիտարկումը 'risk, FP/FN, dashbords, alerts; բիզնես մետրիկները (chargeback/bonus-abuse)։
- Shadow → canary → enforce; շարժասանդուղքներ և արձագանքներ։
- Webhuki PMS/KYC: HMAC + mTSA + anti-replay + allow-list։
- Տարածաշրջանային պահանջները և TTL-ը զգայուն տվյալների վրա։
17) TL; DR
Կառուցեք փխրուն պաշտպանություն 'վաղ edge ֆիլտրեր և chelengi, կենտրոնացված Risk API-ը + ML կանոններով և հետադարձ կապի համար իրադարձությունների հոսքով։ Օգտագործեք velocity-limits, ցանցի/dewis/վարքի ազդանշաններ, դինամիկ challenge (captcha/PoW/OTP/Intel Authn)։ Որոշումներ կայացրեք allow/deny/challenge/throttle, չափեք FP/FN և բիզնես էֆեկտը, տեղադրեք shadow/canary միջոցով։ Մետրոպոլիտենի/բոնուսային ճանապարհների համար անհատական խստացված պրոֆիլներ և կապեր KYC/AML-ի հետ։