StoreFront展開環境のセキュリティ

このトピックでは、StoreFrontの展開および構成時に使用すべき、システムのセキュリティを保護するための機能について説明します。

Microsoftインターネットインフォメーションサービス(IIS)の構成

制限されたIIS構成でStoreFrontを構成できます。これはデフォルトのIIS構成ではありません。

ファイル拡張子

一覧にないファイル拡張子を禁止することができます。

StoreFrontでは、要求のフィルタリングに、次のファイル拡張子が必要です:

  • (空白の拡張子)
  • .appcache
  • .aspx
  • .cr
  • .css
  • .dtd
  • gif
  • .htm
  • .html
  • ICA
  • .ico
  • .jpg
  • .js
  • png
  • .svg
  • .txt
  • .xml

Citrix Receiver for WebでCitrix Workspaceアプリのダウンロード/アップグレードが有効になっている場合、次のファイル拡張子も必要です:

  • .dmg
  • .exe

HTML5向けCitrix Workspaceアプリが有効になっている場合、次のファイル拡張子も必要です:

  • .eot
  • .ttf
  • .woff

MIMEの種類

以下のファイルの種類に対応するMIMEの種類を削除できます。

  • .exe
  • .dll
  • .com
  • .bat
  • .csh

要求のフィルタリング

StoreFrontは要求のフィルタリングに、次のHTTP動詞が必要です。次の一覧にない動詞を禁止できます。

  • GET
  • POST
  • ヘッド

その他のMicrosoft IIS設定

StoreFrontは次を必要としません。

  • ISAPIフィルター
  • ISAPI拡張
  • CGIプログラム
  • FastCGIプログラム

重要:

  • IIS認証規則を構成しないでください。StoreFrontは直接認証サポートし、IIS認証を使用したり、サポートしたりしません。
  • StoreFrontサイトのSSL設定で [Client certificates: Require] を選択しないでください。StoreFrontのインストールでは、この設定でStoreFrontサイトの適切なページを構成します。
  • StoreFrontにはCookieが必須であるため、[Use Cookies]設定を選択する必要があります。[cookieless/Use URI]設定は選択しないでください。
  • StoreFrontには完全な信頼が必要です。グローバル.NET信頼レベルを[High]またはそれ以下に設定しないでください。
  • StoreFrontでは、サイトごとに別個のアプリケーションプールはサポートされません。このサイト設定は変更しないでください。ただし、アプリケーションプールのアイドル状態のタイムアウト値と、アプリケーションプールが使用する仮想メモリの量は設定できます。

ユーザー権利の構成

注:

Microsoft IISは、StoreFrontがインストールされると有効化されます。Microsoft IISにより、組み込みグループIIS_IUSRSにはバッチジョブとしてログオンするログオン権限、および認証後にクライアントを偽装する特権が付与されます。これはMicrosoft IISがインストールされるときの通常動作です。これらのユーザー権利は変更しないでください。詳しくは、Microsoftのドキュメントを参照してください。

StoreFrontがインストールされると、そのアプリケーションプールにはサービスとしてログオンのログオン権限とプロセスのメモリクォータの増加、セキュリティ監査の生成、およびプロセスレベルトークンの置き換えの特権が付与されます。これはアプリケーションプールが作成された時の通常のビヘイビアーです。対象となるアプリケーションプールは、Citrix構成API、Citrix Delivery Servicesリソース、Citrix Delivery Services認証、Citrix Receiver for Webです。

通常、これらのユーザー権利を変更する必要はありません。これらの特権はStoreFrontでは使用されず自動的に無効になります。

StoreFrontをインストールすると、次のWindowsサービスが作成されます。

  • Citrix Configuration Replication(NT SERVICE\CitrixConfigurationReplication)
  • Citrix Cluster Join(NT SERVICE\CitrixClusterService)
  • Citrix Peer Resolution(NT SERVICE\Citrix Peer Resolution Service)
  • Citrix Credential Wallet(NT SERVICE\CitrixCredentialWallet)
  • Citrix Subscriptions Store(NT SERVICE\CitrixSubscriptionsStore)
  • Citrix Default Domain Services(NT SERVICE\CitrixDefaultDomainService)

XenApp 6.5にStoreFront Kerberos制約付き委任を構成すると、Citrix StoreFront Protocol Transitionサービス(NT SERVICE\SYSTEM)が作成されます。このサービスには、Windowsサービスに通常付与されない特権が必要です。

サービス設定の構成

上記の「ユーザー権利の構成」セクションの一覧にあるStoreFront Windowsサービスは、NETWORK SERVICE IDでログオンするように構成されます。Citrix StoreFront Protocol Transitionサービスは、SYSTEMとしてログオンします。この構成は変更しないでください。

グループメンバーシップの構成

StoreFrontサーバーグループを構成すると、次のサービスが管理者セキュリティグループに追加されます。

  • Citrix Configuration Replication(NT SERVICE\CitrixConfigurationReplication)
  • Citrix Cluster Join(NT SERVICE\CitrixClusterService)このサービスはグループに属するサーバーでのみ表示され、参加処理中にのみ実行されます。

StoreFrontが正しく動作して次の操作を行うには、これらのグループメンバーシップが必要です。

  • 証明書の作成、エクスポート、インポート、削除、および証明書へのアクセス権限の設定
  • Windowsレジストリの読み取りおよび書き込み
  • Global Assembly Cache(GAC)でのMicrosoft .NET Frameworkアセンブリの追加および削除
  • フォルダーProgram Files\Citrix\<StoreFrontLocation>へのアクセス
  • IISアプリプールIDおよびIIS Webアプリケーションの追加、変更、削除
  • ローカルセキュリティグループおよびファイアウォールルールの追加、変更、削除
  • WindowsサービスとPowerShellスナップインの追加および削除
  • Microsoft Windows Communication Framework(WCF)エンドポイントの登録

上記操作の一覧は、StoreFrontの更新プログラムで告知なく変更されることがあります。

StoreFrontをインストールすると、以下のセキュリティグループも作成されます。

  • CitrixClusterMembers
  • CitrixCWServiceReadUsers
  • CitrixCWServiceWriteUsers
  • CitrixDelegatedAuthenticatorUsers
  • CitrixDelegatedDirectoryClaimFactoryUsers
  • CitrixPNRSUsers
  • CitrixStoreFrontPTServiceUsers
  • CitrixSubscriptionServerUsers
  • CitrixSubscriptionsStoreServiceUsers
  • CitrixSubscriptionsSyncUsers

StoreFrontは、これらのセキュリティグループのメンバーシップを保持します。メンバーシップはStoreFront内でのアクセス制御のために使用され、ファイルやフォルダーなどのWindowsリソースには適用されません。このグループメンバーシップは変更しないでください。

StoreFrontでの証明書

サーバー証明書

StoreFrontでは、コンピューターの識別とTransport Layer Security(TLS)通信の保護のためにサーバー証明書を使用します。ICAファイルの署名機能を有効にする場合は、StoreFrontで証明書を使用してICAファイルをデジタル署名することもできます。

Citrix Workspaceアプリを初めてデバイスにインストールするユーザーに対してメールアドレスによるアカウント検出を有効にするには、StoreFrontサーバー上に有効なサーバー証明書をインストールする必要があります。ルート証明書へのチェーンのすべてが有効である必要もあります。ユーザーエクスペリエンスを向上させるには、SubjectまたはSubject Alternative NameエントリがdiscoverReceiver.domainである証明書をインストールします(ここでdomainはユーザーのメールアカウントのMicrosoft Active Directoryドメインです)。このドメインのワイルドカード証明書を使用することもできますが、そのような証明書の使用が社内のセキュリティポリシーで許可されていることを確認してください。ユーザーのメールアカウントを含んでいるドメイン用のほかの証明書を使用することもできますが、ユーザーがCitrix WorkspaceアプリでStoreFrontサーバーに最初に接続したときに、証明書に関する警告が表示されます。上記以外の証明書を使用してメールアドレスによるアカウント検出機能を使用することはできません。詳しくは、メールアドレスによるアカウント検出を構成するを参照してください。

ユーザーがアカウントを構成するときに、Citrix WorkspaceアプリにストアのURLを入力する場合(つまりメールアドレスによるアカウント検出機能を使用しない場合)は、StoreFrontサーバー上の証明書がそのサーバーに対してのみ有効で、ルート証明書へのチェーンが有効である必要があります。

トークン管理の証明書

認証サービスとストアのそれぞれに、トークン管理のための証明書が必要です。認証サービスまたはストアを作成すると、StoreFrontにより自己署名証明書が生成されます。StoreFrontにより生成される自己署名証明書をほかの用途で使用しないでください。

Citrix Delivery Servicesの証明書

StoreFrontは、カスタムのWindows証明書ストア(Citrix Delivery Services)に、いくつかの証明書を保持しています。Citrix Configuration Replicationサービス、Citrix Credential Walletサービス、およびCitrix Subscriptions Storeサービスは、これらの証明書を使用します。クラスター内の各StoreFrontサーバーは、これらの証明書のコピーを持っています。これらのサービスはセキュアな通信にTLSを使用せず、これらの証明書はTLSサーバー証明書として使用されません。これらの証明書は、StoreFrontストアの作成時またはStoreFrontのインストール時に作成されます。このWindows証明書ストアのコンテンツは変更しないでください。

コード署名証明書

StoreFrontは、<InstallDirectory>\Scriptsのフォルダーに多数のPowerShellスクリプト(.ps1)を含みます。デフォルトのStoreFrontインストールでは、これらのスクリプトは使用されません。これらのスクリプトにより、特殊で低頻度のタスクの構成手順が簡素化されます。スクリプトは署名されているため、StoreFrontでPowerShell実行ポリシーをサポートできるようになります。AllSignedポリシーをお勧めします(PowerShellスクリプトの実行が妨げられるため、Restrictedポリシーはサポートされていません)。StoreFrontはPowerShell実行ポリシーを変更しません。

StoreFrontでは信頼できる発行元ストアにコード署名証明書はインストールされませんが、Windowsでコード署名証明書を自動的に追加することができます。これは、PowerShellスクリプトがAlways runオプションで実行されることで、可能になります。(Never runオプションを選択すると、信頼されていない証明書ストアに証明書が追加され、StoreFront PowerShellスクリプトは実行されません)。コード署名証明書が信頼された発行元ストアに追加されると、Windowsは有効期限を確認しなくなります。StoreFrontタスクが完了したら、信頼できる発行元ストアからこの証明書を削除できます。

StoreFrontの通信

実稼働環境では、StoreFrontとサーバーの間で通信されるデータを保護するために、インターネットプロトコルセキュリティ(IPsec)またはHTTPSプロトコルを使用することをお勧めします。IPsecは、インターネットプロトコルの標準機能拡張のセットです。インターネットプロトコルは、データ整合性と再生の保護により通信の認証と暗号化の機能を提供します。IPsecはネットワーク層のプロトコルセットであるため、上位レベルのプロトコルでそのままIPSecを使用できます。HTTPSは、SSL(Secure Sockets Layer)およびTLS(Transport Layer Security)プロトコルを使用して強力なデータ暗号化機能を提供します。

StoreFrontサーバーとCitrix Virtual Appsサーバー間のデータトラフィックを保護するには、SSL Relayを使用します。SSL Relayはホスト認証とデータ暗号化を実行する、Citrix Virtual Appsのデフォルトのコンポーネントです。

StoreFrontをホストするWebサーバーでTLS 1.0および1.1のサポートを無効にすることをお勧めします。グループポリシーオブジェクト経由でこれを適用する必要があり、これによってStoreFrontサーバーで必要なレジストリ設定を作成し古いプロトコル(TLS 1.0やTLS 1.1など)を無効にします。MicrosoftのTLS/SSL Settingsも参照してください。

StoreFrontとユーザーデバイスの間の通信は、Citrix GatewayおよびHTTPSで保護することをお勧めします。StoreFrontでHTTPSを使用するには、認証サービスおよび関連付けられたストアを提供するMicrosoftインターネットインフォメーションサービス(IIS)インスタンスでHTTPSを構成する必要があります。IISでHTTPSが構成されていない場合、StoreFrontの通信にHTTPが使用されます。実稼働環境では、StoreFrontへのすべてのユーザー接続が保護されるようにしてください。

StoreFrontのセキュリティ境界による分離

StoreFrontと同じWebドメイン(ドメイン名とポート)にWebアプリケーションを展開すると、これらのWebアプリケーションの脆弱性によりStoreFront展開環境全体のセキュリティが低下する可能性があります。セキュリティ境界を分離してセキュリティを強化するため、Webアプリケーションと異なるWebドメインにStoreFrontを展開することをお勧めします。

ICAファイルの署名

StoreFrontには、サーバー上の特定の証明書を使用してICAファイルをデジタル署名するオプションがあり、この機能をサポートするバージョンのCitrix Workspaceアプリでは、ファイルの発行元を信頼できるかどうかを検証できます。SHA-1やSHA-256など、StoreFrontサーバーのオペレーティングシステムでサポートされるどのハッシュアルゴリズムでも、ICAファイルを署名できます。詳しくは、ICAファイル署名の有効化を参照してください。

ユーザーによるパスワードの変更

Active Directoryドメインの資格情報でReceiver for Webサイトにログオンするユーザーが必要に応じてパスワードを変更できるように設定することができます。ただし、その認証サービスを使用するストアにアクセスできるすべてのユーザーに、慎重に扱うべきセキュリティ機能が公開されることになります。組織のセキュリティポリシーにより、ユーザーパスワード変更機能が内部使用のみに制限される環境では、社内ネットワークの外側からそれらのストアにアクセスできないことを確認してください。認証サービスを作成したときのデフォルトの構成では、パスワードが失効しても、ユーザーはパスワードを変更できません。詳しくは、ユーザーエクスペリエンスの最適化を参照してください。

StoreFrontサーバーのベースURLをHTTPからHTTPSに変更

StoreFrontとユーザーデバイス間の通信をHTTPSで保護するには、Microsoftインターネットインフォメーションサービス(IIS)でHTTPSを構成する必要があります。最初にSSL証明書をインストールおよび構成せずにCitrix StoreFrontをインストールおよび構成した場合、StoreFrontは通信にHTTPを使用します。

後からSSL証明書をインストールして構成する場合は、次の手順を実行して StoreFrontとそのサービスがHTTPS接続を使用するようにしてください。

次に例を示します:

Altテキスト

ベースURLをHTTPSに変更する前:

Altテキスト

ベースURLをHTTPSに変更した後:

Altテキスト

  1. StoreFrontサーバーのMicrosoftインターネットインフォメーションサービス(IIS)でHTTPSを構成します:

    1. インターネットインフォメーションサービス(IIS)マネージャーコンソールを使用して、Microsoft Active Directoryドメイン証明機関により署名されたSSLサーバー証明書をインポートします。
    2. HTTPS(443)経由でIISバインドをデフォルトのWebサイトに追加します。

    詳しい手順については、CTX200292を参照してください。

  2. Citrix StoreFront管理コンソールの左側のペインで [サーバーグループ] を選択します。
  3. [操作]ペインの [ベースURLの変更] を選択します。
  4. ベースURLを入力し、[OK] をクリックします。

カスタマイズ

セキュリティ強化のため、自分が管理していないサーバーからコンテンツまたはスクリプトをロードするカスタマイズは行わないでください。コンテンツまたはスクリプトは、カスタマイズを行うCitrix Receiver for Webサイトのカスタムフォルダーにコピーしてください。StoreFrontがHTTPS接続用に構成されている場合、カスタムコンテンツやカスタムスクリプトへのリンクもすべてHTTPSを使用していることを確認してください。

セキュリティに関する詳細

注:

この情報は予告なく変更されることがあります。

規制上の理由から、StoreFrontのセキュリティスキャンを実行することをお勧めします。上記の設定オプションを使用することで、セキュリティスキャンの検出結果の一部をレポートから除外することができます。

セキュリティスキャナーとStoreFrontの間にゲートウェイが介在している場合、検出結果のあるものはStoreFront自体ではなくゲートウェイに関連する発見である可能性があります。セキュリティスキャンのレポートでは通常これらの発見は区別されません(たとえば、TLS構成)。そのため、セキュリティスキャンレポートの技術的な説明により誤解が生じるおそれがあります。

セキュリティスキャンレポートを解釈するときは、次の点に注意してください:

  • StoreFrontのHTMLページにはクリックジャッキングに対する防御(コンテンツセキュリティポリシーまたはX-Frame-Options応答ヘッダー)が搭載されていない場合があります。ただし、それらのHTMLページは静的コンテンツのみで構成されているため、クリックジャック攻撃の影響はそれほどありません。

  • Microsoft IISのバージョンとASP.NETを使用していることが、HTTPヘッダーを見るとわかるようになっています。ただしこの情報は、それらのテクノロジを基盤とするStoreFrontを利用していることから明らかな事実ではあります。

  • StoreFrontはアプリケーションやデスクトップを起動するときに、トークンを使用してクロスサイトリクエストフォージェリ(CSRF)を防御します。このトークンは、SecureやHttpOnlyという情報を明示せずにCookieとして応答に埋め込まれて送信されます。その後要求に含まれた状態で送信されるときに、このトークンはURLのクエリ文字列の一部として送信されます。ただし、StoreFrontはHTTP要求の認証に関してこのメカニズムに依存しません。

  • StoreFrontではオープンソースのコンポーネントであるjQueryを使用しています。ここで使用されているバージョンはjQuery 1.3.2です。jQueryオープンソースプロジェクトによると、jQuery 1.12.0で行った変更により、特定の形式のクロスサイト要求に対する潜在的な脆弱性が軽減されているということです。この変更はjQuery自体の脆弱性を軽減するものではなく、アプリケーションロジックが悪用される可能性を減らすためのものです。これと関連のある、NetScalerとStoreFrontで共通して使用されているReceiver for Web機能のアプリケーションロジックでは、問題となっているクロスドメイン要求の特定の形式を使用しておらず、この脆弱性の影響を受けません。同様にこの軽減措置による効果もありません。

    この軽減措置は、互換性の理由からその後のjQuery 1.12.3で撤廃されています。シトリックスのアプリケーションロジックはこの措置による影響を受けていないため、jQuery 1.12.4を使用するバージョンのNetScalerおよびStoreFrontでも措置が撤廃されたことによって大きな影響は受けていません。