不正ボット検出:機械学習で見抜く異常行動パターン
深夜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
問い合わせ: セキュリティ対策チーム(公開可能な範囲でお答えします)

