セキュリティーのベスト プラクティスを実現するためのポータルのスキャン
Portal for ArcGIS には、いくつかの一般的なセキュリティー問題のスキャンを行う Python スクリプト ツール portalScan.py があります。 このツールは、ポータル用のセキュリティーで保護された環境の構成のベスト プラクティスに基づき、問題をチェックします。 多数の基準または構成プロパティを分析し、Critical (重大)、Important (重要)、Recommended (推奨) という 3 段階の重要度レベルに分割します。 これらの基準の説明は次のとおりです。
|
ID |
重要度 |
プロパティ |
説明 |
|---|---|---|---|
|
PS01 |
重大 |
プロキシー制限 |
ポータルのプロキシー機能が制限されているかどうかを判断します。 デフォルトでは、ポータル プロキシー サーバーはどの URL にも開いています。 サービス拒否 (DoS) やサーバー サイド リクエスト フォージェリー (SSRF) 攻撃を受けるリスクを軽減するため、ポータルのプロキシー機能を、許可された Web アドレスに制限することをおすすめします。 |
|
PS02 |
重大 |
トークン リクエスト |
クエリー パラメーターの認証情報によるトークン リクエストの生成がサポートされているかどうかを判断します。 サポートされる場合は、トークン生成時に URL の一部としてユーザーの認証情報を提供し、ブラウザーの履歴やネットワーク ログを通じて公開される可能性があります。 他のアプリケーションから要求されない限り、これは無効にしておくことをおすすめします。 |
|
PS03 |
重要 |
ポータル サービス ディレクトリー |
Web ブラウザーを通じてポータル サービス ディレクトリーにアクセスできるかどうかを判断します。 ポータルのアイテム、サービス、Web マップ、グループ、その他のリソースを参照されたり、Web 検索で見つけられたり、HTML フォームでクエリーされたりする可能性を減らすため、無効にしてください。 |
|
PS04 |
重要 |
セキュアな通信 |
ポータルの通信が HTTPS のみを介しているかどうかを判断します。 ポータル内のすべての通信の傍受から守るために、SSL を使用するようにポータルと ArcGIS Web Adaptor をホストする Web サーバーを構成することをおすすめします。 |
|
PS05 |
推奨 |
組み込みアカウントのサインアップ |
ユーザーがポータルのサインアップ ページで アカウントの作成 ボタンをクリックして、組み込みポータル アカウントを作成できるかどうかを判断します。 組織固有のアカウントを使用している場合や、すべてのアカウントを手動で作成する場合は、このオプションを無効にする必要があります。 |
|
PS06 |
推奨 |
匿名アクセス |
匿名アクセスが可能かどうかを判断します。 ポータルに認証情報を入力していないユーザーがコンテンツにアクセスできないように、匿名アクセスを無効化してポータルを構成することをおすすめします。 |
|
PS07 |
推奨 |
LDAP アイデンティティー ストア |
ポータルが LDAP アイデンティティー ストアを使用して構成されている場合、このストアによって暗号化通信を使用するかどうかが決定されます。 ユーザー ストアおよびグループ ストアの構成パラメーターにリストされている |
|
PS08 |
推奨 |
ポータルの SSL 証明書 |
自己署名証明書をポータルで使用するかどうかを決定します。 ポータルと通信するクライアントの Web ブラウザーによる警告メッセージなどの予期しない動作を減らすには、ポート 7443 にバインドされた CA 署名 SSL 証明書をインポートして使用することをおすすめします。 |
|
PS09 |
推奨 |
クロス ドメイン リクエスト |
クロス ドメイン (CORS) リクエストが制限されないかどうかを決定します。 未知のアプリケーションが共有ポータル アイテムにアクセスする可能性を減らすには、クロス ドメイン リクエストを信頼済みドメインでのみホストされているアプリケーションに制限することをおすすめします。 |
|
PS10 |
重大 |
フェデレーション サーバーの管理 URL |
フェデレーション サーバーの管理者 URL がポータルからアクセスできるかどうか、およびこの URL で使用されている SSL 証明書が信頼済みかどうかを決定します。 証明書が信頼済みでない場合や、ポータルからアクセスできない場合、多くのポータルの機能および操作は失敗します。 |
|
PS11 |
推奨 |
フェデレーション サーバーのサービス URL |
フェデレーション サーバーのサービス URL がポータルからアクセスできるかどうか、およびこの URL で使用されている SSL 証明書が信頼済みかどうかを決定します。 証明書が信頼済みでない場合や、ポータルからアクセスできない場合でも、ポータルは機能しますが、一部のポータル操作は失敗する可能性があります。 |
|
PS12 |
推奨 |
パブリック コンテンツ |
メンバーがコンテンツをパブリックに共有できないようにポータルが構成されている場合でも、すべてのユーザー と共有されているアイテムは表示されます。 |
|
PS13 |
重要 |
SAML 構成設定 |
ポータルが SAML 認証を使用するように構成されている場合、暗号化アサーションと署名付きリクエストを有効にするかどうかを決定します。 ID プロバイダーがサポートしている場合、暗号化アサーションと署名付きリクエストの両方を要求するようにポータルを構成することをおすすめします。 |
|
PS14 |
重要 |
デフォルト印刷サービスのステータス |
ポータルでデフォルトで構成されている印刷サービスは、通常、ArcGIS Server がフェデレートされたら上書きされます。 デフォルトの印刷サービスを使用していない場合は、無効化することをおすすめします。 |
|
PS15 |
推奨 |
凡例サービスのステータス |
凡例サービスは、古いマップとフィーチャ サービスから (SOAP 経由で) 凡例アイコンを取得するためにポータルによって使用されます。 REST による凡例取得をサポートしていない古いサービスにアクセスする場合を除き、このサービスを無効化することをおすすめします。 |
|
PS16 |
推奨 |
RSS サービスのステータス |
RSS サービスは、GeoRSS フィードと通信するためにポータルによって使用されます。 ポータルの Web マップから GeoRSS フィードにアクセスしない場合は、このサービスを無効化することをおすすめします。 |
|
PS17 |
推奨 |
KML サービスのステータス |
KLM サービスは、KLM エンドポイントと通信するためにポータルによって使用されます。 ポータルの Web マップから KLM エンドポイントにアクセスしない場合は、このサービスを無効化することをおすすめします。 |
|
PS18 |
重大 |
サービス アカウントの権限 |
Windows 上で Portal for ArcGIS サービスを実行しているサービス アカウントが、ローカルの管理者グループのメンバーであるかどうかを判定します。 これにより、システムが高レベルのセキュリティー リスクにさらされます。 アカウントを管理者グループから削除するか、最小限必要な権限のみを持つ、管理者以外のアカウントを使用することをおすすめします。 |
|
ID |
重要度 |
プロパティ |
説明 |
|---|---|---|---|
|
PS01 |
重大 |
プロキシー制限 |
ポータルのプロキシー機能が制限されているかどうかを判断します。 デフォルトでは、ポータル プロキシー サーバーはどの URL にも開いています。 サービス拒否 (DoS) やサーバー サイド リクエスト フォージェリー (SSRF) 攻撃を受けるリスクを軽減するため、ポータルのプロキシー機能を、許可された Web アドレスに制限することをおすすめします。 |
|
PS02 |
重大 |
トークン リクエスト |
クエリー パラメーターの認証情報によるトークン リクエストの生成がサポートされているかどうかを判断します。 サポートされる場合は、トークン生成時に URL の一部としてユーザーの認証情報を提供し、ブラウザーの履歴やネットワーク ログを通じて公開される可能性があります。 他のアプリケーションから要求されない限り、これは無効にしておくことをおすすめします。 |
|
PS03 |
重要 |
ポータル サービス ディレクトリー |
Web ブラウザーを通じてポータル サービス ディレクトリーにアクセスできるかどうかを判断します。 ポータルのアイテム、サービス、Web マップ、グループ、その他のリソースを参照されたり、Web 検索で見つけられたり、HTML フォームでクエリーされたりする可能性を減らすため、無効にしてください。 |
|
PS04 |
重要 |
セキュアな通信 |
ポータルの通信が HTTPS のみを介しているかどうかを判断します。 ポータル内のすべての通信の傍受から守るために、SSL を使用するようにポータルと ArcGIS Web Adaptor をホストする Web サーバーを構成することをおすすめします。 |
|
PS05 |
推奨 |
組み込みアカウントのサインアップ |
ユーザーがポータルのサインアップ ページで アカウントの作成 ボタンをクリックして、組み込みポータル アカウントを作成できるかどうかを判断します。 組織固有のアカウントを使用している場合や、すべてのアカウントを手動で作成する場合は、このオプションを無効にする必要があります。 |
|
PS06 |
推奨 |
匿名アクセス |
匿名アクセスが可能かどうかを判断します。 ポータルに認証情報を入力していないユーザーがコンテンツにアクセスできないように、匿名アクセスを無効化してポータルを構成することをおすすめします。 |
|
PS07 |
推奨 |
LDAP アイデンティティー ストア |
ポータルが LDAP アイデンティティー ストアを使用して構成されている場合、このストアによって暗号化通信を使用するかどうかが決定されます。 ユーザー ストアおよびグループ ストアの構成パラメーターにリストされている |
|
PS08 |
推奨 |
ポータルの SSL 証明書 |
自己署名証明書をポータルで使用するかどうかを決定します。 ポータルと通信するクライアントの Web ブラウザーによる警告メッセージなどの予期しない動作を減らすには、ポート 7443 にバインドされた CA 署名 SSL 証明書をインポートして使用することをおすすめします。 |
|
PS09 |
推奨 |
クロス ドメイン リクエスト |
クロス ドメイン (CORS) リクエストが制限されないかどうかを決定します。 未知のアプリケーションが共有ポータル アイテムにアクセスする可能性を減らすには、クロス ドメイン リクエストを信頼済みドメインでのみホストされているアプリケーションに制限することをおすすめします。 |
|
PS10 |
重大 |
フェデレーション サーバーの管理 URL |
フェデレーション サーバーの管理者 URL がポータルからアクセスできるかどうか、およびこの URL で使用されている SSL 証明書が信頼済みかどうかを決定します。 証明書が信頼済みでない場合や、ポータルからアクセスできない場合、多くのポータルの機能および操作は失敗します。 |
|
PS11 |
推奨 |
フェデレーション サーバーのサービス URL |
フェデレーション サーバーのサービス URL がポータルからアクセスできるかどうか、およびこの URL で使用されている SSL 証明書が信頼済みかどうかを決定します。 証明書が信頼済みでない場合や、ポータルからアクセスできない場合でも、ポータルは機能しますが、一部のポータル操作は失敗する可能性があります。 |
|
PS12 |
推奨 |
パブリック コンテンツ |
メンバーがコンテンツをパブリックに共有できないようにポータルが構成されている場合でも、すべてのユーザー と共有されているアイテムは表示されます。 |
|
PS13 |
重要 |
SAML 構成設定 |
ポータルが SAML 認証を使用するように構成されている場合、暗号化アサーションと署名付きリクエストを有効にするかどうかを決定します。 ID プロバイダーがサポートしている場合、暗号化アサーションと署名付きリクエストの両方を要求するようにポータルを構成することをおすすめします。 |
|
PS14 |
重要 |
デフォルト印刷サービスのステータス |
ポータルでデフォルトで構成されている印刷サービスは、通常、ArcGIS Server がフェデレートされたら上書きされます。 デフォルトの印刷サービスを使用していない場合は、無効化することをおすすめします。 |
|
PS15 |
推奨 |
凡例サービスのステータス |
凡例サービスは、古いマップとフィーチャ サービスから (SOAP 経由で) 凡例アイコンを取得するためにポータルによって使用されます。 REST による凡例取得をサポートしていない古いサービスにアクセスする場合を除き、このサービスを無効化することをおすすめします。 |
|
PS16 |
推奨 |
RSS サービスのステータス |
RSS サービスは、GeoRSS フィードと通信するためにポータルによって使用されます。 ポータルの Web マップから GeoRSS フィードにアクセスしない場合は、このサービスを無効化することをおすすめします。 |
|
PS17 |
推奨 |
KML サービスのステータス |
KLM サービスは、KLM エンドポイントと通信するためにポータルによって使用されます。 ポータルの Web マップから KLM エンドポイントにアクセスしない場合は、このサービスを無効化することをおすすめします。 |
portalScan.py スクリプトは <Portal for ArcGIS installation location>/tools/security ディレクトリーにあります。 同じディレクトリーにある portalScan Bash スクリプトを使用してシェルからスクリプトを実行します。 スクリプトの実行時に、1 つ以上のパラメーターを指定することもできます。
portalScan.py スクリプトは <Portal for ArcGIS installation location>\tools\security ディレクトリーにあります。 同じディレクトリーにある portalScan.bat を使用してコマンド ラインからスクリプトを実行します。 スクリプトの実行時に、1 つ以上のパラメーターを指定することもできます。
portalScan.py パラメーター
portalScan.py のパラメーターを次の表に示します:
|
パラメーター |
説明 |
|---|---|
|
-n |
Portal for ArcGIS がインストールされているコンピューターの完全修飾ドメイン名 (gisportal.example.com)。 デフォルトは、スクリプトが実行されているコンピューターのホスト名です。 |
|
-u |
管理者アカウントのユーザー名。 |
|
-p |
管理者アカウントのパスワード。 |
|
-o |
セキュリティー スキャン レポートが保存されるディレクトリー。 デフォルトのディレクトリーは、スクリプトを実行するのと同じフォルダーです。 |
|
-t |
ユーザー名とパスワードの代わりに、トークンを生成して使用できます。 トークンを生成すると、 |
|
--ignoressl |
SSL 証明書の確認を無効にします。 10.7.1 以降、デフォルトで、スクリプトがすべての SSL 証明書の確認を試行します。 Python が証明書の発行元を信頼しない場合、スクリプトの実行は失敗します。 必要に応じて、このパラメーターですべての証明書を無視するよう指定できます。 |
|
-h または -? |
スクリプトの実行中に指定できるパラメーターのリストを出力します。 |
例 (ユーザーのホーム ディレクトリーに書き込まれる出力ファイルを使用):
./portalScan -n portal.example.com -u admin -p my.password -o ~
例 (C:\Temp に書き込まれる出力ファイルを使用してコマンド プロンプトから実行):
portalScan -n portal.example.com -u admin -p my.password -o C:\Temp
パラメーターを指定せずに portalScan スクリプトを実行すると、手動で入力するか、デフォルト値を選択するよう求められます。 トークンを使用する場合は、スクリプトを実行中にパラメーターとしてトークンを指定する必要があります。
スキャンを実行すると、指定ポータルで前述の問題が発生した場合に、それを記載した HTML 形式のレポートが作成されます。
デフォルトでは、このレポートは、スクリプトを実行したのと同じフォルダーに保存され、portalScanReport_[hostname]_[date].html と名前が付けられます。