Firefoxには、いくつかの安全のためやプライバシー保護するための機能が実装されている。「安全なWebブラウザ」といわれる所以である。

図1 Firefoxの公式ページより

本稿では、それらを改めて確認するとともに、詳細についてMozilla Japanの浅井智也氏にインタビューを行った。

図2 Mozilla Japan浅井智也氏

Firefoxのセキュリティに対する基本姿勢

セキュリティの機能を紹介する前に、セキュリティに対する基本姿勢をうかがった。

「セキュリティの頭文字ではないですがS、E、Cという3つの文字で始まる概念を重視しています。まず、Sはセキュリティホールの深刻さ(Severity)です。ユーザーの操作が必要な問題よりページを開くだけで悪用可能な問題の方が深刻ですし、ブラウザがクラッシュするだけよりファイルを書き換えられる方が深刻といった観点です。Eは露出期間(Exposure Window)、つまり脆弱性情報や実証するコードが公開されてから修正されるまでの期間です。情報や攻撃コードが公開された場合、ユーザーが被害に遭う前に迅速な対応が重要になります。Mozillaでは、脆弱性情報が公開された場合、攻撃コードの有無にかかわらず、48時間以内にセキュリティ更新をリリースする体制を整えています。ここまでの対応をしているブラウザは他にないと思います。Cはセキュリティ情報を完全にオープンにしているか(Complete Disclosure)です。セキュリティホールは公開せず内部的に処理をすれば、脆弱性の数は少なく安全なソフトウェアに見えます。修正されれば公開しなくてよいという考え方もありますが、すべて公開してこそ厳しいチェックやセキュリティチームの実力に繋がるとMozillaでは考えています」

もし、公開しないと正しい情報は伝わらない。さらに公開することで、他のセキュリティの専門家のチェックも入り、ソフトウェアとしてより強度が増すといえる。さらに、

「基本的なセキュリティ機能の有無を○×で比較するだけなら、他のブラウザでもそんなに大きな違いはありません。ウイルス対策、危険なサイトのブロック、証明書の更新などほとんどブラウザがサポートしています。しかし、その運用姿勢や対応速度については、大きな差があります」

としている。

危険なサイトのブロック、誤検知の最小化が重要

Firefoxには、危険なサイトを事前にブロックする機能がある。

図3 危険なサイトをブロック(Firefoxの公式ページのサンプル。本当に危険なサイトではないので)

Googleのセーフブラウジングサービスを利用したもので、ChromeやSafariでも同じ機能がある。原理は、危険なサイトデータベースを用意し、そこに問い合わせて検出する。しかし、図3の画面を見たことがある人はほとんどいない。本当に大丈夫なのだろうか。

図4 危険なWebサイトの報告

これについては、

「警告画面を見たことがなくても心配することはありません。危険なサイトや偽サイトのブラックリストは世界中からの報告でリアルタイムに更新されており、ユーザーが警告画面なしで危険なサイトにアクセスすることはほとんどありません。Firefoxより高い検知率をうたうブラウザもありますが、そのブラウザが正規のサイトを危険だと誤検知したという話も多く見かけます。それでは、信頼性が揺らいでしまいます。Firefoxのセーフブラウジングは誤検知が少なくバランスが取れていると考えています」

という。誤検知についても、

「検出漏れをゼロにしようとすると誤検知が発生するのはやむをえない側面もあります。しかし、それが多すぎるとユーザーは『ああいつものエラーか』と気にしなくなってしまいます。OSやセキュリティソフトによっては頻繁にセキュリティ警告を出すことで、警告が意味をなさなくなっていることもあります。誤検知を少なくすることが最低条件です」

という見解。過ぎた警告は、役に立たないということだ。

Webサイトの認証情報はわかりやすさと見やすさが大事

Firefox 14では、サイトの認証情報の表示方法が変更された。EV SSL証明書の場合には、図5のように緑色になり、鍵アイコンが表示される。

図5 EV SSL証明書によって認証されたWebサイト

ここを確認すれば、サイトの状況を判断できる。EV SSLにはFirefox 3から対応しており、他のブラウザにも同じような機能がある。SSL接続でない場合、ロックマークでなく地球アイコンになり「http://」も表示されない。

図6 httpのみでの接続

他の表示については、こちらを参照してほしい。

鍵と地球のアイコンに変更した理由は、

「これまで他のブラウザでも、鍵の部分は、サイトが用意したファビコンを使っていました。しかし、安全性を確認するときに見る箇所に使うアイコンをサイト側が選べると、安全そうなアイコンや他のサイトのロゴで偽装するのに使われてしまいます。そこで、ロケーションバーには、ファビコンは表示しないことにしました。タブにもあるので2つ表示する必要もありません。偽装できないようにするという点では、認証情報のUIがロケーションバー上に重なっていることもポイントです」

他にも、アドオンのインストールなどセキュリティに関係がある場合には、ページ領域のUIよりもはみ出して表示する。

図7 アドオンのインストール

この理由は、サイト内のコンテンツは必ず偽装されるという前提に基づく。はみ出して表示することで、ユーザーが自然に使え、偽装できないシステムとなる。浅井氏によれば、セキュリティチームのこだわりが具現化したものだとのことである。そして、

「ユーザーが意識しなければならないことを多く作ってはいけない、Firefoxでは、意識してほしい、知っておいてほしいことは左上だけを見ればいいというルールになっています」

という。また、EV SSL接続におけるロケーションバーの背景は緑色から白に変更した。

「目の悪い方や色覚障害のある方にとって、コントラストの低下や色だけでの判別は大きな課題となります。インターネットを使うすべての人が安全に使えるようにするため、サイトの確認で重要なドメイン名を強調表示するのはもちろん、背景を白にしてコントラストを確保し、地球と鍵のアイコンという形の違いで表す配慮をしているのです。背景色を付けるとめだつし綺麗だと思いがちですがそうではありません。すべての人がインターネットを使いやすくというのが、Mozillaの考え方です」

あたりまえのことを実現しているといえるが、これこそが難しいのである。

プラグインのセキュリティ

プラグインも脆弱性が絶えず指摘され、セキュリティ対策が不可欠なものだ。Mozillaでも、重要な問題として捉え、その対策を講じている。基本の対策は最新版を使い、危険な時間を最小限に抑えることだ。しかし、Firefoxが自動更新されても、プラグインは同時に更新されない。つい、放置されがちである。少しでもそれを解消できるよう、Firefoxではアドオンマネージャから1クリックで最新版を使っているか確認できる。

図8 プラグインチェック

これにより、ユーザーの能動的にチェックが可能となる。また上述のように、セキュリティホールや問題が拡大したとき、エラーを出し続けてもまた問題となる。

「Firefoxでは、プラグインやアドオンで安全性や安定性に特に重大な影響を与えるもののブロックリストを作成し、定期的に更新しています。ブロックリストにある古く危険なプラグインを使っていると、無効化を確認する画面が表示されます。ウイルスが急拡散しているなど深刻な場合には、強制的に無効化させることもあります。プラグインの安全性についてここまでフォローしているブラウザは、Firefox以外にはないと思います」

一方、ChromeがFlashに対して、ブラウザ内部にプラグインを同梱し、強制的に更新する方法もある。これについては非現実的としている。

「Flashのみ対応しても解決にはなりません。JavaやPDF Readerのプラグインへの攻撃も多く、すべてのプラグインを同梱できるわけではありません。また、Firefoxはオープンソースでありクローズドなプラグインを同梱するのもライセンス上難しいでしょう」

今後、Firefoxでは、PDFをプラグインなしで読み込めるようにするとのことだ。高機能化するHTMLとJavascriptを使い、PDFを描画する。埋め込みフォントが不正な場合にうまく表示できないケースなども残るが、新たなアプローチとして期待できる。