MSIE のセキュリティ設定について

Last modified: Fri May 25 16:08:05 2007 +0900 (JST)


注意: 以下の記述は IE 5.01 時代のもので、きちんとメンテナンスされていない。 IE 6.0 に対応した記事としては、たとえば @IT の IEのセキュリティ設定を変更してセキュリティ機能を強化する クライアントが危ない IEのセキュリティ設定 (日経 BizTech) がある。IE 6.0 では一部のデフォルト値が変更されている (IE 5.5 以前よりも安全になった) ことに注意されたい。 さらに、MS02-023 以降の IE 用累積 patch を適用すると、制限つきサイトゾーンにおける frame / IFRAME の利用が禁止され、安全性が高まる。


 このページの内容は、いかなる意味においても保証できないことを警告しておく。 このページの内容に基く設定を行う場合は、行う者の自己責任において実行されたい。 なお、以下における MSIE はバージョン 5.01 を前提としている。

 このページの内容は、今となっては驚くほど不完全なので、そのつもりで参照するように。


インターネットオプション - セキュリティ

 MSIE のデフォルト設定では、各ゾーンに対するセキュリティレベルは次のように設定されている。

ゾーン セキュリティのレベル
インターネット
イントラネット 中低
信頼済みサイト
制限付きサイト

 そもそもこれらゾーンがいったい何を意味するのかについては MSIE のヘルプ (キーワード「セキュリティ」「ゾーン」あたり) を参照されたい。 このうちイントラネットゾーンについてはヘルプの説明では誤解しやすい。 JWNTUG Newsletter に ローカル イントラネット ゾーン とは何か?」 という記事を書いたので、これを参照されたい。

 各レベルにおける設定詳細は次のようになっている:

設定項目 セキュリティのレベル
中低
ActiveX コントロールとプラグイン ActuveX コントロールとプラグインの実行 無効 有効 有効 有効
スクリプトを実行しても安全だとマークされていない ActiveX コントロールの初期化とスクリプトの実行 無効 無効 無効 ダイアログ
スクリプトを実行しても安全だとマークされている ActiveX コントロールのスクリプトの実行 有効 有効 有効 有効
〃 (IE 6.0)
無効 有効 有効 有効
署名済み ActiveX コントロールのダウンロード 無効 ダイアログ ダイアログ 有効
未署名の ActiveX コントロールのダウンロード 無効 無効 無効 ダイアログ
Cookie コンピュータに保存されている Cookie の使用許可 無効 有効 有効 有効
セッションごとの Cookie の使用許可 (保存なし) 無効 有効 有効 有効
Microsoft VM Java の使用許可 安全性 - 高 安全性 - 高 安全性 - 中 安全性 - 低
〃 (IE 6.0)
無効 安全性 - 高 安全性 - 中 安全性 - 低
スクリプト Java アプレットのスクリプト 無効 有効 有効 有効
アクティブ スクリプト 有効 有効 有効 有効
スクリプトによる貼り付け処理の許可 無効 有効 有効 有効
その他 IFRANE のプログラムとファイルの起動 無効 ダイアログ ダイアログ 有効
UserData の常設 無効 有効 有効 有効
ソフトウェア チャンネルの許可 安全性 - 高 安全性 - 中 安全性 - 中 安全性 - 低
デスクトップ項目のインストール 無効 ダイアログ ダイアログ 有効
ドメインの異なるサブフレーム間の移動 無効 有効 有効 有効
ドメイン間でのデータソースのアクセス 無効 無効 ダイアログ 有効
ファイルのドラッグ/ドロップ、またはコピー/貼り付け ダイアログ 有効 有効 有効
暗号化されていないフォームデータの送信 ダイアログ ダイアログ 有効 有効
ダウンロード ファイルのダウンロード 無効 有効 有効 有効
フォントのダウンロード ダイアログ 有効 有効 有効
ユーザ認証 ログオン ユーザ名とパスワードを入力 イントラネットゾーンでのみ自動ログオン イントラネットゾーンでのみ自動ログオン 現在のユーザ名とパスワードで自動ログオン

 ここで注目したいのは、セキュリティレベルを「高」にしても、 「スクリプトを実行しても安全だとマークされている ActiveX コントロールのスクリプトの実行」と「アクティブ スクリプト」は有効になっている点だ。 これまでにも、「スクリプトを実行しても安全だとマークされている ActiveX コントロールのスクリプト」に buffer overflow する弱点などが複数発見されているし、「アクティブ スクリプト」に至っては非常に多くの弱点が発見されている。 これらの実行を許可していたのでは、高いセキュリティレベルを設定しているとは言えない。 開発元である Microsoft がこれら技術 (ActiveX、アクティブ スクリプト) を多用しているためこのようになっているのだろうが、現実問題として不安全なものは不安全だとみなすべきである。

 いづれの設定においても Java VM の使用が許可されている点にも注意が必要だ。 高いセキュリティレベルを設定するというなら Java VM の使用は無効にすべきだろう。 また、 IE 5 security vulnerablity - circumventing Cross-frame security policy using Java/JavaScript (and disabling Active Scripting is not that easy) で指摘 ([JavaHouse-Brewers:32588] Re: IE 5 security vulnerablity - circumventing Cross-frame security policy using Java/JavaScript で解説) されているように、Java アプレットから JavaScript を操作することができるため、 現実問題として Java の許可はすなわち JavaScript の許可となってしまう。

FIXME - 各項目詳説、推奨設定、一発設定のための .reg ファイル提示。

(どなたかおしえてください):

  1. 「Java アプレットのスクリプト」とは何なのか?

    Java なものには「Java アプリケーション」と「Java アプレット」があると思っていたが、 さらに「Java アプレットのスクリプト」というものがあるのか? (Java が全然わかってないので変な事を書いている可能性が高い……)

    → 高木さんからご教示いただきました。ありがとうございます。

    「Javaアプレットのスクリプト」とは、 JavaアプレットのメソッドをJavaScriptから呼ぶ機能です。 つまり、
        public class FooApplet extends java.applet.Applet {
            public void myMethod() {
                ...
            }
        }
    という内容のJavaアプレットがHTMLページに貼り付けられているとき、 そのHTMLページ上のJavaScriptで、
        document.applets[0].myMethod()
    とすると、(そのページ上の0番目のアプレットの) myMethod() メソッドが Java VM上で起動されるというもののようです。
    (MSの独自拡張のようですが、Java的にはかなり変。 静的な型というものを無視している。)

    2001.06.08 追記: MS 独自のものではないそうです。 参照: [memo:9] MSIE のセキュリティ設定について

  2. 「ソフトウェア チャンネルの許可」とは何なのか?

    そもそもソフトウェアチャンネルとは何か? 安全性の高中低は何がどのように異なるのか?

  3. 「Java の使用許可」の安全性設定 (高中低) はリーズナブルなものなのだろうか?

    たとえば、Java な人から見て、安全性 - 高で設定されている詳細は「安全性 - 高」だと言えるのだろうか?

    2001.06.08 追記: 高木氏によるコメントが投稿されている: [memo:10] Re: MSIE のセキュリティ設定について


参考資料


私について