4.5 Internet Explorer のセキュリティ機能

4. 新機能や機能変更に伴う互換性問題

この章では、以下のような新機能や機能変更に伴う、互換性問題について紹介します。

Internet Explorer (IE) の保護モード

Windows XP と IE (Internet Explorer) 6 までの環境では、さまざまなコードが IE から実行される可能性がありました。特に管理者権限でアクセスしている場合には、攻撃によるデータの書き込みや変更、破壊がおこなわれたり、悪性のプログラムがインストールされたりする可能性があります。

図 4-19: Windows + IE 6

図 4-19: Windows + IE 6

Windows Vista の IE 7 または IE 8、Windows 7 の IE 8 では、IE は「保護モード」で実行されます。これは IE が「低 IL」で実行されるということです。つまり、厳しく制限された権限で実行されるため、攻撃によるデータの書き込み、変更、または破壊や、悪意のあるコードのインストールの可能性を大幅に軽減できます。また、認証なしに自己インストールをおこなう悪意のあるコードからシステムを保護できます。保護モードの IE は、UAC、UIPI、整合性レベルと連動します。保護モードの IE は、低 IL で動作しているため、ユーザーのプロファイルやシステム ファイル、レジストリキーへの書き込みは許可されません。安全な領域であるインターネット一時ファイル フォルダー、履歴フォルダー、Cookie フォルダー、お気に入りフォルダー、一時ファイル フォルダーなどへの書き込みのみが可能です。

アドオンなどによる標準権限の領域 (ユーザー プロファイルのドキュメント フォルダーや HKCU レジストリ ハイブ) への書き込み処理は、以下の安全な領域へリダイレクトされます。これにより、互換性を保っています。

ファイル %LocalAppData%\Microsoft\Windows\Temporary Internet Files\Virtualized 
レジストリ HKCU\Software\Microsoft\Internet Explorer\InternetRegistry 

保護モードの IE は、制限された権限で動作しています。しかし、ブローカー プロセスを使用することで、上位権限を取得することもできます。ブローカー プロセスには、以下の 2 種類があります。

ブローカーの種類 権限 整合性レベル プロセス
管理者ブローカー 管理者権限 高 IL IEInstal.exe
ユーザーブローカー 標準権限 中 IL IExplore.exe

図 4-20: Windows Vista/Windows 7 + 保護モードの IE 8

図 4-20: Windows Vista/Windows 7 + 保護モードの IE 8

図 4-20 のように、ユーザー プロファイルにアクセスしたい場合には、標準権限が必要です。そのため、「ユーザー ブローカー」を使用します。また、Active X コントロールをインストールしたい場合は、管理者権限が必要です。そこで、「管理者ブローカー」を使用します。図 4-21 のように、上位にある 2 つの特権ブローカーによって、IE はユーザーの同意を得て上位処理を実行できます。

図 4-21: 保護モードのIEのアクセス制御メカニズム

図 4-21: 保護モードの IE のアクセス制御メカニズム

ページのトップへ


IE の保護モードにより、既存アプリケーションでは、以下のような問題が発生することがあります。

  • アドオンなどで上位権限のリソースにアクセスできない
  • アドオンなど、IE にロードされたモジュールの設定情報を、IE 以外のプロセスと共有できない

これらの問題が発生する場合、以下の回避方法が考えられます。

  • 「管理者として実行」

    IE を管理者として実行します。スタート メニューで IE を選択する際に、マウスを右クリックして、「管理者として実行」を選びます。

  • 保護モードを無効化

    IE の保護モードを無効にします。これは、IE のインターネット オプションで設定することができます。

保護モードを無効にして問題が発生しなくなる場合、保護モードの可能性が高いといえます。また、保護モードを無効にしても問題が発生する場合、UAC の問題である可能性があります。

  • IEIsProtectedModeProcess()

    保護モードで動作しているかどうかの判定することができます。

  • IEGetWriteableHKCU()

    HKCU 下の書き込み可能なレジストリを取得することができます。

以下のフォルダーやレジストリは、低 IL のまま利用することができます。

  • %UserProfile%\AppData\LocalLow
  • %Temp%\Low
  • HKCU\Software\AppDataLow

上記以外のフォルダーに保存したい場合には、以下の手順が必要です。

  1. 「%UserProfile%\AppData\LocalLow」フォルダーに、暫定版のファイルを作成します。
  2. IEShowSaveFileDialog() を実行し、「名前を付けて保存」ダイアログを表示します。これにより、ユーザーはファイルの保存先を決定することができます。
  3. IESaveFile() を使用して、ユーザーが指定した場所にファイルをコピーします。
  4. この手順を使用した場合には、ユーザー ブローカーにより、中 IL の権限が取得されます。

ページのトップへ


デジタル証明書と HTTPS

IE 7 と IE 8では、Web サイトから以下のようなデジタル署名が提示された場合、HTTPS へのナビゲーションをブロックします。

  • 現在の URL ホスト名とは異なるホスト名が設定されているデジタル証明書
  • 信頼されていないルート証明機関から発行されたデジタル証明書
  • 期限切れのデジタル証明書
  • 無効なデジタル証明書

たとえば、信頼されていない証明機関から発行されたデジタル証明書がサイトから提示されたとき、IE 6 では、図 4-22 のようなダイアログ ボックスが表示されました。ここで、「はい」ボタンをクリックすると、HTTPS を使用してページが表示されました。

図 4-22: IE 6 でのセキュリティ警告

図 4-22: IE 6 でのセキュリティ警告

しかし、IE 7 と IE 8 では同じ問題が発生すると、ページがブロックされるため、表示することはできません。このような問題が発生する場合には、デジタル証明書や Web サーバーの環境を変更しなければなりません。以下に対応例を示します。

  • デジタル証明書の FQDN (Fully Qualified Domain Name) と、保護されたページの FQDN を一致させます。たとえば、「secure.example.com」Web サーバー上のデジタル証明書のホスト名 (サブジェクトの CN) が「www.exemple.com」と設定されている場合は、両者が一致しないのでエラーになります。
  • 信頼された証明機関から発行されたデジタル証明書を使用します。IE のインターネット オプションで、信頼された証明機関の一覧を確認したり、追加したりすることができます。

ページのトップへ