まず、「CAPTCHA」という言葉の由来から始めましょう。この言葉は、「Completely Automated Public Turing test to tell Computers and Humans Apart」(コンピューターと人間を区別するための完全に自動化された公開チューリングテスト)の略語です。CAPTCHA技術も本来のチューリングテストも、背後にあるコンセプトはシンプルです。CAPTCHAは人間であれば合格できるテストですが、オンラインボットには無理です。歪んだ文字が埋め込まれた画像を表示し、その文字を正しく入力させることによって応答者がコンピューターでないことを確認する、という形式が一般的です。
CAPTCHAが重要なのは、さまざまなものを保護できるシンプルで実用的な技術だからです。たとえば、Webサイトの登録フォームを保護したり、ブログへのコメントスパムを防いだり、オンライン調査で人間だけが投票できるようにしたりと、いろいろな用途があります。もしCAPTCHA技術がなければ、スパマーのやりたい放題になりかねません。アカウントはいくらでも作成できるようになりますし、とんでもない数のコメントを付けたり、同じ調査で何度も投票したりすることが可能になってしまいます。
CAPTCHAの初期のバージョンは、コンピューターにとって比較的すり抜けやすいものでした。その結果、ハッカーとCAPTCHA開発者との間で激しい戦いが繰り広げられることになり、ハッカーが新しいバージョンのCAPTCHAを突破すると、開発者はさらに強力で新しいバージョンを用意しました。
ある時からGoogleが登場し、reCAPTCHAを発表しました(英語)。今ではこの仕組みが、非公式ながらCAPTCHA標準とみなされています。reCAPTCHAは歪んだ文字だけでなく画像も使っており、最強のCAPTCHAサービスと考えられています。GoogleのreCAPTCHA技術は、GoogleやFacebookなど多くのWebサイトでスパムや悪用からの保護手段として採用されており、実際、世界中で人気のあるCAPTCHAプロバイダーです。
残念ながら、この技術はこれまで考えられていたほど確実な保護手段ではないようです。
コロンビア大学のセキュリティリサーチャーによって、GoogleのreCAPTCHA技術の脆弱性が発見されました(英語資料)。この脆弱性が悪用されると、ハッカーがリスク分析に影響を与えたり、制限の回避や大規模な攻撃の実施が可能になったりします。
リサーチャーらは、reCAPTCHAが表示する画像の70%以上をクリアする攻撃を低コストで実現したと述べています。1枚の画像の解読にかかる時間は平均わずか19秒だったとのこと。このやり方をFacebookのCAPTCHA画像でも試してみたところ、精度は83.5%でした。Facebookの方が精度が高かったのは、使われた画像の解像度が高いからだと考えられます。
この手法では、Cookieとトークンを回避する技術が使われたほか、画像を正しく推測する手段として機械学習が利用されました。
「とはいえ、この完全にオフラインのCAPTCHA突破システムは、精度の面でも攻撃期間の面でも、専門の解読サービスに匹敵します。しかも、攻撃者の側で一切コストが発生しないというメリットもあります」とリサーチャーは語り、攻撃のシンプルさと費用対効果を強調しました。
リサーチャーは調査結果を公表する前にGoogleとFacebookに注意を呼び掛け、これらの脆弱性が存在する可能性について伝えました。Googleからは、reCAPTCHAのセキュリティ強化に取り組むとの返事がありましたが、Facebookが改善措置を取った様子は見られていません。
解読したCAPTCHA画像1,000枚につき2ドルという妥当な料金を設定すれば、1日に100ドル以上の稼ぎになるとリサーチャーは考えています。複数の攻撃を一度に実行するか、別の技術を一緒に使えば、儲けはさらに増える可能性があります。
今回の調査は、サイバーセキュリティの世界には課題がまだ山積していることを示しています。一方、Googleをはじめとする多くの企業にとって、現在のセキュリティ対策を前向きに見直し、前進するチャンスでもあります。Googleはすでにセキュリティの強化に関心を示しています。他のWebサイトも遅れることなく続いてほしいものです。