UAC に関するアップデート情報
こんにちは。今回は Jon DeVaan が最近頂戴した UAC に関するフィードバックについてお話したいと思います。
Windows 7 を完了させるための作業の多くは、フィードバックへの対応に集中しています。UAC のフィードバックは、エンジニアリングの意思決定プロセスのいくつかの局面があって面白いです。この局面について探索すると、この e7 ブログに興味深い内容を登録できるのではないと考えました。これは UAC について語る第 3 回目です。Windows におけるこの機能の進化について興味のある方は、過去の 2つの投稿 (投稿 1 および 投稿 2) とみなさんから寄せられたコメントをお読みになるとよいでしょう。
これまでに Windows 7 ベータ版に対して寄せられた反応をうれしく思います。そして、RC (= Release Candidate、リリース候補版) に向けて、フィードバックや遠隔測定に基づいて製品にさらに磨きをかけるべく一生懸命作業中です。私たち Windows に従事している者はみな、自分たちの作業が世界中の非常に多くの人々に影響を及ぼすことを考えると謙虚になります。最近のフィードバックでは、人々がどんなに Windows に対して情熱を持っているか感じずにはいられません! 繰り返しになりますが、世界中の何億もの人にコンピュータの価値をもたらす仕事をしている驚くべきコミュニティの一部であることに対し、私たちは謙虚であり、ワクワクもしています。これまでにみなさんから寄せられた考えやコメントに対して、心より感謝申し上げます。
UAC は、「極」の立場とその中間にある立場を唱える (しかも、かなり強固に主張する) 支持者を持つ、幅広い観点を持つ機能のひとつです。今回のケースでは、一方の極を「セキュリティ」、その対極を「ユーザビリティ (使い勝手)」 としたいと思います。もちろん、実際にはこの問題は 2つの極のみが存在するものではなく、間には完璧に実行可能な設計ポイントがあります。世界中のセキュリティ専門家はこの基本的な緊張の下ずっとやってきて、とても安全なように設計されたシステムが確実に存在していて、それによって恩恵を受けるであろう人々から守られています。個人的な例を挙げると、私の銀行は最近オンライン バンキングのセキュリティ管理方法を変更したのですが、とても複雑で使いにくいので、銀行を変えようと思っています。本気です!
誤解を解く
みなさんが現在の UAC の設計に対してコメントしているように (そして、そのコメントに対してもコメントしていますが)、いくつかの物事の融合と一連の誤解があることは明らかで、UAC に対するエンジニアリングの意思決定についてお話しする前に、解決しておく必要があります。エンジニアリングの意思決定は、Windows XP SP2 が先駆けとなった secure development lifecycle principles の、特に SD3+C (Secure by Design; Secure by Default; Secure in Deployment; and Communications) の「Secure by Default (デフォルト設定で安全)」を重視しながら成されました。Windows 7 はこの原理を擁護しており、いくつもの投稿でお話してきたようにすべての人が適切な PC エクスペリエンスを感じられるようにすることに焦点を当てなおしています。
まず最初に解決すべき問題は、PC に入り込んで実行し始める悪意のあるソフトウェア (マルウェア) vs. それがひとたび実行するとどうなるか、についてです。マルウェアが承諾なしに PC に入り込む方法についての報告はまだありません。これまでに頂いたすべてのフィードバックは、マルウェアがいったん PC に入り込む方法を見つけて実行しているときの UAC の動作を心配するものです。UAC に関する報告は脆弱性を招かないとするマイクロソフトの立場は、報告は明示的な承諾なしにマルウェアがマシンに入り込む方法がそもそも示されていないからです。「脆弱性ではない」という立場を、私たちが問題の他の部分を真剣に捉えていないと思っている人もいるようです。しかし、私たちはすべてのフィードバックを真剣に受け止めていることを分かってください。
セキュリティの分野において「脆弱性」という言葉は特別の意味を持っています。マイクロソフトは、Microsoft Security Response Center (secure@microsoft.com) の中に世界有数のセキュリティ機関を持っており、巨大なエコシステム全体のセキュリティに対する脅威をモニターしたり、マイクロソフト製品に関係するあらゆる脅威や脆弱性への対応を管理したりしています。世界中のセキュリティのコミュニティで一般的に受け入れられている定義によると、最近のフィードバックは脆弱性に該当しません。なぜなら、そもそも悪意のあるソフトウェアがコンピュータに到達するのを許さないからです。
Windows Vista にある防御機能は、そもそもマルウェアが PC に入り込むのを防ぐものであることを指摘しておくべきでしょう。たとえば、Internet Explorer の使用中 (他のブラウザでも似たようなセキュリティの処置があります)、.vbs ファイルや .exe ファイルをブラウズしようとすると、下記のようなプロンプトが表示されます:
Internet Explorer 8 ではまた、マルウェアの広がりを阻止するためのたくさんの新しい機能が導入されました (https://blogs.msdn.com/ie/archive/2008/08/29/trustworthy-browsing-with-ie8-summary.aspx をご覧ください)。私のお気に入りのひとつは SmartScreen® Filter で、悪意のあるサイトへ移動しようとした際に分からせようとしてくれます。他にも、マルウェアが PC に入り込むのをより困難にする、可視的および潜在的な機能があります。
IE8 の SmartScreen® の画面
さらに、最近の電子メール プログラム (Windows Live Mail など) で添付ファイルを開こうとすると、悪意のあるファイルはブロックされます:
最近のフィードバックの多くは、そもそも Windows 7 はマルウェアが PC に入り込むのを未然に防ぐ方法が Windows Vista よりすぐれていることを考慮していません。Windows 7 では、マルウェアがインストールまたは PC 内で実行される前に阻止する能力を向上させることに焦点を当て続けていました。
第二の誤解を解くべき問題は、UAC の設定によって異なる動作についてです。Windows 7 では UAC の機能について 4つの設定があります。その 4つとは、「通知しない」、「プログラムがコンピュータに対して変更を加えようとするときのみ通知する (デスクトップは暗くならない)」、「プログラムがコンピュータに対して変更を加えようとするときのみ通知する (デスクトップも暗くなる)」、および「常に通知する」です。Windows Vista では、「通知しない」および「常に通知する」と同等の、ふたつの選択肢しかありませんでした。Vista の UI では「通知しない」を選択するのは困難で、それゆえ実装の両極端を選ぶことになりました。Windows 7 では選択肢および機能に対するコントロールが増しました。いただいたフィードバックによると、このことはみなさんの多くにとって特に興味深いことのようです。
UAC に関する最近のフィードバックは、「プログラムがコンピュータに対して変更を加えようとするときのみ通知する」の設定の動作についてです。フィードバックが「常に通知する」に設定されている UAC とは関係ないことは明らかです。したがって、誰かが「UAC が壊れている」というようなことを言ったら、それはフィードバックを間違って捉えていることになります。
UAC の目的
Windows 7 において、「プログラムが… のときにのみ通知する」がどのように機能するかに関するフィードバックに注目しています。設計の選択について説明するには、まず前後関係を説明することが重要です。デフォルトの設定は、全体として UAC の改善について寄せられたフィードバックに基づき、幅広ユーザーの役に立つように選ばれました。私たちは、カスタマー エクスペリエンス向上プログラム、Windows フィードバック委員会、ユーザー アンケート、実地テスト、および社内のユーザビリティー テストに協力してくださったお客様から、UAC の承認ダイアログが増加するにつれ通知される情報のメリットが大幅に減少することを学びました。したがって、一般的なユーザーには、反射的に「[はい] を押す」のを防ぐため、主要なメッセージのみ表示するようにしなければなりません。
ひとつ重要なことは、UAC はセキュリティの砦ではないということです。UAC はより安全にする点では役立ちますが、救済してくれるものではありません。UAC はソフトウェアがインストールされる前にプロンプトを表示することで、ほとんどのケースで役に立ちます。UAC のこの部分は、設定が「プログラムが… ときのみ通知する」の場合でも有効です。UAC はまた管理者権限が必要なシステム全体に対する変更の場合にもプロンプトを表示します。これは理論上、マルウェアが実行された後に思えばそのようなソフトウェアへの効果的な対抗策に見えますが、実際の経験では効果は限られています。たとえば、巧妙なマルウェアは権限の昇格が必要となるようなオペレーションは避けるでしょう。その他にも、これまでのブログ (投稿 1 および 投稿 2) でも論じてきたように、人間行動の要因もあります。
UAC はまた、ソフトウェア開発者が管理者権限を必要とせず実行できるようプログラムを改善するのを助けてくれます。マルウェアに対してシステムをセキュアにする最も効果的な方法は、標準ユーザーの権限で実行することです。多くのソフトウェアが管理者権限を必要とせずに動くようになれば、より多くの人々が標準ユーザー権限で実行するようになるでしょう。Windows 7 のマシンを設定する責任にある人 (IT 管理者や家族のヘルプデスク担当 (私もです!)) はみなさん、標準ユーザー アカウントを使用するようにマシンを管理していただきたいと思います。最近のフィードバックは、標準ユーザーとして実行してもちゃんと動作するとはっきり言っています。管理者はまた、標準ユーザー アカウントではなく管理者アカウントでマシンを管理する場合、グループ ポリシーで自由に UAC の設定を「常に通知する」に強制することもできます。
これまでの論議を繰り返すと、最近のフィードバックはセキュリティの脆弱性を表していないことがわかりました。なぜなら、悪意のあるソフトウェアはシステム上ですでに実行されている必要があるからです。Windows 7 と IE8 は共に、マルウェアがシステムに入り込むのを防ぐ保護機能が向上していることがわかりました。また、フィードバックは UAC の「常に通知する」の設定には当てはまらず、いったんマルウェアが実行し始めると UAC はそれを阻止するのに 100% 有効ではないことがわかりました。なぜ「プログラムが… のときにのみ通知する」という設定があって、しかもそれがデフォルトなのか、質問する人がいるかもしれません。
顧客主導型のエンジニアリング
「プログラムが… のときにのみ通知する」という設定を作成しこれをデフォルトに選択したのは、先にも述べたように、セキュリティ設計に固有の多種多様性に基づいて選択した設計です。Windows 7 を開始する前、Vista の UAC 機能はプロンプトを表示しすぎるというフィードバックをたくさんいただいていました。新しい UAC の設定は、このフィードバックに応える形で設計されたものです。最近のフィードバックは、「私は『常に通知する』に設定すると思いますが、”一般の人” ももっと安全にする必要があると思います」という内容のものが多いです。セキュリティ意識の高い人がこのように感じるのは当然でしょうし、Windows 7 にはそのような人のニーズに応えられる設定があることをうれしく思います。しかし、いわゆる ”一般の人” と呼ばれる人の望みは何でしょう? そのような人々のために、安全設計原理を尊重しつつ、どうデフォルトを決めるかは、大変興味深い問題です。
Windows 7 のベータ版のデフォルト設定を決定する際、M3 ビルドを実行するふたつの一般人のグループの行動を観察しました。半分は「プログラムが… ときのみ通知する」の設定で、残りの半分は「常に通知する」です。この人たちの結果と態度を分析し、私たちの選考の参考としました。この調査およびカスタマー エクスペリエンス向上プログラム、Windows フィードバック委員会、ユーザー アンケート、社内のユーザビリティー テストで得られたデータは、ベータ版での選考材料となり、最終的な設定選択を確認するためにベータ版でどのように遠隔測定を行うかの情報になりました。
調査の主要な測定基準は、セッション中に 2 回のプロンプトを閾値としました (セッションとは、電源を入れてから切るまで、または 1 日のいずれか短い方です)。もしセッション中に 2 回以上プロンプトを見ると、人はプロンプトにイライラしコンピュータの利用を干渉していると思います。ふたつのグループの比較から、「常に通知する」の設定のグループは、2 回以上プロンプトが表示されるセッションが 4 倍近いことがわかりました (6.7 回に 1 回 vs. 24 回に 1 回)。また、私たちはサンプル中の何人がマルウェアをマシンに入り込ませたか (Windows Defender のクリーニング状況で測定) の統計も収集しましたが、ふたつのグループ間でマルウェア侵入率の意味のある違いはありませんでした。ベータ期間中も、広範囲の調査でもこの結果が正しいかどうか確認するために、データを収集し続ける予定です。
私たちはベータ テスターや個人のユーザーから寄せられた UAC に関する建設的なフィードバックを大変うれしく思います。このようなフィードバックは、この設計選択で考慮し続けているトレードオフの観点で、“一般の人” に焦点を合わせた検証の役に立っています。今後も UAC の設計選択を改善し続けるため、フィードバックや遠隔測定データをモニターしていきます。
お分かりのように、UAC の議論は奥が深いものです。Windows 7 では UAC そのものと、マルウェアが PC に到達するのを防ぐ方法について改良されています。Vista のときから寄せられているフィードバックに応え、すべてのタイプの人に対して適切な使い勝手とセキュリティを提供するよう一生懸命作業しています。私たちは着実に進展していると信じていますし、UAC の変更に対するフィードバックに注意深く耳を傾けています。Windows 7 に対する情熱およびフィードバックに対し、重ねて心よりお礼申し上げます。みなさんの一人ひとりが望むように機能を実装することはできませんが、さまざまな視点を適切に評価するため、耳を傾けつつ真剣に取り組んでいます。私たちの目標は、すべてのタイプの人に対して実用的で、使い勝手がよく、安全な Windows を作成することです。
Jon