<概要>
通常版VAddyでは、検査対象のWebサーバはインターネット経由でアクセスできる必要がありました。
PrivateNet版VAddyでは、イントラネットやローカルの開発環境、TravisCIやCircleCIのようなCI as a Serviceでも脆弱性検査できるようになります。
VAddy for PrivateNet CLI toolを利用し、お客様のローカルのWebサーバのIPとポート番号を、VAddy側にリモートポートフォワードすることで、VAddy側から直接ローカルWebサーバにアクセスできるようになります。
<PrivateNet版の制限事項>
VAddy for PrivateNet CLI toolは、Javaとbash, sshコマンドを組み合わせて動作します。
従ってこのツールを動作させるためには、MacOSXもしくは、Linux/FreeBSDのようなUnix環境が必要です。
Windowsは現在サポートしていませんが、WindowsのVMware、Vagrantなど、仮装環境上のLinuxなどでご利用いただけます。
また、sshのリモートポートフォワード機能を利用するため、本ツールを動かすマシンから外部サーバ(pfd.vaddy.net)へ、SSHアクセスできる環境が必要です(アウトバウンド通信)。
ほとんどの環境ではこれは許可されていますが、大企業などの外部へのネットワーク通信が遮断されていたり、Proxyで制限されているような場合は利用できない可能性があります。
1プロジェクトに登録できる検査対象のサーバは1FQDNのみのため、複数FQDNを同時にクロール、検査することができません。また検査対象のポート番号も1つのみのため、httpとhttpsが混在したサイトは検査できません。
<動作説明>
このツールは、sshのリモートポートフォワードを使ったsshトンネルを作ります。 ローカルのWebサーバのポートが、sshトンネルによりVAddyのサーバ側に公開されますので、VAddyはそこを通して検査します。
ローカルのWebサーバのポートが外部に公開される形ですが、その公開されたポートへはVAddyサーバのみアクセスできるように制限されていますのでご安心ください。
この図の例では、あなた専用に割り当てたVAddy sshdのリモートポート 3210と、ローカルポート443をVAddy CLI Toolを使って結びます。VAddyの検査リクエストは、このポート3210を通して行います。
3210のようなリモートポート番号は、ユーザのFQDN毎に自動的に割り当てられ、VAddy CLI Toolが自動的にsshトンネルを作成するようにできています。
この例では、ローカルのポート443番をリモートポート3210番に結びつけました。制約として、結びつけられるポートは1つに限られるため、同時にローカルポート 80番に結びつけられず、HTTPS(SSL)のみしか検査できません。
<裏側で実行されるsshコマンド>
VAddy for PrivateNet CLI toolが実行されると、VAddyのsshサーバに接続します。
この接続の前に、自動でssh用の鍵を作成してVAddy側にVAddy WebAPI経由で登録します。
実際にsshコマンドが実行されると、下記のようになります。
ssh -i vaddy/ssh/id_rsa -N -R 0.0.0.0:3210:192.168.1.17:443 portforward@pfd.vaddy.net
この例では、ローカルのWebサーバがIP 192.168.1.17のポート443で動いているため、そことVAddyのpfd.vaddy.netというsshサーバのポート3210番と結びつけています。