Googleは、攻撃者が「reCAPTCHA」を回避するために利用できる脆弱性を修正した。
チューリングテストを基にしたreCAPTCHAは、パズルや論理クイズを利用する。訪問者は出された問題に正解することで、ボットではないことを証明する。クッキーに基づいて訪問者を信頼する場合もある。
reCAPTCHAは完璧なものではなく、回避できる場合もある。セキュリティ研究者のAndres Riancho氏によると、毎回reCAPTCHAが回避されてしまうような脆弱性が存在するという。
Riancho氏は米国時間5月28日付のブログで、回避するためには、reCAPTCHAを利用するウェブアプリケーションが、安全でないやり方で「/recaptcha/api/siteverify」へのリクエストを作成する必要があると述べている。
reCAPTCHAを利用するウェブアプリケーションが訪問者に問題を出す際、GoogleはJavaScriptコードを通じて画像セットを提供する。訪問者が画像ベースのパズルを解くと、HTTPリクエストが送信される。
ウェブアプリケーションは、「secret」パラメータと「reCAPTCHA-generated-hash」パラメータを通じて認証を受け、訪問者の答えが正しいかどうかを問い合わせる。この答えは、GoogleのreCAPTCHA APIによって検証される。
だが、HTTPパラメータ汚染がある(同名のHTTPパラメータを複数送信する)と、回避のエクスプロイトが作成されてしまう。
「アプリケーションがHTTPパラメータ汚染に対して脆弱で、secretパラメータの前にresponseパラメータを加えてURLが作成されれば、攻撃者はreCAPTCHA認証を回避できる」(Riancho氏)
この脆弱性は1月29日にGoogleに報告された。だが、Googleの対応はRiancho氏が期待したものではなく、「reCAPTCHAは意図されたとおりに機能している」と書かれた説明のページを示されただけだった。
Riancho氏の発見は、reCAPTCHA認証を毎回回避できるエクスプロイトに基づいていたので、脆弱性に関する報告を再度読むよう、同氏はGoogleに求めた。
1月31日までに、Googleはさらなる情報を請求し、24時間後にやっと脆弱性を確認した。
2月15日、GoogleはRiancho氏に500ドルの報奨金を贈った。この500ドルは慈善団体に寄付され、脆弱性を修正するパッチが3月25日に公開された。
脆弱性は、GoogleがreCAPTCHAのAPIを直す形で修正されたため、個々のウェブアプリケーションにフィックスを適用したりする必要はない。
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。
CNET Japanの記事を毎朝メールでまとめ読み(無料)
「もったいない」という気持ちを原動力に
地場企業とともに拓く食の未来
ものづくりの革新と社会課題の解決
ニコンが描く「人と機械が共創する社会」
地味ながら負荷の高い議事録作成作業に衝撃
使って納得「自動議事録作成マシン」の実力