セキュアなArcGIS Serverサービスのプロキシ。安全ですか?


8

安全なサービス(トークンベースまたは資格情報)にアクセスするには、プロキシファイル(.net githubの例)を使用することをお勧めします。プロキシを介してリクエストをルーティングする場合、資格情報を公開することなく、クライアントに代わって安全なサービスをリクエストできます。呼び出されるプロパティ定義allowedReferersし、プロキシが機能する参照URLのリストを割り当てることができます。基本的に、プロキシは、定義されていないURLを参照するリクエストを行いません。に設定すると'*'、すべての参照リクエストが処理されます。

問題は; 要求ヘッダーは、偽のHTTPリファラープロパティを設定するだけで、ハッカーによって簡単偽装されます。この状況では、すべてのリクエストをプロキシ経由でルーティングし、リファラーヘッダーを有効なアドレスに設定することで、安全なサービスにアクセスできます。

この問題を回避するための最良の方法に関する推奨事項を探しています。何かお勧めですか?


3
すばらしい質問です。最近もこれを試してみましたが、クエリ文字列を介してトークンを渡すよりも安全性が低いことがわかりました。ご指摘のとおり、プロキシを介してリクエストを渡すことができます。数行のPythonコードでこれを確認できました...資格情報なしでサービスディレクトリ全体をトラバースできました。少なくとも、リクエストでトークンが渡される場合は、トークンを最初にアクティブ化/取得する必要があります。誰かが何か良い提案があるかどうかも知りたいです。
crmackey 2015年

「Esriの推奨事項...」:blogs.esri.com/esri/supportcenter/2015/04/07/setting-up-a-proxyを参照してください。上記の勧告の事例を引用するのは良いようです。
gischimp 2015年

ギシンプありがとう。これはプロキシを設定するための優れたリソースですが、発生している問題を保護するための方法については言及していません。ポータルとArcGIS Onlineの両方にoAuth2があることを知っています。ArcGIS Serverの次のリリースはこれをサポートするのだろうか?現時点では、@ crmackeyが正しいように見えます。最も安全な方法(少なくともトークンベースのサービスの場合)は、プロキシを使用せず、GETリクエストにトークンを添付するだけです。
jOshT 2015年

また、agstokenキーを使用してCookieにトークンを追加できることにも言及する価値があります。これによってセキュリティが大幅に向上するわけではありませんが、少なくともトークンはクエリ文字列に表示されません。
crmackey 2015年

回答:


1

ログインページを提供するApache TomcatでJavaプロキシをホストしています。ArcGISプロキシは、ログインページと同じアプリケーションコンテキストで実行されます。このようにして、ユーザーは別の安全なデータベースに保存されている資格情報を使用してアクセスできます。Tomcatは通常のセッション管理を行い、少し変更されたArcGISプロキシは非表示のArcGIS資格情報とトークンを処理します。これはすべてHTTPSを介して行われます。

結果は次のとおりです。

  • ArcGIS資格情報がローカルイントラネットの外部に送信されることはありません。
  • ユーザーは、有効なセッションがないとプロキシにアクセスできません。
  • 有効なセッションは、適切な資格情報を持つユーザーにのみ発行されます。

0

プロキシ経由でリクエストをルーティングする場合、資格情報を公開することなく、クライアントに代わって安全なサービスをリクエストできます。

この文章が鍵だと思います。プロキシがGISサーバーに対して認証する場合、プロキシは資格情報で構成されていますか?その場合、それらの認証情報は、リクエストされたマップサービスにアクセスでき、「意図したとおりに機能している」ように見えます。

プロキシが資格情報を格納/渡す場合、プロキシはデータを安全に保つことよりも資格情報を安全に保つことを重視します。安全なマップサービスからのマップデータを表示する会社のイントラネットサイトを考えてみてください。

要求ヘッダーがハッカーによって簡単に偽装される

上記のステートメントは、外部の攻撃者がプロキシに直接到達できることを意味しますか?その場合、偽装されたHTTPヘッダーよりも心配する必要があります。

ユーザー、プロキシ、GISサーバーはすべてネットワーク内にありますか、それともユーザーはプロキシを使用してネットワーク外のGISサービスに接続していますか?ネットワークトポロジの詳細を知っていると、より適切な回答が得られる場合があります。

編集:ネットワーク内の保護されたGISサーバーからリソースをフェッチしているパブリックWebアプリがある場合、フォワードプロキシではなくリバースプロキシが必要になる可能性があります。


2
@jOshTは私がするのと同じ懸念を共有していると思います。つまり、不要な訪問者からRESTエンドポイントを保護する方法がないようです。はい、プロキシは資格情報を非表示にしますが、プロキシのURLがわかっている場合は、プロキシを介してすべてのリクエストをルーティングするだけで資格情報がバックエンドに渡されるため、資格情報について心配する必要はありません。これを数行のPythonでテストしました。
crmackey 2015年

1
私は、プロキシが資格情報を安全に保つ上で優れた役割を果たすことに同意します。「プロキシに直接到達する」と言うとき; ちょっと言ってみます。アプリケーションは(プロキシと同様に)パブリックですが、誰かが実際に私のプロキシ(.net)のコンテンツを「見る」ことができません。Esriの例としてdeveloper.arcgis.com/javascript/samples/ags_trafficを例にとります。ここでは、プロキシを使用して安全なサービスにアクセスしています。Chrome開発者ネットワークツールを使用して、リクエスト(cURL)をコピーし、コマンドラインから実行して情報を取得できます。プロキシ自体をどのように保護できますか?
jOshT 2015年

@jOshT proxy.configファイルを貼り付けて、機密性の高いビットを削除できますか?あなたのコメントからですが、フォワードプロキシの代わりにリバースプロキシを使用したほうがよいように思えます。
Mintx 2015年

@Mintx私のプロキシは基本的にEsriのプロキシと同じです。github.com/ Esri / resource-proxy / tree / master / DotNetは、リクエストしたアプリケーションのURLにAllowedReferersを設定していることを除きます。
jOshT 2015年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.