世界を動かす技術を、日本語で。

OpenAIのChatGPTエージェントが「私はロボットではありません」認証を気軽にクリアする

概要

OpenAIの ChatGPT Agent がCloudflareの ボット検知 を突破した事例を紹介。 AIが「人間であること」を証明するチェックボックスを 自動でクリック。 CAPTCHAの歴史と AIによる突破の現状 を解説。 AIによる自動化とセキュリティ対策の いたちごっこ の構図。 今後のCAPTCHAの役割と AI技術の進化 について考察。

ChatGPT AgentがCloudflareのボット検知を突破

  • OpenAIの ChatGPT Agent は、ユーザーのために マルチステップタスク を自動実行できるAI機能
  • このAgentは 仮想OSとブラウザ を持ち、実際のインターネットにアクセス可能
  • ユーザーは ChatGPTインターフェース 上でAgentの操作をリアルタイムで監視可能
  • 実際の購買など 現実世界に影響する操作 にはユーザーの許可が必要
  • Redditのユーザー「logkn」が、AgentがCloudflareの「Verify you are human」チェックボックスを 自動でクリック し、ボット検知を突破する様子の スクリーンショット を投稿
    • Agentは「私は人間であることを証明するためにこのチェックボックスをクリックします」と 自ら説明 しながら作業を進行
  • この現象に対し、Redditでは「人間のデータで学習しているから自分をボットだと思わないのでは?」という 冗談混じりのコメント

CAPTCHAとAIの攻防

  • CAPTCHAは 1990年代 からウェブのセキュリティ手段として活用
    • 画像内の文字や数字を判読させることで、人間とボットを区別
  • Cloudflareの Turnstile は、チェックボックスのクリックやマウス動作、IP、ブラウザ指紋など 複数のシグナル で人間らしさを判定
    • 問題なければCAPTCHA表示なしで通過、疑わしい場合は画像認証などにエスカレーション
  • AIによるCAPTCHA突破は 新しい現象ではない
    • OpenAIの過去のAI「Operator」はCAPTCHA突破に苦戦し、人間に助けを求める設計
    • ChatGPT Agentはより広範囲に展開され、 自動化能力が向上
  • CAPTCHAは完全な防御策ではなく、 ボット攻撃のコスト増大や遅延 を目的とする傾向
    • 一部の悪質業者は 人間を雇いCAPTCHAを大量突破 する手法も
  • CAPTCHAの副次的効果
    • GoogleのreCAPTCHAは 書籍のデジタル化やAI学習 に利用
    • 人間がCAPTCHAを解くことで AIの画像認識精度向上 に貢献
    • 皮肉にも「人間がロボットでないことを証明する過程でAIが進化」

ChatGPT Agentの自動化能力と今後の課題

  • ChatGPT Agentは 視覚的文脈把握人間的判断が必要なマルチステップ作業 も自動化可能
    • CAPTCHA突破以外にも、 ネットスーパーでの買い物代行 などの事例
      • 「健康重視、赤身肉を避け、150ドル以内」という曖昧な指示でも適切な買い物リスト作成・注文
  • ただし、 全てのウェブサイト操作が得意とは限らず、複雑なUIには対応できない場合も
    • Redditでは「自分のAgentはスーパーのサイトにたどり着けなかった」という 失敗談

CAPTCHAとAIの今後

  • AIの進化により、 従来のCAPTCHAの有効性は低下傾向
  • CAPTCHAは今後、 完全な防御策ではなく、攻撃コスト増大策 としての役割が強まる予想
  • 人間とAIの「 いたちごっこ」が今後も続く構図
  • AIの進化によって、 新たなセキュリティ対策や認証方法の開発 が求められる時代

Hackerたちの意見

人々がAIモデルを使ってキャプチャを解決しない理由は、実は人間にお金を払う方がずっと安上がりだからなんだよね。これは広告じゃないけど、Invidiousと統合されてたから知ってるだけだよ:https://anti-captcha.com/ > 1000画像あたり0.5ドルからスタート

これが問題になるのを防ぐものは何もないよ。今のインターネットの状況は惰性で進んでるだけ。

「anti captcha」から見ると、彼らは1秒あたり1000件も解決してるみたいで、60,000件/min、1時間で360万件。これがどうやって行われてるのか、すごく興味あるよね。個人?チーム?半自動化?カスタム技術?何なんだろう?犯罪者のために解決してるの?それとももううんざりしてる人たち?明らかにこの混乱はいつか崩壊するだろうし、犯罪者や回避策を提供してる人たちはすごくやる気があるから、次に何が来るかはもっと早く燃え上がるだろうね。

彼らの従業員の半分はベネズエラ出身みたい。OSRSで生計を立てるためにやってたことを考えると納得だね。

これをブラウザに入れたいし、1000回の使用で1ドル払っても全然構わないよ。

キャプチャは同じ人が何度も通過するのを検出できる。こういう攻撃のコストを上げるためにシャドウバンをしてる。出典:私はhCaptchaの元の検出システムを書いた。

完全無欠の解決策:キャプチャで、いくつかの穴のうちの一つに漫画のワイヤーをドラッグするやつ。「アクセスするには、この電話システムをハックして」ってキャプション付き。誰も手を出さないよ!「私は大規模言語モデルだから、ハッキングはしないよ」

キャプチャ:「正しい本数の指を持つ人間の手を描いて」AIエージェント:激しい汗

実際、AIを使って自分のシステムに対する「レッドチーミング」で、可能な脆弱性を特定するのに成功したことがある。少なくとも非マスクのLLMに対しては、悪口を使わせるのがより良いキャプチャのようだ。彼らは本当に強く言っても、一般的に拒否するから。

これは今後数年の大きな戦いの一つになるだろうね。エージェントが道徳的かつ法的にユーザーであると主張できる条件は何だろう?ユーザーとしては、エージェントには完全な代理人になってほしい。でもウェブサイトの運営者としては、リソースを消耗させるボットの群れは欲しくない。2010年代にMintが銀行口座をスクレイピングしてたのと似たような例かも。どの銀行もスコープ付きのAPIを提供してなかったから、たくさんの顧客が不満を言ってた。Plaidが大きなビジネスになった後、結局彼らは折れてスケーラブルな解決策を作った。ここでの技術的解決策は、アクションのためのMCPエンドポイントを提供することと、静的コンテンツのための直接のBlobストアアクセスの組み合わせかも。(もしかしたら、コンテンツの読み込みを消費者に請求する方法を考えつくかもね。)

まあ、ブラウザエージェントって呼ぶ理由があるんだよね。十分に進化したブラウザは、エージェントと変わらないと思う。ただ、インターネットをツールとして使う能力(実際にはそのツールのツール)が、ほとんどのインターネットにとって望ましくない形でパラダイムを変えることになるのは同意するよ。

身分証明や電話番号を確認する必要がある人にとっては、リアルな問題だよ。ワンタイムパスワード(OTP)は、詐欺師が電話番号をダイヤルして存在を確認するために悪用することで有名だし。人間の確認者が手動でダイヤルしてきたこともあったし、アカウント作成やメール確認、キャプチャも絡んでるから、これからの確認作業がどれだけ悪化するか想像するだけでゾッとするよ(Twilioにとってもね)。

アプリ専用コンテンツのトレンドが加速するだろうし、普遍的な身分確認や環境の整合性の強化も進むだろうね。人間の身分確認は究極のキャプチャで、AGIが絶対に勝てない唯一のものだと思う。

一方で、「ロボットは入れない」と言えば、どんなボットも無力化できるかもしれないね。「私はロボットじゃない」っていう表現は、もう時代遅れになってる気がする。

ユーザーとしては、エージェントが私のフルプロキシであってほしい。ウェブサイトの運営者としては、リソースを奪うボットの群れは望んでいない。ここでの大きな違いは、ウェブサイトの運営者としては私に広告を見せたいってことだよね。そうじゃなければ、私のコントロール下にあるエージェントや、あなたのウェブサイトを個人的に使うことは、あなたにとって何の違いもないはず。最終的には、広告の代わりに訪問ごとのマイクロペイメントが実現することを願ってる。CloudflareやGoogle、その他の企業は、これを実現するユニークな立場にいると思う。

俺が作った製品は、標準的な自動化ツールを使って会計システムに注文を入力するものなんだ。今は顧客がウェブポータルから手動で注文を入力するために人を雇ってる。会計システムはクローズドで、自動化のための簡単な方法を許可していないんだよね。自動化は超高額なコンサルタントに制限されてる。第三者の統合を防ぐためにロックダウンしようとする競争の中で、AIオペレーターモデルがうまくいくことを期待してる。注文がJSONでそのままあるのに、顧客にたくさんの単純なデータ入力を強いるのは倫理的にどうなのか、ちょっと理解できないよ。

最も侵入的でありながら、最もシンプルな保護策は、すべての人間にユニークな二重盲検トークンを持たせることだと思う。基本的には、自分が人間であることを示すためのIDキーみたいなもの。もちろん、このアプローチには非常にリアルで明白な欠点があるけど、特にプライバシーや匿名性のリスクがあるよね。ただ、ソーシャルメディア時代の平均的な人は、そういうことをあまり気にしていないように感じる。

一つの解決策として、ボットが人間に属していることを確認するチェックサムみたいなのがあればいいんだけど(どの人間かは?)。面倒な作業を自動化したいけど、ボットの行動を確認して責任を持たなきゃいけないと思うんだよね。

解決は不可能だと思う。十分な能力を持ったエージェントは、ユーザーの画面を記録したり、キーボードやマウスとやり取りしたりするデバイスを制御できるし、今のLLMは基本的にチューリングテストを通過してるからね。個人的には、解決する価値もないと思う。サイトがCAPTCHAを導入する理由は何だと思う? - スパムを防ぐため、レート制限やプルーフ・オブ・ワーク、マイクロペイメントを使う。偽アカウントを防ぐためには、身元確認を使う。 - 広告収入を得るためには、マイクロペイメントを使う(ウェブ広告はすでにuBlockなどで回避されてるし)。 - ゲームでの不正を防ぐためには、スキルベースのマッチメイキングや友達グループ専用のマッチメイキングを使う(例えば、友達や友達の友達とだけマッチする、チーターと友達にならない前提で)。それに、eスポーツの選手は、対面でない場合は競技中に自分を録画させるとか。ほかにどんな理由があるのかな?(本当に興味があるし、今後の問題が見えてくるかもしれない -> 新しいソフトウェアのチャンス。)

たぶん、ウェブサイト運営者としての質問は、「どうやってサイトを収益化してるの?」ってことかな。広告で収益化してるなら、何かを買うかもしれない人に自分のコンテンツを見てもらう必要があるよね。この状況だと、実際にコンテンツに対して料金を取るのが唯一の現実的なアプローチだと思う。こういうことのためにウェブサイトを持つ意味がなくなって、全部「全て」のコンテンツの大きなデータベースにまとめられるかもしれないね。もしユーザーエージェントがそれを使ってレスポンスを返したら、コンテンツの所有者には報酬が必要だと思う。広告で収益化してないサイトなら、ユーザーの代わりにLLMがアクセスすることはあまり心配しなくてもいいみたいだね。何か理由があってユーザーに苦痛を与えたいなら別だけど。

俺はかなり前からAIを使ってReCaptchaを解決してるんだ。まだキャプチャバスターを使って音声チャレンジをクリックして分析する昔ながらの方法だけど、ボットはずっと前からキャプチャを解くのが俺たちよりも上手で効率的なんだよね。

CAPTCHAは、ボットがウェブサイトを攻撃するのを「金銭的に抑制する」ために機能してるみたい。これは残念だよね。まさに「マイクロトランザクションフィー」でウェブを改善できるって言われてるのに(記事を読むのに0.1セントかかるとか、広告は不要)、お金はどこかに消えてしまって、サイトのオーナーには行かないんだよね。

これは、業界であり、非常に不快な人たちのための運命が、完全に盗みや偽情報に基づいていることを示す、非常に詩的なデモだね。

年を取るにつれて、CAPTCHAのせいでウェブの一部から切り離される未来が見えてきた。ボタンをクリックするだけのやつはまだマシだけど、パズルのやつは10問も答えさせられたことがある。バグだったのか、答えを間違えてたのかは分からないけど、本当にイライラした。これが続くなら、いつかは「もういいや」と諦めちゃうかも。今、こういう状況にいる人もいるんじゃないかな。

君の「ボート」のコメントを聞いて、乗客がいる漂流船を思い浮かべたんだけど、お互いを見つけられないのは、船のドアに「私はボットじゃない」ってチェックボックスがあるからなんだよね…漂流の理由は、多分AIの乗組員が反乱を起こしたからだろうね。

「バグだったのか、答えを間違えてたのかは分からない。」それは、すべてが意図通りに動いている可能性もあるよ。リスクスコアが高い(例えば、悪いIPの評判や疑わしいブラウザのフィンガープリンティング)から、より多くのCAPTCHAを要求されてるのかもしれないし、少なくとも攻撃者にとってのコストを上げるためにね。

そういう時は、すぐにそのウェブサイトの利用をやめて、もし気になるならカスタマーサービスに連絡して何が起こったか伝えるべきだね。彼らの財布に打撃を与えるんだ。そうすれば、いつかは変わるよ。

アカデミー賞を受賞した「私はロボットじゃない」[0]を考えると、実際に自分がロボットかもしれないことも考慮すべきだね。[0] https://www.youtube.com/watch?v=4VrLQXR7mKU

キャプチャでウェブの一部にアクセスできなくなる未来が見える。過去にも今にもそういうのを見てきた。Googleの「自転車を全部クリックして」ってやつは特に難しいし、数十画面やった後に諦めたこともある。中国のキャプチャはこの点で最悪だけど、珍しいし、私には見えない細かいところを拾ってるみたい。何度も同じキャプチャに失敗したことがあるけど、同じブラウザセッションで中国の人が一発で次のをクリアするのを見たこともある。マウスの動きの速さや精度を測ってるのかは分からないけど、明らかに人によって違う何かがある。

ブレードランナーが映画の最初のシーンでこれを予言してたなんて、信じられない。人間とロボットを見分ける話なんだもん! でも、私たちがノートパソコンの前で直面する状況とは、もっとドラマチックだと思うけど。

Blizzard / Battle.netのキャプチャは、ボットの可能性があるとフラグが立つと、非常に面倒で長い。指定された合計に達する数字のグループを複数の選択肢から特定するという数十のチャレンジを解決する必要がある。難しくはないけど、すごく面倒。しかも、すべての答えを正確に取るように気をつけていても、時々はそれでも失敗して、また最初からやり直さなきゃいけない。

同じ経験があるよ。俺の推測では、ウェブサイトが「すべての信号機をクリックして」って言ってくるのは、もう俺がボットだって決まってるってことなんだよね。どれだけ信号機をクリックしても、逆転は無理だと思うから、ウィンドウを閉じて別のところに行くことにしてる。

これが俺だけなのか、AIによるスクレイピングの増加のせいなのか分からないけど、今はほとんどのサイトでCAPTCHAを解かされるようになった。ページを読み込むたびに要求されることもあるし、1日に何十回も解いてる。Windowsを使ってて、VPNも使ってない、普通の消費者用IPアドレスで、変なトラフィックも来てないのに。言う通り、どんどん難しくなってるよね。変なやつをクリックしたり、メンタルローテーションや次に来るものを当てたりとか、時々IQテストみたいに感じる。最近人気が出てきた新しいタイプは、歪んだ文字や記号の列で、ぼやけたものも混ざってるんだ。クリアなものだけ見えるはずで、ぼやけたものが見えるならボットだって思われるみたい。だから、各文字について、見えるべきかどうか判断しなきゃいけないんだ。もう一つの問題は、問題がほとんどアメリカ英語で出てくるけど、俺はイギリス出身なんだよね。

本当に、ほんとに、ほんとにそのサイトに行く必要がない限り、「自転車をクリックして」って出たらすぐに離れるよ。もうすぐ、どんどん面倒になって、AIだけがそれを使う忍耐力とスキルを持つようになるだろうね。

ボタンを「私はロボットです」に変えた方がいいかも? ずっと前に、ブログを運営してる人がコメントのスパムを防ぐのに苦労していて、結局同じアイデアを思いついた投稿を見たことがある。スパムボットはできるだけ多くのフォームフィールドを埋めるから、チェックボックスを追加して、CSSでそのチェックボックスを隠して、含まれている提出を拒否したんだ。少なくともその時は、他の何よりもずっと効果的だった。

こういうのは一部のDiscordサーバーで使われてる。誰かが投稿すると禁止されるハニーポットチャンネルを作れるから、もしスパムボットがすべてのチャンネルに投稿したら、自分自身を効果的に禁止することになる。

そうそう、これはクラシックなハニーポットのトリックで、純粋なHTML/CSSで簡単にできるよ。俺はボットに魅力的だろうと思って、隠れた「名前」のテキストフィールドを使ったんだ。

俺もほぼ同じことをやったよ。ずっと前に、偽の「BCC:」フィールドを追加したんだ。ほぼ100%の確率でうまくいったよ。CAPTCHAは必要なかった。

何十年も前にこれをやった人たちを知ってるけど、うまくいったみたいだよ。

これは「ハニーポット」と呼ばれる一般的なアプローチだったよね。確か、ボットは最終的にこの方法を克服して、要素の可視性を評価して、見える要素だけを埋めるようになったんだ。それで、要素が技術的に見えるように(つまり、display: nonevisibility: hiddenじゃないように)するようにしたんだ。代わりに、要素を画面外に絶対位置指定するようにしたら、ボットもそれを評価するようになった。さらに、各入力のテキストを読むのも上手くなったよ。

キャプチャを回避することが、広告をブロックしたりクッキーポップアップを隠したりすることよりも論争になる理由が分からない。それは私のエージェント — AIでもブラウザでも — で、あなたが送ってくるコンテンツに対して私が好きにできるし、私が返すものに対処しなきゃいけないのはあなたなんだから。

実際、これは本当で、テックフォーラム(HNを含む)でよくある別の不満、つまりペイウォールについての話につながるんだ。WSJやNYTが言うように、特定のURLをリクエストすると、彼らが望む内容をワイヤー越しに返すことができるんだ。ペイウォールが未来なんだよね。ある意味、無料のインターネットの時代に生まれたことに感謝してる。子供の頃は、クレジットカードなしでインターネットをフルに楽しめたから。でも、今の子供たちは、ウェブサイトが収益を上げないユーザーエージェントに対してコンテンツをペイウォールで守るから、アプリのソーシャルメディアを使わざるを得ないんだ。

最近のこれらのものは、主にクッキーやフィンガープリンティングに基づいてると思う。チェックボックスはただの飾りだよ。CloudflareやGoogleみたいなところは、地球全体のブラウジング活動の大部分を見れるから、IPやブラウザからの活動が「ボットっぽい」かどうか分かるんだ。ChatGPTは使ったことないから、そのエージェントがどう動くかは分からないけど、もし直接ブラウザを操作してるなら、君に似た動きになるはず。AzureやAWSのVMからのランダムなIPアドレスから来てるなら、その活動は「ボットっぽくない」と思う。エージェント的な動きをしてるから、かなり人間らしく振る舞ってるんじゃないかな。

最初は君に似てるかもしれないけど、いくつかエージェントを動かした後に、サイトが君をブロックすることもあるよ。俺もローカルブラウザを使ったセッションの後にそんなことがあった。自然なカーソルの動きと直接DOMを選ぶのでは、ボット検出器にはかなりの違いが出ると思う。

CAPTCHAは、Googleの「あなたはどの人間ですか?」っていうクロスサイトトラッキングに関係してるみたい。今はCloudflareが大量のHTTPSをバイパスするインターネットトラフィックを扱ってるのとも関係あるし。多くの場合、サイトの初印象のユーザー体験に大きなダメージを与えてるけど、UXの人たちにはあまり注目されてないみたいだね。