| [Security] | |||||||||||
XP SP2のZoneIdとは?
|
|||||||||||
|
|||||||||||
| 解説 |
Windows XP Service Pack 2(以下XP SP2)のInternet Explorer(IE)では、セキュリティ対策の一環として、新たに「ZoneId(ゾーンID)」と呼ばれる仕組みが導入された。インターネット・ゾーンからダウンロードしたファイルや、Outlook Expressで保存したメールの添付ファイルに対して、ZoneIdと呼ばれる一種の「目印(マーカー)」を付けておき、エクスプローラなどでダブルクリックして実行しようとすると、本当に実行してもよいかどうかがユーザーに対して問い合わせられる機能である。そして、ユーザーが許可した場合にのみプログラムの実行が行われる。従来は、いったんローカルにダウンロードすれば何の制約もなくファイルを実行することができたが、ZoneIdにより、インターネット・ゾーンから取得したファイルに対しては、ある程度の制約を課すことができるようになった。
例えば、以下はマイクロソフト社のサイトからダウンロードしたgdidettool.exeという実行プログラム(「Microsoft GDI+ 検出ツール (KB873374)」からダウンロードしたツール)をローカルのNTFSディスク上に保存し、それをエクスプローラ上でダブルクリックして実行しようとしたところである。
![]() |
|||||||||||||||||||||
| GDI+の脆弱性検出ツールのダウンロード・ファイルを実行しようとしたところ | |||||||||||||||||||||
| マイクロソフト社のサイトからダウンロードしたGDI+の脆弱性検出ツールのダウンロード・ファイルをローカルのNTFSディスク上に保存し、それをエクスプローラ上でダブルクリックしたところ。すぐに実行されずに、このような警告ダイアログが表示される。 | |||||||||||||||||||||
|
通常の実行ファイルならばすぐに実行されるのだが、インターネット・ゾーンからダウンロードしたファイルであれば、このようにローカルのディスク上に保存されている場合でも、警告ダイアログが表示される。これは、IE上でダウンロードして直接実行しようとした場合の挙動と同じである。いきなり実行するのではなく、一度ユーザーに警告して判断を仰ぐことにより、いくらかでも(不正なファイルの実行による)危険性を軽減することができる。
実行ファイルだけでなく、アプリケーションによっては、このようなファイルに対していちいち警告メッセージを表示したり、実行の許可を求めたりする場合がある。例えば次の例は、Visual Studio .NET 2003でソリューション・ファイルを開こうとしているところである。インターネットからダウンロードしたファイルの場合は、このように確認のためのダイアログが表示される。
![]() |
||||||
| Visual Studio .NET 2003でオープンがブロックされたところ | ||||||
| インターネット・ゾーンからダウンロードしたファイルを開こうとすると、このような確認ダイアログが表示される。そうでないファイルの場合は表示されない。 | ||||||
|
ZoneIdの仕組み
ZoneIdは、XP SP2のIEと、NTFSの「ストリーム」の両方の機能を使うことによって実現されている。
ストリームとは、ファイルの中に格納されているデータの列(流れ)のことである。一般にファイルといえば、単なるバイト・データの集まり(連なり)として扱われているが、NTFSを始めとして、ストリームをサポートしたファイル・システムでは、1つのファイルの中に複数のストリームを格納することができる。ストリームを利用すれば、メインとなるデータ・ストリームのほかに、補助的な情報を格納したり、複数のバージョンのファイル・データを同時に格納したりすることができる。ストリームを指定しなければ、メインとなる(無名の)ストリームにしかアクセスできない。ストリームを理解しない従来のアプリケーションからは、メインのストリームのみが見える。
XP SP2のIEでは、ダウンロードしたファイルに対して「Zone.Identifier」という名前のストリームを付加し、インターネット・ゾーンからダウンロードしたことを表す属性データを記録している。実際にこの内容を確認するには、次のようにすればよい。
C:\Download>more < gdidettool.exe:Zone.Identifier …ストリームの読み出し |
ストリーム・データへアクセスするには「ファイル名:ストリーム名」という書式を利用する。この例では、「gdidettool.exe」がダウンロードしたファイル名で、その後ろに付けた「:Zone.Identifier」がストリーム名の指定である(ストリーム名では大文字/小文字は関係ない)。ここではmoreコマンドでストリームの内容を確認しているが、例えば「notepad gdidettool.exe:Zone.Identifier」とすればメモ帳で内容を確認したり、書き換えたりすることができる。
この例で分かるように、Zone.Identifierストリームにはテキスト形式でゾーン情報が記録されている。ここでは「ZoneId=3」となっているので、3はインターネット・ゾーンを表していると考えられるが、実際には3以外の値は記録されることはないようである(ほかのゾーンからのダウンロードの場合は、このストリーム自体が存在しない)。
このようなファイルをエクスプローラでアクセスし、そのプロパティを表示させると次のようになっている。
![]() |
||||||
| ZoneId情報を持つファイルのプロパティ | ||||||
| インターネット・ゾーンからダウンロードしたファイルのプロパティには、このようにセキュリティ情報が表示される。 | ||||||
|
一番下に表示されている[セキュリティ:]の部分が、インターネット・ゾーンからダウンロードされたファイルであることを表している。それ以外のファイルでは、このようなセキュリティ情報は表示されない。Zone.Identifierストリームが存在していて、さらにZoneId=3となっていれば、このようなセキュリティ情報が表示される。ただし実際には、3ではなく、1〜4のいずれであってもこのセキュリティ情報が表示されるが、ダブルクリックによる実行のブロック(警告ダイアログの表示)は、ZoneId=3の場合だけに限られるようである。
ZoneId情報の手動削除
上のダイアログには[ブロックの解除]というボタンがあるが、これをクリックすると、ZoneId情報(正確にはZone.Identifierストリーム)が削除され、ZoneId情報を持たないほかのファイルと同様に扱われるようになる。つまりエクスプローラ上でダブルクリックしても、警告ダイアログが表示されずに従来のようにすぐに実行されるし、Visual Studio.NETでも警告なしでファイルを開くことができるようになる。安全であることが分かっているファイルの場合は、手動でZoneId情報を削除し(ブロックを解除し)、わずらわしい警告ダイアログが表示されないようにするとよいだろう。
意図しないZoneIdの欠落に注意
以上のように、ZoneIdの仕組みは実際にはNTFSのストリーム機能に大きく依存している。XP SP2のIEでは、インターネット・ゾーンからファイルをダウンロードした場合、ファイルの内容を書き込むだけでなく、ZoneIdを表すストリーム情報も同時に書き込んでいるのである。そのため、ダウンロードしたファイルから何らかの理由でZoneIdのストリーム情報が欠落してしまうと、この機能は働かなくなる。
実際にはこのような欠落は、頻繁に起こる可能性がある。例えばNTFS以外のファイル・システム(FAT16やFAT32など)へファイルをダウンロードしたり、NTFSから非NTFSファイル・システムへファイルをコピーした場合である。FATファイル・システムはストリーム機能をサポートしていないので、このようなファイル・システムへファイルをダウンロードしたり、コピーしたりするとZoneId情報を付けることはできない。そういう操作を行うと、ZoneId情報が欠落して、通常のファイルと同じように扱われる。ネットワーク上の共有フォルダを利用する場合は、それがNTFSファイル・システムならば正しくZoneId情報は保存されるが、そうでなければ(FATファイル・システムを公開していて、そこへコピーしたりすると)やはりZoneId情報は欠落する。
また、ストリームをサポートしていないプログラムを利用する場合にも、ZoneId情報の欠落が生じる可能性がある。エクスプローラやコマンド・プロンプト上のcopyコマンド、標準のバックアップ・ツールなどはストリームをサポートしているため、これらでファイルをコピーやバックアップしてもZoneId情報は正しく維持される。だがサード・パーティ製のプログラムやフリー・ソフトウェア、従来のWindows 9xしかサポートしていないプログラムなどでファイルをコピーすると、ストリーム情報がコピーされず、ZoneId情報が欠落する可能性がある。
なおエクスプローラを使う場合でも、.ZIPファイル(圧縮ファイル)を扱う場合には注意が必要である。ダウンロードした.ZIPファイルを解凍する方法として、XP SP2では次の2とおりの方法があるが、方法1ではZoneId情報が欠落するので注意が必要である。
・方法1―ダブルクリックによる解凍
エクスプローラで.ZIPファイルの内容を解凍する第1の方法は、単にエクスプローラで.ZIPファイルをダブルクリックしてその内容(ファイルやフォルダ)を一覧表示させ、ドラッグ&ドロップでほかの場所へコピーすることである。この方法は簡便ではあるが、ZoneId情報はコピーされない(欠落する)ので、注意が必要である。
・方法2―展開ウィザードによる解凍
もう1つの方法は、エクスプローラ上で.ZIPファイルを選択し、[ファイル]メニューの[すべて展開]を選ぶか、右クリックしてポップアップ・メニューから[すべて展開]を選択する方法である。このメニューを選ぶと、.ZIPファイルの[展開ウィザード]が起動され、展開先を指定するとファイルが展開される。この方法では、手間はかかるが、展開された各ファイルには正しく元の.ZIPファイルと同じZoneId情報が付けられる。
![]() |
||||||
| 展開ウィザードを使った.ZIPファイルの展開 | ||||||
| .ZIPファイルに付けられたZoneId情報を維持したまま、ファイルを解凍するには、ウィザードを使う必要がある。 | ||||||
|
■
以上の例で分かるように、ZoneId情報の欠落は頻繁に起こる可能性がある。ZoneIdがあるからXP SP2は安全だと考えるのではなく、あくまでも、(少しばかり)安全性を高めるための1つの機能にすぎないことを認識しておく必要がある。いくら確認ダイアログが表示されても、よく考えずに[OK]をクリックしてしまっては意味がないので注意していただきたい。![]()
|
||||||||||||||||||||||||||||
| 「Windows TIPS」 |
ホワイトペーパー(TechTargetジャパン)
- 第207話 究極の人事システム (2010/2/9)
部長、わが人事部が開発した究極の人事評価システムがついに完成しました! これで不要な社員が一発で分かります! - WindowsTIPS (2010/2/5)
− netshコマンドでTCP/IPのパラメータを設定する
− Virtual PC 2007の共有NATで利用可能なアドレス範囲
− スタンバイ復帰でパスワード入力を要求されないように - 仮想環境でActive Directoryを利用する (2010/2/4)
仮想環境にADをインストールすれば、自由にActive Directoryドメイン・ネットワークを構築して実験できる - 第206話 バナー広告案 (2010/2/2)
いまどきWebマーケティングが不可欠なのは分かるが、強烈な競合に並べてバナーなんか出して、勝ち目はあるのか?
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | 企業の仮想化に足りない“発想”とは? 仮想化運用管理のキモは意外なところに! New! |
| ◆ | 操作もマニュアルも分かりやすい! ユーザー視点で開発されたPC管理ツール New! |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |

| ◆ | セキュリティを知り尽くす上野氏が登壇! @ITメールソリューションLive! in Tokyo |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
| ◆ | 世界に通用するストレージの作り方とは? 製品に込めた思いを富士通の開発者に聞く |

| ◆ | OSSで手間も時間も、障害も減った―― 「マピオンの事例」オープンソース活用法 |
| ◆ | 「ノートPCの持ち出し禁止」で大丈夫? 情報漏えいを防ぐ管理手法とインフラは? |
| ◆ | 1日の処理を1秒に――MySQLの達人が語る 「コスト削減」できるチューニング |

| ◆ | ドキュメント作成を自動化して、SEの作業 効率を大幅アップ! Visio 2007の魅力 |
| ◆ | 急速に広がるHyper-Vでのサーバ仮想化 そのベストプラクティスをデルが解説 |
| ◆ | @IT主催セミナーで語られた、「担当者に 求められるセキュリティ対策」をレポート |

| ◆ | @IT「Windows 7」 特設サイトオープン! 最新情報・移行ノウハウを公開しています |











