Dear Great Hackers

  1. タイアップ
  1. トピックス

【Windows Virtual Desktopのディープな技術情報を解説】#5 セッションホストのセキュリティ対応

Windows Virtual Desktop(以下、WVD)のセキュリティはクラウドのさまざまな領域に及びます。この記事では、Azureのセキュリティ、WVDのセキュリティ、OSレベルのセキュリティの3点を中心にセッションホストの保護について解説します。

※この記事は、Microsoftが提供するWVD Session Host Security | Windows Virtual Desktop #12を要約したものです。

▼「Windows Virtual Desktopのディープな技術情報を解説」記事一覧
https://zine.qiita.com/tag/wvd/

Azureのセキュリティ

AzureポータルのAzureレイヤーにはセキュリティに関することが集約されています。Azure Policy、Azure Security CenterAzure Advisorがクラウドベースで提供されており、それらに加えて各種のAzureサービスがあります。

まず、Azure Security Centerから見てみましょう。Azure Security Centerについては、こちらの動画でも紹介しています。
幅広い範囲をカバーするAzure Security Centerは、主に3つの領域で構成されます。ポリシーとコンプライアンス、リソース セキュリティの検疫、そして脅威の防止です。

後ほどSecurity Centerでの推奨事項を紹介します。

Azure Advisorで出来ることは Security Centerと似ていますが、その範囲はセキュリティ以外にも及びます。
5つの分野をカバーしており、現在の環境に対するマイクロソフトの推奨事項が表示されます。

Azure Monitorの動作対象領域も広く、ネットワーク、アクティビティログ、パフォーマンスメトリック、Azureサービスの全般的な正常性、仮想マシン、仮想マシンの各項目などAzureのあらゆる情報を監視できます。

では、Azure Monitorの重要な機能ログ分析を見てみましょう。WVDを含むAzureのあらゆるデータを集約し1か所に保存できるため、ここでクエリや分析処理を実行することで 現状を正確に把握できます。

Azure Sentinelはログ分析のセキュリティ専用アドオンであり、ログ分析の対象項目で何が起きているのかをすべて確認できるため、セキュリティ体制の観点から環境の状況を簡単に把握できます。Sentinelの詳細はこちらの動画をご覧ください。

[Hunting] では、システムに組み込まれた合計82種類のハンティングクエリをすべて実行できます。

[Workbooks] では、任意のデータを視覚化できます。例えば、「Azure Activity」を選択し、スクロールしてテンプレートを表示すると最上部にリソースグループが表示され、各グループが生成したすべてのアクティビティ、時間の経過に伴うアクティビティ数の変化を示すグラフ、アクティビティの実行ユーザーを確認できます。

また、すべてのイベントがどのように発生したかを散布図で確認できます。Azure ADサインインのワークブックではサインイン関連の詳細がわかります。場所ごとのサインイン、条件付きアクセスポリシーが適用されたサインイン、サインインが成功したかどうか、サインインの問題のトラブルシューティング情報、サインイン時に表示された具体的なエラー コード、多要素認証に失敗したかどうかなどあらゆる情報がわかります。

ダッシュボードから「Virtual machines」に移動します。VMを1つ表示して [Disks] を選択すると、最上部に [Encryption] ボタンがあります。このボタンでAzure Disk Encryptionを有効化することによってダウンロードや盗難からOSディスクを保護できます。 [Encryption] ボタンをクリックしてみます。

OSの暗号化かOSとデータ ディスクの暗号化を選択し、次にキーコンテナーを選択します。キーコンテナーがない場合は、キーとバージョンを指定して作成できます。ディスク暗号化の説明はここまでにします。

次に、FSLogixプロファイルについて説明します。
今回の動画では 、これが現時点でのすべてのプロファイルで、Azure Filesに格納されています。これらのプロファイルはFSLogixの設定にかかわらず、障害復旧やバックアップなどのために何らかの方法で保護しなければなりません。Azure FilesストレージアカウントでもNetAppでもストレージ内で直接スナップショットを作成できます。

さらに、Azure Filesの場合Azure Backupとの統合が可能です。これがRecovery Servicesコンテナーです。[Backups] をクリックした際に表示される項目が現在のAzure Filesストレージアカウントです。ここからバックアップを実行したり、共有全体またはファイル1つをそのバックアップから復元したりすることができます。実際にやってみましょう。

任意の日時の復旧ポイントを選び、復元先として元の場所か別の場所かを設定すると、必要なファイルを具体的に指定できます。ここではユーザープロファイルを選び [Select]、[Restore] の順にクリックします。FSLogixのセキュリティについてはこちらのドキュメントをご覧ください。

FSLogixの設定では割り当てられるファイル共有をこのように構成しユーザーの権限を最小にします。

実際の設定を見てみましょう。

共有を右クリックし、 [Properties]、 [Security] 、[Advanced] の順に選択します。管理者グループにはこのフォルダ、サブフォルダ、ファイルのフルコントロールがあり、作成者・所有者はサブフォルダーとファイルを変更でき、ユーザーはこのフォルダーだけを変更できます。ユーザーやグループを追加しても権限が自動的に追加されることはありません。 [Edit] をクリックし、ユーザーロールに応じて適用対象のフォルダーを変更し、割り当てる権限を指定すると変更はすぐに反映され、その後はユーザー個人が共有に独自のフォルダーを作成したり、各自のプロファイルを作成したりできるようになります。

WVD固有のセキュリティ

WVD管理ポータルから、WVD固有のセキュリティを見ていきましょう。

まずはアプリケーショングループです。
現在アプリケーショングループは4つで、各ホストプールにデスクトップグループが1つあります。ユーザーにはフルデスクトップではなく、リモートアプリを提供したほうがセキュリティ目線ではお勧めですが、当然ながらワークロードやアプリケーションユーザーの期待値などによって変化します。ですが、システムリソースの消費量はアプリケーション単体よりも、フルデスクトップの方が多いためリモートアプリを増やせばセキュリティ面のみならず、パフォーマンス面でも有利になります。このことを念頭に置き、アプリのグループを管理します。

Edgeを表示する1つ目のアプリグループで[Applications] を選択すると、このグループに含まれるアプリケーションが1つ表示されます。 [Assignments] を選択すると、メンバーシップ用のActive Directoryグループが表示されます。Edgeを使用するすべてのユーザーをこのグループに追加します。1人ひとり追加することも可能ですが、管理が困難になります。

例えば、このペイント用のグループで [Applications] を見てみると、複数のアプリケーションが表示されています。つまり、Active Directoryグループメンバーシップによる管理、アプリグループを使った管理、さらに個別のユーザーの追加が可能です。

このため、アクセス権を持つユーザー全員をここで見分けるのは困難です。
Active Directoryとアプリグループを確認しなければならないため、セキュリティ管理の観点では1つのグループメンバーシップで管理した方が簡単です。

しかし、ここには1つのアプリグループに複数のアプリケーションが表示されています。なぜかと言うと、このアプリグループは特定の種類のユーザーまたは役割に関連付けられていて、彼らはその業務のためにこれらのすべてのアプリを必要としているためです。このこと自体に問題はなく、環境をどう管理するかということが問題です。

では、ホストプールを見てみましょう。このホストプールの [Properties] から [Properties] 画面を表示し、下に移動すると、検証環境を設定するフラグがあります。
検証フラグではWVDサービスのホストプールが受け取る最新の更新プログラムを運用環境に適用する前にすべて確認できます。このため検証プールを運用環境のホストプールにできる限り相似させることでマイクロソフトによるすべての最新の更新プログラムが現在の環境に与える影響を検証できます。

更新スケジュールは基本的には月単位ですが、それよりも短い間隔で緊急更新プログラムが公開されることがあります。詳細はこちらをご覧ください。

環境の検証フラグを設定することでこのプールをテスト用に使えるようになります。 [Yes]、[Save] の順に選択するだけです。

上にスクロールして [RDP settings] を確認します。RDP設定を使って環境の外観を技術レベルで制御できます。例えば、ログオン時のフルデスクトップに設定するディスプレイ解像度について固定サイズにするかカスタムするか、ユーザーのコンピューターに合わせるかを選んだり、フルスクリーンモードかウィンドウモードのどちらで表示するか指定したりできます。
各種サービスについて、PowerShellを使うことでより豊富な選択肢を実現できます。

WVD環境からデータが削除されてしまう可能性があるので、この環境をローカルのハードドライブに参照させることはセキュリティ的に回避したいことです。ですので、このオプションはオフにします。同様に、クリップボードとプリンターもオフにしましょう。データが簡単に環境から削除されることを防止できます。

環境における構成に応じて、スマートカードを有効化して認証を強化したり、オーディオの入力と出力も設定できます。すべての設定が終わったら [Save] をクリックします。

次にWVD Windowsクライアントです。
クライアントを最新状態に維持することもセキュリティの課題の1つです。Azureドキュメントには、様々なクライアント関連ガイドがあります。
Windows デスクトップ クライアントを使用して接続する より、ご自身の Windows バージョンに合ったクライアントを選択してください。
ダウンロードリンクをクリックすると、MSIのダウンロードが開始されます。公開中の修正プログラムなどクライアントに関する最新情報も詳しく確認できます。

最新クライアントでデスクトップにサインインします。
最新クライアントの優れた機能の1つが最上部にあります。このRDPバーにある [Connection information] をクリックすると、接続のネットワークラウンドトリップ時間は良好というメッセージが表示され、さらに [See details] をクリックすると接続の詳細情報が表示されます。使用中のクライアント、タイムスタンプ、アクティビティID、さらにネットワークの詳細もわかります。

ラウンドトリップ時間は22ミリ秒で帯域幅は13Mbpsをわずかに上回り、フレームは現在未使用です。接続中のゲートウェイとホストも確認できます。 問題が起きた場合は、この情報をCtrl + CキーでコピーしてIT担当者と共有できます。

OSレベルのセキュリティ

今回の重要テーマの1つであるOSレベルのセキュリティについて説明していきます。OSを保護する方法は無数にあるので、一部をピックアップして紹介します。

アイドル時間のポリシーもグループポリシーによって定義されています。アプリやデスクトップのアイドル状態が続くとスクリーンセーバーが起動し、システムがロックされます。これは、画面がアイドル状態のままになるのを最も簡単に回避できる方法です。
これはグループポリシーによって適用できますが、あまりに短いとユーザーが仕事をできなくなってしまうので、環境に応じて適切な時間を設定してください。 パスワードを入れて再ログインすれば、作業を再開できます。

グループポリシー管理コンソールに戻ります。様々なポリシーで環境の動作が制御されています。
まず、WVD ポリシーで「User Configuration」、「Policies」、「Admin Templates」の順に選択します。先ほどのスクリーンセーバーのポリシーをはじめ、スクリーンセーバーのパスワード保護、スクリーン セーバーの変更禁止、スクリーンセーバーのタイムアウト時間の設定など関連するポリシーがあります。これも環境に応じて適切な設定を行ってください。

「Computer Configuration」セクションには、現在の環境からユーザーを「締め出す」ためのポリシーがあります。まずアイドル状態が続くと、スクリーンセーバーによる保護を起動し、さらに時間が経過した場合はセッションを切断し、それ以上時間が経過した場合はそのユーザーが明らかにシステムを使用していないと判断し、ユーザーを強制的にログオフできます。ぜひ設定を確認し環境に合わせて活用してください。

ユーザーにフルデスクトップへのアクセスを許可する場合は、AppLockerの使用を検討してください。
AppLockerを使用すると、ユーザー グループやその他の既定のルールセットに基づいてシステムにおける特定アプリケーションの実行を制限または有効化できます。AppLockerはWindows Virtual Desktopを単にジャンプサーバーとして利用し、企業環境にアクセスしている場合に非常に便利です。この場合使用するのはRDSツールだけなのでAppLockerを使って有効化し、それ以外をすべてブロックできます。グループポリシー エディターの 「Application Control Policies」に移動すると、AppLockerがあります。

ここには4つの異なるルールセットがあります。

まずWindowsインストーラーでは、WVDユーザーによるあらゆるインストールをブロックするルールを設定しています。実行可能ファイルのルールでは、RDPクライアントの機能を許可しつつRDP以外の機能はすべて拒否しています。この場合、参加を可能にするために専用ユーザーを設定してVMを現在の環境に参加させています。

権限を委任し、仮想デスクトップでユーザーを適切な組織単位に参加させるだけで、AD Joinアカウントですべてのポリシーおよびその他の必要な設定が適用されます。それを適用するためには、 [Delegate Control] を選択し、特定のユーザーを選択してカスタムの委任タスクを作成します。関連付ける対象をコンピューターオブジェクトのみにして必要な項目をオンにします。

次のセクションでは、パスワードのリセット、アカウント制限の読み取りと書き込み、DNSホスト名とサービスプリンシパルへの検証された書き込みをそれぞれ有効化します。ウィザードを完了してセキュリティ権限の詳細プロパティを確認すると、有効化した機能が反映されています。セッションホストの安全確保のもう1つの方法は、必ずOSの修正プログラムの最新バージョンを適用することと、アプリケーションを最新の状態に維持することです。

これには共有イメージギャラリーが便利です。共有イメージギャラリーについては、こちらの動画をご覧ください。
共有イメージギャラリーを使えば、複数バージョンのイメージを作成し、WVD管理ポータルの最新イメージで新しいセッションホストを構築できるようになります。
ホストプールで [Session hosts] に移動して 、[Add] をクリックし、[Virtual Machines] の [Next] をクリックすると共有イメージ ギャラリーの最新イメージが参照されます。これによりホストプールのVMを最小限の手間で迅速に更新できるようになります。

最後に説明したいのは、ウイルス対策とマルウェア対策のサポートです。すべてのWindowsマシンには既定でWindows Defenderがインストールされていますが、ぜひ利用してほしいセキュリティオプションがATP(Microsoft Defender Advanced Threat Protection )です。

Windows10のマルチセッションにおけるATPのサポートがプレビュー段階なりました。最大同時セッション数はVM1台あたり25個です。

Windows10ベースマシンの手順はこちらで確認できます。リンク先には非永続的仮想マシンのオンボードに関する記事があり、さらにリンクをクリックすると無料試用版のページがバックグラウンドで開きます。
サインアッププロセスを開始して使用許諾契約を読んで承諾し、[Next] をクリックしてユーザー情報を入力します。

表示された設定画面の手順に従ってDefender ATPを簡単に設定できます。

最初の画面で [Next] をクリックすると、データの保存先を選択するよう求められます。ここで選択した場所を後で変更する場合は、サポート チケットを開くことが必要になります。この動画では [US] を選択します。保持期間は180日です。組織の規模とプレビュー機能を有効化するかどうか確認されます。プレビュー機能を有効化はどちらでも問題ありません。

決定したら [Next] をクリックして、ここまでの設定を確定します。確定後の変更にはサポートチケットが必要になります。

設定プロセスによりDefenderインスタンスが作成されます。作成されると画面が切り替わり、最初のシステムのオンボードを開始できます。このドロップダウンで保護対象のOSを選択します。今回はWindows10を選び、非永続的デバイス用のVDIオンボードスクリプトをスクリプトとして選択します。

パッケージのダウンロードを開始したら、このPowerShellスクリプトをコピーして次の手順に備えます。 VM内でパッケージを展開し、コマンドファイルを管理者として実行します。完了したらATPポータルからコピーしたPowerShellを管理者のコマンド プロンプトで実行します。

Defender Security Centerに戻ると、VMが正常にオンボードされていることがわかります。VMをクリックすると、VMの詳細情報、このデバイスで発生したことすべてのタイムライン、セキュリティに関する推奨事項、 ソフトウェア全体のインベントリ、検出された脆弱性、システムの未適用項目に関するサポート情報記事などを確認できます。

最上部のコントロールを使えば問題発生時にウイルス対策スキャンをすぐ実行したり、マシン上でのあらゆるアプリ実行をブロックしたりすることができます。問題がさらに深刻な場合は、デバイスの完全な隔離も可能です。
VMではアセット全体をATPにオンボードする準備が完了しています。ファイルエクスプローラーを開き、C\Windows\System32\GroupPolicy\Machineに移動してScript という新しいフォルダーを作成し、このフォルダーに「Startup」フォルダーを作成して、先ほど使用したコマンドファイルをこのディレクトリにコピーします。ここからキャプチャして新しいバージョンのイメージを作成し、以降のすべての新しいマシンに ATPを追加します。


今回は WVDにおけるセッションホスト保護のさまざまな方法を見てきました。いずれのセクションも実際には数時間~数日かかる作業であり、1つの動画では紹介しきれません。今回紹介したその他のビデオも参照しつつ、環境のセキュリティ強化を進めていただければと思います。

【新規ユーザーさま向け】Windows Virtual Desktop
30%オフキャンペーン実施中!

はじめてWindows Virtual Desktop(ネイティブ版)をご利用いただいた方を対象に、最大90日間コストを30%オフでご利用いただけるキャンペーンを実施中です。
この機会にぜひご利用ください。

対象期間 : 2021年6月30日まで

詳細はこちら

関連記事