マルウェア(ウイルス)付き日本語メールが拡散しているが、マルウェア(ウイルス)入りのZIPファイルは、ZIPの中身を実行しなければ感染することはない。誤って実行してしまった場合も、通常は「セキュリティの警告」が表示され、実行をキャンセルできる。しかし、環境によっては警告が出ないことがあり、注意が必要だ。
危険な添付ファイルをうっかり実行してしまうことを防ぐ警告のメカニズムと、確実に警告が出るようにする方法を解説する。
■「ZoneID」――インターネット取得ファイルを識別するマーク
Windowsには、インターネットから取得したファイルを識別できるように、ファイルに「ZoneId」というマークを付ける機能がある。同社製をはじめとする主要なメールソフトやブラウザは、メールで受信した添付ファイルやネットからダウンロードしたファイルにZoneIdを設定し、インターネットから取得したことを表す情報を格納する。
アプリケーションなどの実行型のファイルを開く際には、このZoneIDがチェックされ、ネットから取得した場合は「開いているファイル - セキュリティの警告」を表示して確認を求める。マイクロソフトのOffice製品やアドビシステムズの「Acrobat Reader」などのZoneIDに対応するアプリの場合には、「保護されたビュー」という機能を制限した環境でファイルを安全に開く。ファイルを開くだけで感染してしまう事態には、ならないようにしているのだ。
■「ZoneID」が付かない場合
ZoneIDは、ファイルをダウンロードするメールソフトやブラウザが、この機能に対応していなければ付加されない。ZIPファイルの場合には、ZIPファイルを扱うアーカイバ(解凍ソフト)が未対応だと、ZIP内のファイルにZoneIDが付加されない。USBメモリーなどにコピーした場合にも、このZoneIDが欠落してしまうことがしばしばある。ZoneIDは、Windowsのハードディスクの標準フォーマットである、NTFSというファイルシステムの機能を使って付加している。USBメモリーなどに使われているFATファイルシステムにない機能なので、コピーするとZoneIDが失われてしまうのだ。
■「ZoneID」の有無を確かめる方法
メールソフト、ZIPファイルの解凍ソフトのいずれかがZoneIDに対応していない場合には、添付ファイルの中身を開くと、警告なしでいきなり悪質なプログラムが実行してしまうので深刻だ。マルウェア感染の最後のストッパーになってくれるZoneIDが、ちゃんと付加されているかどうか、被害にあう前に確かめておこう。
・ファイルのプロパティで設定を確認する
ファイルにZoneIDが正しく設定されているかどうかは、ファイルのプロパティで確認できる。ダウンロードしたファイルに「ZoneId」が正しく設定されていれば、[全般]タブの最下段に「セキュリティ:このファイルは他のコンピューターから取得したものです。このコンピューターを保護するため、このファイルのアクセスはブロックされる可能性があります。」と表示される。
・ZIPファイルを作成し自分宛てに送付してみる
メモ帳などで適当な内容のテキストファイルを作成し、ZIPファイルにして自分宛てにメールで送ってみよう。受信したメールの添付ファイルをディスクに保存し、ZIPファイルやZIPファイルの中のファイルのプロパティを表示し、ZoneIDが設定されているかどうかを確認する。ディスクのNTFSであるにもかかわらず、ZIPファイルにZoneIDが付加されない場合は、メールソフトが未対応である可能性が高い。添付ファイルを警告なしで実行してしまう危険性があることを承知の上で使い続けるか、対応しているメールソフトに変更しよう。
・ZoneID未対応の解凍ソフトを使用していると場合
ZIPファイルにはZoneIDがあるが、中のファイルにはないという場合には、「Lhaplus」などのZoneID未対応の解凍ソフトを使用している可能性が高い。実は、ZIPファイルの中のファイルにはZoneIDはなく、ZIPファイルに設定されたZoneIDを解凍ソフトが継承させることによって、ZoneIDを保持している。そのように作られた対応ソフトに変更するか、Windows標準のものを使用すると、ZIPファイルの中のファイルにもZoneIDが継承されるようになる。
■ZIPファイルを扱うWindowsの標準機能
エクスプローラーが備えるWindowsの標準機能を使用した場合には、ZoneIDが継承されるほか、ZIPファイルの中のファイルのアイコン偽装や、RLOのような拡張子偽装もある程度回避できるようになる。
アイコン偽装回避の仕組み:ZIPファイルの中に入った状態のファイルに対し、ファイルに格納されているアイコンを使わず、拡張子に関連付けられている既定のアイコンを使用するようになっている。ZIPファイルから取り出すと、エクスプローラーはファイル内のアイコンを表示するようになる。
拡張子偽装回避の仕組み:標準機能がシステムの標準文字コードであるUnicodeではなく、シフトJISという文字コードでファイル名を格納していることに起因する。シフトJISは、1980年代に当時のパソコン用に作られた、日本語だけをサポートする文字コードだ。サポートしている文字種は極めて限定されており、規格外の文字や記号等は使用できない。標準機能で作成するZIPファイルには、ファイル名に規格外の文字を使用したファイルは格納できず、他のツールで作成したZIPファイルに、規格外の文字を使用したファイル名が格納されている場合には、ファイル名が文字化けしてしまう。文字列を右から左に読ませるRLOは、Unicodeの機能であるため、シフトJISの世界では拡張子は偽装できず、ただの文字化けしたファイル名になってしまう。
【操作方法の解説】
上記で説明した操作は次の手順で行うことができる。ぜひ試していただきたい。
・ファイルのプロパティを表示する
エクスプローラーでディスク上のファイルを選択し、マウスの右クリックメニュー(タッチパネルは長押し)の[プロパティ]を選択する。
・ZIPファイルを作成する
エクスプローラーでZIPファイルにしたいファイルを1つまたは複数選択し、マウスの右クリックメニュー(タッチパネルは長押し)から[送る]→[圧縮(ZIP形式)フォルダー]を選択する。
・ディスクのファイルシステムを確認する
エクスプローラーでドライブを選択し、マウスの右クリックメニュー(タッチパネルは長押し)の[プロパティ]を選択する。[全般]タブの「ファキルシステム:」欄で、使用されているファイルシステムが確認できる。
・Windowsの標準機能にZIPファイルを処理させる
エクスプローラーでZIPファイルを選択し、ファイルのプロパティを開く。[全般]タブの[プログラム:]欄に、ZIPを処理する現在のプログラムが表示される。[変更]ボタンをクリックすると、指定したアプリに変更できる。「エクスプローラー」を選択して[適用]すると、拡張子の関連付けが変更され、Windowsの標準機能を使ってZIPファイルを処理するようになる。
(2016/06/30 ネットセキュリティニュース)