セキュリティーのベスト プラクティスとして ArcGIS Server をスキャンする
ArcGIS Server には、一般的なセキュリティー問題のスキャンを行う Python スクリプト ツール serverScan.py が付属しています。 このツールは、ArcGIS Sever でセキュリティー保護された環境を構成するための一部のベスト プラクティスに基づいて、問題があるかどうかをチェックします。 多数の基準または構成プロパティを分析して、Critical、Important、Recommended という 3 段階の重要度レベルに分割します。 これらの基準の説明は次のとおりです:
|
ID |
重要度 |
プロパティ |
説明 |
|---|---|---|---|
|
SS01 |
|
Web の通信 |
ArcGIS Server に対して HTTPS が有効かどうかを判断します。 あらゆる通信が傍受されないよう、ArcGIS Server と ArcGIS Web Adaptor (インストールされている場合) で SSL 暗号化を強制するよう構成することをおすすめします。 |
|
SS02 |
|
標準化されたクエリー |
標準化されたクエリーが適用されるかどうかを判断します。 SQL インジェクション攻撃から保護するには、このオプションを有効にすることが非常に重要です。 |
|
SS03 |
|
トークン リクエスト |
GET によるトークン生成リクエストがサポートされるかどうかを判断します。 GET でトークンを生成する際、URL の一部としてユーザーの認証情報が提供され、ブラウザーの履歴やネットワーク ログを通じて取得および公開される可能性があります。 他のアプリケーションから要求されない限り、これは無効にしておく必要があります。 |
|
SS04 |
|
トークン リクエスト |
クエリー パラメーターの認証情報を使用した、POST によるトークン リクエストの生成がサポートされるかどうかを判断します。 トークン生成時に URL の一部としてユーザーの認証情報が提供され、ブラウザーの履歴やネットワーク ログを通じて公開される可能性があります。 他のアプリケーションから要求されない限り、これは無効にしておく必要があります。 |
|
SS05 |
|
|
|
|
SS06 |
|
システム サービスの権限 |
Server Manager のシステム フォルダーで任意のサービスにデフォルト以外の権限が適用されるかどうかを判断します。 システム フォルダー内のサービスへのアクセスを管理者および公開者に限定するため、ロールを割り当てないでください。 |
|
SS07 |
|
REST Services Directory |
Web ブラウザーを通じて REST サービス ディレクトリーにアクセスできるかどうかを判断します。 ユーザーがサービスのサーチまたは検索のために積極的に使用している場合を除き、サービスの参照、Web サーチでのサービスの検索、または HTML フォームからのサービスの要求の機会を減らすために、無効にしてください。 無効化すると、クロスサイト スクリプティング (XSS) 攻撃から保護することもできます。 |
|
SS08 |
|
クロス ドメインの制限 |
クロス ドメイン リクエストが特定のドメインに限定されるかどうかを判断します。 不明なアプリケーションから Web サービスに悪意のあるコマンドが送信される可能性を減らすため、サービスの使用を、信頼できるドメイン内でホストされるアプリケーションのみに制限することをおすすめします。 |
|
SS09 |
|
ダイナミック ワークスペース |
ダイナミック ワークスペースを介してデータベースにアクセスできるサービスのリストを生成します。 適切な保護措置を取らない限り、これによってデータベース/ワークスペースが、REST 経由で悪意のある第三者によってアクセスされる可能性があります。 サービスおよびダイナミック レイヤー/ワークスペース機能が、Web アプリケーションでアクティブに使用するためのものである場合のみ、ダイナミック ワークスペースを有効にします。 この場合、マップ サービスがワークスペース/データベースに接続するために使用するデータベース コネクションでは、たとえば、ワークスペース内に追加したテーブルのうち必要なテーブルのみに読み取り専用アクセスを付与するなど、アプリケーションに必要な最低限の権限だけが付与されていることを確認することが重要です。 |
|
SS10 |
|
HTTPS 上の Web Adaptor |
HTTPS 上で 1 つ以上の Web Adaptor が登録されるかどうかを判断します。 Server Manager が HTTPS に正常にリダイレクトできるようにするには、すべての Web Adaptor が HTTPS 上で登録されている必要があります。 |
|
SS11 |
|
PSA アカウントの無効化 |
プライマリー サイト管理者のアカウントが有効かどうかを判断します。 このアカウントを無効にして、アイデンティティー ストアで指定したグループやロール以外に、ArcGIS Server を管理する方法が存在しないようにすることをおすすめします。 |
|
SS12 |
|
フィーチャ サービスの権限 |
|
|
SS13 |
|
LDAP アイデンティティー ストア |
ArcGIS Server が LDAP アイデンティティー ストアを使用して構成されている場合、暗号化通信が使用されるかどうかを判断します。 ArcGIS Server と LDAP アイデンティティー プロバイダー間の暗号化通信を確保するため、LDAP ユーザー ストアと LDAP ロール ストアの両構成 (使用されている場合) で定義された接続 URL に |
|
SS14 |
|
サーバーの SSL 証明書 |
自己署名証明書が ArcGIS Server で使用されるかどうかを判断します。 ArcGIS Server と通信するクライアントの Web ブラウザーによる警告メッセージなどの予期しない動作を減らすには、ポート 6443 にバインドされた CA 署名 SSL 証明書をインポートして使用することをおすすめします。 |
|
SS15 |
|
システム サービスの共有 |
システム フォルダー内のサービスがポータル アイテムとして共有されているかどうかを判断します。 適切な権限を確保するため、これらのサービスはポータルを通じて共有されることを想定していません。 デフォルトのサービス権限を復元するため、関連するポータル アイテムを削除することをおすすめします。 |
serverscan スクリプトは、<ArcGIS Server installation location>/tools/admin ディレクトリーにあります。 コマンド ラインまたはシェルからスクリプトを実行します。 スクリプトの実行時にパラメーターを指定することもできます。
serverScan.py スクリプトは、<ArcGIS Server installation location>\tools\admin ディレクトリーにあります。 コマンド ラインまたはシェルからスクリプトを実行します。 スクリプトの実行時にパラメーターを指定することもできます。
serverScan.py パラメーター
|
パラメーター |
説明 |
|---|---|
|
-n |
サーバーがインストールされているコンピューターの完全修飾ドメイン名 (gisserver.example.com など)。 デフォルトは、スクリプトが実行されているコンピューターのホスト名です。 |
|
-u |
管理者アカウントのユーザー名。 |
|
-p |
管理者アカウントのパスワード。 |
|
-o |
セキュリティー スキャン レポートが保存されるディレクトリー。 デフォルトのディレクトリーは、スクリプトを実行するのと同じフォルダーです。 |
|
-t |
ユーザー名とパスワードの代わりに、トークンを生成して使用できます。 フェデレーション サーバー向けにポータル トークンを生成する場合は、スキャン対象サーバーの完全修飾ドメイン名を Webapp URL フィールドに入力する必要があります。 フェデレートされていないサーバー向けにトークンを生成する場合、そのトークンは管理者ディレクトリー (arcgis/admin/generateToken) を介して生成され、クライアントは Request IP でなければなりません。 トークンが指定されると、指定されているユーザー名またはパスワードが無効化されます。 |
|
--ignoressl |
SSL 証明書確認を無効化します。 10.7.1 以降、デフォルトで、スクリプトがすべての SSL 証明書の確認を試行します。 Python が証明書の発行元を信頼しない場合、スクリプトの実行は失敗します。 必要に応じて、このパラメーターですべての証明書を無視するよう指定できます。 |
|
-h または -? |
スクリプトの実行中に指定できるパラメーターのリストを出力します。 |
例: python serverScan.py -n gisserver.example.com -u admin -p my.password -o C:\Temp
パラメーターを 1 つも指定せずに serverScan.py スクリプトを実行すると、手動でパラメーターを入力するか、デフォルト値を選択するよう求めるメッセージが表示されます。 トークンを使用する場合は、スクリプトを実行中にパラメーターとしてトークンを指定する必要があります。
スキャンを実行すると、指定した ArcGIS Server サイトで前述の問題が発生した場合に、それを記載した HTML 形式のレポートが作成されます。
デフォルトでは、このレポートは、スクリプトを実行したのと同じフォルダーに保存され、serverScanReport_[hostname]_[date].html と名前が付けられます。