बॉट प्रोटेक्शन और एंटी-फ्रॉड एपीआई
1) आपको इसकी आवश्यकता क्यों है
बॉट्स और हमलावर विकास और धन के प्रवेश बिंदुओं पर हमला करते हैं: पंजीकरण, लॉगिन (एटीओ), जमा/निष्कर्ष, प्रचार यांत्रिकी, खेल/गुणांक के कैटलॉग। मैनुअल नियम और शुद्ध दर सीमा अब पर्याप्त नहीं है: आपको व्यावसायिक घटनाओं (चार्जबैक, चार्जबैक-अनुपात, केवाईसी-फाइल) से प्रतिक्रिया के साथ बहु-स्तरीय संकेत, वास्तविक समय स्कोरिंग और समाधारण नियंग की आवश्यकता है।
2) धमकी टैक्सोनॉमी
पंजीकरण/ऑन बोर्डिंग: बड़े पैमाने पर खाते, डिस्पोजेबल ई-मेल/सिम बैंक, डिवाइस फार्म।
ATO (खाता अधिग्रहण): क्रेडेंशियल स्टफिंग, पासवर्ड छिड़ काव, सत्र हाईजैक।
बोनस दुरुपयोग: मल्टी-बुकिंग, जियो/क्षेत्राधिकार मध्यस्थता, स्व-बहिष्करण बाईपास।
कार्टिंग/भुगतान धोखाधड़ी: कार्ड परीक्षण, चोरी पर्स, रिफंड।
स्क्रैपिंग/इन्वेंट्री: आक्रामक रूप से सामग्री, कीमतें, अनुपात खींचना।
कम तीव्रता वाले एपीआई-डॉस: कछुए के हमले, धीमी गति से पोस्ट, मोबाइल एसडीके अनुकरण।
वेबहूक/एकीकरण: HMAC/mTLS के बिना नकली सूचनाएं, रीप्ले।
3) संरक्षण वास्तुकला
3. 1 परतें
1. एज (CDN/WAF/गेटवे): शुरुआती विफलताएं (ASN/Geo/IP प्रतिष्ठा), हल्की चुनौतियां, सीमा, PoW।
2. जोखिम एपीआई (जोखिम पीडीपी): केंद्रीकृत नियम इंजन/एमएल; ответ - 'निर्णय', 'स्कोर', 'कारण', 'टीटीएल'।
3. ऐप-स्तर: डोमेन इनवेरिएंट्स, बिजनेस लॉजिक (सीमाएं, केवाईसी, एएमएल), अतुल्यकालिक समीक्षा।
4. घटना प्रवाह: काफ्का/काइनेसिस → फीचर स्टोर/मॉडल → भुगतान/विवादों से प्रतिक्रिया।
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 व्यवहार।
डिवाइस/ब्राउज़र: कैनवास/ऑडियो/वेबजीएल एफपी (सावधानीपूर्वक), प्लेटफ़ॉर्म/एसडीके, टाइमज़ोन/लोकेल, रिज़ॉल्यूशन, फ़ॉन्ट, वेब ड्राइवर/हेडलेस संकेतक, मोबाइल सत्यापन, यदि संभव हो)।
व्यवहार: इनपुट गति, माउस/टच प्रक्षेपवक्र, स्क्रीन अनुक्रम, निवास-समय, प्रयासों की आवृत्ति, ब्राउज़र पहचानकर्ताओं के बीच संक्रमण।
सामग्री/अनुरोध: ई-मेल/डोमेन, डिस्पोजेबल प्रदाता, फोन एचएलआर/या नंबर प्रकार, बिन कार्ड, खाता/IBAN, पूर्ण नाम/पते की समानता।
खाता/इतिहास: खाता आयु, केवाईसी स्थिति, प्रतिधारण, एआरपीपीयू, जमा/निकासी/बोनस द्वारा वेग।
बाहरी स्रोत: समझौता सूची (HIBP जैसी), भुगतान जोखिम संकेत (PSP), ASN प्रतिष्ठा।
5) समाधान: नियम + एमएल
5. 1 नियम (नियतात्मक)
वेग: "एन पंजीकरण के साथ/24 10 मिनट में", "एम एक्स खातों के लिए एक उपकरण के साथ लॉगिन", "के" एक पंक्ति में। "
जियो/क्षेत्राधिकार: आईपी भू संघर्ष बनाम पता/दस्तावेज़, अचानक स्थान कूदता है।
व्यावसायिक अपरिवर्तनीय: जिम्मेदार भुगतानों की सीमा, आत्म-बहिष्कार, प्रतिबंध सूची।
5. 2 एमएल स्कोरिंग (वास्तविक समय)
ऑनलाइन विशेषताओं पर प्रकाश मॉडल (GBM/logreg): 'ip _ jist', 'डिवाइस _ age', 'account _ age', 'pwd _ fail _ rate', 'bin _ ression', 'वेग', 'व्यवहार ।
एटीओ के लिए अलग मॉडल और भुगतान/आउटपुट के लिए अलग से।
अधिकार क्षेत्र/किरायेदार (प्रति-बाजार सीमा अंशांकन) द्वारा विभाजन।
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) वेग और कोटा (कुंजी और खिड़कियां)
Ключи: 'आईपी', 'आईपी/24', 'डिवाइस _ आईडी', 'अकाउंट _ आईडी', 'पेमेंट _ इंस्ट्रूमेंट', 'ईमेल _ डोमेन', 'बिन'।
विंडोज: स्लाइडिंग (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)।
वेबऑटन/बायोमेट्रिक्स: कैश-आउट/बदलते भुगतान विवरण में उच्च स्तर का विश्वास।
डिवाइस ट्रस्ट: एक सत्यापित उपकरण के लिए खाता बांटें; नए उपकरण - चुनौती।
8) गेटवे/प्रॉक्सी एकीकरण
8. 1 दूत: ext_authz → जोखिम एपीआई (छद्म)
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) जोखिम एपीआई अनुबंध
अनुरोध (समृद्ध):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 + एथेना); बहिर्वाह, चार्जबैक, मैनुअल समीक्षाओं के निशान रखें।
मॉडल: वास्तविक समय के लिए सरल (लॉग-रेग/जीबीएम); भारी (XGBoost/NN) - पीजीएम/स्केलिंग और बाद के आसवन के साथ ऑफ़ लाइन।
बहाव नियंत्रण: पीएसआई, एयूसी/पीआर, क्षेत्र/चैनल द्वारा थ्रेसहोल्ड का अंशांकन।
11) अवलोकन और परिचालन सर्किट
मेट्रिक्स:- 'रिस्क _ अनुरोध _ कुल {मार्ग, निर्णय}'
- 'रिस्क _ स्कोर _ बकेट' (वितरण)
- 'वाफ _ ब्लॉक _ टोटल', 'वेग _ ब्लॉक _ टोटल', 'चैलेंज _ पास _ रेट'
- 'ato _ घटनाओं', 'कार्डिंग _ डिटेक्टेड', 'कैशआउट _ डेनिड'
- व्यवसाय मेट्रिक्स: 'चार्जबैक _ रेट', 'बोनस _ abuse _ rate', 'fall _ picitive _ rate'
- लॉग्स (संपादित): 'निर्णय', 'स्कोर', कुंजी संकेत, 'ट्रेस _ आईडी', कोई पीआईआई/रहस्य नहीं।
- A/B और छाया: छाया मोड में एक नई नीति (हम निर्णय लेते हैं), फिर कैनरी (1-5%), एसएलओ/एफपी के माध्यम से ऑटो-रोलबैक।
- प्लेबुक: वृद्धि, अस्थायी कसने, रोलबैक, "आभासी पैच।"
12) गोपनीयता और अनुपालन
पीआईआई को न्यूनतम करें; हैश स्थिर पहचानकर्ता (उदाहरण के लिए, ईमेल SHA-256 नमक के साथ)।
क्षेत्रीय क्षेत्राधिकार का सम्मान करें (डेटा स्थानीयकरण, सहमति
मैनुअल समीक्षाओं के लिए निर्णयों की पारदर्शी व्याख्या; केवल वही रखें जो आपको चाहिए और टीटीएल के साथ।
13) आईगेमिंग/वित्त की विशिष्टताएं
पंजीकरण: डिस्पोजेबल ई-मेल/वीओआईपी फिल्टर, वेग/24 द्वारा, डिवाइस फार्म → चैलेंज/इनकार।
लॉगिन/एटीओ: नए उपकरण/भू-कूदता → ओटीपी/वेबऑटन; पासवर्ड छिड़ काव → थ्रॉटल/इनकार।
बोनस: "लॉन्ड्रिंग के लिए पथ" (depozit→bonus→minimalnyy oborot→vyvod), संबद्धता के ग्राफ विश्लेषण (पते/उपकरण/कार्ड) पर सीमा।
भुगतान/निकासी: बिन जोखिम, देश-बेमेल, पीएसपी संकेत; नए उपकरण के लिए कैशआउट - एक उच्च सीमा और केवाईसी चेकअप।
वेबहूक PSP/KYC: HMAC + mTLS, संकीर्ण IP-अनुमति-सूची, एंटी-रीप्ले ('X-Timestamp', विंडो 5 मिनट)।
14) एंटीपैटर्न
एक सार्वभौमिक कैप्चा "हर जगह और हमेशा" - एक उच्च एफपी/रूपांतरण ड्रॉप।
व्यवहार/उपकरण संकेतों के बिना केवल दर सीमा।
"कच्चे" प्रिंट और पीआईआई का भंडारण असीमित है।
नई नीतियों के लिए कोई छाया और कैनरी नहीं।
स्वयं के सत्यापन के बिना बाहरी "प्रतिष्ठित" लेबल में पूर्ण विश्वास।
सर्वर सत्यापन के बिना क्लाइंट (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) प्रोड रेडीनेस चेकलिस्ट
- मल्टी-लेवल आर्किटेक्चर: एज → रिस्क एपीआई → ऐप, इवेंट फ्लो।
- संकेत: नेटवर्क, उपकरण, व्यवहार, सामग्री, भुगतान; पीआईआई कम से कम।
- आईपी/डिवाइस/खाता/भुगतान कुंजी पर वेग/जीसीआरए, स्लाइडिंग विंडो।
- समाधान: अनुमति/इनकार/चुनौती/थ्रॉटल; टीटीएल के साथ समाधान कैश चुनौती तथ्यों का एक भंडार है।
- चुनौतियां: captcha/PoW/OTP/WebAuthn; गतिशील जटिलता।
- जोखिम API: SLA <100 ms, कैश, "न्यूनतम सुरक्षित" मोड के लिए अपमानित।
- अवलोकन: जोखिम, एफपी/एफएन, डैशबोर्ड, अलर्ट; व्यापार मेट्रिक्स (चार्जबैक/बोनस-दुरुपयोग)।
- छाया → कैनरी → लागू करें; वृद्धि और रोलबैक प्लेबुक।
- वेबहूक PSP/KYC: HMAC + mTLS + एंटी-रीप्ले + अनुमति-सूची।
- संवेदनशील डेटा पर क्षेत्रीय आवश्यकताएं और टीटीएल।
17) टीएल; डीआर
स्तरित सुरक्षा का निर्माण: प्रारंभिक किनारे फिल्टर और चुनौतियां, + एमएल नियमों के साथ केंद्रीकृत जोखिम एपीआई, और प्रतिक्रिया के लिए घटना प्रवाह। वेग सीमा, नेटवर्क/डिवाइस/व्यवहार संकेतों, गतिशील चुनौतियों (कैप्चा/PoW/OTP/WebAuthn) का उपयोग करें। निर्णय लेने की अनुमति/इनकार/चुनौती/थ्रॉटल, एफपी/एफएन और व्यावसायिक प्रभाव को मापने, छाया/कैनरी के माध्यम से रोल करें। भुगतान/बोनस पथ के लिए - अलग कड़े प्रोफाइल और केवाईसी/एएमएल के साथ एक लिंक।