私はいかにしてOperaブラウザのCookie Monster Bugを確認したか
昨日の日記「都道府県型JPドメインがCookieに及ぼす影響の調査 | 徳丸浩の日記」にも書きましたが、Operaブラウザの最新版(11.51)には、地域型ドメインの場合にCookie Monster Bugがあります。以下は、三重県の志摩市のドメイン(www.city.shima.mie.jp)上で domain=mie.jpのCookieをセットした様子です。
この状態で三重県津市(www.info.city.tsu.mie.jp)のホームページにアクセスしたところ、このCookieが送信されることをネットワークキャプチャにて確認しました。
Operaブラウザは独自の方法でCookie Monster Bugに対応しているというのが業界の常識だと思っていましたので、当初この現象を見て驚きました。大げさに言えば「ニュートリノが光速を越えた」ことに匹敵する(大げさ過ぎ)ような驚きでしたので、CERN研究所にならって実験方法を見直しました。
実験1(hostsファイル)
最初の実験では、Windows上のlocalhost上で動くApacheを三重県のサーバーに見立てて、hostsファイルでホスト名に対するIPアドレスをセットしていました。しかし、「OperaはDNSを使ってCookie Monster Bugを解決している」という情報がありましたので、DNSで名前解決をしないこの方法ではダメかもしれないと思いました。
実験2(Burp Proxy)
次に、Burp Proxyを使って、三重県津市のホームページのレスポンスをSet-Cookieを追加しました。やはりdomain=mie.jpのCookieがセットされました。
しかし、ブラウザはPorxy経由のアクセスではDNSにアクセスする必要がないので、Proxy経由だと特別な条件になるかもしれないと思いました。少なくともProxy経由の場合にはCookie Monster Bugがあるとは言えますが、Proxy経由でない場合も確認した方がよいと思いました。
実験3(DNSキャッシュサーバーで実験用ドメインをセット)
第3の実験では、DNSキャッシュサーバーを立てて、そこに実験用のドメインを定義しました。実験用ドメイン以外についてはネット上のDNSを参照するため、通常のネットアクセスと条件は変わらないと考えました。この条件でも、domain=mie.jpのCookieをセットでき、ブラウザから送信されることを確認しました。
実験4(透過Proxy上で書き換え)
実験3でほぼOKとは思いましたが、なにせ私の脳内では「ニュートリノの光速超え問題」に匹敵する発見(大げさ)なので、万全を期すために異なる条件で実験したいと思いました。私の実験環境には透過Proxyがありましたので、これを用いてCookieをセットすることにしました。透過Proxyを用いた実験結果が、冒頭で示した志摩市のページ上でセットしたdomain=mie.jpのCookieです。具体的には、志摩市のページのレスポンスを透過Proxyで書き換え、Set-Cookieヘッダを追加しました。このCookieがOperaブラウザにセットされることを確認しました。
透過Proxyはブラウザからは見えませし、DNSもISPの提供するものを使いましたので、通常のネットアクセスと同じ環境と同じと考えられます。ここに至ってようやく、「OperaブラウザにはCookie Monster Bugがある」と確信するに至りました。
結論
Operaブラウザの最新版(11.51)には地域型ドメインに対するCookie Monster Bugがある。
[PR]
「安全なWebアプリケーションの作り方」電子書籍版は本日発売開始です。くわしくはこちら。
体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践
- 作者: 徳丸浩
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2011/03/01
- メディア: 単行本
- 購入: 119人 クリック: 4,283回
- この商品を含むブログ (146件) を見る