XPSP2のIEにおけるローカルコンピュータゾーン上のHTMLファイルの危険性の評価(補遺)

補遺の書き出し

ダウンロードしたHTMLが危険かどうかの評価を万人に査定してもらうことは難しいであろうと思われます。たとえばzipなどでダウンロードして解凍してみたらreadme.htmlがありました。これを開いてみた時に安全にすごす術(すべ)はあるのでしょうか。

WindowsXPSP2においてどこかのサイトからダウンロードしてローカルに保存したHTMLをIEで開いたときに攻撃者の思う壺であってはならないはずです。

Mark of the Web

歴史的な必然性あるいは妥協によってMark of the Web(=Web のマーク)が生み出されました。ローカルに置かれたHTMLファイルがセキュリティー上どのような権限で動作すべきかをあらかじめHTMLファイルの作成者は指定できるのです。以下にMark of the Webの効能を書いておきます。

上の文書によれば、攻撃者は被害者のローカルコンピュータに置かれたHTMLファイルにおいてどのようなセキュリティー権限が付与されるのかを以下のように書いています。

Web ページで ActiveX またはスクリプトを実行する必要がある場合は、HTML コードに Web コメントのマークを付けることができます。この Internet Explorer の機能を使用すると、ローカル コンピュータ ゾーン以外のゾーンに HTML ファイルを強制的に配置することができ、コメントで指定された URL に適用されるセキュリティ テンプレートに基づいて、それらのファイルでスクリプトまたは ActiveX コードを実行できるようになります。たとえば、指定された URL が www.contoso.com である場合は、この URL が信頼済みサイトの一覧に表示され、そのページでは信頼済みサイト ゾーン用のセキュリティ テンプレートが使用されます。この設定は Internet Explorer 4 以降で機能します。HTML ファイルに Web コメントのマークを挿入するには、次のいずれかのコメントを使用します。 <!-- saved from url=(0022)http://www.<ユーザーの URL>.com --> このコメントを使用するのは、http://www.<ユーザーの URL>.com を、ページをホスティングするインターネットまたはイントラネットドメインの URL で置き換えて識別されるドメインに属するページに、Web のマークを挿入する場合です。URL の前には、Web のマークに使用する URL の長さをかっこで囲んで指定します。たとえば、(0022) のように指定します。 Web ページで ActiveX またはスクリプトを実行する必要がある場合は、HTML コードに Web コメントのマークを付けることができます。この Internet Explorer の機能を使用すると、ローカル コンピュータ ゾーン以外のゾーンに HTML ファイルを強制的に配置することができ、コメントで指定された URL に適用されるセキュリティ テンプレートに基づいて、それらのファイルでスクリプトまたは ActiveX コードを実行できるようになります。たとえば、指定された URL が www.contoso.com である場合は、この URL が信頼済みサイトの一覧に表示され、そのページでは信頼済みサイト ゾーン用のセキュリティ テンプレートが使用されます。この設定は Internet Explorer 4 以降で機能します。HTML ファイルに Web コメントのマークを挿入するには、次のいずれかのコメントを使用します。 <!-- url=(0022)http://www.<ユーザーの URL>.com から保存 --> このコメントを使用するのは、http://www.<ユーザーの URL>.com を、ページをホスティングするインターネットまたはイントラネットドメインの URL で置き換えて識別されるドメインに属するページに、Web のマークを挿入する場合です。URL の前には、Web のマークに使用する URL の長さをかっこで囲んで指定します。たとえば、(0022) のように指定します。

上の文書を字義通り読みますと、http://www.<ユーザーの URL>.com について被害者がどのようなサイトとしてIEにあらかじめ教え込んでいたかによって攻撃者の攻撃の難易度が決定することとなります。被害者がhttp://www.<ユーザーの URL>.comを制限付きサイトゾーンに登録しておけば攻撃者は何もできません。イントラネット−ゾーンならそれなりに何かするかもしれません。信頼済みサイトゾーンなら何をされても文句が言えません。

注目すべきことですが、上記のMicrosoftによる言明にも関わらず、http://www.<ユーザーの URL>.com が被害者の信頼済みサイトゾーンに登録されていても、Mark of the Web は単にインターネットゾーンの権限を与えるのみです。セキュリティー上は歓迎すべきことです。攻撃者がMark of the Web によって与えることのできる権限は以下のようになります。

  • インターネットゾーン
  • イントラネットゾーン(危険がある)
  • 制限付きサイトゾーン

イントラネットゾーンのMark of the Webに対処する

自宅でパソコンを使っている者にとってイントラネットゾーンのMark of the Webはやっかいです。本来イントラネットゾーンは不要です。放置しておくと攻撃者は以下のようなMark of the Webを使うかも知れません。これは仕様ですのでいかんともしがたいです。かなり強い権限です。


http://localdanakittohost/

これにより実在していなくともドットがないURLをMark of the Webにしてしまえば攻撃者の権限がイントラネットゾーンに昇格してしまいます。

これを避ける為自宅パソコンユーザの対処策の一例をあげることとしました。要は、IEがどういうときにURLをイントラネットとしてみなすのかについて設定しなおすことが可能なのです。企業内においては対策が微妙ですので別途システム管理者と御相談下さい。

  1. IEのツールメニューからインターネットオプションを選択します
  2. 表示されたインターネットダイアログボックスでセキュリティタブを選択します
  3. イントラネットアイコンを選択しサイトボタンを押下します。
  4. チェックボックスが3個あり既定値では全てにチェックがはいっておりこれによりIEイントラネットゾーンを決定します。「ほかのゾーンにないローカル(イントラネット)のサイトをすべて含める」「プロキシサーバーを使用しないサイトをすべて含める」「すべてのネットワークパス(UNC)を含める」の3個です。全てのチェックをはずしてください。

上記全てのチェックボックス以外に詳細ボタンがありまして特定の文字列のURLのみをイントラネットゾーンに追加することが出来ます。個人宅では使わないかな?企業ユース向けには利用方法を考えても良いかもしれません。細かな対応ができると思います。詳細で指定した情報はチェックボックスに優先します。

以上の処置によりいかなるMark of the Webを含むHTMLファイルもイントラネットゾーンの権限を得ることが非常に困難になります。抜け穴があるかどうかについては私にはわかりませんでしたが対処しておく価値は大いにあります。個人使用ではイントラネットゾーンなど使う機会はないでしょうから出来るだけ制限を加えておいたほうが良いのです。

イントラネットゾーンのMark of the Webに対処する(別解)

そもそもイントラネットゾーンにインターネットゾーンと同様の権限しか与えておかなければもっと簡単です。セキュリティー設定としては「中」以上がふさわしいでしょう。個人宅では「高」で構わないはずです。

信頼済みサイトゾーン

Mark of the WebによらずローカルにおかれたHTMLファイルに、さらに危険な信頼済みサイトゾーンの権限を与えることが可能です。IPAには報告済みです。自衛策としては、信頼済みサイトゾーンのセキュリティー設定を「中」以上にしておくことしかありません。是非しておいたほうが良いでしょう。

参考資料