プライベート・サイトのスキャンについて

ASoC では、SaaS としてのクラウド・ベースのスキャナーから動的アプリケーション・セキュリティー・テスト (DAST) を行います。この機能には、クラウド・ベースのスキャナーがテスト対象のアプリケーションにアクセスできることが要件となります。一般公開されている Web ベースのアプリケーションについては問題なくスキャンできます。ただし、プライベート・サイトのスキャン (PSS) を行うには、その前に、ネットワーク・コンポーネント (VPN やプロキシーなど) を追加するか、スキャナーが Web アプリケーションのホスト・サーバーにアクセスできるようネットワークを変更する必要があります。

PSS トンネリング

IBM の PSS ソリューションでは、ネットワークにリスクをもたらす可能性のある変更はもちろんのこと、お客様のネットワークに特に変更を加える必要はありません。お客様のネットワーク内にセットアップされている PSS クライアントには、インターネットへの (直接または HTTP プロキシーを介した) アクセスとスキャン対象のサイトへのアクセスのみが必要です。

このソリューションは、TCP/IP トンネルを構成する 2 つのエンドポイント (サーバーとクライアント) からなります。このトンネルは、お客様 (クライアント) 側にあるエンドポイントから開始されます。

トンネル・サーバー

このエンドポイントは、スキャナーとともに SaaS ネットワーク内にあります。これは、新しいスキャンが開始されたときにのみ始動されます。スキャンに対するサーバーの 2 つの「サイド」が、listen 接続 (バックツーバック・サーバー) を構成します。

  • まず、サーバーはトンネル・クライアントからの着信接続を listen します。これが、トンネル・サイドです。
  • もう一方として、サーバーはスキャナーからの着信接続を listen します。この点において、サーバーは HTTP プロキシーをエミュレートするため、これがプロキシー・サイドとなります。

クライアントからの接続が利用可能になると、スキャナーがプロキシー・サイドに要求を送信します。送信された要求は、トンネル・サイドの着信接続にポート転送されます。クライアントから返される応答は、プロキシー・サイドによってスキャナーに転送されます。

トンネル・クライアント

このエンドポイントはお客様のネットワーク内にあり、サーバーへの TCP/IP 接続を生成します。トンネル・クライアントはトンネル・サーバーと同じ機能を実行しますが、トンネル・サーバーとは異なる点として、クライアント接続 (バックツーバック・クライアント) の 2 つのセットから構成されています。トンネル・クライアントにも 2 つの「サイド」があります。

  • トンネル・サイドは、トンネル・サーバーに発信される接続のセットです。
  • クライアント・サイドは、スキャンされるサーバーに (直接またはプロキシーを介して) 発信される接続のセットです。

トンネル・クライアントはポート転送を行います。

AppScan プレゼンス

プライベート・サイトのスキャン・トンネルは、AppScan プレゼンス と呼ばれる SaaS 制御メカニズムに依存します。AppScan プレゼンスは、クラウド・ベースのサービスから実行対象のタスクを受信し、ハンドラーをトリガーしてそのタスクを実行する通信チャネルです。プレゼンス・サービスはポーリング・サービスであり、セキュリティーで保護された HTTP 通信を使用して、タスクの有無を確認するために継続的にクラウド・ベースのサービスをポーリングします。

AppScan プレゼンス・サービスは、SaaS サービスからタスクを取得し、そのタスクを処理するために必要な情報をダウンロードして、ハンドラーをトリガーするという役割だけを果たします。この場合、タスクはトンネル・クライアントによって処理されます。取得される情報は、サーバーへのトンネル・クライアント接続を開始するために必要なデータです。

スキャンの実行

スキャンを実行するには、トンネル・クライアントを始動してサーバーに接続する必要があります。これは、AppScan プレゼンスフレームワークによって実行されます。

AppScan プレゼンス・フレームワークは、トンネル・クライアント・マシン上で稼働するプレゼンス・サービスからなります。プレゼンス・サービスにより、プレゼンス SaaS サーバーがポーリングされます。このサーバーはクラウド上で稼働し、スキャンを実行できる状態になるとそのことを示します。サービス間で交換されるスキャンの詳細には、クライアントが接続しなければならないトンネル・サーバーの IP アドレスが含まれます。さらに、クライアントは接続先サーバーを確実に識別するための情報も受信します。詳細については、この後の「セキュリティーの考慮事項」のセクションで説明します。

ユーザーがプライベート・スキャンを要求し、スキャンを実行するために使用するプレゼンス・インスタンスを選択すると、スキャン・エージェントが割り当てられて、そのエージェントのトンネル・サーバーが始動します。続いて、タスクが SaaS サーバー内のキューに入れられます。このタスクがプレセンス・サービスによって受け入れられると、関連する接続情報を使用してトンネル・クライアントを起動します。

セキュリティーの考慮事項

このソリューションでセキュリティーの重要な 2 つの側面として考慮されたのは、お客様のネットワークとトンネル接続のセキュリティーです。

このソリューションでは、お客様のネットワークに変更を加える必要はありません。重要な点として、AppScan プレゼンスと PSS トンネル・クライアントによって特別な譲歩が必要になることはありません。したがって、お客様は組織のセキュリティー・ポリシーを AppScan プレゼンスと PSS トンネル・クライアントを実行するホスト・マシンに適用できます。組織のファイアウォールに必要となる変更はありません (例えば、特定のポートや IP アドレスに対する着信接続を許可するといった変更)。

唯一要件となるのは、プレゼンス・サービスが SaaS サービスと通信するためにインターネットにアクセスできることだけです。マシンがスキャン対象のサイトにアクセスできる必要があります。

プレゼンス ID

プレゼンス・サービスごとに、その ID としての役割を果たす一意の鍵があります。これは、プレゼンス・インスタンスを識別して、適切なスキャン・タスクを割り当てるために使用されます。この鍵はいつでも更新することができるので、定期的な更新を要件とする組織のセキュリティー・ポリシーに準拠することができます。サーバー上で鍵を更新すると、鍵が物理的にプレゼンス・マシンに配置されるまで、プレゼンス・インスタンスがタスクの受信を停止します。

相互認証

検証されていない場所からのプライベート・ネットワークへの外部アクセスを防ぐには、トンネル・サーバーとトンネル・クライアントが互いを信頼できることが不可欠となります。スキャンを実行できる状態になりトンネル・サーバーが始動されると、サーバーは 2 つの証明書を生成します。1 つは自身の証明書、もう 1 つはクライアントの証明書です。スキャンの詳細とともに、このサーバー証明書がクライアント側の証明書および秘密鍵とあわせて (プレゼンス・サービスと SaaS サービス間の通信により) トンネル・クライアントに渡されます。これにより、トンネル・クライアントとトンネル・サーバーは、リモート接続の ID を検証できます。

スキャンが完了すると、両方の証明書は無効になり、再スキャンであっても再利用されることは決してありません。

証明書は最新の NIST 標準および FIPS 標準に準拠しており、これらの標準は更新されることがあります (暗号化アルゴリズム、ハッシュ・アルゴリズム、およびキーの長さ)。

転送中のデータの保護

サーバーで証明書を交換するのは、相互識別のためだけでなく検証のためでもあります。トンネル自体のデータは、このような証明書を使用して暗号化されます。データがこのトンネルを通過する際には、スキャナーとテスト・アプリケーションの間で要求と応答がやり取りされるため、高い機密性が維持されます。データを保護するために、トンネルを通過する間、このような 1 回限りの証明書を使用してデータが暗号化されます。