2020年7月のセキュリティ更新で、脆弱性問題を理由にWindowsおよびWindows Serverの機能の一つが無効化されました。Windows Server 2008 R2 SP1で初めて登場した「RemoteFX仮想GPU(RemoteFX vGPU)」です。今回は無効化措置が取られましたが、半年後の2021年2月のセキュリティ更新では完全に削除される予定です。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
「RemoteFX仮想GPU(RemoteFX vGPU)」は、「Windows Server 2008 R2 Service Pack(SP)1」で初めて登場した、「Hyper-V」および「リモートデスクトップサービス(RDS)」の機能です。この機能は、サーバに搭載されているグラフィックスカードのGPUを仮想化して複数の仮想マシンに割り当て、仮想マシンへのリモートデスクトップ接続において高度なグラフィックス機能を提供します。仮想マシンには「RemoteFX 3Dビデオアダプター」として追加可能です。
RemoteFX vGPUは機能拡張が続けられ、「Windows 10」のバージョン1511からは「クライアントHyper-V」でもサポートされるようになりました。しかし、本連載第120回と第122回で説明したように、Windows 10 バージョン1803で開発終了扱いとなり、「Windows Server 2019」とWindows 10 バージョン1809では、「Hyper-Vマネージャー」からGUIの設定機能が削除されました。
Windows Server 2019およびWindows 10 バージョン1809以降ではこの機能は「非推奨」とされ、引き続き利用するにはPowerShellのコマンドレットを使用してRemoteFX vGPUのホストレベルを有効化したり、仮想マシンに「RemoteFX 3Dビデオアダプター」を割り当てたりする必要がありました。
2020年7月の月例のセキュリティ更新では、RemoteFX vGPUに関して重要な変更が行われ、強制的に実施されました。詳しくは、セキュリティ更新のリリースと同時に公開された以下のサポート情報「4570006」と脆弱(ぜいじゃく)性情報「CVE-2020-1036」で説明されています。
簡潔にいうと、RemoteFX vGPUにリモートでコードが実行される「緊急(Critical)」レベルの脆弱性が明らかになり、脆弱性の緩和策、回避策がないため、RemoteFX vGPUの機能を2020年7月のセキュリティ更新で強制的に無効化した、ということです。この措置については、セキュリティ更新の前に通知されることはありませんでした(非推奨となったことは将来削除される可能性は示されていました)。無効化の対象は、RemoteFX vGPUをサポートする全てのWindows ServerおよびWindows 10です。
2020年7月のセキュリティ更新後、RemoteFX vGPUを利用していた環境がどう変わったのか、セキュリティ更新で行われた措置を確認しました。
「Hyper-V」および「リモートデスクトップサービス仮想化ホスト」の役割がインストールされており、RemoteFX vGPU対応のGPUが利用可能な場合、そのGPUをRemoteFXで使用するようにホストレベルで構成してRemoteFX vGPUを有効化することができます。2020年7月のセキュリティ更新をインストールすると、このホストレベルの設定がいったん強制的に無効化されます(画面1、画面2)。
RemoteFX vGPUがホストレベルで無効化されると同時に(筆者が確認したところでは更新後の2回目の再起動後)、停止状態にある仮想マシンから割り当て済みの「RemoteFX 3Dビデオアダプター」が強制的に削除されます(画面3)。なお、保存や開始状態など別の状態の仮想マシンや、仮想マシンの過去のチェックポイントからは「RemoteFX 3Dビデオアダプター」は削除されません。
「Windows Server 2016」およびWindows 10 バージョン1803以前の「Hyper-Vマネージャー」の「Hyper-Vの設定」の「物理GPU」と、「仮想マシンの設定」の「ハードウェアの追加」、RemoteFX vGPU関連のPowerShellコマンドレットに、次のような警告メッセージが表示されるようになりました(前出の画面1〜3)。
警告:RemoteFX 3D ビデオアダプターはサポートされなくなりました。このアダプターを引き続き使用している場合、セキュリティリスクに対して脆弱になる可能性があります。詳細情報(https://go.microsoft.com/fwlink/?linkid=2131976)
「RemoteFX 3Dアダプター」が割り当てられていた仮想マシンは、停止状態であれば削除されているため、更新後も問題なく起動できます。もちろん、RemoteFX vGPUの高度なグラフィックス機能は利用できなくなります。
「RemoteFX 3Dアダプター」が削除されずに残った場合(例えば、以前のチェックポイントを適用した場合)、更新後に仮想マシンを起動しようとすると、以下の画面4のようなエラーを表示して失敗します。
仮想マシンの起動エラーを回避する方法は2つあります。1つは、仮想マシンから「RemoteFX 3Dアダプター」の割り当てを削除すること。ただし、仮想マシンの状態によって(例えば、保存状態)はそれができません。仮想マシンを強制的に停止してから削除することもできますが、それでは保存された状態にあったもの(編集中のユーザーデータなど)まで失われてしまいます。
もう1つの回避方法は、ホストレベルのRemoteFX vGPUの機能を「有効化」することです。これで「RemoteFX 3Dアダプター」が割り当てられた仮想マシンを開始できるので、仮想マシンのゲストOSをシャットダウンして仮想マシンを安全に停止してから、「RemoteFX 3Dビデオアダプター」を削除し、その後、再びホストレベルでRemoteFX vGPUの機能を無効化します(画面5、画面6)。
ホストレベルのRemoteFX vGPU機能の有効化/無効化は、次のコマンドラインで実行できます。
[有効化] Get-VMRemoteFXPhysicalVideoAdapter|Enable-VMRemoteFXPhysicalVideoAdapter
[無効化] Get-VMRemoteFXPhysicalVideoAdapter|Disable-VMRemoteFXPhysicalVideoAdapter
2020年7月に行われたRemoteFX vGPUの強制的な無効化措置は、手動で再び有効化して元に戻すことができます。ただし、無効化措置はスケジュールされたタスク「\Microsoft\Windows\termsrv\RemoteFX\RemoteFXvGPUDisableTask」によってシステムの起動時に一度だけ実施されます。業務に影響するという場合は、代替策の準備ができるまで、セキュリティ上のリスクを理解した上でRemoteFX vGPUを有効化すればよいでしょう。
なお、RemoteFX vGPUを有効化した場合、「RemoteFXvGPUDisableTask」タスクは再び無効化を実施することはないようですが、同じ場所にある「RemoteFXWarningTask」タスクによって30日ごとに警告メッセージが表示されるようになります(画面7)。
しかしながら、猶予期限は半年しか残されていません。RemoteFX vGPUの機能は半年後の2021年2月のセキュリティ更新で、完全に削除される予定です。RemoteFX vGPUの代替としては、「個別のデバイスの割り当て(Discrete Device Assignment:DDA)」があります。しかし、本連載第120回で説明したようにハードルが高く、これまでRemoteFX vGPUの機能を提供してきたサーバで代替手段として利用できるとは限りません。
岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(2020-2021)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows版Docker&Windowsコンテナーテクノロジ入門』(日経BP社)、『ITプロフェッショナル向けWindowsトラブル解決 コマンド&テクニック集』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.