プライベート・サイトのスキャンについて
ASoC では、SaaS としてのクラウド・ベースのスキャナーから動的アプリケーション・セキュリティー・テスト (DAST) を行います。この機能には、クラウド・ベースのスキャナーがテスト対象のアプリケーションにアクセスできることが要件となります。一般公開されている Web ベースのアプリケーションについては問題なくスキャンできます。ただし、プライベート・サイトのスキャン (PSS) を行うには、その前に、ネットワーク・コンポーネント (VPN やプロキシーなど) を追加するか、スキャナーが Web アプリケーションのホスト・サーバーにアクセスできるようネットワークを変更する必要があります。
PSS トンネリング
PSS ソリューションでは、お客様のネットワークに、ネットワークにリスクをもたらすおそれのある特別な変更を加える必要はありません。お客様のネットワーク内にセットアップされている PSS クライアントには、インターネットへの (直接または HTTP プロキシーを介した) アクセスとスキャン対象のサイトへのアクセスのみが必要です。
このソリューションは、TCP/IP トンネルを構成する 2 つのエンドポイント (サーバーとクライアント) からなります。このトンネルは、お客様 (クライアント) 側にあるエンドポイントから開始されます。
トンネル・サーバー
このエンドポイントは、スキャナーとともに SaaS ネットワーク内にあります。これは、新しいスキャンが開始されたときにのみ始動されます。スキャンに対するサーバーの 2 つの「サイド」が、listen 接続 (バックツーバック・サーバー) を構成します。
- まず、サーバーはトンネル・クライアントからの着信接続を listen します。これが、トンネル・サイドです。
- もう一方として、サーバーはスキャナーからの着信接続を listen します。この点において、サーバーは HTTP プロキシーをエミュレートするため、これがプロキシー・サイドとなります。
クライアントからの接続が利用可能になると、スキャナーがプロキシー・サイドに要求を送信します。送信された要求は、トンネル・サイドの着信接続にポート転送されます。クライアントから返される応答は、プロキシー・サイドによってスキャナーに転送されます。
トンネル・クライアント
このエンドポイントはお客様のネットワーク内にあり、サーバーへの TCP/IP 接続を生成します。トンネル・クライアントはトンネル・サーバーと同じ機能を実行しますが、トンネル・サーバーとは異なる点として、クライアント接続 (バックツーバック・クライアント) の 2 つのセットから構成されています。トンネル・クライアントにも 2 つの「サイド」があります。
- トンネル・サイドは、トンネル・サーバーに発信される接続のセットです。
- クライアント・サイドは、スキャンされるサーバーに (直接またはプロキシーを介して) 発信される接続のセットです。
トンネル・クライアントはポート転送を行います。
AppScan Presence
プライベート・サイトのスキャン・トンネルは、AppScan Presence と呼ばれる SaaS 制御メカニズムに依存します。AppScan Presence は、クラウド・ベースのサービスから実行対象のタスクを受信し、ハンドラーをトリガーしてそのタスクを実行する通信チャネルです。プレゼンス・サービスはポーリング・サービスであり、セキュリティーで保護された HTTP 通信を使用して、タスクの有無を確認するために継続的にクラウド・ベースのサービスをポーリングします。
AppScan Presence サービスは、SaaS サービスからタスクを取得し、そのタスクを処理するために必要な情報をダウンロードして、ハンドラーをトリガーするという役割だけを果たします。この場合、タスクはトンネル・クライアントによって処理されます。取得される情報は、サーバーへのトンネル・クライアント接続を開始するために必要なデータです。
スキャンの実行
スキャンを実行するには、トンネル・クライアントを始動してサーバーに接続する必要があります。これは、AppScan Presence フレームワークによって実行されます。
AppScan Presence フレームワークは、トンネル・クライアント・マシン上で稼働するプレゼンス・サービスからなります。プレゼンス・サービスにより、プレゼンス SaaS サーバーがポーリングされます。このサーバーはクラウド上で稼働し、スキャンを実行できる状態になるとそのことを示します。サービス間で交換されるスキャンの詳細には、クライアントが接続しなければならないトンネル・サーバーの IP アドレスが含まれます。さらに、クライアントは接続先サーバーを確実に識別するための情報も受信します。詳細については、この後の「セキュリティーの考慮事項」のセクションで説明します。
セキュリティ上の考慮事項
このソリューションでセキュリティーの重要な 2 つの側面として考慮されたのは、お客様のネットワークとトンネル接続のセキュリティーです。
- マシンがインターネットへの直接アクセスを制限されている場合は、AppScan Presence をホストしているマシンが通信を行えるように許可する必要があります。
- 組織が独自の証明書を使用して SSL/TLS トラフィックに再署名する場合、通信が中断されることなく、アーキテクチャーに組み込みのセキュリティー・メカニズムが正しく機能できるように、AppScan on Cloud への接続を制限対象から除外する必要があります。
プレゼンス ID
プレゼンス・サービスごとに、その ID としての役割を果たす一意の鍵があります。これは、プレゼンス・インスタンスを識別して、適切なスキャン・タスクを割り当てるために使用されます。この鍵はいつでも更新することができるので、定期的な更新を要件とする組織のセキュリティー・ポリシーに準拠することができます。サーバー上で鍵を更新すると、鍵が物理的にプレゼンス・マシンに配置されるまで、プレゼンス・インスタンスがタスクの受信を停止します。
認証
検証されていない場所からのプライベート・ネットワークへの外部アクセスを防ぐには、トンネル・サーバーとトンネル・クライアントが互いを信頼できることが不可欠となります。スキャンを実行する準備が整い、トンネル・サーバーが開始されると、サーバーの秘密鍵と証明書、およびランダムなクライアント鍵 (25 文字の英数字) が生成されます。スキャンの詳細とともに、このサーバー証明書とクライアント鍵が (プレゼンス・サービスと SaaS サービス間の通信により) トンネル・クライアントに渡されます。これにより、トンネル・クライアントとトンネル・サーバーは、リモート接続の ID を検証できます。
スキャンが完了すると、サーバー証明書とクライアント鍵は無効になり、再スキャンであっても再利用されることは決してありません。
証明書は最新の NIST 標準および FIPS 標準に準拠しており、これらの標準は更新されることがあります (暗号化アルゴリズム、ハッシュ・アルゴリズム、およびキーの長さ)。
転送中のデータの保護
トンネル接続は TLS 1.2 を使用して暗号化されます。トンネル・クライアントは、事前に随時のサーバー証明書を取得し、それを使用して、TLS 認証で使用されるサーバー証明書が想定どおりの証明書であることを検証します。クライアントは、サーバーを認証した後、クライアント鍵をサーバーに送信して、サーバーがクライアントを認証できるようにします。データがこのトンネルを通過する際には、スキャナーとテスト・アプリケーションの間で要求と応答がやり取りされるため、高い機密性が維持されます。データを保護するために、トンネルを通過する間、このような 1 回限りの証明書と鍵を使用してデータが暗号化されます。