図1 デモ・サイトでユーザー名/パスワードを記憶させる
図1 デモ・サイトでユーザー名/パスワードを記憶させる
[画像のクリックで拡大表示]
図2 デモ・サイトにはXSS脆弱性が存在する
図2 デモ・サイトにはXSS脆弱性が存在する
[画像のクリックで拡大表示]
図3 細工が施されたリンクをクリックする
図3 細工が施されたリンクをクリックする
[画像のクリックで拡大表示]
図4 記憶させたユーザー名/パスワードが別のサイトへ送信される
図4 記憶させたユーザー名/パスワードが別のサイトへ送信される
[画像のクリックで拡大表示]

 「Firefoxユーザーがクロスサイト・スクリプティング(XSS)脆弱性のあるWebサイトでパスワードを記憶させている場合には,細工が施されたリンクをクリックするだけでそのパスワードを盗まれる恐れがある」――。京セラコミュニケーションシステムのセキュリティ事業部 副事業部長である徳丸浩氏は11月24日,ITproの取材に対して,11月22日に公表されたFirefoxの脆弱性は,考えられているよりも深刻であるとして注意を呼びかけた。

 デンマークSecuniaなどによれば,Firefox 1.x/2.xのパスワード・マネージャには,記憶したユーザー名/パスワードを適用するWebページ(フォーム)のURLを適切にチェックしない脆弱性(セキュリティ・ホール)が存在するという(関連記事:Firefoxにセキュリティ・ホール)。このため,細工が施されたWebページにアクセスすると,同じドメインの別ページで使用しているユーザー名/パスワードを盗まれる恐れがある。

 Secuniaなどの情報に基づけば,今回の脆弱性を悪用するシナリオとしては,以下のようなものが考えられる。まず攻撃者は,パスワードの入力を求めるWebサイトと同じドメインに,細工を施したWebページを用意しなければならない。そしてそのWebページに,パスワードを記憶させているFirefoxユーザーを誘導する必要がある。

 しかしながら,パスワードを記憶させたWebサイトにXSS脆弱性がある場合には,ユーザーは細工が施されたリンクを1回クリックするだけで,記憶させたパスワードを盗まれる可能性があるという。

 徳丸氏は,デモ・サイトを使って解説する。まずFirefoxユーザーが,あるWebページにおいてユーザー名とパスワードをパスワード・マネージャに記憶させたとする(図1)。このWebサイトには,ページの引数として与えられたHTMLやスクリプトをそのまま表示してしまうXSS脆弱性が存在する(図2)。

 その後,このFirefoxユーザーが,細工が施されたリンク(ページの引数として,細工を施したHTMLフォームとスクリプトが与えられているリンク)をクリックすると(図3),記憶させているユーザー名とパスワードが任意のサイトへ送信されてしまう(図4)。

 図3では,便宜上,XSS脆弱性のあるサイト上にリンクを置いているが,このリンクはどこに置いても“有効”。例えば,もっともらしい文章とともにメール中に記述して,ターゲットとなるユーザーに送信してクリックさせることでもパスワードを盗める。

 「XSS脆弱性の悪用方法としては,(1)細工を施したリンクをクリックさせてCookieを盗み,セッションをハイジャックする,(2)偽のログイン画面を表示させて,パスワードなどを入力させる――といったものが代表的。ワンクリックさせるだけでパスワードなどを盗むことはできない。しかし今回の脆弱性とXSS脆弱性と組み合わせれば,リンクをワンクリックさせるだけでパスワードを盗めてしまう。それを考えれば,セキュリティ・ベンダーなどの評価は“楽観的”過ぎる」(徳丸氏)。

 例えばSecuniaでは,今回のセキュリティ・ホールの危険度を,5段階評価で下から2番目の「Less Critical」に設定している。XSS脆弱性がさまざまなWebサイトで見つかっている現状を考えれば,「今回の脆弱性は,もっと深刻だと考えるべきだ」(徳丸氏)。