reCAPTCHAとは、Googleが提供する、Webサイトへのアクセスが人間によるものか、ボット(自動プログラム)によるものかを判別するためのサービスです。スパム投稿や不正ログイン、大量アクセスによる攻撃などからサイトを守る手段として広く導入されています。
本記事では、reCAPTCHAの仕組みやバージョンの違いに加え、突破される手口や偽のCAPTCHAを悪用した攻撃、そして多層的な対策までを解説します。
reCAPTCHAとは
CAPTCHAの目的(人間とボットの区別)
CAPTCHA(キャプチャ)とは、「人間にとっては簡単だが、コンピュータにとっては難しい」課題を提示することで、アクセスしているのが人間か自動プログラム(ボット)かを判別する仕組みの総称です。
歪んだ文字の読み取りや、画像から特定のものを選ぶ課題などが代表的です。
reCAPTCHAとCAPTCHAの違い
reCAPTCHAは、Googleが提供するCAPTCHAサービスの名称で、一般的なCAPTCHAの仕組みに加えて、ユーザーの行動パターンの分析など、より高度な判別手法を取り入れている点が特徴です。
Webサイトの管理者は、サイトキーとシークレットキーを取得して自サイトに組み込むことで、Googleのボット判定の仕組みを利用できます。
reCAPTCHAのバージョンの違い
reCAPTCHA v2(チェックボックス型・Invisible型)
reCAPTCHA v2は、「私はロボットではありません」というチェックボックスをユーザーにクリックしてもらう方式が代表的です。ボットと疑われた場合は、さらに画像を選択する課題などが追加で表示されます。チェックボックスを表示せず、バックグラウンドでの判定を主とする「Invisible型」も用意されています。
reCAPTCHA v3(スコア型)
reCAPTCHA v3は、ユーザーに操作を一切求めず、サイト上での行動パターンをバックグラウンドで分析し、0.0〜1.0のスコアで人間らしさを判定する方式です。
スコアが高いほど人間である可能性が高いと判断され、サイト側がそのスコアに応じて、通過させるか追加の認証を求めるかなど、対応を自由に設計できます。
v2とv3の使い分け
ユーザーの手間を最小限にしたい場合はv3、明確に認証のステップを設けて確実に判定したい場合はv2が向いています。サイトの特性に応じて使い分けたり、組み合わせて利用したりするケースもあります。
reCAPTCHAの導入方法
サイトキーとシークレットキーの取得
reCAPTCHAを利用するには、まずGoogleの管理画面でサイトを登録し、「サイトキー」と「シークレットキー」の2つのキーを取得します。サイトキーはユーザーの画面側(フロントエンド)に埋め込むキー、シークレットキーはサーバー側で判定結果を検証するためのキーです。
サイトへの組み込みと検証処理
取得したサイトキーをWebページ側に組み込み、ユーザーがフォームを送信した際に生成されるトークンを、サーバー側でシークレットキーを使ってGoogleに問い合わせ、検証するという流れで実装します。WordPressなどのCMSでは、専用のプラグインを利用することで比較的簡単に導入できます。
reCAPTCHAが突破される手口
reCAPTCHAは強力なボット対策ですが、万能ではありません。実際に、さまざまな突破手口が存在しています。
CAPTCHA解読サービス(人力による「CAPTCHAファーム」)
低賃金の労働者が人力でCAPTCHAを解読する、いわゆる「CAPTCHAファーム」と呼ばれるサービスが存在します。攻撃者はボットが遭遇したCAPTCHAをこうしたサービスへ送信し、人間に解かせた結果をボットに戻すことで、突破を図ります。
AI・機械学習による自動突破
画像認識技術の発展により、AIや機械学習を使って、画像選択型のCAPTCHAを自動的に解読する手法も研究・悪用されています。AIの精度向上により、人間と区別がつかないレベルで課題を解けるようになってきている点が課題です。
ブラウザの行動パターン偽装によるv3のスコア操作
v3の判定は行動パターンの分析に基づいているため、攻撃者はマウスの動きやスクロールといった「人間らしい行動」を模倣するツールを使い、高いスコアを不正に獲得しようとします。
偽のCAPTCHA画面を悪用する攻撃
ClickFix攻撃との関係
reCAPTCHAのような「人間確認」の画面は、利用者が日常的に目にし、疑わずに従ってしまいやすいという心理を悪用する攻撃も増えています。
代表的なのが「ClickFix」と呼ばれる手口で、本物そっくりの偽のCAPTCHA画面を表示し、「人間であることを確認するため」と称して、特定のコマンドをコピー&ペーストして実行させようとします。
ClickFix攻撃の詳細については、別記事も参考にしてください。
本物のreCAPTCHAと偽物の見分け方
本物のreCAPTCHAは、チェックボックスのクリックや画像の選択を求めるのみで、キーボード操作でコマンドを実行させたり、ファイルをダウンロード・実行させたりすることはありません。「Windowsキー+R」や「Ctrl+V」といった操作を要求された時点で、偽物と疑うべきです。
reCAPTCHA利用時のプライバシー面の論点
Googleによる行動データ収集
reCAPTCHAは、ユーザーの行動パターンの分析によってボットか人間かを判別する仕組み上、閲覧者のマウスの動きやデバイス情報など、さまざまなデータをGoogleに送信しています。この点から、プライバシー保護の観点で議論の対象となることがあります。
GDPR等の規制への対応
EUのGDPR(一般データ保護規則)をはじめとする各国のプライバシー規制の観点から、reCAPTCHAを導入するサイト運営者は、プライバシーポリシーへの記載や、必要に応じたユーザーへの同意取得などの対応を検討する必要があります。
reCAPTCHAだけに頼らない多層的なボット対策
WAF・レート制限との併用
reCAPTCHAに加えて、不審な通信パターンを検知・遮断するWAF(Webアプリケーションファイアウォール)や、短時間での大量アクセスを制限するレート制限を併用することで、ボット対策の多層化が図れます。
ハニーポット等の補助的な対策
人間には見えない、ボットだけが入力してしまう隠しフィールド(ハニーポット)を設置し、そこに入力があったリクエストをボットと判定する手法も、補助的な対策として有効です。
まとめ
reCAPTCHAは、Googleが提供する、人間とボットを判別する代表的なサービスであり、v2のチェックボックス型とv3のスコア型でそれぞれ特徴が異なります。
一方で、CAPTCHAファームやAIによる自動突破など、reCAPTCHAを破る手口も実在しているほか、偽のCAPTCHA画面を悪用したClickFix攻撃のように、「人間確認」という仕組み自体が攻撃に悪用されるケースもあります。
reCAPTCHA単独に頼らず、WAFやレート制限などと組み合わせた多層的な対策を講じることが重要です。

























![中小企業の情報瀬キィリティ相談窓口[30分無料]](/wp-content/uploads/2023/07/bnr_footer04.png)


