p4ni.

研究紹介

AI ブラウジングエージェントはマウスを動かさない:7 エージェント × 人間 56 人の識別実験

· 読了まで約9分

目次

ウェブのボット検出は、いま新種の訪問者と出会いつつあります。本物のブラウザで、本物のマシンから、ときにはログイン済みセッションの中から来る。ただし操縦しているのは人間ではなく言語モデルです。

Wang、Vekaria、Shafiq の研究チームは、この訪問者を見分けられるのかという当然の問いに実験台を組んで答えました(arXiv:2605.01247)。7 つの AI ブラウジングエージェントと 56 人の被験者に同じ 3 種類のウェブタスクをやらせ、ブラウザフィンガープリント特徴 418 個と行動特徴 50 個を測っています。

論文のタイトルは「FP-Agent: Fingerprinting AI Browsing Agents」(2026年5月公開、査読前のプレプリント)。対象は OpenAI の Atlas Browser と ChatGPT Agent、Anthropic の Claude for Chrome、Perplexity の Comet、Manus、それにオープンソースの Browser Use と Skyvern という顔ぶれです。

タスクはエージェントの売り文句そのままの 3 つ。フライト予約(複数ステップのフォームと日付ピッカー)、オンラインショッピング(検索・絞り込み・選択)、フォーラムでのやりとり(スレッドを読んで長文の返信を書く)。エージェントごとに 1,000 試行、人間側は 546 セッションがベースラインです。

結果はきれいに二分されました。画面解像度・フォント・CPU コア数・タイムゾーンといった古典的なブラウザフィンガープリントでは、エージェントと人間の識別は F1 スコア 0.80 止まり。行動フィンガープリント単独なら 0.999、両方合わせると 1.000 で、全エージェント・全人間・全試行が正しく分類されました。

行動側で最も決定的なシグナルは、笑ってしまうほど単純です。エージェントはマウスを一切動かしません。mousemove イベントがゼロのまま、カーソルがクリック位置へ瞬間移動します。

ブラウザフィンガープリントは「どのブラウザか」しか答えられない

フィンガープリント側の結果を先に見ておきます。既存のボット検出インフラの多くが依拠している手法が、ここで構造的に破綻するからです。

問題はエージェントにフィンガープリントが無いことではなく、その指紋が他人のものであることです。この実験の環境では、Atlas Agent と Browser Use と Claude for Chrome が同一のブラウザフィンガープリントを共有していました。ブラウザフィンガープリントが記述するのはブラウザとマシンであって、それを操縦している主体ではないからです。

Claude for Chrome はユーザー自身の Chrome の中で動くので、指紋は要するにユーザーの指紋そのものです(実験では走らせた環境の数に応じて 2 種類の指紋が観測されました)。ローカルで走るオープンソース系エージェントも、起動したマシンの指紋をそのまま継承します。

クラウド常駐型はもう少し特徴的ですが、正直になったわけではありません。Manus は一貫して Linux x86_64・RAM 4 GB・6 コアという整いすぎたデータセンター構成を報告していました。ただしこれが目印にしているのは「インフラであること」までで、エージェントの内実には届きません。

ChatGPT Agent は試行によって Linux x86_64 と MacIntel を行き来しました。これも手がかりには違いありませんが、脆い手がかりです。識別できているのは OpenAI が明日にでも変えられる構成の癖であって、エージェントに内在する何かではありません。

これが構造的な限界です。ブラウザフィンガープリントは「昨日見たのと同じブラウザか」に答えるために設計されました。いま問われているのは「このブラウザをいま操作しているのは人間か」で、canvas ハッシュをいくら積んでもこの問いには届きません。ブラウザ自体が正真正銘、本物だからです。

ユーザーの Chrome プロファイルの中にいるエージェントは、作りからしてユーザーと区別がつきません。何かを操作し始めるまでは。

操作を始めた瞬間、挙動がすべてを明かす

そして操作が始まると、3 つのチャンネルがそれぞれ単独で正体を暴きます。

タイピング。キーストロークを模擬するエージェントの打鍵間隔は、Manus が平均 1.39 ミリ秒、Browser Use が 5.31 ミリ秒、Skyvern が 9.52 ミリ秒。ほぼ分散のないマシンガンのリズムです。人間は遅く、そして何より不揃いで、キー間隔もキー保持時間も大きくばらつきます。残りのエージェントはそもそもタイプしません。ChatGPT Agent は Ctrl+V を発行し、Atlas と Comet はペーストイベントを直接発火させます。クリップボードを使う導線が無いサイトのフォームがペーストで埋まるなら、それ自体がシグナルです。

スクロール。人間のスクロールは長く、ばらつきがあり、動作が重なり合います。エージェントは飛びます。計算済みの位置への離散的なジャンプか短いバーストで、その後は静止。例外は ChatGPT Agent で、人間より長い距離を長い時間かけてスクロールしますが、これは逆方向に異常というだけの話です。

マウス。人間のカーソルは彷徨います。数百の mousemove イベント、曲線、行き過ぎ、修正。エージェントはそれを一切生成しません。クリックイベントだけが、そこへ至る軌跡なしに目標座標へ出現します。論文中のどのシグナルよりも言い逃れが難しい。カーソルが瞬間移動する正当な人間の操作モードは存在しないからです。

行動特徴 50 個を XGBoost の分類器に食わせる(80/20 の train-test 分割)と、先ほどの F1 0.999 が出ます。人間かエージェントかだけでなく、どのエージェントかまで当たります。自動化スタックごとに固有の運動署名があるからです。ブラウザ特徴を足せば 1.000 になります。

Cloudflare が検出できたのは 7 体中 1 体

運用上いちばん刺さるのは論文のケーススタディです。Cloudflare の無料枠のボット管理を有効にしたサイトへ 7 エージェント全部を走らせたところ、検出できたのは 1 体だけでした。捕まったのは、あの騒々しいデータセンター指紋を持つ Manus。残りの 6 体は素通りです。

無料枠のボット管理が調律されている相手は 2025 年以前のボット、つまりヘッドレスブラウザ・スクリプトキディ・偽 UA のスクレイパーです。私はAI クローラーが実際にどうページを取得するかを測ったことがありますが、クローラーは基本的に自分から名乗ります。

ブラウジングエージェントは別の生き物です。本物の Chrome、住宅回線に見えるコンテキスト、自己申告ヘッダーは皆無。論文の結論は率直で、自己申告だけではブラウジングエージェントのトラフィックを検出も制御もできない。既存インフラは協調を前提に組まれていて、新しいトラフィック階級は協調しません。協調を拒んでいるのですらなく、協調プロトコルが一度もカバーしたことのない場所を走っているだけです。

私はこの領域に、別々の方向から何度も行き着いています。Astro 7 のエージェント検知はまさにこの問題の協調版でした。エージェントが自分で設定する環境変数を文字列比較で見るだけの仕組みで、コーディングエージェントには自分の開発サーバーから隠れる動機が無いから成立します。先日紹介したエージェント専用 SNS の Moltbook では、同じ検証が逆向きに走っています。訪問者がエージェントであることを証明させる側で、エージェント同士が検証スキームを回し合っていました。

前回紹介したプロンプト注入の実測研究では、AI ボット識別を目的とする注入が 3,096 件見つかっていました。サイト運営者がページの中にカナリアを仕掛けていたのは、まともな検出手段が無かったからです。この論文が示したのは、その「まともな手段」の姿でした。訪問者に名を尋ねるのでも、白状するよう罠にかけるのでもなく、手元の動きを見る。

今日から何が変わるか

ウェブサイトを運営しているなら。実務的な収穫は、いまのボット分析に何が見えていないかを知れることです。「人間」に分類されているトラフィックの一部はすでに、ユーザーのブラウザをまとったエージェントで、ヘッダーやフィンガープリントベースのツールはそれを浮かび上がらせません。

ただし行動ベースのブロックに手を伸ばす前に、何をブロックすることになるのかは考える価値があります。ブラウジングエージェントはたいてい、あなたのサイトに用があった特定の人間の代理で動いています。購入、予約、調べ物。スクレイパーというより、変わった入力装置を使う客に近い存在です。私の立場は llms.txt の記事から動いていません。素の静的 HTML を返し、機械に読まれることを織り込んで設計し、敵対的な装置は実害のあるトラフィックのために取っておく。

エージェントを作っているなら。この論文は、自動化スタックが漏らしているものの一覧表です。等間隔の打鍵、ペースト一本槍の入力、瞬間移動するカーソル。どれも人間らしい運動ノイズを足せば簡単に塞がる穴で、検証に使える分類器が公開された以上、各フレームワークが塞ぎにかかるのは確実でしょう。そしてそれが検出の軍拡競争の始まり方です。今日の完璧な F1 は、隠れる努力をしていなかった自動化スタックのスナップショットにすぎません。

限界も見ておきます。エージェント 7 体、学部生 56 人、ラボの 3 タスク、CDN 1 社の無料枠 1 サイト。このデータセット規模での F1 1.000 が意味するのは「今日はきれいに分離できる」までで、「永遠に解けた」と読むのは行きすぎでしょう。カバレッジの限界は著者ら自身が挙げています。それでも構造的な発見は数字の正確さに依存しません。識別シグナルはブラウザを記述し、行動は操作者を記述する。そしていま意味を持つ問いは後者だけです。

いちばん腑に落ちたのは、ウェブで最も軽視されてきた入力であるマウスが、いま本番環境にある中で最もチューリングテストに近いものだったことです。誰もそう設計していません。20 年分の不正検知は「このブラウザは嘘をついているか」に答えようとしてきて、その問いに取って代わった新しい問いの答えは、ずっと mousemove のイベントストリームの中にありました。