Reglarea normelor și a antifraudei
TL; DR
Antifrauda nu este „prinderea intrușilor”, ci optimizarea profiturilor: minimizăm pierderile așteptate (EL) de fraudă și chargeback-uri atunci când limităm costul frecării (CoF) și AR_net. Schema de bază: scoring (ML) → prag/scară pas-up → reguli (politică și viteză) → verificare manuală. Succesul este dat de: etichetele curate, caracteristicile stabile, pragul calibrat economic, eliberările canare, idempotența strictă și manevrabilitatea regulilor.
1) Stadiul economic
Pierdere preconizată:- „EL = P_fraud (tx) × Expunere (tx)”; de obicei "Expunere = captured_amount'.
- 'CoF = ( ) + +.
- „Profit = − GGR Cost_payments − EL − CoF”.
Pragul optim "τ": selectați score-cutoff astfel încât (Profit )/d τ = 0 ", sau în funcție de grila min (" EL + CoF "). În practică, cost-sensibile ROC/PR cu greutăți: 'w _ fraud = Expunere', 'w _ fp = LTV_loss + opex'.
2) Scara de autentificare (scara pas-up)
1. Aprobare automată (risc scăzut): trecere instantanee, fără frecare 3DS ori de câte ori este posibil.
2. Pas-up A: 3DS provocare/SCA/dispozitiv-provocare/reCAPTCHA.
3. Pasul B: легкий KYC (doc selfie/face-match, liveness).
4. Manual de revizuire: caz la analist (SLA, motive-coduri).
5. Auto-declin: risc ridicat/sancțiuni/catâri/anomalii voucher.
Pragul/ramura depinde de scorul de notare, suma ('ticket _ size'), tara, BIN/emitent, caracteristici comportamentale si context (campanii bonus, ferestre de noapte, viteza).
3) Semnale și caracteristici (bază minimă)
Plata: BIN/IIN, issuer_country, flux ECI/3DS, meci AVS/CVV, coduri soft-declin, retururi/dispute in istorie.
Comportament: viteza evenimentelor (viteza: 'carduri/dispozitiv/ip/email'), ora zilei, prima-văzută/ultima-văzută, „topologia” conturilor (conexiuni grafice: dispozitive/carduri/portofele partajate).
Dispozitiv/rețea: amprenta dispozitivului, emulatoare/închisoare/rădăcină, proxy/VPN/TOR, ASN/hosting.
Anti-bonus: recomandări-sindicate, bonusuri „de pompare”, modele anormale de depozit→vyvod fără a juca.
Plăți/portofele/vouchere: repetiții PIN, neconcordanțe geografice, redimuri „de mare viteză”, cascade de muling.
KYC/KYB: nivel, validări, steaguri SoF/SoW.
Sancțiuni/POP/liste de blocuri: meciuri de listă, nume/adrese de meci neclare.
4) Stiva: ML + reguli
5) Măsurători de calitate (cu baze clare)
= 'Auth _ Approved/( )'
Rata de fraudă = 'Fraudă _ capturat _ suma/ Captured_amount'
Rata de încărcare = 'Chargeback _ count/ Captured_Tx' (sau după sumă)
Rata fals pozitivă (FP) = 'Legit _ declinat/ Legit_attempted'
Rata de pas-up = 'StepUp _ tx/ Auth_Attempted', Abandon_on_StepUp
Aprobare automată%, Revizuire manuală%, Revizuire SLA/TtA
Creșterea profitului net după reglare (diferența AB EL + CoF vs control).
Criterii de referință: PC pentru noii utilizatori ≤ 1-2% (în funcție de volum), Fraudă (în funcție de sumă) - în coridorul țintă al licenței/schemelor.
6) Praguri și reguli de politică
6. 1 Calibrarea pragului
Construim o curbă de cost: pentru fiecare „τ” considerăm „EL (τ) + CoF (τ)”.
Alegeți „τ” cu un minim. Pentru high-ticket - un „τ _ hi” separat.
6. 2 Reguli tipice (pseudocod)
yaml
- name: SANCTIONS_HIT when: sanctions_match==true action: DECLINE reason: "Sanctions/PEP match"
- name: BIN_RISKY_3DS when: bin in RISKY_BINS and score in [τ_low, τ_mid)
action: STEPUP_3DS
- name: DEVICE_VELOCITY_LOCK when: device_id in last_10min.deposits > 3 action: DECLINE_TEMPORARY ttl: 2h
- name: BONUS_ABUSE_GUARD when: (bonus_received and gameplay_turnover < Xdeposit_amount) and payout_request action: HOLD_REVIEW reason: "Turnover not met"
6. 3 Limite dinamice
Limita valorii și numărului de tranzacții în funcție de nivelul de risc (nivel de risc): „R1/R2/R3”.
Limite adaptive pentru noi conturi, încălzirea cu o istorie bună.
7) Ciclul de viață al regulilor (guvernare)
Registru DSL/regulă cu versiuni, descrierea proprietarului și a efectului.
Modul umbră → canar (5-10%) → rulare completă.
RACI: Proprietar (Risc de plăți), Aprobator (Conformitate/Juridic), Consultat (Suport/Trezorerie), Informat (Ops).
Jurnal de audit: cine/când a schimbat ce valori/AB, rollback.
Termenul de valabilitate și reevaluarea regulii (de exemplu, 30/60 zile).
8) Date model și instruire
Se împarte în timp, fără scurgeri (caracteristici numai din fereastra anterioară).
Eticheta țintă: fraudă/încărcare confirmată; etichete individuale de abuz bonus.
Reîncărcarea claselor în funcție de sumă (pierdere ponderată în sumă).
Monitorizarea derivei: PSI pentru caracteristici cheie, KS pentru viteză, stabilitate de bază.
Declanșează recalificarea: PSI> 0. 25, KS drop, trafic/schimbare jurisdicțională.
9) Explicabilitate și suport
Pentru fiecare soluție, generăm un reason_codes (până la 5 motive) cu solicitări care pot fi citite de om.
Macrocomenzi step-up/fail support (3DS, KYC, cifra de afaceri).
Dispute/dispute: feedback-ul intră în conducta de etichetare (închideți bucla).
10) Respectarea și confidențialitatea
GDPR/DSAR: dreptul de a explica decizia; Minimizarea PII; identificatori hashing (sărat) (email/telefon/token PAN).
PCI-DSS: fluxuri PAN-safe, tokenization.
Sancțiuni/LMA: Screening MLRO separat + buclă de escaladare.
Păstrare: politici pentru stocarea semnalelor și justificarea deciziilor.
11) Monitorizare și alerte (orar/zilnic)
AR_clean, Fraud (amt%), FP (ponderat la păstrare), Step-up/Abandon, Review SLA, Chargeback Rate (rămas în urmă).
Adeziuni de viteză, creșterea găzduirii TOR/Proxy/ASN, degradarea BIN, derivate voucher.
Alerte la: FP> coridor, Fraudă> țintă, Abandon> bază + X pp, PSI/KS drift.
12) Felii SQL (exemplu)
12. 1 Valori iniţiale
sql
WITH base AS (
SELECT
DATE_TRUNC('day', attempt_ts) d, country, provider, method_code,
COUNT() FILTER (WHERE auth_status='ATTEMPTED') AS attempted,
COUNT() FILTER (WHERE auth_status='APPROVED') AS approved,
COUNT() FILTER (WHERE decision='DECLINE' AND label='LEGIT') AS fp_cnt,
SUM(captured_amount) AS cap_amt,
SUM(CASE WHEN label='FRAUD' THEN captured_amount ELSE 0 END) AS fraud_amt
FROM payments_flat
GROUP BY 1,2,3,4
)
SELECT d, country, provider, method_code,
approved::decimal/NULLIF(attempted,0) AS ar_clean,
fraud_amt::decimal/NULLIF(cap_amt,0) AS fraud_rate_amt,
fp_cnt::decimal/NULLIF(attempted,0) AS fp_rate
FROM base;
12. 2 Ponderea defecțiunilor treptate și de viteză
sql
SELECT
DATE_TRUNC('day', attempt_ts) d,
WIDTH_BUCKET(score, 0, 1, 10) AS bucket,
AVG(CASE WHEN decision='STEPUP' THEN 1 ELSE 0 END) AS stepup_share,
AVG(CASE WHEN decision='DECLINE' THEN 1 ELSE 0 END) AS decline_share,
AVG(CASE WHEN stepup_abandon THEN 1 ELSE 0 END) AS abandon_after_stepup
FROM risk_events
GROUP BY 1,2
ORDER BY d, bucket;
13) Reglarea cărților de redare
Creșterea fraudei (amt%) cu PC stabil → crește „τ”, consolidează viteza prin dispozitive/ASN, permite 3DS-challenge pe BIN-uri vulnerabile.
Mare FP în noi → atenua „τ” pentru low-bilet, muta parte la pas-up A în loc de abatere.
Abandonați 3DS↑ → de acord cu PSP pe parametrii 3DS2, îmbunătățiți UX, îngustați pasul pe mobil pentru risc scăzut.
Rețele bonus syndividual → caracteristici grafice, limitarea plăților „paralele”, reguli de întoarcere.
Anomalii voucher → viteza de PIN/retailer/geo, dispozitiv de legare, dețin înainte de verificare.
14) Implementare: listă de verificare
- Calibrarea pragului economic („EL + CoF”), individual „τ” pe segment.
- Regula registru (DSL), shadow→canary→rollout, audit, și rollback.
- Coduri de motive și șabloane de comunicare.
- PSI/KS de monitorizare, se potrivesc/derivă viteză, recalificare regulată.
- Canal de feedback (disputy→leybly).
- KYC/step-up, revizuirea SLA și politicile TtA/TtR.
- Confidențialitate: hashing ID, minimizare PII.
15) Rezumat
Tuningul antifraudă este o optimizare a sistemului de profituri cu fricțiune controlată: punctaj ML + scară pas-up bine gândită, reguli legale stricte și limite de viteză îngrijite. Calibrarea economică a pragului, etichetele curate, afișajele canare și controlabilitatea strictă dau fraudă scăzută în ceea ce privește cantitatea, FP scăzut în cele noi, AR_net ridicată - fără surprize pentru conformitate și UX.