Skip to main content

セキュリティーのベスト プラクティスとして ArcGIS Server をスキャンする

ArcGIS Server には、一般的なセキュリティー問題のスキャンを行う Python スクリプト ツール serverScan.py が付属しています。 このツールは、ArcGIS Sever でセキュリティー保護された環境を構成するための一部のベスト プラクティスに基づいて、問題があるかどうかをチェックします。 多数の基準または構成プロパティを分析して、CriticalImportantRecommended という 3 段階の重要度レベルに分割します。 これらの基準の説明は次のとおりです:

ID

重要度

プロパティ

説明

SS01

Critical

Web の通信

ArcGIS Server に対して HTTPS が有効かどうかを判断します。 あらゆる通信が傍受されないよう、ArcGIS Server と ArcGIS Web Adaptor (インストールされている場合) で SSL 暗号化を強制するよう構成することをおすすめします。

SS02

Critical

標準化されたクエリー

標準化されたクエリーが適用されるかどうかを判断します。 SQL インジェクション攻撃から保護するには、このオプションを有効にすることが非常に重要です。

SS03

Critical

トークン リクエスト

GET によるトークン生成リクエストがサポートされるかどうかを判断します。 GET でトークンを生成する際、URL の一部としてユーザーの認証情報が提供され、ブラウザーの履歴やネットワーク ログを通じて取得および公開される可能性があります。 他のアプリケーションから要求されない限り、これは無効にしておく必要があります。

SS04

Critical

トークン リクエスト

クエリー パラメーターの認証情報を使用した、POST によるトークン リクエストの生成がサポートされるかどうかを判断します。 トークン生成時に URL の一部としてユーザーの認証情報が提供され、ブラウザーの履歴やネットワーク ログを通じて公開される可能性があります。 他のアプリケーションから要求されない限り、これは無効にしておく必要があります。

SS05

Critical

Filter web content が有効

filter web content プロパティが無効になっているフィーチャ サービスのリストを生成します。 このプロパティを無効にすると、ユーザーが入力フィールドにテキストを入力できるようになり、サービスがクロスサイト スクリプティング (XSS) 攻撃を受ける可能性があります。 デフォルトではこのプロパティは有効になっており、サポートされていない HTML エンティティーまたは属性が必要にならない限り、無効にしないでください。

SS06

Critical

システム サービスの権限

Server Manager のシステム フォルダーで任意のサービスにデフォルト以外の権限が適用されるかどうかを判断します。 システム フォルダー内のサービスへのアクセスを管理者および公開者に限定するため、ロールを割り当てないでください。

SS07

Important

REST Services Directory

Web ブラウザーを通じて REST サービス ディレクトリーにアクセスできるかどうかを判断します。 ユーザーがサービスのサーチまたは検索のために積極的に使用している場合を除き、サービスの参照、Web サーチでのサービスの検索、または HTML フォームからのサービスの要求の機会を減らすために、無効にしてください。 無効化すると、クロスサイト スクリプティング (XSS) 攻撃から保護することもできます。

SS08

Important

クロス ドメインの制限

クロス ドメイン リクエストが特定のドメインに限定されるかどうかを判断します。 不明なアプリケーションから Web サービスに悪意のあるコマンドが送信される可能性を減らすため、サービスの使用を、信頼できるドメイン内でホストされるアプリケーションのみに制限することをおすすめします。

SS09

Important

ダイナミック ワークスペース

ダイナミック ワークスペースを介してデータベースにアクセスできるサービスのリストを生成します。 適切な保護措置を取らない限り、これによってデータベース/ワークスペースが、REST 経由で悪意のある第三者によってアクセスされる可能性があります。 サービスおよびダイナミック レイヤー/ワークスペース機能が、Web アプリケーションでアクティブに使用するためのものである場合のみ、ダイナミック ワークスペースを有効にします。 この場合、マップ サービスがワークスペース/データベースに接続するために使用するデータベース コネクションでは、たとえば、ワークスペース内に追加したテーブルのうち必要なテーブルのみに読み取り専用アクセスを付与するなど、アプリケーションに必要な最低限の権限だけが付与されていることを確認することが重要です。

SS10

Recommended

HTTPS 上の Web Adaptor

HTTPS 上で 1 つ以上の Web Adaptor が登録されるかどうかを判断します。 Server Manager が HTTPS に正常にリダイレクトできるようにするには、すべての Web Adaptor が HTTPS 上で登録されている必要があります。

SS11

Recommended

PSA アカウントの無効化

プライマリー サイト管理者のアカウントが有効かどうかを判断します。 このアカウントを無効にして、アイデンティティー ストアで指定したグループやロール以外に、ArcGIS Server を管理する方法が存在しないようにすることをおすすめします。

SS12

Recommended

フィーチャ サービスの権限

update または delete 操作が有効になっており、匿名アクセスに開かれているフィーチャ サービスのリストを返します。 これにより、認証なしでフィーチャ サービスのデータを変更または削除できるようになります。

SS13

Recommended

LDAP アイデンティティー ストア

ArcGIS Server が LDAP アイデンティティー ストアを使用して構成されている場合、暗号化通信が使用されるかどうかを判断します。 ArcGIS Server と LDAP アイデンティティー プロバイダー間の暗号化通信を確保するため、LDAP ユーザー ストアと LDAP ロール ストアの両構成 (使用されている場合) で定義された接続 URL に ldaps:// を使用することをおすすめします。

SS14

Recommended

サーバーの SSL 証明書

自己署名証明書が ArcGIS Server で使用されるかどうかを判断します。 ArcGIS Server と通信するクライアントの Web ブラウザーによる警告メッセージなどの予期しない動作を減らすには、ポート 6443 にバインドされた CA 署名 SSL 証明書をインポートして使用することをおすすめします。

SS15

Critical

システム サービスの共有

システム フォルダー内のサービスがポータル アイテムとして共有されているかどうかを判断します。 適切な権限を確保するため、これらのサービスはポータルを通じて共有されることを想定していません。 デフォルトのサービス権限を復元するため、関連するポータル アイテムを削除することをおすすめします。

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 と名前が付けられます。