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へのインストール」を参照してください。代わりに、IPSecを使用してサーバー間の通信を保護するようにWindowsを構成することができます。
信頼できるStoreFrontサーバーのみがDelivery Controllerと通信できるようにDelivery ControllerとStoreFrontを構成できます。「セキュリティキーの管理」を参照してください。
StoreFrontとCitrix Desktop as a Serviceとの通信
StoreFrontとCloud Connector間でデータの受け渡しを保護するには、HTTPSプロトコルを使用することをお勧めします。「HTTPS構成」を参照してください。代わりに、IPSecを使用してサーバー間の通信を保護するようにWindowsを構成することができます。
信頼できるStoreFrontサーバーのみがDelivery Controllerと通信できるようにDelivery ControllerとStoreFrontを構成できます。「セキュリティキーの管理」を参照してください。
リモートアクセス
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サイトの規則を上書きして、「すべてのユーザー」の許可規則を追加し、その他の規則を削除する必要があります。
Retailモード
Retailモードを有効にすることができます。IISドキュメントを参照してください。
アプリケーションプール
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リソースには適用されません。このグループメンバーシップは変更しないでください。
NTLM
StoreFrontは、サーバーグループ内のサーバー間の認証にNTLMを使用します。NTLMを無効にすると、StoreFrontはサーバーグループ内のStoreFrontサーバー間でデータを同期できなくなります。
NTLMv2のみを使用し、NTLMv1を拒否するようにサーバーを構成できます。Microsoftのドキュメントを参照してください。
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バージョン
StoreFrontは、Delivery ControllerおよびCloud Connectorとの通信にTLS 1.2以降を使用します。
Windows Server 2022以降では、クライアント接続に対してTLS 1.0および1.1を無効にするようにIISを構成できます。詳しくは、「HTTPSによるStoreFrontのセキュリティ保護」を参照してください。
グループポリシーまたはWindowsレジストリ設定を使用して、サーバーとクライアントの両方でTLS 1.0および1.1を無効にすることができます。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サイトをフレーム内に埋め込むことができなくなり、クリックジャッキング攻撃が回避されます。さらに、HTMLページには、XSS攻撃を軽減するためにスクリプトソースを制限するcontent-security-policy を含むmeta タグが含まれています。 |
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構成)。そのため、セキュリティスキャンレポートの技術的な説明により誤解が生じるおそれがあります。
この記事の概要
- エンドユーザーとStoreFrontの通信
- StoreFrontとCitrix Virtual Apps and Desktopsサーバーとの通信
- StoreFrontとCitrix Desktop as a Serviceとの通信
- リモートアクセス
- Microsoftインターネットインフォメーションサービス(IIS)のセキュリティ強化
- Services
- ユーザー権限の割り当て
- グループメンバーシップの構成
- NTLM
- StoreFrontでの証明書
- TLSバージョン
- StoreFrontのセキュリティ境界による分離
- ICAファイルの署名
- ユーザーによるパスワードの変更
- カスタマイズ
- セキュリティヘッダー
- Cookies
- セキュリティに関する詳細