Aug 26, 2005

FirefoxとActiveXとXPCOM

Firefoxの企業での導入に関する記事で、Mozilla Japanにも出資してるテンアートニの中の人がコメントしてるんだけど……Firefox陣営の人がこういうこと言ってると、なんかあった時にまた叩かれるんじゃなかろか。

今までにも何度かいうてきてるけど、FirefoxはActiveXに非対応だから安全だというのは、ある意味では正しい(ActiveXを狙った攻撃の影響を受けず、また、世の中にある攻撃の大半がIEのActiveXを狙ったものであるから、比較的影響を受けにくい)けど、だからといって全面的に信頼してよいとは言えない。なぜなら、Firefox(Mozilla)にはXPCOMとXPConnectという技術があるからだ。

XPCOMは、Firefoxの「ファイル操作」「通信」などといったOSに近い部分での処理を行うためのライブラリのようなものだ。それをJavaScriptから呼び出すための仕組みがXPConnect。XPConnectは基本的に、XPConnect特権を持った「信頼されたスクリプト」からしか利用できないため、原則として、Webページのスクリプトが勝手にこれらを利用することはない。

しかし、Firefox 1.0.6では既知の穴は既に修正されているけれども、XPConnect特権を不正に取得できてしまうようなセキュリティホールを突かれた場合、攻撃者はXPCOMを使ってなんでもやり放題になる。XPCOMにはファイル操作のAPIもあるしネイティブアプリケーションを起動するAPIもある、それらが全て開放されるのだから、どれほど危険な話なのかわかるだろう。この構図は、ActiveXのセキュリティの問題と全く同じものだ。

ただ、脆弱性が発見された後、修正されるまでのスピードがFirefoxの方が速いのは事実だ。ソースが一般向けに公開されている以上、セキュリティホールを放置していても誰にも気付かれないということはないから、嫌でも直さなくてはならないという強制力が働く。2005年中に報告されたIEのセキュリティホールのうち45%が対処されないまま放置されているのに対し、Firefoxの場合は未対処が6%にとどまっているのはその現れだ(数字はいずれも今日現在)。この点で「安全性が高い」と言うことはできるだろう。 graph-ie graph-fx また、報告された脆弱性の「重要度」も考える必要があって、この点でもIEの方がより深刻な脆弱性が多い。主張するならこれらの部分でだ。

ほんと、もう、機構的なセキュリティの事をメリットとして挙げるのはやめた方がいいと思うんだ……自分で自分の首を絞めるだけだから。

追記@2005.9.4。「話を抽象化しすぎだ。セキュリティホールを突かれればどんなアプリケーションでもこういう問題は起こる。それをさもFirefox固有の問題であるかのように言っている詭弁だ」という指摘があったので追記しておく。

  • IEもFirefoxも同じ「Webブラウザ」であり、常に攻撃に晒されている
  • IEの核もFirefoxのGREも、XML(HTML)ベースのアプリケーションの実行環境であり、低レベルへのアクセスが可能な独自のライブラリを持っている(ただし、IEもIEの核もWindows専用であるのに対して、FirefoxもGREもクロスプラットフォームであるという点は異なる)
  • コンテンツに埋め込まれたJavaScript(JScript)からActiveXにもXPCOMにもアクセスすることができる
  • ただし、それは信頼されたコンテンツのみに限られる

これを以て「全く同じ構図」と表現するのは確かに少し乱暴な断言かもしれないが、こういった特徴を全て内包しているWebブラウザは僕の知る限りはこの2者くらいなので、「抽象化しすぎ」とは思わない。むしろ、これ以外にも同様の例があるのなら是非教えて欲しい(これは悪意ではない)。

エントリを編集します。

wikieditish message: Ready to edit this entry.











拡張機能