Insider's Eye

セキュリティ機能を強化するWindows XP Service Pack 2

デジタルアドバンテージ
2003/11/28


 別稿のInsider's Eye「Service Packのロードマップに見るセキュリティ保守計画の課題」や「PDC 2003レポート No.2」の記事などで述べたように、現在マイクロソフトでは、2004年前半の提供を目指して、Windows XP用のService Pack 2(以後XP SP2と略記)の開発を進めている。このXP SP2においても、従来のService Packと同様に数々の不具合の修正やセキュリティ・パッチが含まれることになる。本来SPでの機能強化は最低限にとどめることになっていたが、Windows OSの脆弱性を攻撃する昨今のウイルスの蔓延により、過去のXP SP1などと違ってこのXP SP2では、デフォルト状態でよりWindows環境がセキュアになるように、セキュリティに対する大幅な機能強化が行われようとしている。

 XP SP2は現在ベータ版のテストが開始されたところであり、一般向けにはまだリリースされているわけではないが、その大まかな仕様についてはいくらか公開されている。概要については、先月米国ロサンゼルスで開催されたProfessional Developers Conference 2003で発表されたし、関連する技術ドキュメントが「MSDN―Windows XP Service Pack 2: A Developer's View(英語)」としても公開されている。本稿ではこれらの情報に基づき、XP SP2に含まれる新機能・機能強化点のうち、特にセキュリティ関連の項目についてまとめておく。

ICFをデフォルトでオンにする

 Windows XPには、ネットワークからの攻撃を防御するために、「ICF(Internet Connection Firewall)」が用意されている。だがデフォルトではこの機能は無効になっているため、せっかくICF機能が利用できるにもかかわらず、知らずにこれを有効化していないユーザーも多い。そこでXP SP2では、デフォルトでICFをオンにし、すべてのユーザーが標準でICFを利用できるようにする。ただしICFを有効にすると外部からのファイル共有の利用(SMBプロトコルを利用した共有ファイルの公開)が禁止されることになるので、XP SP2の導入によって、ネットワークがつながらないといったトラブルが多発する可能性もある。そのため、ICFに対してプロファイルが導入され、会社用とか家庭用などといった環境別にICFプロファイルを簡単に切り替えて使えるようになる予定だ。またActive Directoryのグループ・ポリシーによるICFの制御や、コマンドラインでの制御なども行えるようになり、設定のためのユーザー・インターフェイスも改良される予定である。

ブート時のファイアウォールの無効期間をなくす

 別稿の「TIPS―ファイアウォールの空白時間に注意」でも触れたように、Windows XPのICFには、システムの(再)起動時にわずかではあるが(10〜20秒程度)、これが機能していない期間がある。ネットワーク・インターフェイスが起動してから、ICFのサービスが起動するまでに若干のタイムラグがあるためだ。この時間帯に外部からのワーム攻撃などを受けると、システムがこれに感染してしまう可能性がある。そこでXP SP2では、新たにICF「boot-time policy」という機構を導入し、ブート時にも静的なフィルタが機能するようにする。これにより、ICF起動前には、DHCPDNSといった本当に必要なプロトコルだけを通すようにし、システム起動時の安全性を確保する。

アプリケーション・ホワイト・リストを使った動的なポートの開閉

 あるアプリケーションがICF環境下で外部と通信するためには、静的なポートの開放のほか(「TIPS―イントラネットでファイアウォールを使う(Windows XP編)」のように管理者自身が設定する)、アプリケーション自身でポートの開閉を制御するAPIを発行するという方法がある。だがプロトコルが複雑だと制御も複雑になり、アプリケーションに不具合があると、ポートが開いたままになる可能性がある。XP SP2では、新しくICF用のアプリケーション・ホワイト・リスト(クリーンなアプリケーションの一覧リスト)が導入される。このリストにアプリケーションを登録しておくと、そのアプリケーションが起動している間だけ自動的に指定されたポートが開き、終了するとポートが閉じるといった、動的な制御が行われる。アプリケーション自身で制御するのではないため、アプリケーションの不具合によるポートの制御ミスなどを未然に防ぐことができる。

RPCやDCOMに対するより細かな制御

 RPC(MS-RPC)やDCOMインターフェイスは、しばしばウイルスやワームの攻撃対象となってきた。そのため、XP SP2では内部アーキテクチャにいくらかの変更を加え、セキュリティを強化して、潜在的な脆弱性を減少させるようにしている。

 まずRPC関連では、(デフォルトでは)RPCへの匿名呼び出しを許可しないように変更された。必ず認証を行うようにし、ワームによる無差別な攻撃から防御するようにしている。だがそのため、RPCを呼び出すアプリケーションにおいては、若干の変更が要求されることもある。詳細については先の「MSDN―Windows XP Service Pack 2: A Developer's View(英語)」などを参照されたい。

 DCOM関連では、まずDCOMの呼び出しやアクティベーションなどでACL(アクセス制御リスト)によるアクセス権のチェックを取り入れ、それをパスしない限りDCOMの機能を利用することができなくなる。またローカルとリモートからのDCOM呼び出しを区別し(従来は区別していなかった)、リモートからの呼び出しにはより低い権限しか与えない、といった制御を行う。

メモリ保護機能の強化

 XP SP2では、プログラムの実行環境において、「Execution Protection」もしくは「NX(No Execution)」というメモリ保護機構の導入も行う。これは仮想記憶におけるページごとに、実行を許可したり、不許可にしたりするという機能である。従来のWindows XPでは、プログラムのアドレス空間のうち、コード領域だけでなく、ヒープ領域やスタック領域でも命令コード(プロセッサの持つネイティブなインストラクション)を実行することが可能になっていた。ヒープやスタック上にコードをロードしたり、コードを動的に生成したりして、それを実行するためにこのような仕組みが(過去のWindows時代からずっと)維持され続けてきたのである。

 だがバッファオーバラン(バッファ・オーバーフロー)を悪用するウイルスは、例えばスタック上のバッファ領域にコードを含んだ大量のデータを送り込み、戻りアドレスを書き換えて、スタック上のコードを実行させる、といった手法を使っている。このような潜在的な脆弱性を防止するため、XP SP2(および今後出荷されるすべてのWindows OS)では、あらかじめコード領域としてマークされたメモリ空間上でのみ、命令コードを実行できるようにする。デバイス・ドライバや特別なアプリケーションなどで、従来との互換性が必要ならば、ヒープやスタックを割り当てるときに、実行可能であると特別に宣言する必要がある。つまり今後のWindows OSでは、アプリケーションによっては互換性の問題が生じる可能性がある。XP SP2の適用にあたっては、この点に留意して、アプリケーションの互換性問題が生じないことを十分にテストしてから大規模な展開を行うようにすべきだろう。またヒープ領域やスタック領域で命令コードを実行するような特殊なソフトウェアを開発する場合は、これを明示的に宣言するようにコードを変更しなければならない。

 なおこの機能を利用するためには、ハードウェア仮想記憶におけるサポートが必要なので、当初利用可能なプラットフォームはItaniumか、「PAE(Physical Address Extension)をサポートしたAMD64アーキテクチャのプロセッサが必要となっている。

パッチの整理と機能強化

 パッチの適用の手間などを省くため、現在のパッチ適用のための方法にもいくらかの改良が行われることになっている。

 まず現在では何種類もあるパッチの種類を統合し、コマンドライン・オプションを統一する。そしてロールバック(失敗した場合に元に戻す機能)の装備やパッチ・サイズの縮小(差分だけをダウンロードして適用させる)、Windows UpdateやMBSA(Microsofto Baseline Security Analyzer)、SUS(Software Update Services)、SMS(Software Managemen Server)での統一的なスキャナの装備(パッチ対象のソフトウェアの検出方法の微妙な差異をなくし、すべてで同じ結果が得られるようにする)などを実現する。また「hot patching」と呼ばれる、再起動の必要回数を減少させるパッチの適用方法の導入や、システムの完全な再起動ではなく、パッチによって修正された一部のプロセス(Internet Explorerや各種のサービスを開始、管理するsvchost.exeなど)だけの再起動で済ませる方法なども取り入れられる予定となっている。

メール/Webブラウザの強化

 Webブラウザやメール関連でもいくらかの機能強化が行われている。例えばInternet Exploreにおける「ポップアップ広告」のブロック機能では、ユーザーの望まない広告Webページの表示をブロックする。

ポップアップ広告のブロック機能
これはPDC2003で公開されたLonghornのテクニカル・プレビュー版に含まれるInternet Explorer 6.05(英語版)の実行例。新しく[Tool]メニューに[Block Pop-up Windows]という項目が追加されている。これをチェックしておくと、JavaScriptでウィンドウを新たに開いてポップアップ表示させるような広告はすべてブロックされ、表示されなくなる。ただし別ウィンドウを開くようなタイプのアプリケーション(例:銀行のインターネット・バンキングやインターネット・ショッピングにおける会員情報などを入力するウィンドウなど)もすべてブロックされてしまうので、注意が必要(ブロックすると、短い音が鳴り、ツール・バー上の[!]マークのボタンが点滅する)。必要ならばポップアップ・ウィンドウを許可する一覧リストに手動で登録する。
  これを実行すると、ブラウズの履歴やキャッシュ、クッキー値、フォームに入力したデータ、記憶させたパスワードなどを簡単に、1クリックですべて消去することができる。これもシステムを安全にするための機能の1つ。
  ポップアップ・ウィンドウをブロックするためのメニュー項目。うっとうしいポップアップ広告などがすべて表示されなくなる。

 またこれ以外にも、以下のような機能の強化・変更が行われる予定である。

  • ローカル・マシンやローカル・イントラネット・ゾーンのロック(内容変更の禁止により、不用意に不必要な機能を許可してしまうのを防ぐ)
  • ActiveXコントロールのロードやインストール時の通知の明確化(よりはっきりとユーザーに通知する)
  • 署名のないActiveXコントロールのブロック
  • 電子メールの添付ファイル処理のためのAPIの改善(アプリケーションで電子メールの添付ファイルを処理するための、より高度でセキュアな一連のAPIの提供。これらを使うことにより、アプリケーションによらない、安全で統一的な添付ファイルの処理が可能になる)
  • MIMEヘッダと一致しない、もしくは拡張子のないようなファイルのブロック
  • ActiveXコントロールなどの容易な管理(有効化、無効化など)

 最後の項目は、Webブラウザの機能を拡張するActiveXコントロールなどを、簡単に一覧表示させたり、有効や無効にしたりするためのユーザー・インターフェイスのことを指す。

ActiveXコントロールの管理
Longhornプレビュー版のInternet Explorer 6.05(英語版)に含まれるアドインの管理画面の例。Webブラウザに組み込まれているActiveXコントロールの一覧を簡単に表示させ、有効にしたり、無効にしたりできる。従来のIEよりも分かりやすくなっている。
  システムにインストールされているActiveXコントロールの一覧。
  ブロックした回数。
  EnableかDisableを選択することにより、簡単に有効/無効を切り替えることができる。

 セキュリティ機能を中心に、多くの機能強化や改良などが行われるXP SP2であるが、セキュリティ確保のために内部的にもいくらかの仕様変更なども行われるようなので、既存のプログラムが動作しなくなったり、ネットワーク機能が動作しなくなったりする可能性も高くなりそうである。XP SP2が正式にリリースされた場合、管理者や開発者は、従来のXP SP1よりも入念な互換性チェックを実施する必要があるだろう。End of Article

関連記事(Windows Server Insider内)
Insider's Eye
Insider's Eye―Service Packのロードマップに見るセキュリティ保守計画の課題
運用
HotFix管理を始めよう
 
 「Insider's Eye」


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間