検索
連載

Windowsでダウンロードしたアプリがブロックされずに実行できるのはなぜ?山市良のうぃんどうず日記(218)

Windowsには古くから、インターネットからダウンロードした実行可能ファイルを不用意に実行しないように警告する機能が備わっています。でも、その機能、最近目にしなくなったと思いませんか?

PC用表示 関連情報
Share
Tweet
LINE
Hatena
「山市良のうぃんどうず日記」のインデックス

山市良のうぃんどうず日記

NTFSデータストリームのよい教材だったのに……

 インターネットからダウンロードした実行可能ファイルを一時的にブロックして警告する機能は、古くは「Windows添付ファイルマネージャー」とも呼ばれ、Windowsのかなり古いバージョンから備わっていました。

 この機能は、MicrosoftのWebブラウザ(「Internet Explorer《IE》」や最近は「Microsoft Edge」も)が使用する「インターネットオプション」の「ゾーン設定」(アプリケーションと安全でないファイルの起動:ダイアログを表示する)、「エクスプローラーシェル」(Explorer.exe)、NTFSファイルシステムの「NTFSデータストリーム」で実現されています。

 MicrosoftのWebブラウザを使用して、実行可能ファイルをNTFSボリューム上のパスにダウンロードすると、インターネットオプションのゾーン設定に従って、代替データストリームとして「Zone.Identifier」にゾーンIDが格納されます。代替データストリームは、ファイルの本体とは別にファイルシステムがファイルに対して持つ付加的な属性のことです。

 Webブラウザまたはエクスプローラーからダウンロードしたファイルを実行しようとすると、ゾーンIDを検出して、本来であれば以下の画面1のようなダイアログボックスを表示するのですが、最近、この画面を目にする機会がほとんどなくなった気がします。別の目的のために、画面1のスクリーンショットが必要だったのですが、期待通りに機能が発動せず、少し焦りました(画面1があるということは筆者の問題は解決済みです)。

画面1
画面1 インターネットからダウンロードされたファイルをブロックするWindowsの古くからの機能が動作したところ

 古いバージョンのWindows(「Windows 7」以前)では、エクスプローラーでファイルのプロパティを開き、「全般」タブにある「ブロックの解除」ボタンをクリック(「Windows 10」以降は「許可する」チェックボックスをオン)してNTFSデータストリームを削除(Windows 10の場合は変更)しない限り、このダイアログボックスが毎回表示されるため、セキュリティのためとはいえ、少し煩わしかったりもします。

 Windowsの古くからあるこの機能は、NTFSデータストリームを説明するのによい教材だったのですが、「Windows 8.1」やWindows 10では警告なく実行できてしまうのです(画面2)。なお、NTFSデータストリームはWindows標準の「MORE」コマンドやWindows Sysinternalsの「Streams(Streams.exe)」ツールを使用して参照できます。

画面2
画面2 最近のWindows(Windows 8.1やWindows 10以降)では、インターネットからダウンロードされたことを示すゾーンIDのデータストリームがあるにもかかわらず、ダウンロードした実行ファイルを無警告で起動できるようになった

Microsoft Defender SmartScreenがスマートに許可していました

 答えはすぐに見つかりました。ダウンロードしたファイルには、「Zone.Identifier」とは別に「SmartScreen」というNTFSデータストリームが設定されていました。

 SmartScreenは、IE 8で「SmartScreenフィルター」として導入され、その後「Windows 8」で「Windows SmartScreen」としてWindowsに統合された機能です。Windows 10の最近のバージョンでは、「Microsoft Defender SmartScreen」と呼ばれるようになりました。この機能は、従来の添付ファイルマネージャーによく似ていますが、オンラインで「スマート」に安全性を判断し、問題がない場合は警告なく自動的に許可するところが違います。

 SmartScreenが有効な状態でインターネット接続を切断し、ダウンロードしたファイルを実行すると、エクスプローラー(添付ファイルマネージャー)の警告ではなく、SmartScreenの「現在、SmartScreenを使用できません」というダイアログボックスが出現し、「実行」「実行しない」ボタンを提示します(画面3)。つまり、エクスプローラーにある従来の機能の前に、SmartScreenが働いているため、従来のダイアログボックスを目にすることがなくなったというわけです。

画面3
画面3 インターネット接続を切断してダウンロードファイルを実行すると、SmartScreenのダイアログボックスにブロックされる

 SmartScreenを無効(Windows 10以降の場合は「Windowsセキュリティ」の「アプリとブラウザーコントロール」にある「評価ベースの保護設定」から)にした状態で、インターネットから実行可能ファイルをダウンロードして実行すると、SmartScreenではなく、従来のダイアログボックスが表示されます(画面4)。

画面4
画面4 SmartScreenを無効にすると、NTFSファイルストリームに設定されたゾーンIDに従って、古いバージョンのWindowsと同様の警告ダイアログボックスが表示されるようになる

Windows 11にもあるのかな? 探してみよう

 ところで、エクスプローラーのファイルのプロパティにあるゾーンIDを削除するオプションは、Windows 10 バージョン1703までは「ブロックの解除(K)」(英語では「Unblock」)ボタンでしたが、Windows 10 バージョン1709以降は「ブロックの解除(K)」チェックボックス(英語では「Unlock」)に変更されました。

 こうしたUIのちょっとした変更は、日本語ローカライズ時におかしくなることがあります。Windows 10 バージョン1702までは表示エリアの制約により、最後の方が見切れてしまった状態でした。この問題はWindows 10 バージョン1709で修正され、同じ意味で3文字短縮した「許可する(K)」(英語では「Unblock」のまま)に修正されました(画面5)。

画面5
画面5 左からWindows 8.1、Windows 10 バージョン1703まで、Windows 10 バージョン1709以降の「ブロックの解除(K)」/「許可する(K)」オプション

 「Windows 11」ではWindows 10からいろいろとUIが変更されているようなので、思わぬところにおかしなことが隠れているかもしれません。

 Windows Update時にすぐに見つかるのは置いておいて、筆者が見つけたものの一つに、システムロケールの設定周りで「キャンセル」(Cancel)が「後日」(Later)ボタンに変更されていました。設定的には「Cancel」よりも「Later」の方が適切な場面なのですが(再起動をしない選択であって、設定をキャンセルするわけではないので)、日本語がちょっと気になります。

 表示(ローカライズ)の問題だけで、機能に影響しなければ……と割り切ればよいのですが、いまWindows 11にしたら誰もが毎月(Windows Update後の再起動時)目にすることになる「あなたはそこにXX%です」がまともな表現に修正されるまでは、筆者のメインのPCをWindows 11にアップグレードする気にはなりません。

筆者紹介

山市 良(やまいち りょう)

岩手県花巻市在住。Microsoft MVP 2009 to 2022(Cloud and Datacenter Management)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows版Docker&Windowsコンテナーテクノロジ入門』(日経BP社)、『ITプロフェッショナル向けWindowsトラブル解決 コマンド&テクニック集』(日経BP社)。


Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る