【IIS7】 セキュリティに向けてのさらなる一歩 - コンポーネント構造

IIS7 のなんといっても一番の特徴はコンポーネント化、あるいはモジュール化です。ですが、そのことを語る前にふれなければいけないのがセキュリティとIISの取り組みだと考えています。

IISでよく言われているポイントとしては攻撃がされやすい構造でセキュリティ面が不安ではないかという点です。IIS6 そしてそれを含む Windows Server 2003 では開発の段階からセキュリティを第一義に考えたデザイン(Secure By Design)になっており、実際に下記のサイトでご確認いただけるように「緊急」レベルのパッチは製品出荷以来 ご提供することなくお客様に運用いただける製品レベルとなっております。

製品/テクノロジーで「Internet Information Services 6.0」を選択して検索してみてください。
https://www.microsoft.com/japan/technet/security/current.aspx

※セキュリティに関しては弊社日本のセキュリティチームのブログがこちらにございますので、Technetのセキュリティページと合わせご参照いただき、最新の情報を入手ください。

しかし、マイクロソフトではもっとIISを改善することができると考えて Longhorn Server の開発のうち、IISのデザインをする上で大きな構造変更をすることにしました。それがモジュール化です。

何故モジュール化をすることでセキュリティに関して改善ができるかと言えば、パッチを適用するシチュエーションを考えていただければわかりやすいです。パッチが提供された場合にまずはご利用のサーバーでそれを適用する必要があるかどうかをアセスするフェーズを実施なさっていると思います。その際の判断としてどの機能に脆弱性があるのかというアプローチをとります。具体的な例で言えば例えばHTMLコンテンツを処理する機能に脆弱性が見つかったとします。IIS6では残念ながら一枚岩な構造になっており、簡単に言えば 多くの機能を含むプログラムファイルの交換をする必要が出てしまいます。しかし、モジュール化されていれば、HTMLコンテンツを処理する機能を含むモジュールを交換すれば済むことになります。

一方で、モジュール化されていることによってそもそも不必要な機能についてはモジュールをエンジンにプラグインしないため、メモリー上にも存在しない状態を作れます。メモリーにロードされている状況に対する攻撃であってもこの背景から構造面から予防することができます。メモリー上にロードされないことによって より軽装なWebサーバーともなり、リソース消費の面でも有利になります。さらに今までサーバー本体機能のカスタマイズを行う場合、ISAPI(IISのAPI)を利用して実装する必要がありましたが、IIS7では開発チームが利用するAPIは公開されたものとなり かつ、.NETによるマネージドコードで開発できることになります。このことにより、サーバー本体機能を司る独自モジュールの開発も可能となり、利用に最適なサーバーを組み立てることが容易にできるようになります。マイクロソフト以外のベンダーが有用なモジュールを提供するモデルも考えられ、多くの人のビジネスチャンスが広がります。

他にもメリットがありますが上記を総合的に判断し、モジュール化を決定した訳です。Windows Vista (一部Edition)でも搭載されますから入手可能な方は是非 一度お試しいただくことをお奨めいたします。