セキュリティに関する考慮事項とベストプラクティス
注:
組織は規制要件を満たすために特定のセキュリティ標準に準拠する必要がある場合があります。このようなセキュリティ標準は時間とともに変化するため、このドキュメントではこの主題を扱いません。セキュリティ標準とCitrix製品に関する最新情報については、
<http://www.citrix.com/security/>を参照してください。
セキュリティのベストプラクティス
環境内のすべてのマシンをセキュリティパッチで最新の状態に保ちます。利点の1つは、シンクライアントをターミナルとして使用できるため、このタスクが簡素化されることです。
環境内のすべてのマシンをアンチウイルスソフトウェアで保護します。
プラットフォーム固有のマルウェア対策ソフトウェアの使用を検討してください。
ソフトウェアをインストールする際は、提供されているデフォルトのパスにインストールしてください。
-
提供されているデフォルトのパス以外のファイル場所にソフトウェアをインストールする場合は、そのファイル場所に制限付きアクセス許可などの追加のセキュリティ対策を追加することを検討してください。
すべてのネットワーク通信は、セキュリティポリシーに合わせて適切に保護および暗号化する必要があります。Microsoft Windowsコンピューター間のすべての通信はIPSecを使用して保護できます。これを行う方法の詳細については、オペレーティングシステムのドキュメントを参照してください。さらに、ユーザーデバイスとデスクトップ間の通信は、Citrix SecureICAによって保護されます。SecureICAは、デフォルトで128ビット暗号化に設定されています。SecureICAは、デリバリーグループの作成または更新時に構成できます。
注:
Citrix SecureICAはICA/HDXプロトコルの一部ですが、Transport Layer Security (TLS) のような標準準拠のネットワークセキュリティプロトコルではありません。ユーザーデバイスとデスクトップ間のネットワーク通信はTLSを使用して保護することもできます。TLSを構成するには、「Transport Layer Security (TLS)」を参照してください。
アカウント管理にはWindowsのベストプラクティスを適用してください。Machine Creation ServicesまたはProvisioning Servicesによって複製される前に、テンプレートまたはイメージ上にアカウントを作成しないでください。保存された特権ドメインアカウントを使用してタスクをスケジュールしないでください。共有Active Directoryマシンアカウントを手動で作成しないでください。これらの慣行は、マシン攻撃がローカルの永続的なアカウントパスワードを取得し、それらを使用して他のユーザーに属するMCS/PVS共有イメージにログオンするのを防ぐのに役立ちます。
ファイアウォール
環境内のすべてのマシンを、必要に応じてエンクレーブ境界を含め、境界ファイアウォールで保護します。
環境内のすべてのマシンは、パーソナルファイアウォールによって保護されている必要があります。コアコンポーネントとVDAをインストールする際、Windowsファイアウォールサービスが検出された場合(ファイアウォールが有効になっていない場合でも)、コンポーネントおよび機能通信に必要なポートを自動的に開くように選択できます。これらのファイアウォールポートを手動で構成することもできます。別のファイアウォールを使用する場合は、手動で構成する必要があります。
従来の環境をこのリリースに移行する場合、既存の境界ファイアウォールの再配置や新しい境界ファイアウォールの追加が必要になる場合があります。たとえば、データセンター内の従来のクライアントとデータベースサーバーの間に境界ファイアウォールがあるとします。このリリースを使用する場合、その境界ファイアウォールは、仮想デスクトップとユーザーデバイスが一方にあり、データセンター内のデータベースサーバーとDelivery Controllerがもう一方にあるように配置する必要があります。したがって、データベースサーバーとControllerを格納するために、データセンター内にエンクレーブを作成することを検討してください。また、ユーザーデバイスと仮想デスクトップの間に保護を設けることも検討してください。
注:
TCPポート1494と2598はICAとCGPに使用されるため、データセンター外のユーザーがアクセスできるようにファイアウォールで開かれている可能性が高いです。Citrixは、管理インターフェイスが意図せず攻撃にさらされる可能性を避けるため、これらのポートを他の目的で使用しないことを推奨します。ポート1494と2598は、Internet Assigned Number Authority (http://www.iana.org/) に正式に登録されています。
アプリケーションセキュリティ
非管理者ユーザーが悪意のある操作を実行するのを防ぐため、VDAホストおよびローカルのWindowsクライアントで、インストーラー、アプリケーション、実行可能ファイル、およびスクリプトに対してWindows AppLockerルールを構成することをお勧めします。
ユーザー権限の管理
ユーザーには必要な機能のみを付与します。Microsoft Windowsの特権は、通常の方法でデスクトップに適用され続けます。特権はユーザー権利の割り当てを通じて、グループメンバーシップはグループポリシーを通じて構成します。このリリースの利点の1つは、デスクトップが保存されているコンピューターに対する物理的な制御を付与することなく、ユーザーにデスクトップへの管理者権限を付与できることです。
デスクトップの特権を計画する際は、以下に注意してください。
-
デフォルトでは、非特権ユーザーがデスクトップに接続すると、自身のユーザーデバイスのタイムゾーンではなく、デスクトップを実行しているシステムのタイムゾーンが表示されます。ユーザーがデスクトップを使用する際にローカルタイムを表示できるようにする方法については、「デリバリーグループの管理」の記事を参照してください。
-
デスクトップの管理者であるユーザーは、そのデスクトップを完全に制御できます。デスクトップが専用デスクトップではなくプールされたデスクトップである場合、そのユーザーは、将来のユーザーを含む、そのデスクトップの他のすべてのユーザーに関して信頼できる必要があります。デスクトップのすべてのユーザーは、この状況によってデータセキュリティに潜在的に永続的なリスクがあることを認識する必要があります。この考慮事項は、単一ユーザーのみが使用する専用デスクトップには適用されません。そのユーザーは、他のどのデスクトップの管理者であってもなりません。
-
デスクトップの管理者であるユーザーは、一般的に、悪意のあるソフトウェアを含むソフトウェアをそのデスクトップにインストールできます。また、そのユーザーは、デスクトップに接続されているネットワーク上のトラフィックを監視または制御できる可能性もあります。
ログオン権限の管理
ログオン権限は、ユーザーアカウントとコンピューターアカウントの両方に必要です。Microsoft Windowsの特権と同様に、ログオン権限は通常の方法でデスクトップに適用され続けます。ログオン権限はユーザー権利の割り当てを通じて、グループメンバーシップはグループポリシーを通じて構成します。
Windowsのログオン権限は、ローカルログオン、リモートデスクトップサービス経由のログオン、ネットワーク経由のログオン(ネットワークからこのコンピューターにアクセス)、バッチジョブとしてログオン、サービスとしてログオンです。
コンピューターアカウントの場合、コンピューターに必要なログオン権限のみを付与します。「ネットワークからこのコンピューターにアクセス」のログオン権限は、以下の場合に必要です。
-
VDAで、デリバリーコントローラーのコンピューターアカウントに対して
-
デリバリーコントローラーで、VDAのコンピューターアカウントに対して。「Active Directory OUベースのコントローラー検出」を参照してください。
-
StoreFront™ サーバーで、同じ StoreFront サーバーグループ内の他のサーバーのコンピューターアカウントに対して
ユーザーアカウントの場合、ユーザーには必要なログオン権限のみを付与します。
Microsoftによると、デフォルトでは、Remote Desktop Usersグループには「リモートデスクトップサービス経由でのログオンを許可」のログオン権限が付与されています(ドメインコントローラーを除く)。
組織のセキュリティポリシーによっては、このグループをそのログオン権限から削除するよう明示的に規定している場合があります。次のアプローチを検討してください。
-
マルチセッションOS用Virtual Delivery Agent (VDA) は、Microsoft Remote Desktop Servicesを使用します。Remote Desktop Usersグループを制限付きグループとして構成し、Active Directoryグループポリシーを介してグループのメンバーシップを制御できます。詳細については、Microsoftのドキュメントを参照してください。
-
シングルセッションOS用VDAを含むCitrix Virtual Apps and Desktops™のその他のコンポーネントでは、Remote Desktop Usersグループは不要です。したがって、これらのコンポーネントの場合、Remote Desktop Usersグループには「リモートデスクトップサービスによるログオンを許可」のログオン権限は不要であり、削除できます。さらに:
-
リモートデスクトップサービスを介してそれらのコンピューターを管理する場合、そのようなすべての管理者がすでにAdministratorsグループのメンバーであることを確認してください。
-
それらのコンピューターをリモートデスクトップサービス経由で管理しない場合は、それらのコンピューターでリモートデスクトップサービス自体を無効にすることを検討してください。
-
ログイン権限「リモートデスクトップサービス経由でのログオンを拒否」にユーザーとグループを追加することは可能ですが、ログオン拒否権限の使用は一般的に推奨されません。詳細については、Microsoftのドキュメントを参照してください。
ユーザー権限の構成
Delivery Controller™ のインストールにより、次の Windows サービスが作成されます。
-
Citrix AD Identity Service (NT SERVICE\CitrixADIdentityService): VMのMicrosoft Active Directoryコンピューターアカウントを管理します。
-
Citrix Analytics (NT SERVICE\CitrixAnalytics): サイト管理者が承認した場合、Citrixが使用するためのサイト構成の使用状況情報を収集します。その後、この情報をCitrixに送信し、製品の改善に役立てます。
-
Citrix App Library (NT SERVICE\CitrixAppLibrary): AppDiskの管理とプロビジョニング、AppDNA統合、およびApp-Vの管理をサポートします。
-
Citrix Broker Service (NT SERVICE\CitrixBrokerService): ユーザーが利用できる仮想デスクトップまたはアプリケーションを選択します。
-
Citrix Configuration Logging Service (NT SERVICE\CitrixConfigurationLogging): 管理者がサイトに対して行ったすべての構成変更およびその他の状態変更を記録します。
-
Citrix Configuration Service (NT SERVICE\CitrixConfigurationService): 共有構成のためのサイト全体のリポジトリ。
-
Citrix Delegated Administration Service (NT SERVICE\CitrixDelegatedAdmin): 管理者に付与された権限を管理します。
-
Citrix Environment Test Service (NT SERVICE\CitrixEnvTest): 他のDelivery Controllerサービスのセルフテストを管理します。
-
Citrix Host Service (NT SERVICE\CitrixHostService): Citrix Virtual AppsまたはCitrix Virtual Desktops展開で使用されるハイパーバイザーインフラストラクチャに関する情報を保存し、コンソールがハイパーバイザープール内のリソースを列挙するために使用する機能も提供します。
-
Citrix Machine Creation Services (NT SERVICE\CitrixMachineCreationService): デスクトップVMの作成をオーケストレーションします。
-
Citrix Monitor Service (NT SERVICE\CitrixMonitor): Citrix Virtual AppsまたはCitrix Virtual Desktopsのメトリックを収集し、履歴情報を保存し、トラブルシューティングおよびレポートツール用のクエリインターフェイスを提供します。
-
Citrix Storefront Service (NT SERVICE\ CitrixStorefront): StoreFront の管理をサポートします。(StoreFront コンポーネント自体の一部ではありません。)
-
Citrix Storefront Privileged Administration Service (NT SERVICE\CitrixPrivilegedService): StoreFront の特権管理操作をサポートします。(StoreFront コンポーネント自体の一部ではありません。)
-
Citrix Config Synchronizer Service (NT SERVICE\CitrixConfigSyncService): メインサイトデータベースからローカルホストキャッシュに構成データを伝播します。
-
Citrix High Availability Service (NT SERVICE\CitrixHighAvailabilityService): メインサイトデータベースが利用できない場合に、ユーザーが利用できる仮想デスクトップまたはアプリケーションを選択します。
Delivery Controllerのインストールでは、以下のWindowsサービスも作成されます。これらは、他のCitrixコンポーネントと一緒にインストールされた場合にも作成されます。
-
Citrix Diagnostic Facility COM Server (NT SERVICE\CdfSvc): Citrixサポートが使用するための診断情報の収集をサポートします。
-
Citrix Telemetry Service (NT SERVICE\CitrixTelemetryService): Citrixによる分析のために診断情報を収集し、管理者が分析結果と推奨事項を表示してサイトの問題の診断に役立てられるようにします。
Delivery Controllerのインストールでは、以下のWindowsサービスも作成されます。これは現在使用されていません。有効になっている場合は、無効にしてください。
-
Citrix リモート ブローカー プロバイダー (NT SERVICE\XaXdCloudProxy)
Delivery Controllerのインストールでは、以下のWindowsサービスも作成されます。これらは現在使用されていませんが、有効にする必要があります。無効にしないでください。
-
Citrix オーケストレーション サービス (NT SERVICE\CitrixOrchestration)
-
Citrix トラスト サービス (NT SERVICE\CitrixTrust)
Citrix Storefront Privileged Administration Service を除き、これらのサービスには「サービスとしてログオン」のログオン権限と、「プロセスのメモリクォータの調整」、「セキュリティ監査の生成」、「プロセスレベルトークンの置き換え」の特権が付与されます。これらのユーザー権限を変更する必要はありません。これらの特権は Delivery Controller では使用されず、自動的に無効になります。
サービス設定の構成
Citrix Storefront Privileged Administration サービスと Citrix Telemetry Service を除き、上記の ユーザー権限の構成 セクションに記載されている Delivery Controller の Windows サービスは、NETWORK SERVICE ID としてログオンするように構成されています。これらのサービス設定を変更しないでください。
Citrix Config Synchronizer Service は、Delivery Controller 上のローカル管理者グループに NETWORK SERVICE アカウントが属している必要があります。これにより、ローカルホストキャッシュが正しく機能します。
Citrix Storefront Privileged Administration サービスは、ローカルシステム (NT AUTHORITY\SYSTEM) としてログオンするように構成されています。これは、通常サービスでは利用できない Delivery Controller の StoreFront 操作 (Microsoft IIS サイトの作成を含む) に必要です。そのサービス設定を変更しないでください。
Citrix Telemetry Service は、サービス固有の ID としてログオンするように構成されています。
Citrix Telemetry Service は無効にできます。このサービスと、すでに無効になっているサービスを除き、これらの Delivery Controller Windows サービスの他のサービスを無効にしないでください。
レジストリ設定の構成
VDA ファイルシステムで 8.3 形式のファイル名とフォルダーの作成を有効にする必要はなくなりました。レジストリキー NtfsDisable8dot3NameCreation を構成して、8.3 形式のファイル名とフォルダーの作成を無効にできます。これは、fsutil.exe behavior set disable8dot3 コマンドを使用しても構成できます。
展開シナリオのセキュリティへの影響
ユーザー環境には、組織によって管理されておらず、完全にユーザーの制御下にあるユーザーデバイス、または組織によって管理および運用されているユーザーデバイスのいずれかを含めることができます。これら2つの環境のセキュリティに関する考慮事項は、一般的に異なります。
管理対象ユーザーデバイス
管理対象ユーザーデバイスは管理制御下にあります。それらは、お客様自身の制御下にあるか、信頼する別の組織の制御下にあります。ユーザーデバイスを直接ユーザーに構成して提供することも、単一のデスクトップが全画面表示モードでのみ実行されるターミナルを提供することもできます。すべての管理対象ユーザーデバイスについて、上記の一般的なセキュリティのベストプラクティスに従ってください。このリリースには、ユーザーデバイスに必要なソフトウェアが最小限であるという利点があります。
管理対象のユーザーデバイスは、全画面専用モードまたはウィンドウモードで使用するように構成できます。
-
全画面専用モード: ユーザーは通常のWindowsログオン画面でログオンします。その後、同じユーザー資格情報を使用して、このリリースに自動的にログオンします。
-
ユーザーはデスクトップをウィンドウで表示します: ユーザーはまずユーザーデバイスにログオンし、次にこのリリースに付属のWebサイトを通じてこのリリースにログオンします。
管理対象外のユーザーデバイス
信頼できる組織によって管理および運用されていないユーザーデバイスは、管理制御下にあるとは見なされません。たとえば、ユーザーが自分のデバイスを入手して構成することを許可する場合がありますが、ユーザーは上記の一般的なセキュリティのベストプラクティスに従わない可能性があります。このリリースには、管理対象外のユーザーデバイスにデスクトップを安全に配信できるという利点があります。これらのデバイスには、キーロガーや同様の入力攻撃を防ぐための基本的なウイルス対策保護が引き続き必要です。
データストレージに関する考慮事項
このリリースを使用する場合、ユーザーが物理的に制御しているユーザーデバイスにデータを保存することを防ぐことができます。ただし、ユーザーがデスクトップにデータを保存することの影響を考慮する必要があります。ユーザーがデスクトップにデータを保存することは良い習慣ではありません。データは、適切に保護できるファイルサーバー、データベースサーバー、またはその他のリポジトリに保持する必要があります。
デスクトップ環境は、プールされたデスクトップや専用デスクトップなど、さまざまな種類のデスクトップで構成される場合があります。ユーザーは、プールされたデスクトップなど、ユーザー間で共有されるデスクトップにデータを保存してはなりません。ユーザーが専用デスクトップにデータを保存する場合、そのデスクトップが後で他のユーザーに利用可能になった場合は、そのデータを削除する必要があります。
混在バージョン環境
一部のアップグレードでは、混在バージョン環境は避けられません。ベストプラクティスに従い、異なるバージョンのCitrixコンポーネントが共存する時間を最小限に抑えてください。混在バージョン環境では、たとえばセキュリティポリシーが均一に適用されない場合があります。
注:
これは他のソフトウェア製品にも共通しています。以前のバージョンのActive Directoryを使用すると、後のバージョンのWindowsではグループポリシーが部分的にしか適用されません。
以下のシナリオでは、特定の混在バージョンCitrix環境で発生する可能性のあるセキュリティ問題について説明します。Citrix Receiver 1.7を使用してXenAppおよびXenDesktop 7.6 Feature Pack 2のVDAを実行している仮想デスクトップに接続すると、サイトでポリシー設定 が有効になりますが、XenAppおよびXenDesktop 7.1を実行しているDelivery Controllerでは無効にできません。これは、製品の後のバージョンでリリースされたポリシー設定を認識しないためです。このポリシー設定により、ユーザーはファイルを仮想デスクトップにアップロードおよびダウンロードできるようになり、これがセキュリティ問題となります。この問題を回避するには、Delivery Controller(またはStudioのスタンドアロンインスタンス)をバージョン7.6 Feature Pack 2にアップグレードし、グループポリシーを使用してポリシー設定を無効にします。または、影響を受けるすべての仮想デスクトップでローカルポリシーを使用します。
Remote PC Accessのセキュリティに関する考慮事項
Remote PC Accessは、次のセキュリティ機能を実装しています。
-
スマートカードの使用がサポートされています。
-
リモートセッションが接続されると、オフィスPCのモニターは空白で表示されます。
-
Remote PC Accessは、CTRL+ALT+DEL、USB対応スマートカード、生体認証デバイスを除くすべてのキーボードおよびマウス入力をリモートセッションにリダイレクトします。
-
SmoothRoamingは、単一ユーザーのみがサポートされます。
-
ユーザーがオフィスPCにリモートセッションを接続している場合、そのユーザーのみがオフィスPCへのローカルアクセスを再開できます。ローカルアクセスを再開するには、ユーザーはローカルPCでCtrl-Alt-Delを押し、リモートセッションで使用したのと同じ資格情報でログオンします。システムに適切なサードパーティの資格情報プロバイダー統合がある場合、ユーザーはスマートカードを挿入するか、生体認証を利用してローカルアクセスを再開することもできます。このデフォルトの動作は、グループポリシーオブジェクト(GPO)を介して高速ユーザー切り替えを有効にするか、レジストリを編集することで上書きできます。
注:
Citrixでは、VDA管理者権限を一般セッションユーザーに割り当てないことをお勧めします。
自動割り当て
デフォルトでは、Remote PC Accessは複数のユーザーをVDAに自動的に割り当てることをサポートしています。XenDesktop 5.6 Feature Pack 1では、管理者はRemotePCAccess.ps1 PowerShellスクリプトを使用してこの動作を上書きできました。このリリースでは、複数の自動リモートPC割り当てを許可または禁止するためにレジストリエントリを使用します。この設定はサイト全体に適用されます。
注意:
レジストリを誤って編集すると、オペレーティングシステムの再インストールが必要になるような深刻な問題が発生する可能性があります。Citrixは、レジストリエディターの誤った使用によって生じる問題が解決できることを保証できません。レジストリエディターの使用は自己責任で行ってください。編集する前に必ずレジストリをバックアップしてください。
自動割り当てを単一ユーザーに制限するには:
サイト内の各Controllerで、次のレジストリエントリを設定します。
HKEY_LOCAL_MACHINE\Software\Citrix|DesktopServer
Name: AllowMultipleRemotePCAssignments
Type: REG_DWORD
Data: 0 = Disable multiple user assignment, 1 = (Default) Enable multiple user assignment.
既存のユーザー割り当てがある場合は、SDKコマンドを使用してそれらを削除し、VDAが単一の自動割り当ての対象となるようにします。
-
VDAから割り当てられているすべてのユーザーを削除します:
$machine.AssociatedUserNames | %{ Remove-BrokerUser-Name $_ -Machine $machine -
デリバリーグループからVDAを削除します:
$machine | Remove-BrokerMachine -DesktopGroup $desktopGroup
物理的なオフィスPCを再起動します。
XML信頼
XML信頼設定は、以下を使用する展開に適用されます。
-
オンプレミスのStoreFront。
-
パスワードを必要としないサブスクライバー(ユーザー)認証技術。このような技術の例としては、ドメインパススルー、スマートカード、SAML、Veridiumソリューションなどがあります。
XML信頼設定を有効にすると、ユーザーは正常に認証され、アプリケーションを起動できるようになります。Delivery Controllerは、StoreFrontから送信された資格情報を信頼します。この設定は、Delivery ControllerとStoreFront間の通信が保護されている場合(ファイアウォール、IPsec、またはその他のセキュリティ推奨事項を使用している場合)にのみ有効にしてください。
この設定はデフォルトで無効になっています。
XML信頼設定の確認、有効化、または無効化には、Citrix Virtual Apps and Desktops PowerShell SDKを使用します。
-
XML信頼設定の現在の値を確認するには、
Get-BrokerSiteを実行し、TrustRequestsSentToTheXMLServicePortの値を調べます。 -
XML信頼を有効にするには、
Set-BrokerSite -TrustRequestsSentToTheXmlServicePort $trueを実行します。 -
XML信頼を無効にするには、
Set-BrokerSite -TrustRequestsSentToTheXmlServicePort $falseを実行します。