حفاظت از ربات و API ضد تقلب
1) چرا شما به آن نیاز دارید
رباتها و مهاجمان به نقاط ورود رشد و پول حمله می کنند: ثبت نام، ورود (ATO)، سپرده ها/نتیجه گیری ها، مکانیک تبلیغاتی، کاتالوگ بازی ها/ضرایب. قوانین دستی و محدودیت نرخ خالص دیگر کافی نیست: شما نیاز به سیگنال های چند سطحی، نمره دهی در زمان واقعی و کنترل راه حل (اجازه/انکار/چالش/دریچه گاز) با بازخورد از رویدادهای کسب و کار (بازپرداخت، نسبت بازپرداخت، فایل های KYC).
2) طبقه بندی تهدید
ثبت نام/ورود: حساب های جمعی، ایمیل های یکبار مصرف/سیم کارت بانک ها، مزارع دستگاه.
ATO (برداشت حساب): چاشنی اعتبارنامه، اسپری کردن رمز عبور، ربودن جلسه.
سوء استفاده از پاداش: چند رزرو, داوری جغرافیایی/صلاحیت, بای پس خود حذفی.
تقلب در پرداخت/پرداخت: آزمون کارت، کیف پول به سرقت رفته، بازپرداخت.
خراش دادن/موجودی: به شدت کشیدن محتوا، قیمت، نسبت.
API-DoS با شدت کم: حملات لاک پشت، slow-POST، شبیه سازی SDK تلفن همراه.
Webhooks/integrations: اطلاعیه های جعلی بدون HMAC/mTLS، پخش.
3) معماری حفاظت
3. 1 لایه ها
1. لبه (CDN/WAF/دروازه): شکست های اولیه (ASN/Geo/IP شهرت)، چالش های نور، محدودیت ها، PoW.
2. API ریسک (ریسک PDP): موتور قانون متمرکز/ML ؛ ответ - «تصمیم»، «نمره»، «دلیل»، «ttl».
3. سطح برنامه: تغییرناپذیر دامنه, منطق کسب و کار (محدودیت, KYC, AML), بررسی ناهمزمان.
4. جریان رویداد: کافکا/Kinesis → فروشگاه ویژگی/مدل → بازخورد از پرداخت/اختلافات.
3. 2 حلقه راه حل
[Request] → Edge Plugins → (enrich) → Risk API (rules+ML) → Decision:
allow deny throttle challenge(type=captcha sms PoW biometry)
راه حل توسط کلید (به عنوان مثال، دستگاه × حساب × مسیر) برای ثانیه ttl ذخیره می شود.
4) سیگنالها و غنیسازی
شبکه/کانال: IP/ASN، پروکسی/VPN/Tor، rdns، rtt/jitter، نرخ SYN، اثر انگشت TLS (JA3/JA4)، رفتار HTTP/2/3.
دستگاه/مرورگر: canvas/audio/WebGL FP (دقیق)، پلت فرم/SDK، منطقه زمانی/محلی، وضوح، فونت، WebDriver/شاخص های بدون سر، گواهی تلفن همراه (SafetyNet/DeviceCheck، در صورت امکان).
رفتار: سرعت ورودی، مسیرهای ماوس/لمسی، توالی صفحه، زمان توقف، فرکانس تلاش، انتقال بین شناسه های مرورگر.
محتوا/درخواست: فرم ایمیل/دامنه، ارائه دهندگان یکبار مصرف، تلفن HLR/یا نوع شماره، کارت BIN، حساب/IBAN در ثبت نام sanka، شباهت نام کامل/آدرس.
حساب/تاریخچه: سن حساب، وضعیت KYC، نگهداری، ARPPU، سرعت سپرده ها/برداشت ها/پاداش ها.
منابع خارجی: لیست سازش (HIBP مانند)، سیگنال های خطر پرداخت (PSP)، شهرت ASN.
5) راه حل: قوانین + ML
5. 1 قوانین (قطعی)
سرعت: «N ثبت نام با/24 در 10 دقیقه»، «M ورود با یک دستگاه به حساب X»، «K 3DS-files در یک ردیف».
Geo/Jurisdiction: درگیری های جغرافیایی IP در مقابل آدرس/سند، جهش ناگهانی مکان.
تغییرناپذیر کسب و کار: محدودیت های پرداخت مسئول, خود حذفی, لیست تحریم.
5. امتیاز 2 میلی لیتر (زمان واقعی)
مدل نور (GBM/logreg) بر روی ویژگی های آنلاین: «ip _ risk»، «device _ age»، «account _ age»، «pwd _ fail _ rate»، «bin _ risk»، «_' سرعت»، _' رفتاری.
مدل جداگانه برای 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
هنگامی که «چالش»، حقایق عبور/شکست را ذخیره کنید ؛ افزایش/کاهش اصطکاک به صورت پویا.
6) سرعت و سهمیه (کلید و پنجره)
Ключи: «ip»، «ip/24»، «device _ id»، «account _ id»، «payment _ instrument»، «email _ domain»، «bin».
ویندوز: کشویی (1m/5m/1h/24h) + فردی «پشت سر هم «/» پایدار «.
سیاستمداران: «سخت» انکار در مسیرهای داغ (ورود/سپرده)، دریچه گاز نرم در محتوا.
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/گردان: как نرم چالش ؛ حذف پس از اعتماد به نفس بالا در یک جلسه «تمیز».
اثبات کار (PoW): برای API/اسکریپت - محاسبه هش با پیچیدگی داده شده ؛ پیچیدگی دینامیکی در طول رشد بار.
OTP/SMS/ایمیل/فشار: برای عملیات ATO/بحرانی ؛ سوء استفاده نکنید (هزینه/UX).
WebAuthn/بیومتریک: سطح بالایی از اعتماد به نفس در جزئیات پرداخت نقدی/تغییر.
اعتماد دستگاه: حساب کاربری را به یک دستگاه تأیید شده متصل کنید ؛ دستگاه های جدید → چالش
8) ادغام دروازه/پروکسی
8. 1 نماینده: ext_authz → 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 آسان و سرعت
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) قرارداد 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) داده ها، ویژگی ها و مدل ها
فروشگاه ویژگی (آنلاین): Redis/Scylla/KeyDB - شمارنده/سرعت/زمان بندی.
دسته ای/آفلاین: DWH (BigQuery/S3 + آتنا) برای آموزش/refits ؛ علائم خروج، بازپرداخت، بررسی دستی را حفظ کنید.
مدل ها: ساده برای زمان واقعی (logreg/GBM) ؛ heavy (XGBoost/NN) - آفلاین با PGMs/scaling و تقطیر بعدی.
کنترل رانش: PSI، AUC/PR، کالیبراسیون آستانه توسط منطقه/کانال.
11) قابلیت مشاهده و مدار عملیاتی
معیارها:- 'risk _ requests _ total {مسیر، تصمیم}'
- 'risk _ score _ bucket' (توزیع)
- 'waf _ block _ total', 'velocity _ block _ total', 'challenge _ pass _ rate'
- 'ato _ incidents', 'carding _ detected', 'cashout _ denied'
- معیارهای کسب و کار: 'chargeback _ rate'، 'bonus _ abuse _ rate'، 'false _ positive _ rate'
- سیاهههای مربوط (ویرایش شده): «تصمیم»، «نمره»، سیگنال های کلیدی، «ردیابی _ id»، هیچ PII/اسرار.
- A/B و Shadow: یک سیاست جدید در حالت سایه (ما تصمیمات را وارد می کنیم)، سپس canary (1-5٪)، بازگشت خودکار از طریق SLO/FP.
- Playbooks: تشدید، سفت شدن موقت، عقب نشینی، «تکه های مجازی».
12) حفظ حریم خصوصی و انطباق
به حداقل رساندن PII ؛ شناسه های پایدار هش (به عنوان مثال، SHA-256 ایمیل با نمک).
احترام به صلاحیت منطقه ای (محلی سازی داده ها، رضایت).
توضیحات شفاف تصمیمات برای بررسی دستی ؛ فقط آنچه را که نیاز دارید و با TTL نگه دارید.
13) ویژگی های iGaming/امور مالی
ثبت نام: یکبار مصرف ایمیل/VoIP فیلتر، سرعت توسط/24، مزرعه دستگاه → چالش/انکار.
ورود/ATO: دستگاه های جدید/جغرافیایی پرش → OTP/WebAuthn ؛ اسپری کردن رمز عبور → دریچه گاز/انکار.
پاداش: محدودیت در «مسیر به پولشویی» (depozit → پاداش → minimalnyy oborot → vyvod), تجزیه و تحلیل نمودار وابستگی (آدرس/دستگاه/کارت).
پرداخت/برداشت: خطر BIN، عدم تطابق کشور، سیگنال PSP ؛ cashout به ابزار جدید → آستانه بالا و بررسی KYC.
PSP/KYC: HMAC + mTLS، لیست مجاز IP باریک، ضد پخش ('X-Timestamp'، پنجره ± 5 دقیقه).
14) ضد گلوله
یک captcha جهانی «همه جا و همیشه» → افت FP/تبدیل بالا.
تنها محدودیت نرخ بدون سیگنال های رفتاری/دستگاه.
ذخیره سازی «خام» چاپ و PII نامحدود است.
بدون سایه اجرا و canary برای سیاست های جدید.
اعتماد کامل به برچسب های «اعتبار» خارجی بدون اعتبار خود.
تصمیم گیری در مورد مشتری (JS/Mobile SDK) بدون اعتبار سرور.
15) مثال قانون و شبه کد
15. 1 قانون کامپوزیت (زمان واقعی)
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) تولید لیست آمادگی
- معماری چند سطح: لبه → API ریسک → برنامه، جریان رویداد.
- سیگنال: شبکه، دستگاه، رفتار، محتوا، پرداخت ؛ به حداقل رساندن PII.
- سرعت/GCRA بر روی IP/دستگاه/حساب/کلید های پرداخت، پنجره های کشویی.
- راه حل: اجازه/انکار/چالش/دریچه گاز ؛ راه حل کش با TTL یک مخزن از حقایق چالش.
- چالش ها: captcha/PoW/OTP/WebAuthn ؛ پیچیدگی دینامیک
- خطر API: SLA <100ms, کش, تنزل به «حداقل امن» حالت.
- قابلیت مشاهده: خطر، FP/FN، داشبورد، هشدار ؛ معیارهای کسب و کار (بازپرداخت/پاداش سوء استفاده).
- سایه → قناری → اجرای ؛ تشدید و رول بک playbooks.
- وبوکها PSP/KYC: HMAC + mTLS + ضد پخش + اجازه لیست.
- الزامات منطقه ای و TTL در داده های حساس.
17) TL ؛ دکتر متخصص
ساخت حفاظت لایه ای: فیلترهای لبه اولیه و چالش ها، API ریسک متمرکز با قوانین + ML و جریان رویداد برای بازخورد. از محدودیت های سرعت، سیگنال های شبکه/دستگاه/رفتار، چالش های پویا (captcha/PoW/OTP/WebAuthn) استفاده کنید. تصمیم گیری اجازه می دهد/انکار/چالش/دریچه گاز، اندازه گیری FP/FN و اثر کسب و کار، رول از طریق سایه/قناری. برای مسیرهای پرداخت/پاداش - پروفایل های محکم و پیوندی با KYC/AML را جدا کنید.