マイクロソフトがXPを捨ててIE9を採用したのはなぜ正しい判断だったのか

マイクロソフトがXPを捨ててIE9を採用したのはなぜ正しい判断だったのか

ビジネスとIT

Windows XP のユーザーは、Microsoft が IE9 ではサポートされないことを確認したため、不安に陥りました。

先日、Internet Explorer 9がWindows XPでサポートされないことはほぼ確実だと述べ、驚きはないと表明しました。レドモンド氏の言葉を借りれば、「最新のブラウザ」には「最新のオペレーティングシステム」が必要であり、Windows XPはそれに該当しません。驚いたことに(いや、実際にはそうではありません。XPは今でも使われており、多くの人に愛されているのは承知しています)、多くの人が私のXPを「時代遅れ」と表現した点に疑問を抱き、この決定に私が驚いていないことに疑問を呈しました。

まずはシンプルなことから。Windows XPは新しいオペレーティングシステムではありません。Windows XPは2001年にリリースされ、その後、Windows VistaとWindows 7という2つの新しいオペレーティングシステムがリリースされました。もう一つの大手デスクトッププラットフォームベンダーであるAppleは、それほど古いオペレーティングシステムのサポートすら行っていません。同社は通常、ソフトウェアの互換性を最新バージョンか、その2つだけに制限しています。

さて、ソフトウェアが物理的な商品とは異なるというのは本当です。時の経過によってハードウェアが故障することはありますが、Windows XP は今でも新品同様動作します。サービス パックや無料ダウンロードで追加された広範な機能を考慮すると、さらに優れています。しかし、コンピューティングの世界は止まっていません。新品同様動作するということは、Windows XP がコンピューティングの進歩についていけていないことを意味します。たとえば、次世代ハード ディスク (Western Digital ユーザーの場合は現世代) は、XP システムではパフォーマンスが著しく低下する恐れがあります。多くの人にとって回転ディスクに取って代わった技術であるソリッド ステート ドライブの性能を最大限に引き出すには、Windows 7 でのみネイティブにサポートされている TRIM コマンドのサポートが必要です。同様に、XP には Blu-ray ディスクの組み込みサポートがありません。

しかし、Webブラウザはどうでしょうか?Webブラウザは、例えばディスクテクノロジーにはあまり依存しません。そのため、XPを最新のハードウェアで動作させるにはより多くの処理が必要になることは間違いありませんが、それだけでWebブラウザがこのプラットフォームを使わない理由にはなりません。Windows VistaとWindows 7には、XPにはないIE9に関連する機能があるのでしょうか?

かなり説得力のある議論だと思います。IPv6は、願わくば、IPv4アドレス空間がついに枯渇し始める今後数年間で、はるかに普及する技術になるでしょう。Windows XPは限定的にIPv6をサポートしていますが、難解なコマンドライン構文でしか設定できません。Windows VistaではGUIによる設定が追加され、IPv6がネットワークの第一級オブジェクトとなりました。Windows 7では、DHCPv6などの補助的な技術のサポートが追加され、IPv6のサポートが充実しました。Windows XPは、IPv6の世界への準備が不十分です。

ウェブブラウザのセキュリティが問題

ウェブブラウザのセキュリティは、最近のpwn2ownイベントが改めて証明したように、悪名高い問題です。Windows VistaとWindows 7は、Windows XPよりもはるかに優れた体系的なセキュリティ欠陥対策を備えています。アドレス空間レイアウトのランダム化(ASLR)機能により、攻撃者がシステムを予測しにくくなり、既存の欠陥を悪用することがより困難になります。この保護は完璧ではなく、回避策も確かに存在しますが、あらゆる障害がハッカーの仕事を困難にしています。ASLRが提供する保護は、64ビットオペレーティングシステムの使用によっても強化されています。これは、XPが遅れをとっているもう1つの分野です(64ビット版XPはWindows XPとWindows Server 2003の雑種であり、Vistaや7では正常に動作する多くの64ビットソフトウェアが、XP 64では正常に動作しないか、まったく動作しないという問題があります)。

2つの最新OSに搭載されている「強制整合性制御」機能により、より強力な保護が提供されます。Windowsはプロセスを「低整合性」とマークすることで、そのプロセスがハードディスクとレジストリの大部分に書き込みできないようにします。その結果、たとえWebブラウザが侵害されたとしても、攻撃者のアクセスは大幅に制限されます。攻撃者はほとんどのデータを読み取ることはできますが(ただし、これも制限できます)、ルートキット、トロイの木馬、スパイウェアなどをインストールすることはできません。これは、ファイルシステムの必要な部分に書き込むことができないためです。

重要なのは、この保護には実質的な回避手段がないことです。ASLR(およびXPに搭載されているDEP )などの機能は、ハッカーの作業を困難にするように設計されていますが、カーネルによって強制される強固な障壁を構築していないため、熟練した技術があれば回避可能です。MICははるかに強固な障壁を構築します。ハッカーがMICを回避するには、プロセスの権限を昇格させて「低整合性」ラベルを解除できるエクスプロイトを見つけて使用する必要があります。攻撃者がこれを実行できない場合、低整合性サンドボックスに永久に閉じ込められ、悪意のあるソフトウェアをインストールできなくなります。

権限昇格の脆弱性(カーネルを欺いてプロセスに本来よりも多くの権限を与えてしまうソフトウェアの欠陥)は確かに存在するため、MICでさえ万能薬ではありません。しかし、これらの脆弱性は一般的なブラウザの脆弱性よりもはるかに稀であり、その影響範囲が小さいため、より迅速に修正される可能性が高いです。最も重要なのは、これらの脆弱性は修正可能であるということです。カーネルのバグが原因です。DEPとASLRは、それ自体では修正できません。回避メカニズムはある程度避けられないからです。

ブラウザ自体が問題だ

Web ブラウザの実績はかなりひどいものです。実際、Web ブラウザに限った話ではなく、コンピュータ ソフトウェアの実績はかなりひどいものです。バグは実に多々あります。しかし、ここでは Web ブラウザが特に重要です。なぜなら、Web ブラウザは潜在的に悪意のあるコードに一日中さらされているからです。MP3 プレーヤーやワード プロセッサに悪用可能なバグがあったら、もちろん困ります。できれば存在してほしくないものです。しかし、これらのプログラムで私が主に使用するのは、自分自身の MP3 や、自分 (または同僚) が書いた文書です。そして、これらのファイルは無害です。しかし、私がブラウザで行う主なこと、実質的に唯一のことは、他の人が設置した Web ページを見ることです。他の人は善意を持っているかどうかわかりません。サーバーのセキュリティを適切に確保したり、コードを監査したり、マシンにウイルス スキャンを実行したりしないかもしれません。

その結果、私のWebブラウザは、PC上の他のどのプログラムよりも、潜在的に悪意のあるコードにさらされることになります。メールクライアントは二番目で、しかもかなり差があります。毎日何百通ものメールが届くとしても、そのほとんどはスパマーやフィッシング詐欺師、その他の悪質な人物やならず者ではなく、同僚からのものです。そのため、ブラウザをMICで隔離することは、単に良いアイデアというだけでなく、本当に避けるべき理由がなければ避けるべきですそして率直に言って、そのような理由は存在しません。残念ながら、Webは危険な場所なのです。

主要5ブラウザのうち、Windowsでこの保護機能を使用しているのはInternet Explorer(7と8)とChromeの2つだけです。これだけでも、Safari、Opera、Firefoxの使用はためらわれます。これらのブラウザのセキュリティ実績はMicrosoftのものとそれほど変わりませんし、結果としてこれらのブラウザの脆弱性ははるかに高いのです。

この優位性は、単なる仮説ではありません。他のベンダーと同様に、Microsoftはすべてのセキュリティ上の欠陥にリスク評価を割り当てており、Windows VistaおよびWindows 7のInternet Explorerの脆弱性は、Windows XPの同じ脆弱性よりも一貫して低いリスク評価を受けています。なぜでしょうか?それは、これらの脆弱性がMICの障壁によって大幅に制限されているからです。Microsoftは偏っているかもしれませんが、これに同意するセキュリティ研究者もいます。pwn2ownで成功を収めているCharlie Miller氏は、Windows 7上のChromeとIE 8を、おそらく最も安全なWebブラウジングプラットフォームと見なしています。これらのブラウザがMICサンドボックスを使用しているのは偶然ではありません。この保護は機能しているのです。

Windows XPはこれらの保護機能は一切サポートしておらず、今後もサポートされる予定はありません。XPユーザーが最新かつ最高のブラウザにアクセスできないようにすることは、決して悪いことではありません。Windows XPユーザーは、いかなる危険な環境でもマシンを使用しないよう強く勧められるべきです。IE9をXPでサポートすべきだと言うのではなく、他の3つのブラウザにもこれらのセキュリティ機能のサポートを開始し、XPのサポートを中止するよう求めるべきです。これらはまさに誰もが利用すべき機能です。

グラフィック的に言えば

しかし、XPを捨てる最大の理由はセキュリティではなく、グラフィックスです。Internet Explorer 9は既に、高性能なハードウェアアクセラレーションによるグラフィックス機能を誇っています。特に、MicrosoftはIE9のSVG機能を披露しました。(SVGは、ベクターグラフィックスをWebページに埋め込むことを可能にするW3C標準規格です。)これらのグラフィックスはJavaScriptを使って操作できるため、標準準拠のWebページに全く新しい可能性をもたらします。SVGのサポートが広がれば、これまでFlashやSilverlightなどのプラグインが必要だったようなタスクを、標準的なページで実行できるようになるかもしれません。

SVGは他の多くのブラウザでもサポートされていますが、問題がないわけではありません。特に問題となるのはパフォーマンスです。SVGは概してかなり遅く、静止画像は問題なく動作しますが、シンプルなアニメーションでさえフレームレートが低くなります。そのため、現状ではSVGは静的なグラフィックにしか適していません。静的なグラフィックも確かに便利ですが、静的なグラフィック形式と、動きのあるプログラム可能なグラフィック形式の間には大きな違いがあります。FlashのようなタスクにSVGを使用するには、強力なアニメーションサポートが必要です。

Microsoftはこれを実現するために、IE9のすべてのレンダリングにDirect2Dを採用することを決定しました。Direct2DはDirect3Dをベースにした2DベクターグラフィックAPIで、当然のことながらDirect3Dは完全なハードウェアアクセラレーションを備えています。Direct2Dは多くの点でHTML、CSS、SVGレンダリングに非常に適しています。Windowsの旧来のグラフィックAPIであるGDIとは異なり、Direct2Dはベクターベース(そのため、簡単に高品質なスケーリングやアニメーションが可能)であり、OpenGLやDirect3Dとは異なり、3D特有の複雑さがなく、2Dグラフィックに特化したシンプルなプログラムインターフェースを提供します。

同様に、テキスト処理に関しては、MicrosoftはDirectWriteを使用しています。この技術も高性能で、ハードウェアアクセラレーションに対応しており、Direct2Dとスムーズに統合されます。

これが唯一の方法なのでしょうか?いいえ、違います。意欲的な開発者であれば、XP向けにDirect2D風のAPI(つまり、OpenGLやDirect3Dの使用を簡素化し、それらによって高速化される2D API)を手作業で開発し、例えばDirect3D 9cで使用できるようにすることは可能です。DirectWriteは、DirectWriteのハードウェアアクセラレーションがDirect3D 10レベルの機能の一部に依存するため、少し複雑ですが、ある程度の近似値を実現できる可能性があります。

しかし、問題は、Microsoftが既にこれらのAPIの開発を完了し、出荷、サポート、サードパーティ開発者への提供を開始している点です。必要なのは、過去3年半以内にリリースされたOSだけです(Windows 7には組み込まれており、Windows Vistaでは無料ダウンロード可能です)。Microsoftがこれまで行ってきたすべての作業を無視し、すべてをやり直す(しかも今回は、あらゆる開発者が利用できる汎用ライブラリではなく、IEに組み込む形で)などと期待するのは、全く馬鹿げています。

もう一つの互換性のある選択肢、つまり3Dアクセラレーションを完全に放棄するという選択肢は、さらに受け入れ難いもののように思われます。GDIのみを使用して高性能で高品質なSVG実装を作成することは可能かもしれませんが、今のところそれを実現したベンダーはありません。効果的な解決策であるDirect2Dの使用が既に存在することを考えると、開発に費やす価値があるかどうかは明らかではありません。パフォーマンスの懸念を完全に放棄して放棄すると、アニメーションには役に立たないSVGブラウザーしか残らず、実用的なアニメーションプラットフォームと比べると、機能が大幅に制限されてしまいます。

マイクロソフトは大企業ですが、そのリソースは有限です。さらに、ソフトウェアプロジェクトのスケーラビリティの欠如は周知の事実です。プロジェクトに開発者を投入することで生産性を向上させることは可能ですが、相当な注意が必要であり、安易に行うことはできません。そのため、マイクロソフトは開発時間をどこに費やすかを慎重に選択する必要があります。Direct2Dを再構築したり、高性能なGDIベースのグラフィックレイヤーを作成したりすることは、リソースの有効な使い方とは言えません。最も重要なのは、より現代的なプラットフォームで既に行われている作業を重複して行っていることです。

結論

マイクロソフトはIE9を一流のブラウザにしたいと考えており、その実現のために最新のオペレーティングシステム機能を活用しています。まさにマイクロソフトがやるべきことです。これらの機能は開発者が利用できるように開発されており、レドモンドも例外ではありません。XPでは、新しいOSができることを実現できません。カーネル強制の保護モードをXPで提供するのは実質的に不可能です。Direct2Dと同等の機能(DirectWriteは難しいかもしれませんが)は実現可能ですが、かなりの労力が必要になります。いずれにせよ、アプリケーションがそのようなことをする必要はないはずです。これらはOSが行うべき仕事であり、Windows VistaとWindows 7は実際に実行しています。そして、これらの機能をサポートしているのはXPとVistaだけではありません。 

CompizとCairoのおかげで、Linuxは3Dアクセラレーションによるデスクトップコンポジションと3Dアクセラレーションによる2DベクターAPIを備えています。Quartz ExtremeとQuartzGLはMac OS X向けに同様の機能を提供しています。Mac OS X 10.6には、WindowsのMandatory Integrity Control(MCI)と同様の機能を提供するセキュリティフレームワークも組み込まれており、SELinuxは長年にわたりLinuxに同等の保護を提供してきました。これらの機能がWindows VistaやWindows 7ほど広く利用されているわけではありませんが、現代のオペレーティングシステムに備わっていることは明らかです。

新しいグラフィック API に、Windows Vista と Windows 7 のセキュリティ上の利点 (非常に優れているため、すべての Web ユーザーがブラウザーにサポートを要求するべき利点) を組み合わせると、新しい OS が確かに Windows XP の機能を超えていることは明らかです。はい、XP が新しい当時と同じように今日でもすべての機能を備えていることは私も認めます。しかし、ユーザーは OS にもっと多くのことを要求する必要があるとも言えます。2001 年の機能セットではもはや十分ではありません。特に Windows Vista は実際には何も新しいものを提供していないという意見もよく耳にしますが、確かに新しい機能は提供しています。ソフトウェアがこれらの新しい機能を活用するのに時間がかかっただけです。つまり、世の中には最新のオペレーティング システム、つまり最新のブラウザーに最適なプラットフォームとなるオペレーティング システムがあります。XP は実際にはその 1 つではありません。時代遅れなのです。

323件のコメント

  1. 最も読まれている記事の最初の記事のリスト画像:マスク氏のケタミンに関する投稿、プーチン大統領が彼のセキュリティクリアランスの公開を促進