セキュリティに関する考慮事項およびベストプラクティス
注:
組織によっては、法的規制の要件を満たすために特定のセキュリティ基準への準拠が要求される場合があります。このようなセキュリティ基準は変更されることがあるため、ここでは説明しません。セキュリティ標準とCitrix製品に関する最新情報については、「http://www.citrix.com/security/」を参考にしてください。
セキュリティに関する推奨事項
セキュリティパッチを適用して、環境内にあるすべてのマシンを最新の状態にします。この製品の利点の1つは、シンクライアントをターミナルとして使用することによってこの作業を簡略化できることです。
環境内にあるすべてのマシンを、アンチウイルスソフトウェアで保護します。
プラットフォーム特定のアンチマルウェアソフトウェアの使用を検討します。
ソフトウェアをインストールするときは、指定されたデフォルトパスにインストールします。
- 指定されたデフォルトパス以外のファイルの場所にソフトウェアをインストールする場合は、権限を制限するなどさらにセキュリティ対策をファイルの場所に追加することを検討してください。
すべてのネットワーク通信が正しく保護され、セキュリティポリシーに従って暗号化されている必要があります。IPSecを使用して、Microsoft Windowsコンピューターの間でのすべての通信を保護できます。その方法について詳しくは、使用するオペレーティングシステムのドキュメントを参照してください。さらに、ユーザーデバイスとデスクトップ間の通信は、デフォルトで128ビット暗号化を行うCitrix SecureICAで保護できます。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 Firewallサービスが検出された場合は(ファイアウォールが無効であったとしても)、コンポーネントと機能の通信に必要なポートが自動的に開放されるように設定できます。また、それらのファイアウォールポートを手作業で構成することもできます。Windows以外のファイアウォールを使用している場合は、手作業でファイアウォールを構成する必要があります。
従来の環境を新しいバージョンに移行する場合は、既存の境界ファイアウォールを移動するか、新しい境界ファイアウォールを追加する必要があります。たとえば、従来のクライアントとデータセンター内のデータベースサーバーとの間に境界ファイアウォールがあるとします。このリリースを使用するときは、仮想デスクトップおよびユーザーデバイスと、データセンター内のデータベースサーバーおよびDelivery Controllerとの間に境界ファイアウォールを設定する必要があります。したがって、データベースサーバーとControllerを含むエンクレーブをデータセンター内に作成することを検討します。また、ユーザーデバイスと仮想デスクトップ間のセキュリティについても考慮する必要があります。
注:
TCPポート1494および2598はICAおよびCGPに使用され、ファイアウォールで開放されているため、データセンター外のユーザーはこれらのポートにアクセスできます。管理インターフェイスが不注意で開いたままになって攻撃を受ける可能性を避けるため、CitrixではこれらのTCPポートをほかの目的で使用しないでください。ポート1494および2598は、Internet Assigned Number Authority(http://www.iana.org/)に正規登録されています。
アプリケーションのセキュリティ
管理者以外のユーザーが悪意のある操作を実行するのを防ぐために、VDAホストとローカルWindowsクライアントで、インストーラー、アプリケーション、実行可能ファイル、スクリプトに対してWindows AppLockerの規則を構成することをお勧めします。
ユーザー権限の管理
ユーザーには、必要な権限だけを付与します。デスクトップのユーザーには、Microsoft Windowsでの権限(グループポリシーの[ユーザー権利の割り当て]およびグループメンバーシップ)がそのまま適用されます。このリリースの利点の1つは、仮想デスクトップが格納されているコンピューターに対する物理的な制御を許可せずに、デスクトップに対するユーザーの管理権限を付与できることです。
デスクトップ権限を計画するときは、以下の点に注意してください。
- デフォルトでは、権限を持たないユーザーがデスクトップに接続すると、ユーザーデバイスのタイムゾーンではなく、そのデスクトップを実行しているシステムのタイムゾーンが表示されます。デスクトップの使用時にローカルの時刻が表示されるようにする方法については、「デリバリーグループの管理」を参照してください。
- デスクトップの管理者権限を持つユーザーは、そのデスクトップを完全に制御することができます。デスクトップが専用デスクトップではなくプールデスクトップの場合、管理者権限を持つユーザーはそのデスクトップのすべてのユーザー(将来のユーザーを含む)に信頼されている必要があります。このため、プールデスクトップのすべてのユーザーは、この状況によってデータのセキュリティに永続的な危険性が存在することを認識する必要があります。これは、1人のユーザーに対してのみ割り当てられるデスクトップには当てはまりません。つまり、このユーザーはほかのデスクトップの管理者になることはできません。
- 通常、デスクトップの管理者であるユーザーはそのデスクトップにソフトウェアをインストールできます。インストールできるソフトウェアには悪意のあるものも含まれます。またユーザーが、そのデスクトップに接続しているすべてのネットワーク上のトラフィックを監視または制御することも可能です。
ログオン権限の管理
ユーザーアカウントとコンピューターアカウントの両方にログオン権限が必要です。 Microsoft Windowsの権限では、ログオン権限は引き続き、[ユーザー権限の割り当て]で権限を設定し[グループポリシー]でグループメンバーシップを設定するという通常の方法で、デスクトップに適用されます。
Windowsのログオン権限には次の種類があります。ローカルログオン、リモートデスクトップサービスを使ったログオン、ネットワーク経由でのログオン(ネットワーク経由でコンピューターへアクセス)、バッチジョブとしてログオン、サービスとしてログオン。
コンピューターアカウントでは、必要なログオン権限だけをコンピューターに付与します。次のアカウントに、ログオン権限「ネットワーク経由でコンピューターへアクセス」が必要です。
- VDAで、Delivery Controllerのコンピューターアカウント
- Delivery Controllerで、VDAのコンピューターアカウント。「Active Directory OUベースのController検出」を参照してください。
- StoreFrontサーバーで、同じStoreFrontサーバーグループ内の他のサーバーのコンピューターアカウント
ユーザーアカウントでは、必要なログオン権限だけをユーザーに付与します。
Microsoftによると、デフォルトでRemote Desktop Usersグループに[リモート デスクトップ サービスを使ったログオンを許可]でログオン権限が付与されています(ドメインコントローラを除く)。
組織のセキュリティポリシーによっては、このグループがこのログオン権限から除外されることを明示的に設定している場合もあります。 次の方法を検討してください。
- マルチセッションOS対応Virtual Delivery Agent(VDA)はMicrosoftリモートデスクトップサービスを使用します。 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):仮想マシンの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):デスクトップ仮想マシンの作成をオーケストレーションします。
- 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 Remote Broker Provider(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 ServiceとCitrix Telemetry Serviceを除く、上述の「ユーザー権利の構成」セクションに示すDelivery Controller Windowsサービスは、ネットワークサービスIDでログオンするように構成されます。このサービス設定は変更しないでください。
Citrix Config Synchronizer Serviceでは、NETWORK SERVICEアカウントがDelivery Controllerのローカル管理者グループに属している必要があります。これにより、ローカルホストキャッシュが正しく機能します。
Citrix Storefront Privileged Administration Serviceは、ローカルシステム(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環境で発生する可能性があるセキュリティ問題について説明します。XenAppおよびXenDesktop 7.6 Feature Pack 2のVirtual Delivery Agentを実行している仮想デスクトップへの接続にCitrix Receiver 1.7が使用されている場合、ポリシー設定 [デスクトップとクライアント間におけるファイル転送の許可] はサイトでは有効ですが、XenAppおよびXenDesktop 7.1を実行しているDelivery Controllerによっては無効にできません。製品のより新しいバージョンでリリースされたポリシーの設定は認識されません。このポリシーにより、ユーザーはファイルを自分の仮想デスクトップにアップロードしてダウンロードできます – セキュリティ問題。この問題を回避するには、Delivery ControllerあるいはStudioのスタンドアロンインスタンスをバージョン7.6 Feature Pack 2にアップグレードし、その後でグループポリシーを使ってポリシーを無効にします。または、すべての該当する仮想デスクトップでローカルポリシーを使用します。
リモートPCアクセスのセキュリティに関する考慮事項
リモートPCアクセスでは、次のセキュリティ機能がサポートされます。
- スマートカードの使用がサポートされます。
- リモートセッションの間、社内のPCのモニターは非表示になります。
- リモートPCアクセスでは、すべてのキーボードおよびマウスの入力がリモートセッションにリダイレクトされます(Ctrl+Alt+Delキー入力、およびUSB対応スマートカードや生体認証デバイスを除く)。
- SmoothRoamingは1人のユーザーに対してのみサポートされます。
- リモートセッションで接続していた社内のPCにローカルでアクセスを再開できるのはそのユーザーのみです。ローカルでのアクセスを再開するには、ローカルのキーボードでCtrl+Alt+Delキーを押して、リモートセッションと同じ資格情報を使ってログオンします。システムに適切なサードパーティ製の資格情報プロバイダー統合が構成されている場合は、スマートカードを挿入したり生体認証を使用したりしてローカルアクセスを再開することもできます。グループポリシーオブジェクト(GPO)やレジストリキーでユーザーの簡易切り替え機能を有効にして、このデフォルトの動作設定を上書きすることができます。
注:
CitrixではVDA管理者特権を一般のセッションユーザーに割り当てないことをお勧めします。
自動割り当て
リモートPCアクセスでは、デフォルトで単一VDAへの複数ユーザーの自動割り当てがサポートされます。XenDesktop 5.6 Feature Pack 1では、PowerShellスクリプトRemotePCAccess.ps1を使ってこの動作を上書きできました。このリリースでは、レジストリキーを使って複数ユーザーの自動割り当てを許可または禁止できます。この設定はサイト全体に適用されます。
注意:
レジストリエディターの使用を誤ると、深刻な問題が発生する可能性があり、オペレーティングシステムの再インストールが必要になる場合もあります。レジストリエディターの誤用による障害に対して、Citrixでは一切責任を負いません。レジストリエディターは、お客様の責任と判断の範囲でご使用ください。また、レジストリファイルのバックアップを作成してから、レジストリを編集してください。
自動割り当てを1人のユーザーのみに制限するには、以下の手順に従います。
サイト上の各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、またはその他のセキュリティ推奨事項を使用)。
このチェックボックスは、デフォルトでオフになっています。
Citrix Virtual Apps and Desktops PowerShell SDKを使用して、XML信頼設定を確認、有効化、または無効化します。
- XML信頼設定の現在の値を確認するには、
Get-BrokerSite
を実行してTrustRequestsSentToTheXMLServicePort
の値を調べます。 - XML信頼を有効にするには、
Set-BrokerSite -TrustRequestsSentToTheXmlServicePort $true
を実行します。 - XML信頼を無効にするには、
Set-BrokerSite -TrustRequestsSentToTheXmlServicePort $false
を実行します。