本文へ
Crossbreedクロスブリード

ホーム / 資料室 / 不正ボット検出:機械学習で見抜く異常行動パターン

不正ボット検出:機械学習で見抜く異常行動パターン


深夜2時。ログイン試行が急に跳ね上がる。でも、指は疲れない。視線も迷わない。人のようで人でない動きは、どこで線を引けばよいのか。現場で使える合図と、機械学習の要点を短く、濃くまとめます。

5分で要点

  • 量より癖を見る。速度、間隔、リズム、遷移の順序が強いシグナル。
  • まずはヒューリスティック、次に軽量な異常検知、最後に運用で磨く。
  • 評価はROCより事業KPI。誤検出コストと顧客体験を最優先。
  • 攻防は続く。回避は低レート化と擬人化が中心。守りは多層と動的化。
  • 法とプライバシーに配慮。PIIの扱い、説明責任、アクセシビリティが必須。

現場ノート — まず「流量」よりも「癖」を見る

数字は嘘をつかない。でも、解釈は誤ることがある。秒間100リクエストは派手だが、静かなボットは1分で3回だけ動く。だから、私は「癖」から入る。マウスの揺れ、タップの間隔、入力のテンポ、ページ遷移の順序。この4点で、人と機械は分かれやすい。

ログの粒度も大事。ページ単位のPVだけでは足りない。イベント単位(click、keydown、focus、blur)と、タイムスタンプの精度(ms)を確保する。IPやUAは参考に留める。なぜなら、偽装が容易だからだ。

最初はルールで粗く切る。次に、軽い異常検知モデルを当て、しきい値の上下でA/Bを回す。いきなり深いモデルに寄せない。理由は簡単。データがまだ「汚い」からだ。

行動パターンで切る(人か機械か)

人の手はゆらぐ。カーソルは小さく震える。クリックは早すぎず、遅すぎない。入力は時々止まる。これが自然な「ノイズ」だ。ボットはここでつまずく。動きが直線的、周期が正確、反応が一定になりやすい。典型的な異常は、タップ間隔が常に同じ、スクロールが瞬間で最下部、フォーム入力が1文字ずつ機械的、hidden要素に不自然な反応を返す、などだ。

脅威の型は広い。認証情報詰め込み、リセラーの自動購入、スクレイピング、カード不正。共通言語としてはOWASPの自動化脅威カタログが役に立つ。用語が揃えば、検知と報告が速くなる。

指紋は強力だが、過信は危険だ。デバイス指紋はプライバシーに直結する。収集の最小化と開示は必須。設計の参考としてはW3Cのフィンガープリンティング指針が良い出発点だ。国内の実務例や注意点はIPAのセキュリティ情報にもまとまっている。

モデル選定の肌感 — いつ何を使う?

  • Isolation Forest: 軽い。高次元の疎な外れ値に強い。まずはこれで線を引く。実装はscikit‑learnの外れ値検出が手早い。
  • One‑Class SVM: 正常データが多い時に効く。スケールに注意。特徴量設計が肝。
  • Autoencoder: 入力を再構成。ズレが大きい動きを「異常」とみなす。全体像は深層異常検知のサーベイが分かりやすい。
  • Graphベース: アカウント間の連帯を見る。住所、支払い手段、端末、IPをノードに。ボーナス濫用や多重登録に強い。
  • 勾配ブースティング(半教師あり): 手動ラベルが少なくても動かせる。シャドウ運用で誤検出を潰す。
  • Online Learning: パターンが日々変わる領域で有効。ドリフトに追従。

教師データが汚い? なら「疑わしい」を別ラベルで持とう。混ぜるとモデルが混乱する。まずは正常だけで境界を作り、怪しい群は後から人手で見る。単純だが効く。

テーブルで俯瞰

まず基礎を短く。ボットは自動で動くソフトだが、良い用途もある。定義の整理にはCloudflareのボット解説が分かりやすい。では、行動シグナルごとに実務の勘所をまとめる。

マウス/タップ軌跡 直線が多い、曲率が一定、クリック間隔が±10ms内で固定 Isolation Forest、Autoencoder(軌跡系列) 人間ライク再生、微小ノイズ付与 動的チャレンジ、微タスクでばらつきを確認 アクセシビリティ利用者の操作差に配慮
入力テンポ(キー間隔) 長文を数百msで完了、Backspaceがゼロ One‑Class SVM、勾配ブースティング タイプ音再生、貼り付け分割 貼り付け検知、再入力プロンプト パワーユーザーの速打ちを誤判定しない
画面遷移の周期性 同一順序の巡回、滞在時間が常に同一 HMM/Autoencoder、ルール+IForest 低レート分散、順序シャッフル ランダム化UI、APIとWebでの整合確認 ガイド付きUIでの定型操作に注意
HTTP/ヘッドレス兆候 ヘッダ欠落、描画API差、指紋の急変 ルール+IForest、特徴量にヘッダ整合性 指紋偽装ツール、プロキシ回転 TLS指紋、JA3、整合性クロスチェック 企業プロキシやCDN経由の正常トラフィック
アカウント連帯(Graph) 決済手段/住所/端末の異常な共有 GraphSAGE、連帯スコア、連結成分 属性分散、マイクロ取引で隠蔽 しきい値×手動審査、時間窓で集約 家族・共有端末・学生寮の同居特性

注: PIIは極力使わない。目的外利用を避け、保存期間は最短で。説明可能な特徴量を優先すること。

ミニケース — オンラインゲーミングのボーナス濫用と連帯

ある週末、登録と初回入金が波のように来た。返金やチャージバックは少ない。だが勝率が異常に高いテーブルが混じる。Akamaiのトラフィック傾向(Akamaiのボット動向レポート)に似たパターンだ。行動ログを見ると、登録→KYC→入金→同一ゲーム→即時ベットの流れがきれいすぎる。入力は速く、エラーがない。端末は違うが、指紋の一部が近い。

ここでGraphを見る。決済手段や住所、端末の関連で小さな星形がいくつも現れた。ボーナス狙いの多重アカウントだ。私たちは、行動シグナルとKYCイベントを照合し、最初はシャドウ判定だけ動かした。手動審査の結果を反映し、しきい値を段階的に上げた。なお、比較と市場の健全性の視点で、私はときどきレビュー系の外部ポータルも観察する。たとえば、Gambling Websites gambling portal の動向や注意喚起は、リスク観測の補助になる。責任あるプレイは前提であり、ギャンブルは適度に。

攻防の現在地 — 回避手法とその手当て

  • 擬人化(リバースTuring): 揺れや遅延を混ぜる。対策は多層シグナルと長期の整合。
  • 低レート分散: 小さな行動を広く撒く。対策はGraphと時間窓の集約。
  • リプレイ/再生: 録画した人間動作を再送。対策は動的要素と一回性トークン。
  • API直叩き: Webを飛ばしAPIへ。対策は端点ごとのレート、認可、整合チェック。
  • 指紋偽装: 対策は複数層の指紋とサーバ/クライアントの両面検証。

広告関連ではボットの基準も参考になる。たとえばIABのスパイダー&ボットリストは分類のたたき台になる。攻撃手口は標準化された枠でも語れる。TTPの整理にはMITRE ATT&CKが便利だ。国内のインシデント動向はJPCERT/CCの事例もチェックしたい。

評価設計 — ROCより現場KPIで決める

モデルのAUCが高くても、売上が落ちたら失敗だ。評価は現場KPIで見る。例: 誤検出で止まった決済数、手動審査の工数、離脱率、レビュー低下、チャージバック率。安全側に寄せすぎない調整が要る。欧州の脅威動向や全体像としてはENISAの脅威ランドスケープが参考になる。

  • ライン設計: 阈値×3段(通過/軽チャレンジ/強ブロック)。
  • シャドウ運用: 2週間は記録のみ。人手で誤検出を潰す。
  • AB設計: 影響を見る。勝てたら全量展開。
  • ドリフト監視: 特徴量の分布の変化を定点観測。

短いコード断片(最小実装)

Isolation Forestで「速すぎ・揺れなさ」を拾う最小例。数値はダミー。

PyODも便利だ。多手法で比較しやすい。

チェックリスト(出す前の最終点検)

  • データ最小化と目的限定。PIIは使わない/暗号化する。
  • 説明性の確保。拒否理由のメッセージ案内を用意。
  • ドリフト検知と再学習の頻度を決める(四半期/イベント駆動)。
  • プレイブック整備(誤検出の救済、段階解除)。
  • ログ保持の期間と権限を明記。法令順守(GDPR/電通法等)。
  • アクセシビリティ対応(CAPTCHA以外の経路)。

よくある誤解を正す

  • 「CAPTCHAは万能」ではない。人にも負担が大きい。課題はW3CのCAPTCHA指針が整理している。代替の軽チャレンジを準備する。
  • 「指紋で一発特定」も誤り。誤検出のリスクが高い。複数シグナルの整合が鍵。
  • 「精度99%なら十分」も危険。母数が大きいと誤検出が事業を壊す。KPIで見る。
  • 「深層学習で全部解決」もしない。データ品質と運用の方が効く。

用語スケッチ(最小限)

  • 異常検知: 正常から外れた動きを見つける手法。
  • シャドウ運用: 本番で判定はするが、ブロックはせずに観測のみ行う。
  • ドリフト: データの分布が時間と共にずれること。
  • フィンガープリント: 端末や環境の特徴を組み合わせた識別。
  • Graph分析: ノード(人/端末/支払い)とつながりで見る分析。
  • 低レート分散: 目立たない頻度で広く仕掛ける回避。
  • 一回性トークン: 使い捨ての検証コード。再生攻撃に強い。

最後の一歩(編集後記)

検知は線引きの技だ。強く切れば痛む。弱ければ漏れる。動きで見分け、運用で磨く。私たちが守るのは、数字よりも体験だ。次は、軽チャレンジのUX最適化と、再学習の自動化に取り組む。

著者と更新情報

著者: 不正対策PM / データサイエンティスト(オンラインサービス領域10年)。主にアカウント不正と支払い不正の対策を担当。外部公開可能な範囲で事例を要約。

参考・一次情報: OWASP Automated Threats / W3C Fingerprinting / scikit‑learn Outlier Detection / Deep Anomaly Detection Survey / Cloudflare Bots / Akamai Research / IAB Spiders & Bots / MITRE ATT&CK / ENISA Threat Landscape / IPA / JPCERT/CC / PyOD

公開日: 2026-07-06 / 最終更新: 2026-07-06

問い合わせ: セキュリティ対策チーム(公開可能な範囲でお答えします)