McAfee Avert Labs Blog
Google Chrome and the 404」より
September 4,2008 Posted by Tad Heppner

 米グーグルが提供を始めたWebブラウザ「Chrome」には,ブラウジング時の操作ミスを指摘して代替案を示す機能がある(関連記事:グーグルがブラウザ戦争に参戦,高速ブラウザ「Chrome」投入)。要求されたWebサイトが見つからなかったことを示す404エラー・メッセージを表示する代わりに,404エラーの原因である誤ったURLを解析して検索用フレーズを取得し,同社の検索エンジンで検索するための画面を表示するのだ。

 Chromeのこの機能と同様の404エラー・ページ乗っ取り技術は,グーグルのWebブラウザ用プラグイン・ソフトウエア「Google Toolbar 5」で初めて採用され,当時,物議をかもした(関連記事:Googleツールバーによる「404エラー・ページ」の乗っ取り)。

 HTTPのGETメソッドは,一連のオンライン処理を実行する際に,あるWebページから別のWebページへフォーム用データを引き渡す目的でよく使われる。GETメソッドでは次のように,URLの中に区切り文字として入れた「?」(クエスチョン・マーク)の後ろに,フォーム・データを付けて送る。

フォーム・データを付けたURLの例:
http://[どこかのWebサイト]/accountinfo.php?user=Jdoe&session=12345678

 この例において,PHPスクリプト「accountinfo.php」は引数「user」(値は「Jdoe」)と「session」(同「12345678」)を受け取る。

 404エラー・ページの乗っ取りによって,プライバシー問題が発生する恐れがある。そのことを,「本来なら内容のあるWebページを表示するURLなのに,Webサーバーがメンテナンス中なので404エラーを返す」という状況を仮定して説明しよう。

 例えば,ユーザーが「[どこかのWebサイト]」にユーザー名「Jdoe」でログインし,その際のセッションIDが「12345678」だったとする。ユーザーがログイン後,[どこかのWebサイト]でアカウント情報に関する操作を実施しようとすると,上で示したURL「http://[どこかのWebサイト]/accountinfo.php?user=Jdoe&session=12345678」に対するアクセスが発生する。このとき,[どこかのWebサイト]がメンテナンス中なら,accountinfo.phpをホスティングしているのサーバーは404エラー・メッセージを出力する。

 ところが,Chromeは[どこかのWebサイト]から返された404エラー・メッセージを出さずに,独自のエラー・ページを表示する。このエラー・ページには,グーグルのWeb検索サービスにリダイレクトして検索を実行するためのリンクが掲載されている。

Chromeが表示した独自の404エラー・ページ
Chromeが表示した独自の404エラー・ページ

 メンテナンス中のアクセス対象URLから出力された元々の404エラー・ページを乗っ取ると,副作用が発生する。Chromeのエラー・ページに掲載されたリンクや検索ボタンをクリックすると,Chromeは生成されたクエリーのHTTPヘッダーのリファラ・フィールドに含める形で,上記データ(値がJdoeのuserと,値が12345678のsession)を「google.com」へ送るのだ。

 このユーザーは,ユーザー名とセッションIDをグーグルのサーバーに送るつもりなどなかったし,実際に送られたことなど全く気付かなかっただろう。

補足

 米マカフィーの研究者によると,Chromeはグーグルの404エラー・ページを初めてレンダリングする際,あるイメージ・ファイルをグーグルのサーバーに要求するそうだ(要求先はChromeの対応言語によって異なる)。イメージ要求用のHTTPリクエストには,404エラーの原因となったURLアクセスで参照されていたリファラ値も入っている。つまり,ユーザーが何もしなくてもデータはグーグルに送られる。ユーザーがリンクや検索ボタンをクリックしなくても,グーグルの404エラー・ページが表示された時点で情報はグーグルに送られてしまっている。


Copyrights (C) 2008 McAfee, Inc. All rights reserved.
本記事の内容は執筆時点のものであり,含まれている情報やリンクの正確性,完全性,妥当性について保証するものではありません。
◆この記事は,マカフィーの許可を得て,米国のセキュリティ・ラボであるMcAfee Avert Labsの研究員が執筆するブログMcAfee Avert Labs Blogの記事を抜粋して日本語化したものです。オリジナルの記事は,「Google Chrome and the 404」でお読みいただけます。