UAC仮想化とは何ですか?
UACは「」の略です ユーザーアカウント制御 ”。これは、オペレーティング システムのコア コンポーネントを、損害を与える可能性のある変更から隔離するソフトウェア管理の分野です。これは、Unix 系システムでは「root」と呼ばれ、Windows システムでは管理者権限として知られるアクセス レベルです。
Windows ユーザーが UAC に遭遇することが最も多いのは、新しいソフトウェアをインストールしようとしたときです。インストールを許可するために承認を求めるポップアップ メッセージは、UAC の表れです。
UAC についてさらに詳しく
ユーザー アカウント制御は Windows に統合されています。 Windows Vista 2006年にそれは含まれています Windowsサーバー バージョン 2008 以降。
UAC システムでは、ユーザーがインストールしたソフトウェアはドライブのユーザー領域で実行でき、ドライブによってインストールされたソフトウェアのみが実行されます。 管理者 アカウントがシステム リソースにアクセスできるようになります。管理者によってインストールされたソフトウェアは、システム リソースにアクセスできないユーザーによって実行されることも、システム リソースにアクセスできるように管理者によって実行されることもあります。
UAC の目的は、システムのセキュリティを強化することです。安全なビジネス環境の管理者には、認可され検証されたソフトウェアのみをインストールする IT 専門家のみがアクセスできると想定されています。一方、ユーザーは、ダウンロードするものについて予防策を講じると常に信頼できるわけではありません。
ユーザーは簡単にだまされてダウンロードされる可能性がある マルウェア 画像または PDF ファイルに埋め込まれているもの。管理者権限がないと、ユーザー アカウントを通じてエンドポイントにアクセスするソフトウェアは重要なサービスにアクセスできなくなります。
ユーザー アカウントに対してブロックされているディスクの領域には、%ProgramFiles%、%Windir%、%Windir%system32 ディレクトリが含まれます。 UAC サービスは、HKEY_LOCAL_MACHINESoftware レジストリ パスへの書き込みアクセスもブロックします。
UAC ポップアップ
この許可ポップアップは UAC の重要な部分です。これにより、オペレーティング システムの設定がトリガーされ、許可があれば OS の機密ディレクトリでのアクションが容易になるか、許可が拒否された場合はそのアクセスがブロックされます。
システムへのアクセスは、ソフトウェアのインストールおよび更新時にのみ必要となります。操作変数、一時ストレージ、セッション データはすべて次の場所に保存する必要があります。 ユーザー所有のフォルダー 。システム設定は、 編集可能な共有フォルダー %programdata% など。
データと設定を厳密に編成することは、すべてのユーザーにとって有益です。デバイス上の 1 人のユーザーがソフトウェアをカスタマイズできる場合、その個人的な設定はそのコンピューター上の他のユーザーに影響を与えません。
仮想化
仮想化にはさまざまな種類があります。この戦略の一般的な目的は、ソフトウェアを使用して環境を構築することです。 実際のリソースを模倣します 別のサーバーや PC のハードウェアなど。
最も広く実装されているタイプの仮想化の 1 つは、「 仮想マシン 、' または VM 。これは、実際の OS の上に浮かぶ別個のオペレーティング システムです。ソフトウェアが実際の OS に実際に直接アクセスできるようにすることなく、ソフトウェアが必要とするサービスをオペレーティング システムから提供します。
VM 仲介する ソフトウェアとオペレーティング システムの間で。場合によっては、この構成により、あるオペレーティング システム用に作成されたソフトウェアを、実際にはそのオペレーティング システムがインストールされていないコンピューター上で実行できるようになります。たとえば、Linux 用に作成されたソフトウェアを、 ウィンドウズ オペレーティング·システム。ソフトウェアの Linux 互換要求を Windows が理解できる要求に解釈するために仮想環境が利用できる場合、それはインタープリターのようなものです。
UAC仮想化
UAC 仮想化の場合、VM は Windows を操作し、Windows 上で実行されます。ダブル オペレーティング システムの目的は、OS に互換性を提供することではなく、検証済みの OS に対応することです。 レガシーソフトウェア ユーザーが実行するときにこれらのシステム領域に実際にアクセスする必要があるもの。
UAC 仮想化は、2 つの異なるオペレーティング システム間を仲介するのではなく、UAC の厳密なシステム分離を壊すことなく、ソフトウェアがユーザー アカウントで実行するために必要なサービスを提供します。ソフトウェアが必要とするフォルダーへのアクセスは、 ブロックされました そのため、プログラムがハングしたり倒れたりする可能性があります。
UAC 仮想化の実装は、UAC 仮想化の導入を橋渡しするために必要なステップでした。 ユーザーアクセス制御 。この応急処置がなければ、Windows 上で実行するために構築されたソフトウェアの多くは機能しなくなります。ソフトウェア ハウスはやがて製品の新しいバージョンを作成するようになりますが、UAC が要求する完全な書き換えには時間がかかるでしょう。このような大きな変更は通常、新しいエディション用に予約されており、更新としては考慮されません。
Windows 向け製品に特化したソフトウェア ハウスには余裕がありませんでした。 投資を帳消しにする すでに自社の製品に組み込まれています。新しいエディションが作成されると、ベンダーは耐用年数を計算し、すべてのコストが回収されるまで待ってから新しいバージョンを作成します。
UAC 仮想化は、従来のソフトウェアのシステム フォルダーの要求と、Windows がユーザー アカウントから実行するときにソフトウェアが使用することを期待しているユーザー所有のフォルダーとの間をマッピングします。
UAC 仮想化のおかげで、C:Program Files に書き込むソフトウェア
アプリケーションマニフェスト
すべてのソフトウェアが保護されたシステム領域にアクセスする必要があるわけではありません。一部のプログラムは実行可能ファイルとしてダウンロードされ、コンピュータ上のどこからでも実行できます。プログラムが予約されたディレクトリにファイルを書き込む必要があるかどうかの主な問題は、フォルダー アクセスのニーズの構成の問題になります。
インストーラーは、プログラムがインストール時と実行時に、ファイル内のエントリを通じてどのフォルダーへのアクセスを想定しているかをオペレーティング システムに通知します。 アプリケーションマニフェスト 。これは、インストーラー パッケージ内のプログラムに付属する XML ドキュメントです。
ファイル内のアクセス許可レベルの要件値は、このプログラムが実行されるたびに Windows がそのプログラムに対して UAC 仮想化を呼び出すかどうかの鍵となります。 requestedExecutionLevel に指定できる値は次のとおりです。
- 呼び出し者として 親プロセスと同じアクセストークンを使用して実行します。
- 最高の利用可能 現在のユーザーが取得できる最高の権限を取得します。
- 管理者が必要 このプログラムは管理者としてのみ実行できます。
Windows は、requireAdministrator アクセスの必要性が設定されたソフトウェアに対して常に UAC 仮想化を使用します。このタイプのソフトウェアを実行すると、常に UAC 許可ポップアップが表示されます。このステータスがデフォルトです。したがって、アプリケーション マニフェストがない場合、または必要な実行許可ステートメントが欠落している場合、ソフトウェアは自動的に requireAdministrator ステータスになり、常に仮想化されます。
UAC 仮想化が呼び出される場合
UAC 仮想化は Windows 内のメカニズムであり、自由に適用することはできません。 UAC ハイパーバイザー パッケージは流通していません。これは開発者フレームワークのユーティリティではなく、そのための API もありません。要するに、 UAC 仮想化の使用を命令することはできません 。
UAC 仮想化プロセスはすべてのソフトウェアに適用されるわけではありません。アプリケーションに UAC 仮想化を使用するかどうかに関して、留意すべき状況がいくつかあります。
- UAC 仮想化は、ソフトウェアがユーザー アカウントから実行される場合にのみ呼び出されます。管理者として実行されるアプリケーションには必要ありません。
- UAC 仮想化はホスト上で有効にしてアクティブにする必要があります。
- 64 ビット環境で実行されるプログラムには UAC 仮想化は必要ありません。 32 ビット ソフトウェアにのみ適用されます。
- ユーザー アカウントには、元のファイル パス内のファイルへの書き込みアクセス権が必要です。
ユーザーアカウント制御の管理
ユーザー アカウント制御の動作は、Windows を実行する各コンピューターで変更できます。このオプションは、 設定 メニューをクリックするとそのメニューにアクセスできます。 設定 の歯車アイコン 始める メニューをクリックし、設定の検索バーに「ユーザー アカウント制御」と入力します。
ユーザー アカウント制御設定画面はスライダーとして表示されます。これにより、ユーザーは UAC の 4 つの設定のうち 1 つを切り替えることができます。これらのオプションは次のとおりです。
- 常に通知する
- プログラムがコンピューターに変更を加えようとした場合のみ通知する
- プログラムがコンピューターに変更を加えようとした場合にのみ通知します (デスクトップを暗くしないでください)
- 決して通知しないでください
以下では、これらの各オプションについてもう少し詳しく説明します。
常に通知する
これは最も厳格な設定です。プログラムがインストールまたは更新されようとしているとき、またはユーザーまたはプログラムが Windows 設定を変更しようとしているときに、通知ポップアップが表示されます。あなたが応答するまで、コンピュータ上のすべてのタスクがフリーズされます。
このオプションは、新しいソフトウェアが頻繁にインストールされるコンピュータや、馴染みのない Web サイトにアクセスするユーザーに推奨されます。
プログラムがコンピューターに変更を加えようとした場合のみ通知する
これは UAC のデフォルト値です。プログラムがソフトウェアをインストールしようとしたり、コンピュータに変更を加えたりしようとしたときに、コンピュータのユーザーに通知します。自分でコンピュータの設定を変更する場合、許可ポップアップは表示されません。あなたが応答するまで、コンピュータ上のすべてのタスクがフリーズされます。
このオプションは、新しいソフトウェアを頻繁にインストールしたり、見慣れない Web サイトにアクセスしたりするが、Windows の設定を変更する自分の操作については通知されたくない人に推奨されます。
プログラムがコンピューターに変更を加えようとした場合にのみ通知します (デスクトップを暗くしないでください)
このオプションは、プログラムがソフトウェアをインストールしたり、コンピューターに変更を加えたりしようとしたときに、アクセス許可のポップアップを表示しますが、Windows の設定を手動で変更するユーザーには通知しません。前の 2 つのオプションとは異なり、この設定では他のタスクがフリーズしたり、応答を待機したりしません。
このオプションは、何らかの理由でコンピュータ上での通知プロセスの動作が遅く、ユーザーにとって重大な不便になる場合にのみ推奨されます。
決して通知しないでください
このオプションはユーザー アクセス制御を無効にします。どのような状況でも、権限のポップアップは表示されません。
このオプションではセキュリティ上のリスクが生じます。
レジストリの仮想化
レジストリ仮想化 UAC 仮想化をシステム レジストリに適用したものです。この機能の目的は、グローバル レジストリ エントリへのアクセスをブロックしながら、そのようなアクセスを必要とするソフトウェアの機能を継続できるようにすることです。 UAC がフォルダー アクセスを解釈し、書き込みアクションをユーザーが制御するディレクトリに転送すると、レジストリ仮想化スイッチは、より安全なユーザー アカウントのレジストリ キーへのグローバル変数への書き込みを試みます。
ファイルベースの UAC 仮想化と同様に、ソフトウェアは事前に作成されたすべての手順を実行し、グローバル レジストリ領域を損なうことなくレジストリ キー値の作成と更新を行います。
レジストリ仮想化は、レガシー システムが動作し続けることを可能にするためにのみ実装されます。このサービスのニーズはおそらく今ではほぼなくなっています。 完全に消滅した 。 2006 年以降に作成されたソフトウェアは、Microsoft 開発者ガイドラインに従って作成されている必要があるため、レジストリ仮想化サービスは必要ありません。これらのガイドラインでは、グローバル レジストリ エントリの使用とユーザー アカウントが使用できるレジストリ キーの違いについて説明します。
UAC仮想化の未来
UAC 仮想化は、Microsoft が新しいアーキテクチャを発表したときに、下位互換性を確保するために作成されました。これは、パスと名前がハードコーディングされているファイルへの書き込みが許可されなくなったため、レガシー ソフトウェアが失敗するのを防ぐための方法です。
これは、UAC 仮想化が 未来がない – それはすべて過去のことです。 UAC 仮想化システムは、時間の経過とともに徐々に冗長性が増していきます。 UAC は 2006 年から Windows に組み込まれているため、25 年間にわたって環境に確実に適用されてきました。 25 年以上前に作成されたソフトウェアが、新しいバージョンやアップデートを行わずにまだ現役である可能性はほとんどありません。まず、古いソフトウェアは非常に使いにくいです。 ハッカーによる攻撃を受けやすい 。脆弱性スキャナーは、コンピューターやネットワークへの侵入経路を調査する際に、特に古いソフトウェアを探します。
Windows 10 の UAC 仮想化
Windows 10 を実行している場合は、UAC 仮想化設定を検索して、その機能がオンになっているかどうかを確認することもできます。
これを行うためには:
- Windows ボタンと「R」を押して、 走る 箱。
- タイプ secpol.msc 「OK」を押して開きます。 ローカルセキュリティポリシー アプリ。
- の中に ローカルセキュリティポリシー ウィンドウで、「ローカル ポリシー」を展開し、左側のパネルで「セキュリティ オプション」をクリックします。
- メイン パネルのポリシーのリストを、次の項目が表示されるまで下にスクロールします。 ユーザー アカウント制御: ユーザーごとの場所へのファイルとレジストリの書き込みエラーを仮想化します。 。
この設定のステータスは次のようになります。 有効 。そうでない場合:
- ユーザー アカウント制御の行をダブルクリックします。ポップアップが表示されます。
- クリックしてください 有効 ラジオボタン。
- クリック わかりました をクリックしてポップアップを閉じます。
その他のシステム保護方法
一般的な Windows ユーザーは UAC 仮想化について心配する必要はありません。また、Windows での使用を目的としたソフトウェアの設計者も、現在の Windows プログラミング手法ではこのサービスが不要になっているため、UAC 仮想化について心配する必要はありません。
デバイスを改ざんから保護する包括的な Windows セキュリティ システムがあり、システム保護を強化するために Windows 内で確認できる設定がいくつかあります。
最初に見ることができるのは 改ざん防止 、マルウェアがデバイスのウイルス対策設定に干渉したり、変更したりするのをブロックします。これがオンになっていることを確認するには:
- タイプ Windows セキュリティ [スタート] メニューの検索フィールドに入力します。
- を選択 Windows セキュリティ アプリ 結果から。
- クリック ウイルスと脅威からの保護。
- この画面のメインパネルの下部を見て、 をクリックします。 設定を管理する 。
- 改ざん防止 は、この画面の 4 番目のオプションです。オンになっていることを確認してください。
また、次のことを確認する必要があります。 リアルタイム保護 、 クラウドによる保護 、 そして 自動サンプル提出 がオンになっています。
UAC 仮想化保護のもう 1 つの主な代替手段は、 フォルダーアクセスの制御 システム。これにより、マルウェアがファイルの拡張子を変更してファイルを隠したり、システム フォルダー名を変更したりすることを防ぎます。こちらからもアクセスできます ウイルスと脅威の保護設定 電源を入れた画面 改ざん防止 。
- の中に ウイルスと脅威の保護設定 画面。下にスクロールして、 制御されたフォルダーへのアクセスを管理する それをクリックしてください。
- 次の画面では、 ランサムウェアからの保護 、スライダーを移動します。 フォルダーアクセスの制御 に の上 。
- ユーザー アカウント制御の許可ポップアップが表示されます。クリック はい 変更を許可します。
結論
UAC 仮想化は、 一時しのぎの措置 これにより、Windows で利用可能なソフトウェアの大規模なライブラリが動作し続けることが可能になりました。この解決策がなければ、Windows Vista の導入時に、Windows で利用可能な多数のアプリケーションが動作しなくなっていたでしょう。
時間の経過とともに、UAC 仮想化はますます不要になってきました。ただし、ご覧のとおり、この機能はまだ Windows 10 にあり、おそらくコンピューター上で有効になっていることがわかります。
UAC の仮想化ソリューションは賢明であり、その方法はあらゆるシステム保護シナリオに役立つことがわかります。実際、多くのセキュリティ システムは仮想化で動作しており、「」に分類されています。 仮想アプライアンス 」オペレーティング システムとアプリケーションの分離は双方向で機能します。また、オペレーティング システムを介したアクセス ルートを遮断することで、ハッカーがソフトウェアに侵入して改ざんすることを防ぐこともできます。
UAC 仮想化に関するよくある質問
UAC 仮想化を無効にする必要がありますか?
UAC 仮想化は、Micorosft の Windows セキュリティ戦略の基本要素です。 UAC をオフにすると、ネイティブのセキュリティ手順の利点が失われます。
実行可能ファイルを UAC 仮想化の対象外にするにはどうすればよいですか?
実行可能ファイルを UAC 仮想化から除外するには 2 つの方法があります。 1 つ目は、インストールする必要がなく、ダウンロードされた場所でファイルとして実行されるポータブル パッケージとしてソフトウェアを設計することです。プログラムの実行時に UAC 仮想化が開始されるのを回避するもう 1 つの方法。もう 1 つの方法は、アプリケーション マニフェストをインストーラーに含めることです。これには、値が asInvoker または mostAvailable に設定された requestedExecutionLevel のエントリが含まれている必要があります。