Internet Explorer 7 でのセキュリティの互換性問題の調査

Markus Mielke

Dave Massy

Microsoft Corporation

January 31, 2006

日本語版最終更新日 2006 年 9 月 13 日

注 : この情報は暫定的なものであり、変更されることがあります。

また、日本語版を作成するにあたり、旧い情報の一部を最新のものに更新いたしました。

概要

Windows Vista、Windows XP Service Pack 2、および Windows 2003 Service Pack 1 の Internet Explorer 7 (IE7) には、セキュリティに関する多くの新機能が含まれており、一部の Web アプリケーションやサイトではこうした新機能が互換性の問題の原因になる可能性があります。IE7 には、IT プロフェッショナルが IE7 のセキュリティの新機能に起因する Web アプリケーションや Web サイトの動作の変更点を評価する場合や、IE7 にアップグレードする際に互換性をテストする場合に役立つようにデザインされたアプリケーション互換性ログ記録があります。マイクロソフトでは、互換性の問題を検索する公式ツールキットをリリースしています。開発者や IT プロフェッショナルはそれまで暫定ツールキットを使用して、アプリケーションと IE7 との互換性のテストを開始できます。IE7 のセキュリティ機能によってコンテンツがブロックされる場合は、このツールによってコンテンツがブロックされた理由が説明されます。

ログに記録される情報

IE7 では、形式の正しくない URL を使って IE を欺こうとする危険性を防ぐために、URL を解析し、RFC ガイドラインを満たしていることを確認します。IE7 は、次の 2 つの状況で特定のURL 情報をログに記録します。

URL の解析

To help stop exploits that involve fooling IE with an malformed URL, IE7 will parse URLs and make sure they meets RFC guidelines. IE7 will log certain URL information in the following two situations.

  1. 入力された URL (またはブラウザに求められた移動先の URL) が RFC ガイドラインに準拠していないため、URL の作成に失敗したとき。このようなエラーでは、次の情報がログに記録されます。

    • 作成できなかった URL

    • URL を作成できなかった理由

    URL の作成は、次の理由で失敗する可能性があります

    • 0x800c000e - URL のセキュリティ検証に失敗しました。

    • 0x800c0002 - URL の構文が正しくありません。

    • 0x8007007b - ホスト名が IDN の規則に従っていません。

    • 0x80070057 - URL が無効です。

    • 0x8007000e - URL を処理するメモリが不足しています。

  2. IE7 で作成または解析したURL が IE6 と異なる場合は、両方の URL がログに記録されます。

HTTPS のセキュリティの強化

IE7 で Web サイトの証明書に関する問題を検出した場合にログが作成されます。IE では、問題のあった証明書を所有する URL と、検出した問題の種類をログに記録します。

次に、IE によってログに記録される証明書の問題の一部を示します。

  • 12037 - 証明書の日付が無効です。

  • 12038 - 証明書が無効です。名前とドメインが一致していません。

  • 12045 - 証明機関が無効です。

  • 12055 - 上記 3 つのエラーの任意の組み合わせ。

  • 12057 - 失効の確認に失敗しました。

  • 12170 - 証明書が失効しています。

詳細については、「HTTPS Security Improvements in Internet Explorer 7」(英語) を参照してください。

国際化ドメイン名

IE7 では、国際化ドメイン名 (IDN) をサポートします。IE では、ドメイン名が Punycode ホスト名に変更されるたびにログを作成し、そのホスト名をログに記録します。詳細については、「Internet Explorer 7 での国際ドメイン名のサポート」 を参照してください。

クロスドメイン バリア - スクリプト URL のブロック

IE7 では、クロスドメイン スクリプトの実行をブロックする際に多くの調査を行います。IE7 では、スクリプトURL に危険性が存在する場合はブロックします。スクリプト URL をブロックすると、そのスクリプト URL の呼び出し元の URL とスクリプト URL 自体をログに記録します。次のいずれかにあてはまる場合は、ログが作成されます。

  1. スクリプトを実行するターゲット ウィンドウが存在しない。

  2. ターゲット ウィンドウが HTML ウィンドウではない。

  3. スクリプト URL に関連付けられたコンテキストが存在せず、IE がスクリプト URL の呼び出し元を認識しない。

  4. スクリプト URL が長すぎる。

  5. 特定のセキュリティ設定でスクリプトが禁止されている。

  6. スクリプト URL が必要とするクロスドメイン アクセスがブロックされている。

クロスドメイン バリア - リダイレクトの緩和

IE7 では、クロスドメイン攻撃の危険性が存在する場合は DOM オブジェクト内でのリダイレクト ナビゲーションをブロックします。リダイレクト ナビゲーションをブロックすると、ブロックした URL をログに記録します。

ActiveX オプトイン

Internet Explorer では、ActiveX コントロールの攻撃対象となる側面を削減するために、ユーザーは ActiveX コントロールの初回使用時に使用するかどうかを選択する必要があります。IE では、ActiveX コントロールがブロックされ、ユーザーが有効にする必要があるときに、Windows イベント ビューアにログを作成します。ログには、ActiveX がブロックされたページの URL と共に次の情報が記録されます。

  • ブロックされたActiveX コントロールの GUID (CLSID)

  • ActiveX コントロールの発行者

  • ActiveX コントロールの名前

  • ブロックされた理由

コントロールがブロックされる場合、理由には次のコードのいずれかが設定されます。

  • 0 - 理由不明でコントロールがブロックされた

  • 1 - 以前に使用されたことがないため、コントロールがブロックされた

  • 2 - スクリプトに対して安全ではないため、コントロールがブロックされた

詳細については「ActiveX Security: Improvements and Best Practices」(英語) を参照してください。

クロスドメイン フレーム ナビゲーション

IE ではバージョン7 から、IE のあるウィンドウまたはフレームから別のフレームにアクセスや移動を試みるとナビゲーションがブロックされ、別のフレームにはアクセスできません。IE では、こうしたナビゲーションをブロックすると、次の情報をログに記録します。

  • ソース URL - 別のフレームに移動を試みたページのURL

  • ターゲット URL - 移動先フレームのURL

  • ターゲット フレーム名 - 移動を取り消された、ナビゲーション先のフレームの名前

CSS の修正

IE7 では、いくつか主要な CSS の問題点に修正が行われたため、レンダリング エンジンが大幅に機能強化されました。こうした問題点は、さまざまな不正侵入行為を回避するために開発者が力を注いでいたものです。IE7 ではこうした回避策の多くが必要なくなり、その結果、回避策を利用していたサイトの中には、レンダリングやレイアウト上の問題が生じるものもあります。IE7 では、開発者がこのようなサイトや回避策を見つけるのを支援するために、IE7 の機能強化によって不要になった回避策が見つかるたびにログが作成されます。次の一覧は、IE7 で行われた CSS の修正点の一部を示しています。

フィッシング詐欺検出機能

IE7 ではユーザー保護を目的に "フィッシング詐欺検出機能" という機能を導入しました。フィッシング詐欺検出機能では、サイトがフィッシング サイトであると報告された場合にその Web サイトをブロックできます。また、サイトがフィッシング Web サイトに共通する特性を備えている場合にユーザーに警告を行うこともできます。IE7 では、Web サイトがフィッシング Web サイトの疑いがあると報告されたかどうかをログに記録します。ユーザーの Web サイトが、誤ってフィッシング サイトであるとフラグが設定されている場合は、[ツール] メニューからそのサイトがフィッシング Web サイトではないことを報告できます。次に、フィッシング詐欺検出機能に関連するログ情報を示します。

  • 0 - 報告されているフィッシング サイト

  • 1 - 疑いのあるフィッシング サイト

保護モード

Windows Vista の IE は、さまざまな攻撃からユーザーを保護するために、低い整合性レベルで実行されます。保護モードの IE では、レジストリやファイル システムへの書き込みが制限されます。IE7 では、書き込みアクセスが拒否されたり、別の場所に仮想化されたときに、情報をログに記録します。次に、保護モードのログ記録の詳細について示します。

  • ModuleName は、セキュリティ保護されたオブジェクトにアクセスするプロセスを呼び出したファイル名です。

  • VirtualizationAction は、書込み操作の結果を示し、次のいずれかの値になります。

    • InterceptedWrite は、操作が互換性層で遮断されたことを示します。

    • WriteIgnored は、書込み操作を試みたプロセスが昇格したブローカーであるため、操作が無視されたことを示します。

    • CreateVirtualCopy は、互換性層によって仮想化された場所にオブジェクトのコピーが作成されたことを示します。

    • CreateNew は、互換性層によって仮想化された場所に新しいオブジェクトが作成されたことを示します。

  • ObjectType は、File または Registry のいずれかです。

  • APIName は、操作を試みた関数 (CreateFile や RegOpenKey など) を示します。

  • ReqObjectPath は、操作オブジェクトが変更を試みたオブジェクトの場所です。オブジェクトにパスがなければ空白になります。

  • NewObjectPath は、書込み操作が正常に行われたときに、その操作で変更されたオブジェクトを示します。

  • APIResult は、書込み操作を試みた API 関数が返した結果を示します。

  • LastError は、API 関数が受け取った最新のエラーです。

詳細については、「保護モードの Internet Explorer の理解と機能」を参照してください。

Application Compatibility Toolkit 5.0 ベータ版

Application Compatibility Toolkit 5.0ベータ版を入手してご試用いただけます。詳しくは「Application Compatibility」(英語)をご参照ください。

Tariq Sharif は、Internet Explorer チームのプログラム マネージャです。

Page view tracker