[画像のクリックで拡大表示]

 「Mozillaはユニークな環境。ここなら,自分のスキルを生かして業界全体に貢献できると考えた。」――。米Mozilla Corporationのセキュリティ最高責任者(Chief Security Something-or-Other)を務めるWindow Snyder氏は11月28日,ITproの取材に応え,Mozillaのセキュリティに関する取り組みなどを語った(聞き手は,勝村 幸博=ITpro)。

 Snyder氏はセキュリティ・ベンダー米@stake(@stakeは2004年に米Symantecに買収)に籍を置いた後,米Microsoftに入社。Security Engineering and Communications部門でSenior Security Strategistとして,セキュリティ・コンサルティング企業とMicrosoft製品チーム間の関係を管理し,同社のセキュリティ戦略を指揮した。Windows Server 2003およびWindows XP SP2の開発にも深くかかわった。

 2005年にはMicrosoftを離れ,友人とともにセキュリティ・サービス/製品を手がける米Matasano Securityを立ち上げ,同社の最高技術責任者(CTO)を務めた。そして2006年9月,Mozillaのセキュリティ最高責任者に就任した(関連記事:元Microsoftセキュリティ担当者のWindow Snyder氏がMozillaに)。

攻撃される“表面積”を最小に

――まず,Mozillaが現在おこなっているセキュリティの取り組みについて聞かせてください。

 製品のセキュリティ強化やテストに,コミュニティが積極的に参加し,貢献できる体制作りに力を入れています。

 現在でもコミュニティの人たちは,セキュリティ・パッチの出荷前のテストに協力してくれています。バグを見つけて報告するという形でも協力してくれています。Mozillaでは,バグを報告するインセンティブとして,「Bug Bounty Program」という報奨制度を用意しています。

 技術面の取り組みとしては,脆弱性の影響を軽減するような工夫を凝らしていきます。具体的には,製品に脆弱性が見つかった場合でも,攻撃を受けうる“表面積(Attack Surface Area)”をできるだけ小さくするようなセキュリティ強化を進めています。

 例えば,頻繁には使われていない機能やプロトコル,ファイルは,アプリケーションの“本体”ではサポートせずに,拡張機能にして必要に応じて組み込めるようにします。こうすることで,その部分に脆弱性が見つかった場合でも,拡張機能を組み込んでいないユーザーは影響を受けないようにして,影響範囲を最小化します。

 陳腐化したコードや,開発責任者が明確ではないコードを取り除くことでも,攻撃表面積を小さくします。

 また,Mozillaでは“マネージド・コード(managed code)”で書かれたコードを,アプリケーションの“コア”となる部分により多く採用する取り組みをしています。これも,攻撃表面積を最小化することに役立ちます。ここでのマネージド・コードとは,CやC++などで記述したネイティブ・コードではなく,仮想マシンで動作させるコードのことです。中間言語やバイト・コードなどとも呼ばれます。

 マネージド・コードにはセキュリティ上のメリットがいくつかあります。例えば,マネージド・コードを利用すれば,開発者はメモリー管理をする必要がないので,メモリー管理に関する脆弱性を作り込むリスクが軽減されます。

脆弱性は必ず見つかる

――お話をお伺いしていると,「脆弱性は見つかるもの」という前提に立たれて,セキュリティの取り組みをされているように感じます。

 全くそのとおりです。すべてのコードには脆弱性があります。コードは何らかの脆弱性を必ず持っているものです。

 製品のセキュリティ強化には,より強固なセキュリティ・アーキテクチャが不可欠ですが,それは柱の一つに過ぎません。もう一つの柱は,素早い対応です。脆弱性が見つかった場合に,いかに早く修正できるかが鍵になります。

 この点において,Mozillaの場合には,コミュニティが大きな助けとなっています。Mozilla製品については,毎晩,Nighty Built(夜間ビルド)という試験的なビルド(バージョン)が公開されています。何万人ものユーザーがこれをダウンロードして試してくれるので,早い段階で問題を特定し,いち早く問題を解決することができます。

 しかし,「素早いパッチ提供」は“物語”の半分にしか過ぎません(But that's only half story)。パッチが公開されても,ユーザーが適用できなければ意味がないからです。ユーザーがどのぐらい早くパッチを展開できるかが重要なのです。

 その点でも,Mozillaではうまくいっていると思います。製品に実装されている自動更新機能のおかげです。以前,どのぐらいのユーザーがパッチを適用できているのか調べたことがあります。具体的には,Firefox 1.5.0.5から1.5.0.6へのセキュリティ・アップデートの適用状況を調査しました。

 その結果,およそ90%のユーザーが,8日間以内にアップグレードしたことが分かりました。自動更新機能を実装する前は,調査すること自体できませんでしたが,これよりはずっと低かったと思います。

 コミュニティと自動更新機能のおかげで,「脆弱性を特定してパッチを作成し,それが実際に適用されるまでの時間」を大幅に短縮できるようになったのです。