Logo GH

ボット保護と不正防止API

1)なぜそれを必要とします

ボットと攻撃者は、成長とお金のエントリーポイントを攻撃します:登録、ログイン(ATO)、預金/結論、プロモーション力学、ゲーム/係数のカタログ。手動ルールと純粋なレート制限はもはや十分ではありません。ビジネスイベント(チャージバック、チャージバック比、KYCファイル)からのフィードバックを使用して、マルチレベル信号、リアルタイムスコアリング、ソリューションコントロール(allow/deny/challenge/throttle)が必要です。

2)脅威分類

登録/オンボーディング:マスアカウント、使い捨て電子メール/SIM銀行、デバイスファーム。
ATO (Account Takeover):資格情報の詰め物、パスワード噴霧、セッションハイジャック。
ボーナス乱用:複数予約、地理/管轄仲裁、自己排除バイパス。
カート/支払い詐欺:カードテスト、盗まれた財布、払い戻し。
スクレイピング/インベントリ:コンテンツ、価格、比率を積極的に引き出します。
低強度API-DoS:カメ攻撃、slow-POST、モバイルSDKエミュレーション。
Webhooks/integrations: HMAC/mTLSのない偽の通知、リプレイ。

3)保護アーキテクチャ

3.1レイヤー

1.エッジ(CDN/WAF/ゲートウェイ):早期障害(ASN/Geo/IPの評判)、軽い課題、限界、PoW。
2.リスクAPI (リスクPDP):一元的なルールエンジン/ML;'decision'、 'score'、 'reason'、 'ttl'。
3.アプリレベル:ドメイン不変量、ビジネスロジック(制限、KYC、 AML)、非同期レビュー。
4.イベントフロー:Kafka/Kinesis→feature store/model→支払い/紛争からのフィードバック。

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カード、sankaレジストリのアカウント/IBAN、フルネーム/アドレスの類似性。
アカウント/履歴:アカウントの年齢、KYCステータス、保持、ARPPU、入金/出金/ボーナスによる速度。
外部ソース:妥協リスト(HIBPのような)、支払リスク信号(PSP)、 ASN評判。

5)解決: 規則+ML

5.1ルール(決定論的)

速度: 「10分で/24のN登録」「、Xアカウントに1つのデバイスでMログイン」「、K 3DS-filesの連続」

地理/管轄:IP地理競合とアドレス/ドキュメント、突然の場所ジャンプ。
ビジネス不変性:責任ある支払いの制限、自己排除、制裁リスト。

5.2 MLスコアリング(リアルタイム)

オンライン特性に関するライトモデル(GBM/logreg): 'ip_risk'、 'device_age'、 'account_age'、 'pwd_fail_rate'、 'bin_risk'、 'velocity _'、' behavioral _'。
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'。
Windows:スライディング(1m/5m/1h/24h)+個々の「バースト「/」持続「。
政治家:「ハード」ホットルート(ログイン/デポジット)、コンテンツのソフトスロットルを拒否します。

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/ターンスタイル: soft-challenge;「きれいな」セッションの高い信頼の後で取除いて下さい。
Proof-of-Work (PoW): API/スクリプトの場合-指定された複雑さを持つハッシュを計算します。負荷の増加の間の動的複雑さ。
OTP/SMS/Email/Push: 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)データ、特徴およびモデル

Feature Store(オンライン):Redis/Scylla/KeyDB-カウンタ/ベロシティ/タイムスタンプ。
バッチ/オフライン:訓練/refitsのためのDWH (BigQuery/S3+Athena);流出、チャージバック、手動レビューのマークを保持します。
モデル:リアルタイム(logreg/GBM)のための簡単;heavy (XGBoost/NN)-PGM/スケーリングおよびその後の蒸留でオフライン。
ドリフト制御:PSI、 AUC/PR、領域/チャネルによるしきい値の校正。

11)観察可能性および操作回路

メトリクス:
  • 'risk_requests_total {route、 decision}'
  • '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'
  • ログ(編集済み):'decision'、 'score'、キー信号、'trace_id'、 no PII/secrets。
  • A/BとShadow:シャドウモードの新しいポリシー(私たちは意思決定を記録します)、次にカナリア(1-5%)、 SLO/FPによる自動ロールバック。
  • プレイブック:エスカレーション、一時的な締め付け、ロールバック、「仮想パッチ」。

12)プライバシーとコンプライアンス

PIIを最小化する。ハッシュの安定した識別子(例えば、電子メールのSHA-256と塩)。
地域管轄権の尊重(データのローカライズ、同意)。
手動レビューのための決定の透明な説明;必要なものだけをTTLで保管してください。

13) iGaming/Financeの詳細

登録:使い捨て電子メール/VoIPフィルタ、/24による速度、デバイスファーム→チャレンジ/拒否。
ログイン/ATO:新しいデバイス/ジオジャンプ→OTP/WebAuthn;パスワード噴霧→スロットル/拒否。
ボーナス:「ローンダリングへのパス」(depozit→bonus→minimalnyy oborot→vyvod)、所属のグラフ分析(アドレス/デバイス/カード)。
支払い/引き出し:BINリスク、カントリーミスマッチ、PSPシグナル;新しいインストゥルメントへのキャッシュアウト→高いしきい値とKYCチェックアップ。
Webhooks PSP/KYC: HMAC+mTLS、狭いIP許可リスト、アンチリプレイ('X-Timestamp'、ウィンドウ± 5分)。

14) Antipatterns

1つのユニバーサルキャプチャ「どこでも、常に」→高いFP/変換ドロップ。
振る舞い/デバイス信号なしのレート制限のみ。
「生」プリントとPIIの保存は無制限です。
新しいポリシーのためのシャドウランとカナリアはありません。
独自の検証なしに外部の「評判」ラベルに完全に自信を持っています。
サーバー検証なしでクライアント(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) Prod Readinessチェックリスト

  • マルチレベルアーキテクチャ:Edge→Risk API→App、イベントフロー。
  • シグナル:ネットワーク、デバイス、行動、コンテンツ、支払い;PIIの最小化。
  • ip/device/account/paymentキーの速度/GCRA、スライドウィンドウ。
  • ソリューション:allow/deny/challenge/throttle;TTLを使用したソリューションキャッシュ挑戦事実のリポジトリ。
  • 課題:captcha/PoW/OTP/WebAuthn;動的な複雑さ。
  • リスクAPI: SLA <100ms、キャッシュ、「最小安全」モードに劣化。
  • 観測可能性:リスク、FP/FN、ダッシュボード、アラート;ビジネスメトリック(チャージバック/ボーナス-乱用)。
  • Shadow→canary→enforce;エスカレーションとロールバックのプレイブック。
  • Webhooks PSP/KYC: HMAC+mTLS+anti-replay+allow-list。
  • 機密データに関する地域要件とTTL。

17) TL;DR(ドクター)

レイヤードプロテクションの構築:早期エッジフィルタと課題、+MLルールを備えた集中型リスクAPI、フィードバック用のイベントフロー。速度制限、ネットワーク/デバイス/行動信号、動的チャレンジ(captcha/PoW/OTP/WebAuthn)を使用します。意思決定を行うことができます/拒否/チャレンジ/スロットル、測定FP/FNとビジネス効果、影/カナリアをロールスルー。支払い/ボーナスパスの場合-別の締め付けられたプロファイルとKYC/AMLとのリンク。

Contact

お問い合わせ

ご質問やサポートが必要な場合はお気軽にご連絡ください。いつでもお手伝いします!

Telegram
@Gamble_GC
統合を開始

Email は 必須。Telegram または WhatsApp は 任意

お名前 任意
Email 任意
件名 任意
メッセージ 任意
Telegram 任意
@
Telegram を入力いただいた場合、Email に加えてそちらにもご連絡します。
WhatsApp 任意
形式:+国番号と電話番号(例:+81XXXXXXXXX)。

ボタンを押すことで、データ処理に同意したものとみなされます。