Mozilla/Firefoxの、いつまでも修正が終わらないフィッシング偽装可能なセキュリティー・ホール

アドレスバーやSSLの錠アイコンなどの偽装ができるセキュリティーホール

MozillaFirefox では、ほぼ一年前に公になっているセキュリティー・ホールが未修復です。 アドレスバーや、ステータスバー、ステータスバーのSSLサーバ認証の為の錠アイコンを偽装可能な状態が続いています。

ことの始まりはほぼ一年前のことです。 Mozillaにアドレス・バーやSSLの錠マークなどを偽装できるセキュリティ・ホール : IT Pro ニュース[2004/07/30] をご覧いただきたいと思います。危険性についてはこの1年前の記事の通りです。悪意ある偽サイトと本物 のサイトとの区別をつけることが非常に難しくなってしまっています。 フィッシング詐欺に悪用されれば大変なことですのに、このセキュリティー・ホールの修復は完成されていません。

このセキュリティー・ホールについてまとめてある Secunia | Mozilla / Mozilla Firefox User Interface Spoofing Vulnerability を参照しますと、未修復であることがわかります。以下に引用いたします。なお、強調はhoshikuzuによります。

Solution:

The vulnerability has been partly fixed in Mozilla Firefox 1.0PR so that the status bar always is visible. A final solution will be added in an upcoming version.

Do not follow links from untrusted sites.

Proof of Concept

Secunia | Mozilla / Mozilla Firefox User Interface Spoofing Vulnerability によれば、このセキュリティー・ホールについてのFirefoxをターゲットとした PoCを示したのは、Jeff Smith です。Jeff Smithによる最初のPoCは、 Bugzill Bug 252198 - weak XUL security allows chrome UI spoofing ("phishing" attack) に見ることが出来ます。Bug 252198 は やがて DUPLICATE of bug 22183 となり、 すなわち Bug22183 に吸収されました。 Bugzill Bug 22183 - UI spoofing can cause user to mistake content for chrome を参照しますと、参考URLとして、Jeff Smith による PoC のURLが 記されています。実はこれが問題のPoCの第2版です。以下に。

最新版のFirefox on WindowsXPSP2 にて確認致しましたが、確かに完璧な偽装となっています。但し、 私は英語版で確認をしております。PoC は paypal.com を偽装しています。SSL通信でのページですので 錠アイコンがステータスバー上にありますが、実際にダブルクリックしてみるとわかりますように これもまた偽装です。無論、アドレスバーもPaypalのものですし御丁寧にSSLを示すように黄色く なっております。なお、偽装であることを示すために、Jeff Smith は要所要所で赤字にて ガイドメッセージを加えています。

自衛策

■Mozilla/Mozilla Firefoxユーザインタフェース偽装とその対策 に書いてある方法で防衛できそうです。もしくはOperaを使うなど。

期待したいこと

リモートから提供されるXULは、IEで言えばActiveX以上のもの、極めて強力です。 リモートから提供されたXULを使うときには統一的かつ明示的なインターフェースで もって利用者に知らしめる必要があるでしょう。もしくは禁止してしまっても 良いかもしれません。FirefoxMozillaなどは、まだまだ時間をかけて、 XUL周辺をセキュアにしていかなくてはいけないことと思います。

関連文書

  1. PoC : Mozilla Firefox and XUL Spoofing | Jeff Smith
  2. Mozillaにアドレス・バーやSSLの錠マークなどを偽装できるセキュリティ・ホール : IT Pro ニュース[2004/07/30]
  3. Bugzill Bug 252198 - weak XUL security allows chrome UI spoofing ("phishing" attack)
  4. Bugzill Bug 22183 - UI spoofing can cause user to mistake content for chrome
  5. Bugzill Bug 244965 - Untrusted web content can display content using "chrome" flag in window.open
  6. Secunia | Mozilla / Mozilla Firefox User Interface Spoofing Vulnerability
  7. ■Mozilla/Mozilla Firefoxユーザインタフェース偽装とその対策

追記

えむけいさんのコメントを拝見して色々と考え自分の既述の至らなさをあらためて情けなく思いました。えむけいさん、いつもいつも有難うございます。

私が浮き彫りにしたい論点はどこになるのでしょうか。

まず第一に、JavaScriptのwindow.open()の問題なのだと思い至りました。アドレスバー(ロケーションバー)、およびにステータスバーはユーザーインターフェースとして必須のものと考えております。また、セキュリティー上でも重要だと考えております。世の中のフィッシングに弱そうな各サイトの実態を考えればなおさら、この憂いは深刻になってまいります。ところが、JavaScriptの仕様としては、window.open()にてアドレスバーおよびステータスバーの表示を取り除くことができます。もしくは、window.open以外でもたとえばステータスバー上にマーキー的な文字で「こんにちは」とか「いらっしゃいませ」とか流すTIPSまである按配です。これではステータスバーが役に立ちません。アドレスバーとステータスバーの役割を消すことが出来るJavaScriptの仕様には本当に頭が痛いと感じます。window.open()のこの問題は、多くのブラウザで共通の問題であり、ことさらにFirefoxが悪玉であるなどとは私は露ほども思っておりません。むしろFirefoxではユーザがコントロール可能なスイッチを持っているわけですから、はるかに優れているとさえ思っております。

私は、この点で先進的なMozilla/Mozilla Firefoxの開発陣を高く評価しています。高く評価しているが故に、逆に何ゆえ放置状態が続いているのかと疑問なのです。(他のブラウザの脆弱性放置はここではおいておきます。)

window.open()にてアドレスバーとステータスバーの非表示が既定値では不可能になるような方向性をMozilla/Mozilla Firefoxが打ち出してくれれば、と念願してやみません。スパマーへの打撃力がかなりのものとなることでしょう。その暁には上手に宣伝していけばFirefoxは世界を席巻することでしょう。他のブラウザも追従せざるをえないと考えます。以上が第一の論点です。

次は第二の論点です。リモートからのXULの問題です。Mozilla/Mozilla Firefoxのブラウザのユーザーインターフェイス自身がXULで構築されていると聞いています。リモートからのXULがある程度自由に活動できてしまっている状況です。リモートからブラウザの部品を自由に出来るというのはとても恐ろしい問題です。これはIEOperaには無い特性です。今回の脆弱性が修復されたとしてもXULが野放しならばいずれ第二第三の攻撃手法がみつかってしまう可能性が高いです。今までも色々とXULまわりで攻撃手段がみつかっていることは事実ですし、都度迅速に対抗されてきたことも事実です。しかしリモートからのXULの活動を一律に制限できるようにすれば根本的な解決となり将来の脆弱性はかなり軽減されるはずなのです。ところが開発陣はそこには手をつけていません。ひょっとしたら開発ポリシーと相容れないのかもしれません。これではいつまでたってもユーザーインターフェイス偽装、ブラウザの部品の捏造、の心配が晴れません。この点で、Mozilla/Mozilla Firefoxは、IEOperaに比べてセキュリティー面では不利だろうと思っております。早急に改善策が出るべきだと思っております。

以上第一の論点と第二の論点との併せ技でもって今回の脆弱性が出現しています。各PoCを作成した人たち(複数いますが)の狙いは、これらの根本的な問題への指摘であると私は考えています。

第三の論点です。昨年7月にJeff Smithが第一のPoCを公表した後、開発陣は直ちに対応をとりました。その結果は時間稼ぎ的なものであったと思われます。Secuniaの分析においても「部分的な解決」と評されたことに、当時の私は強い印象を持ち問題意識を持っていました。「部分的な」という字句の解釈は色々あるかもしれません。私はその時に、「どうやらアドレスバー捏造あたりはまだ封鎖されていないなぁ」と感じていました。アドレスバーは非常に大事なユーザーインターフェイスです。ステータスバーだけ解決しておくことって一体全体どういうこと?という疑問が湧いてしかたがありませんでした。とはいえ、私にはXULを触る技術力がありませんので確かなことは掴めませんでしたので悶々としていたのです。今回の私の日記で取り上げた背景には、この悶々とした疑念があるのです。隔靴掻痒。当日記をお読みになった皆さん(特にFirefox支持派の皆さん)が、私のこの隔靴掻痒あふれ出る文章をお読みになった時にはやはり反発をお感じになるかも知れません。だとしたら私の罪です。第三の論点という書き出しで何をいったい書いているのだと指摘されればごもっともなのですが、非技術的な視点で「開発陣さん達の動きや方向性が見えない」という焦りといいますか気持ちの悪さといいますか、そういった全てを日記で表現しております。この視点は実は私の中では第一番目に来るものです。IEであれOperaであれFirefoxであれなんであれ、開発者という枠組みの、人間の組織集団のあり方というもの、そこに対する注視が私の根っこにあるのです。どうかその辺、差し引いてお読みいただければと存じます。

第四の論点です。

個人的な主観が多量に混じりますがお許し下さい。私はOperaの使い勝手がどういうわけか嫌いです。私は今日の日記で「Opera」を使ったらどうでしょうか、という提案を致しました。実はそうは言ったものの、私自身はOperaを常用しないかもしれません。

えむけいさんもコメント欄で御指摘済みですが、Operaには確かに問題があります。しかしながら、Secuniaでは、未解決、解決済みの脆弱性の割合を円グラフで示すページがありまして、実を言えば、Operaが圧倒的に優秀なのです。統計的に現時点では最も安心して使えるブラウザである可能性が高いのです。そうは言っても、つい最近Operaブラウザ自身がかかえるクロスサイトスクリプティング脆弱性がみつかったばかりですけれど。

Operaは最近になって8シリーズになりました。大幅に機能が拡張されました。セキュリティーホールはこれから発見されるかもしれません。機能拡張があるところには何かがある、というのは経験的なものですが・・・

じゃぁ個人ユーザとしてはブラウザは何を使えば良いのか?答えはひとつしかないと思います。その時々で安心と思えるブラウザに乗り換えることです。今回私はOperaをお勧めしましたが、上でも書いたとおり、現時点でセキュリティー面で最も優秀だからです。

私は「アンチなんとか」の立場は取りません。「アンチMS」でもありませんし「アンチMozilla」でもありません。Operaとは相性があいませんがそれは私の個人的な都合でしかないので、お勧めすべきときはハッキリと「Operaなんかいかがでしょうか」と申し上げたりもします。明日になったら事情が変わるかも知れません。