こんにちは!今回はダウンロードしたファイルがWindowsによって実行をブロックされてしまう現象について解説していきたいと思います。
事象
ダウンロードしたファイルを実行しようとすると下のような画面になってしまうことがあります。
わざわざワンクッションおいて実行ボタンを押さないと実行することができません。
人によっては、この画面が出たり出なかったりして危険なファイルを拾ってしまったのか?と心配になるかと思います。
ですが、この画面は「ゾーン識別子」というファイルにくっついてくる属性によって管理されているため、安全でも表示されてしまいます。
原因
原因は先ほど述べた「ゾーン識別子」が付与されているために発生します。事象の発生する実行したいファイルを右クリックし、「プロパティ」を開いてみましょう。
このように最下段にセキュリティの項目が追加されています。
これが存在する場合、先ほどのブロックや警告が表示されてしまうのです。
ゾーン識別子は、インターネットなどのネットワークからファイルをダウンロードする際に付与されるものです。そのため、実行可能な形式(.msiや.exeなどの拡張子)の場合、セキュリティ対策としてこれを参照して、本当に実行して良いか確認させているのです。
解決方法
①セキュリティ項目にて実行を許可する
見ての通り、プロパティ画面には許可をするためのチェックボックスが存在します。チェックを入れてOKを押せば、その時点で信頼したとみなして、次回からはブロック画面が表示されなくなります。
実際にチェックを入れてOKしてみると、次からプロパティを開くと下記のようにセキュリティの項目ごと消失します。
これによって解決することができます。
②一度圧縮・解凍してから実行する
ゾーン識別子はブラウザなどからインターネット経由で入手したファイルに付与されます。
つまり、ダウンロードされた状態のファイルを再生成することでゾーン識別子を回避することができます。
具体的には、圧縮解凍ツールを用いてゾーン識別子の付与されているファイルを圧縮・解凍するとファイルを疑似的に再生成することができます。圧縮解凍ツールは識別子を付与しないため、今回の事象を回避することができます。
この性質から、圧縮前の状態(.zipファイルや.rarファイルなど)でダウンロードし、解凍してから実行するタイプの場合ではブロックされないという動きをするようですね。
このことから、実行可能形式のファイルをインターネットにアップロードする際はzipなどの圧縮形式にしておくことであらかじめこの動きを抑制することができます。
③ゾーン識別子を付与しないようレジストリを変える
一応レジストリでゾーン識別子を付与させないよう設定が可能です。
ユーザー毎の設定になるので、一度設定したからと言ってすべてのユーザーで反映されているわけではないのでご注意ください。
キーパス:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Attachments サブキー:SaveZoneInformation 値:REG_DWORD 1(付与する) ※(2の場合は付与する)
ログオフ/ログインした後にこの設定が有効になります。
設定後にダウンロードしたファイルのプロパティを見るとセキュリティ項目がでないことを確認してください。
あとがき
今回はゾーン識別子が付与されてしまうことによるブロックを抑制するための方法を紹介させていただきました。
仕組みが分かってしまえば簡単なものなのですが、いかんせん勝手に付与するものなので、それぞれの使っている環境によって発生しちゃうんですよね。
にしても圧縮解凍するだけで回避できるのにはちょっと笑いましたw
こんな単純なものでよいんかーい!ってなりましたよ。
不正ファイルの実行を回避するには最後の砦のような機能です。運用している環境によってはこれをオフにしてしまうのは少し大胆な気がします。
内部で共有する際など、すでに安全が確定しているファイル以外は外さないほうが良いように思います。例によって活用されるのは自己責任ですが…
何かのお役に立てれば幸いです。
コメント