ボット検出と不正防止ロジック
概要
ボットと詐欺に対する効果的な保護は、シグナルコレクション(クライアント、ネットワーク、デバイス、挙動)、リアルタイムリスクスコアリング、ルール(確率)+MLモデル(確率)、接続のグラフ分析、および厳格なエスカレーションプロセスの組み合わせです。目標は、UXと変換を維持しながら害を防ぐことです。
脅威とベクトル
ボットとスクレーパー:登録、ログイン検索、農場プロモーションコード、残高のプロモーション、アプリケーション/レートの自動作成。
アカウントの取得(ATO):資格情報の詰め込み、フィッシング、セッションの盗難。
支払い詐欺:盗まれたカード、リミットテスト、チャージバック農業。
ボーナス乱用:マルチアカウント、デバイス/アドレスの「家族」、プロキシ/エミュレータ。
アフィリエイト/CPAの乱用:偽の登録/預金、詐欺をクリックします。
アンチボット/不正防止スタックアーキテクチャ
レイヤーとコンポーネント:1.センサとテレメトリー:フロントJS/SDK(人間信号)、モバイルSDK、 ネットワーク/HTTPメトリック、バックエンドイベント。
2.Feature Store(オンライン/オフライン):正規化、T+Nウィンドウあたりの集計(1分、1 h、 24 h)。
3.リアルタイムエンジン:ルール+ML推論(低遅延)、課題のオーケストレーション。
4.グラフエンジン:デバイス、決済、IP/ASN、 Cookie、アドレスによるユーザー接続。
5.インシデントストレージとマークアップ:アクティブなモデルトレーニング、RCA。
6.解答オーケストレータ:ブロック/チャレンジ/フリーズ/リミット/マニュアルチェック。
7.観測可能性/SLO:品質指標(TP/FP/FN)、意思決定時間、変換への影響。
シグナルと指紋
クライアントとデバイス
デバイス指紋:ユーザーエージェントの派生、プラットフォーム/CPU/GPU、 キャンバス/WebGLレンダリング、フォント、タイムゾーン、言語、センサー;回転抵抗。
ブラウザダイナミクス:マウス/タッチイベント、入力速度/リズム、フォーカス/ぼかし、スクロール、遷移シーケンス、アイドルパターン。
モバイルメトリック:脱獄/ルート、エミュレータ機能、デバッグフラグ、SDK信号。
ネットワーク:IP/ASN/geo、 プロキシ/VPN/hosting-ASN、 IPシフト周波数、RTT安定性、JA3/TLS指紋。
行動とビジネスコンテキスト
ベロシティメトリック(登録/ログイン/入金/レート/ウィンドウごと)。
タイムゾーン/ロケール/通貨の異常、ジオデバイスの不一致。
パス/クエリパターン、フォームシーケンス(スクリプトの典型的な)を繰り返します。
行動の経済学:LTVミスマッチ、不自然なプロモ/推論の組み合わせ。
グラフ分析(ファミリーとクラスタ)
トップ:ユーザー、デバイス、IP/ASN、支払いツール、アドレス、クッキー。
リブ:「でログイン」「、支払い」「、デバイスを共有」「、指紋に一致」。
- 'k-core ≥ 3'決済機器ごとのユーザー→手動検証。
- 登録エリア→アンチボートチャレンジにおけるIPノード(ジニインデックス)による高い集中化。
ルール(決定論的)とスコアリング(ML)
ハイブリッドアプローチの特徴
ルール:迅速かつ説明可能(CUS/コンプライアンス、ヘッドオンブロック)。
ML:「灰色の領域」と新しいパターンをキャッチします。アクションを有効にする前にシャドウモードで作業します。
典型的なルール(例:擬似コード)
yaml
- id: ATO_LoginBurst when:
path: "/login"
failures_last_10m_by_ip > 20 distinct_accounts_last_10m_by_ip > 5 action: challenge_mfa
- id: Bonus_MultiAccount when:
promo_code = "WELCOME100"
devices_shared_with_accounts >= 2 first_deposit_time_delta < 10m action: freeze_bonus_and_review
- id: Payment_CardTesting when:
card_decline_rate_30m_by_ip > 0. 6 unique_cards_attempted_30m_by_ip > 5 action: block_24h_and_notify
ML機能(例)
時間:周波数/間隔、1時間/日による季節性。
カテゴリー:ASN、国、デバイス、ブラウザ。
グラフ:ノード次数、クラスタ係数、IPノード/デバイスページランク。
テクニカル:セッション長、入力データのエントロピー、クリックシーケンスの希少性。
財務:平均小切手、分散、内部時間、支払い拒否のシェア。
レスポンスオーケストレーション
ソフト:JSチャレンジ、仕事の証明、電子メール/電話の再検証、制限速度/クォータ。
強い:MFA/JIT-KYC、一時的な資金/ボーナスの凍結、一時的な禁止。
適応性:高リスク(TOR/ホスティングASN)でのしきい値の増加、VIP/パートナー向けの優美なリスト。
UX原則:デフォルトでは見えないチェック;明示的な課題-リスクのみ。
プロモーションやゲームの不正防止
プロモーションインテグレーション:デバイスごと/ペイメントインストゥルメントごとのプロモーションの制限;KYCステータスのプロモーションバンドル。
マルチアカウント:デバイス/IPグラフ、行動軌道の類似性;「家族」→報酬制限/凍結。
賞金の増加:関連アカウント間のベットの異常な相関→調査。
iGaming KPI:変換保護(registratsiya→depozit)、タイムツーウォレット;合法的なプレーヤーを「窒息」しないでください。
支払い詐欺防止(略して)
3-Dセキュア/マルチファクター:リスクによって動的。
PSP WebhookのmTLS/署名:必須。
Idempotence:出金/入金操作の鍵。
支払信号:BIN/issuer、 AVS/CVVの結果、故障率、地理的不一致。
データ、ファイスター、集計ウィンドウ
オンライン集計(低遅延):速度、独自性、失敗のための1/5/15分。
ほぼリアルタイム:プロモーションとボーナスロジックのための1-24時間。
オフラインの特徴:モデルを訓練する7-90日。
データ品質:イベント重複排除、再配達保護、検証スキーム。
観測可能性、SLO、品質指標
技術的なSLI/SLO:- p95の意思決定(不正防止)≤クリティカルパス(ログイン、預金)で50ミリ秒。
- スコアリングエンジンの可用性≥ 99。95%/月
- 特徴のない「シークレットイベント」の割合≤ 0です。1%.
- ATOシナリオ/プロモ/支払いのためのTP/FP/FN;ビジネス費用FP。
- 変換インパクト(Δ registratsii→depozit、 Δチェックアウト成功)。
- ヒットレートの課題(リスクを確認する課題の数)。
- ドリフトモニタリング(フィーチャー/スコア/レイテンシ)。
プライバシーとコンプライアンス
データの最小化:必要なものを正確に保存します。PII-トークン化/暗号化。
透明性:決定の説明可能性(特に失敗や制限の場合)。
GDPR/PCI DSS:データドメインセグメンテーション、役割によるアクセスのみ;ログアクセスとルールの変更。
倫理と偏見:差別のための特徴/しきい値の定期的な監査。
事業・インシデント
Runbooks: ATOスパイク、カードテスト、プロモーションストーム、SDK劣化。
特徴フラグ:ルールの迅速な弱体化/強化、モデルの切り替え、「キルスイッチ」の課題。
教え:歴史的な攻撃の再生、「グレー」キャンペーン、兆候の突然のドリフト。
RCA/markup:ボーダーケースをトレーニングデータセット(アクティブラーニング)にマークして戻します。
アーティファクトの例
1) SQLスコアアグリゲート(コンセプト)
sql
-- velocity of logins by IP in 10 minutes
SELECT COUNT() AS logins_10m
FROM auth_events
WHERE ip =:ip AND ts > now() - interval '10 minutes';
-- unique accounts by device_id in 24 hours
SELECT COUNT(DISTINCT user_id) AS accounts_24h
FROM sessions
WHERE device_id =:device_id AND ts > now() - interval '24 hours';
2) OPA/Regoのルール(簡略化)
rego package antifraud. login
default action:= "allow"
high_risk_ip {
input. ip. asn in {"AS9009, ""AS14061,"" AS16509"} # example input. metrics. failures_10m_by_ip > 20 input. metrics. distinct_accounts_10m_by_ip > 5
}
action:= "challenge_mfa" { high_risk_ip }
3)チャレンジオーケストレーションの擬似コード
python risk = score(features) # 0..1 if risk >= 0. 9: block()
elif risk >= 0. 7: challenge("MFA")
elif risk >= 0. 5: throttle(rate="low")
else: allow()
よくあるエラー
キャプチャにのみベット:ボットはそれをバイパスします。多面的なシグナルスタックが必要です。
長いスコア遅延:UXが壊れ、失敗が増加します。
グローバルIP/ASNは永久に禁止されます:合法的なトラフィックを削減します。TTLとリビジョンを使用します。
グラフなし:マルチアカウントは「見えない」ままです。
カナリア/影のない厳しいルール:FPの売上高の急増。
ゼロフィードバックサイクル:モデルは再訓練されず、ルールは更新されません。
実装ロードマップ
1.リスクパスの在庫:登録、ログイン、プロモーション、入金/結論。
2.シグナルとSDKコレクション:フロントJS/モバイル、ネットワーク、サーバーイベント;単一のスキーム。
3.オンラインfichestore: 1/5/15/60分の窓;重複排除機能とSLA機能。
4.基本ルールプロファイル:velocity+anomalies+simple graph heuristics。
5.シャドウモードのML: ROC/PRを比較し、ビジネス効果を評価し、部分的に含める。
6.グラフ分析:ファミリークラスタリング、手動確認による自動マーキング。
7.答えのオーケストレーション:行列(リスク× stsenary→deystviye)、 UXのA/Bコントロール。
8.観測性とSLO:品質と技術のダッシュボード、アラート、事件後のテストケースプール。
9.プライバシー/コンプライアンス:PIIの最小化、トークン化、ロールアクセス、レポート作成。
[結果]
強力な不正防止システムは、センサーと行動が機能に変わり、ルールとMLのハイブリッドによって決定が行われ、接続グラフが乱用の家族を明らかにする多層的で適応的な回路です。レスポンスのリアルタイムオーケストレーション、SLOとプライバシーの可視性を追加し、整理されたボットや詐欺ネットワークから圧力を受けても、セキュリティ、UX、ビジネス指標のバランスをとることができます。