IE7のセキュリティ強化によってIE6で使っていたWebアプリケーションが使えなくなるトラブルを招く可能性がある。ユーザーが遭遇する現象は2通りある。一つは警告画面が出て次の画面に進めなくなってしまうというもの。もう一つが,ActiveXコントロールが動かないという現象だ。

 こうした現象は,社内の業務用Webシステムを利用する際に起こりやすい。社内システムは公開サーバーよりも緩いセキュリティ設定で運用されていることが多いからだ。

SSLの警告で業務が止まる

 警告画面が出てWebアプリケーションが止まるのは,SSL関連のセキュリティ・チェックが厳密化されたためである。サーバー証明書をルーズに扱っていたり,古いサーバー・マシンを使っていると,こうした問題が起こる(図1)。

図1●フィッシング警告画面
図1●フィッシング警告画面
古い証明書を使っている場合や自社の証明書発行局(CA)で証明書を発行している場合に警告が出るため,企業内Webアプリケーションでの混乱が予想される。

 ブロックされるのは,(1)SSLv3/TLSv1より低いバージョンで接続している,(2)サーバー証明書が信頼された証明書発行機関のものでない,(3)証明書に記載されているマシン名と実際のマシン名が異なる,(4)証明書の有効期限切れ,(5)同じWebページにHTTPSとHTTPで送られてくるデータが混在している──といった場合だ。(1),(2),(3)については,社内システムではよくあることで,トラブルが発生しやすい。

SSLの設定変更や新規証明書の取得で解決

 (1)のケースで問題が生じそうなのが,10年近く前に構築した古いSSLサーバー。最近のSSLサーバーではSSLv3を使う場合がほとんどだが,古いマシンの場合はパフォーマンスを出すために,SSLv2をあえて使用しているケースがある。

 (2)で引っかかりそうなのが,社内の認証局で発行した証明書である。認証機関からサーバー証明書を取得するとコストがかかり過ぎるとして,自力で社内に認証局を構築し,そこで発行した「勝手証明書」を使うケースが少なくない。

 (3)は,同じドメインにあるマシンに同じ証明書を使っている場合である。例えば,SSL VPNを追加導入したとき,公開サーバーである「www.example.com」の証明書をSSL VPNサーバー「vpn.example.com」にそのまま割り当てたりするとブロックされてしまう。

 それぞれ,対策は難しくない。(1)の問題は,SSLサーバーの設定を変更し,SSLv3で通信するようにすれば解決する。(2)と(3)の対策は,新しいサーバー証明書を外部の証明書発行機関に発行してもらうことが根本的な解決法だ。

社内用ゾーンが適用されない

 ActiveXコントロールが動かない問題は,社内LANで使われるセキュリティ・ゾーンの初期値の変更と,Windows Vistaのセキュリティ機構が影響している。こちらは,SSLの場合とは違ってクライアントでの対処が必要になる。

 「セキュリティ・ゾーン」は,接続先のサーバーによってIEのセキュリティ設定を自動的に切り替える仕組み。ゾーンにはインターネット用の「インターネット・ゾーン」,社内用の「イントラネット・ゾーン」,ユーザーや管理者がURLを登録して利用する「信頼済みサイト・ゾーン」と「制限付きサイト・ゾーン」がある。このうち,問題になるのが信頼済みサイト・ゾーンとイントラネット・ゾーンの扱いである。

 信頼済みサイト・ゾーンは,IE6ではセキュリティ強度の初期設定が「低」だった。これが,IE7では「中」に変わった(図2)。

図2●厳しくなるゾーンの扱い
図2●厳しくなるゾーンの扱い

 この変更は,例えば,ローカル・ディスクにインストールしてあるExcelの部品を使って処理をするようなWebアプリケーションを構築している場合にトラブルを引き起こす。インターネット・ゾーンではIEからローカルにある部品を利用することは禁止されているが,信頼済みサイト・ゾーンはセキュリティ強度が「低」なので許可されており,問題なく使える。

 いくつかの企業では,社内のサイトを信頼済みサイトに登録しておくことで,ローカル部品へのアクセスを許可してきた。ところが,セキュリティ強度が「中」のIE7では,ローカル部品へのアクセスは基本的に禁止されてしまう。

 従来イントラネット・ゾーンと判定されていたサイトがインターネット・ゾーンと判定され,トラブルに陥るケースもある。IE6まではワークグループのマシンから社内のWebサーバーにアクセスしてもイントラネット・ゾーンになったが,IE7からはドメインに参加していないとインターネット・ゾーンとして扱われてしまう。その結果,信頼済みサイト・ゾーンの場合と同様の問題が起こる。

 こうした問題の対策は,IE7が稼働しているマシンのゾーンの設定を,問題がないポリシーに変更することである。ただし,1台ずつ設定を変更する手間がかかることは避けられない。

「ブローカー」がAxtiveXをブロック

 ここまで見てきたのは,基本的にIEだけに依存する話だが,OSとしてWindows Vistaを利用している場合に発生する問題もある。Vistaでは新しいセキュリティ機構を採用すると同時に,IE7の実行権限を低く設定してある。このため,IE6やWindows XP上で稼働するIE7では動作したはずのActiveXコントロールがVistaマシンでは動作しないという現象に見舞われるケースがある(写真1)。後述するように動作環境をWindows XP上で動作するIE7に近付けることで解消できるが,セキュリティ・レベルを落とすため考えどころだ。

写真1●IE7の保護モードによって表示される警告
写真1●IE7の保護モードによって表示される警告

 IE7の実行権限の降格は,利用するユーザーの権限によらず,IE7を一般ユーザー権限より低い権限で動作させるというもの。この権限で動作させることで,IEを介したOSへの攻撃を防止するのが狙いである。例えば,悪意あるActiveXコントロールがIE7経由でOSに悪意あるプログラムをインストールしようとする攻撃からの防御が可能になる。

 ただし,低い権限で動作していると,アクセスできる場所が限定されてしまう。例えば,画像をダウンロードして「マイ ピクチャ」のフォルダに保存するといった,普通の操作ができなくなる。そこで,Vistaでは「ブローカー」と呼ぶプログラムを用意している(図3)。

図3●フィッシング警告画面
図3●Windows VistaとWindows XP上でのIE7の動作環境
Vistaの場合,ブローカーを通してOSの機能を使うようにすることで,利用できる機能を制限し,悪意あるソフトウエアのインストールなどを防御する。この機能制限によって従来のアプリケーションが使えなくなるケースが出てくる。
[画像のクリックで拡大表示]

 ブローカーは,IE7の権限ではアクセスできない領域や機能を使おうとした場合に,この処理を仲介し,危険な操作をブロックする。この仕組みによって,Webアプリケーションで使っているActiveXコントロールが悪意あるものとして扱われ,使えなくなることがあるのだ。

 問題が出た場合の対処方法は,利用しようとしている機能/領域が一般ユーザー権限でアクセスできるか,管理者権限が必要かで分かれる。一般ユーザー権限でアクセスできる領域や機能だけを使っているなら,「保護モード」を解除するだけでアクセスできるようになる。具体的にはメニューの「ツール」にある「インターネット オプション」の「セキュリティ」タブを開いたところにある保護モードのチェックボックスをはずすことで解除できる。管理者権限を必要とする場合は,IE7を管理者権限で動かすことで回避できる。

 しかし,これらの方法はIE7のセキュリティ・レベルを落とすことにほかならない。一時的に使うのは仕方がないが,最終的にはWebアプリケーションの設計を考え直す必要がある。