StoreFront

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

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

エンドユーザーとStoreFrontの通信

ユーザーデバイスとStoreFrontの間の通信は、HTTPSで保護することをお勧めします。これにより、クライアントとStoreFrontの間で送信されるパスワードおよびその他のデータが確実に暗号化されます。さらに、単純なHTTP接続は、中間者攻撃などのさまざまな攻撃によって危険にさらされる可能性があります。特に、接続が公衆Wi-Fiホットスポットなどの安全はでない場所から行われる場合はその危険性があります。IISでHTTPSが構成されていない場合、StoreFrontの通信にHTTPが使用されます。

構成に応じて、ユーザーはゲートウェイまたはロードバランサー経由でStoreFrontにアクセスできます。HTTPS接続はゲートウェイまたはロードバランサーで終了できます。ただし、この場合でも、HTTPSを使用してゲートウェイまたはロードバランサーとStoreFront間のセキュリティで保護された接続を確保することをお勧めします。

HTTPSを有効にし、HTTPを無効にし、HSTSを有効にするには、「HTTPSによるStoreFrontのセキュリティ保護」を参照してください。

StoreFrontとCitrix Virtual Apps and Desktopsサーバーとの通信

StoreFrontとCitrix Virtual Apps and DesktopsのDelivery Controllerの間で通信されるデータを保護するために、HTTPSプロトコルを使用することをお勧めします。「TLSサーバー証明書のControllerへのインストール」を参照してください。StoreFrontは、StoreFrontとDelivery Controller間でTLS 1.0またはTLS 1.1プロトコルをサポートしません。代わりに、IPSecを使用してサーバー間の通信を保護するようにWindowsを構成することができます。

信頼できるStoreFrontサーバーのみがDelivery Controllerと通信できるようにDelivery ControllerとStoreFrontを構成できます。「セキュリティキーの管理」を参照してください。

StoreFrontとCloud Connectorの通信

StoreFrontとCloud Connector間でデータの受け渡しを保護するには、HTTPSプロトコルを使用することをお勧めします。「Cloud ConnectorでSSLを有効にしてXMLトラフィックを保護する方法」を参照してください。StoreFrontは、StoreFrontとCloud Connector間でTLS 1.0またはTLS 1.1プロトコルをサポートしません。代わりに、IPSecを使用してサーバー間の通信を保護するようにWindowsを構成することができます。

リモートアクセス

Citrixでは、StoreFrontサーバーをインターネットに直接公開することはお勧めしません。リモートユーザーに認証とアクセスを提供するには、Citrix Gatewayを使用することをお勧めします。

Microsoftインターネットインフォメーションサービス(IIS)のセキュリティ強化

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

ファイル拡張子

要求フィルターを使用して、許可されるファイル拡張子の一覧を構成し、一覧にないファイル名拡張子を禁止にできます。IISのドキュメントを参照してください。

StoreFrontでは、次のファイル名拡張子が必要です:

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

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

  • .dmg
  • .exe

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

  • .eot
  • .ttf
  • .woff
  • .wasm

動詞

要求フィルターを使用して、許可される動詞の一覧を構成し、一覧にない動詞を禁止にできます。IISのドキュメントを参照してください。

  • GET
  • POST
  • HEAD

URL内の非ASCII文字

ストア名とWebサイト名にASCII文字のみを使用する場合、StoreFront URLにはASCII文字が含まれません。要求フィルターを使用して、非ASCII文字を禁止にできます。IISのドキュメントを参照してください。

MIMEタイプ

以下のファイル拡張子に対応するOSシェルのMIMEタイプを削除できます:

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

IISのドキュメントを参照してください。

X-Powered-Byヘッダーを削除する

デフォルトでは、IISは、値ASP.NETを含むX-Powered-Byヘッダーを追加することで、ASP.NETを使用していることをレポートします。このヘッダーを削除するようにIISを構成できます。IISのカスタムヘッダーに関するドキュメントを参照してください。

IISバージョンを使用するServerヘッダーを削除する

デフォルトでは、IISはServerヘッダーを追加することで、IISバージョンをレポートします。このヘッダーを削除するようにIISを構成できます。IISの要求フィルターに関するドキュメントを参照してください。

StoreFront Webサイトを別のパーティションに移動する

StoreFrontのWebサイトをシステムファイルとは別のパーティションでホストできます。IIS内で、StoreFront展開環境を作成する前に、適切なパーティションでDefault Web Siteを移動するか、別のサイトを作成する必要があります。

IISの機能

StoreFrontによってインストールおよび使用されるIIS機能の一覧については、「システム要件」を参照してください。他のIIS機能を削除できます。

StoreFrontはISAPIフィルターを直接使用しませんが、この機能はASP.NETに必要なため、アンインストールできません。

ハンドラーのマッピング

StoreFrontには次のハンドラーのマッピングが必要です。他のハンドラーのマッピングは削除できます。

  • ExtensionlessUrlHandler-Integrated-4.0
  • PageHandlerFactory-Integrated-4.0
  • StaticFile

IISのハンドラーに関するドキュメントを参照してください。

ISAPIフィルター

StoreFrontはISAPIフィルターを必要としません。すべてのISAPIフィルターを削除できます。IISのISAPIフィルターに関するドキュメントを参照してください。

.NET認証の規則

デフォルトでは、IISサーバーの「.NET認証の規則」は[すべてのユーザーを許可]に設定されています。デフォルトでは、StoreFrontが使用するWebサイトはこの構成を継承します。

サーバーレベルで.NET認証の規則を削除または変更する場合は、StoreFrontが使用するWebサイトの規則を上書きして、「すべてのユーザー」の許可規則を追加し、その他の規則を削除する必要があります。

アプリケーションプール

StoreFrontは次のアプリケーションプールを作成します:

  • Citrix構成API
  • Citrix Delivery Services認証
  • Citrix Delivery Servicesリソース
  • およびCitrix Receiver for Web

各IISアプリケーションが使用するアプリケーションプールや各プールのIDは変更しないでください。複数のサイトを使用している場合、各サイトが個別のアプリケーションプールを使用するように構成することはできません。

リサイクル設定では、アプリケーションプールのアイドルタイムアウトと仮想メモリの制限を設定できます。「Citrix Receiver for Web」アプリケーションプールがリサイクルされると、Webブラウザー経由でログインしているユーザーがログアウトされるため、デフォルトでは、中断を最小限に抑えるために毎日午前2時にリサイクルされるように設定されています。リサイクル設定のいずれかを変更すると、ユーザーはその日の別の時間にログオフされる可能性があります。

必要な設定

  • IIS認証設定は変更しないでください。StoreFrontは認証を管理し、StoreFrontサイトのディレクトリを適切な認証設定で構成します。
  • SSL設定のStoreFrontサイトで [Client certificates: Require] を選択しないでください。StoreFrontのインストールでは、この設定でStoreFrontサイトの適切なページを構成します。
  • StoreFrontでは、セッション状態およびその他の機能にCookieが必要です。特定のディレクトリでは、[Session State][Cookie Settings][Mode][Use Cookies] に設定する必要があります。
  • StoreFrontでは、[.NET信頼レベル][Full Trust]に設定する必要があります。.NET信頼レベルを他の値に設定しないでください。

Services

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)

これらのアカウントは Network Serviceとしてログオンします。この構成は変更しないでください。

XenApp 6.5にStoreFront Kerberos制約付き委任を構成すると、さらにCitrix StoreFront Protocol Transitionサービス(NT SERVICE\CitrixStoreFrontProtocolTransition)が作成されます。このサービスはNT AUTHORITY\SYSTEMとして実行されます。この構成は変更しないでください。

ユーザー権限の割り当て

ユーザー権限の割り当てをデフォルトから変更すると、StoreFrontで問題が発生する可能性があります。特に次の点を確認します:

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

  • StoreFrontがインストールされると、アプリケーションプールが作成され、IISによってサービスとしてログオンプロセスのメモリクォータの増加セキュリティ監査の生成、およびプロセスレベルトークンの置き換えのユーザー権限が付与されます。

  • サーバーをサーバーグループに参加させるには、Administratorsグループにファイルとディレクトリの復元ネットワーク経由でコンピューターへアクセス、および 監査とセキュリティログの管理の権限が必要です。

  • ユーザーがユーザー名とパスワード認証(直接またはGateway経由)を使用してログオンするには、StoreFrontがDelivery Controller経由でパスワードを検証するように構成していない限り、「ローカルログオンを許可する」の権限を持っている必要があります。

これは包括的な一覧ではないため、これ以外のユーザーのアクセス権限が必要になる場合があります。

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

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
  • CitrixPNRSReplicators
  • CitrixPNRSUsers
  • CitrixStoreFrontAdministrators
  • CitrixSubscriptionServerUsers
  • CitrixSubscriptionsStoreServiceUsers
  • CitrixSubscriptionsSyncUsers

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

StoreFrontでの証明書

サーバー証明書

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

詳しくは、「エンドユーザーとStoreFrontの通信」および「ICAファイルの署名」を参照してください。

トークン管理の証明書

認証サービスとストアのそれぞれに、トークン管理のための証明書が必要です。認証サービスまたはストアを作成すると、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タスクが完了したら、信頼できる発行元ストアからこの証明書を削除できます。

従来のTLSバージョンの無効化

Windowsサーバー上のクライアント通信とサーバー通信の両方でTLS 1.0および1.1を無効にすることをお勧めします。これは、グループポリシーを使用するか、Windowsレジストリ設定を使用して実行することができます。Microsoftのドキュメントを参照してください。

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

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

ICAファイルの署名

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

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

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

カスタマイズ

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

セキュリティヘッダー

WebブラウザーでストアWebサイトを表示すると、StoreFrontはWebブラウザーに制限を適用する次のセキュリティ関連ヘッダーを返します。

ヘッダー名 説明
content-security-policy frame-ancestors 'none' これにより、他のサイトがStoreFront Webサイトをフレーム内に埋め込むことができなくなり、クリックジャッキング攻撃が回避されます。StoreFrontはインラインスクリプトとスタイルを使用するため、これらをブロックするcontent-security-policyを使用することはできません。StoreFront Webサイトには管理者が設定したコンテンツのみが表示され、ユーザーが入力したコンテンツは表示されないため、インラインスクリプトをブロックする必要はありません。
X-Content-Type-Options nosniff これにより、MIMEタイプのスニッフィングが回避されます。
X-Frame-Options deny これにより、他のサイトがStoreFront Webサイトをフレーム内に埋め込むことができなくなり、クリックジャッキング攻撃が回避されます。この機能は、content-security-policyによって廃止されframe-ancestors 'none'になりましたが、content-security-policyをサポートしていない一部の古いブラウザーでは認識されます
X-XSS-Protection 1; mode=block XSS(クロスサイトスクリプティング)攻撃を軽減するために一部のブラウザーで使用されます

Cookies

StoreFrontは複数のCookieを使用します。Webサイトの運営に使用されるCookieの一部は次のとおりです:

Cookie 説明
ASP.NET_SessionId 認証状態を含むユーザーのセッションを追跡します。HttpOnlyが設定されています。
CtxsAuthId セッション固定攻撃を防ぐために、StoreFrontはさらに、このCookieを使用してユーザーが認証されているかどうかを追跡します。HttpOnlyが設定されています。
CsrfToken 標準のCookieからヘッダーへのトークンパターンによるクロスサイトリクエストフォージェリを防ぐために使用されます。サーバーはCookieにトークンを設定します。クライアントはCookieからトークンを読み取り、そのトークンをクエリ文字列またはその後の要求のヘッダーに含めます。このCookieは、クライアントのJavaScriptが読み取ることができるように、HttpOnlyが設定されていないことが必要です。
CtxsDeviceId デバイスを識別します。HttpOnlyが設定されています。

StoreFrontは、ユーザーの状態を追跡するために他の多くのCookieを設定します。CookieのうちのいくつかはJavaScriptによって読み取られる必要があるため、HttpOnlyを設定しません。これらのCookieには、認証に関する情報やその他の機密情報は含まれません。

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

注:

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

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

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