2022年12月4日よりDocker版実習環境を提供します。オリジナルの実習環境はVirtualBox上の仮想マシンとして提供していますが、M1/M2 MacではVirtualBoxが動作しないことから、Docker版として提供するものです。
元々はM1/M2 Macを想定してARM64アーキテクチャ用に作りましたが、AMD64のWindowsやMacでも動作するように作っています。
ダウンロードページから実習用仮想マシン (Docker版)をダウンロードして適当なディレクトリに設置してください。
以下のコマンドによるコンテナーのビルド及び実行をします。
$ cd <wasbook-docker.zip を設置したディレクトリ> $ unzip wasbook-docker.zip # あるいは適当な方法でのzip解凍 $ cd wasbook-docker $ docker compose up -d イメージのビルドが開始され、その後コンテナが起動する
これだけです。 デフォルトの設定では、PROXY(フォワードプロキシ)のポートのみが公開されています。利用者はこのPROXY経由で実習環境にアクセスする形になります。
このアプリケーションの通常の利用は、apacheコンテナが提供するPROXY(フォワードプロキシ)を介して実習環境に接続する方法です。 お使いの診断ツール(拙著での想定はOWASP ZAPだがBurp Suite等でも同様)の外部接続用のPROXY設定に以下を追加します。
IP: 127.0.0.1 Port: 13128 (.envにより変更可能、後述)
実習環境はexample.jpなどのホスト名を使いますが、これらの名前解決はPROXY側で行うため、お手元の端末(Dockerホスト)ではhostsファイル等の設定は必要ありません。 この状態で、http://example.jp/をアクセスしてください。
OWASP ZAPの外部PROXY設定の方法は、ZAPのVer 2.11以前と 2.12以降で異なります。
メニュー ツール | オプションから、ツール設定ダイアログを表示して、左側のペインにて「ネットワーク」を選択し、右側のペイン(下にスクロールする)にて「外部プロキシサーバー利用」のチェックを入れ、その下のアドレス/ドメイン名とPort欄に上記の値を入力して、右下のOKボタンを押す。
メニュー ツール | オプションから、ツール設定ダイアログを表示して、左側のペインにて「Network」のサブカテゴリーの「ネットワーク」を選択し、右側のペインにて「HTTP Proxy」タブを選択して、ホスト欄とポート欄に上記の値を入力して、右下のOKボタンを押す。
Mac版PROXYを経由せずに直接Webサイトにアクセスするには、docker composeコマンドを実行する前に、docker-compose.ymlの以下の部分を変更します。
修正前nginx: build: nginx # Nginxを直接公開する場合は以下の3行を有効化する #ports: # - ${WEB_IP:-127.0.0.1}:80:80 # - ${WEB_IP:-127.0.0.1}:443:443修正後(コメントを3行外す)
nginx: build: nginx # Nginxを直接公開する場合は以下の3行を有効化する ports: - ${WEB_IP:-127.0.0.1}:80:80 - ${WEB_IP:-127.0.0.1}:443:443
デフォルトでは、127.0.0.1でアクセスできます。このため、/etc/hostsファイル(WindowsではC:\Windows\System32\drivers\etc)に以下を追加します。管理者権限が必要です。編集 の方法については、拙著の2.4節 仮想マシンのインストールの「hostsファイルの編集」項を参照ください。
127.0.0.1 example.jp api.example.net trap.example.com
macOSでは、ループバックアドレスとして127.0.0.1以外を用いて、IPアドレスの衝突を避けることができます。この場合は、以下の手順に従います。
$ cp env_example .env # .envを以下のように修正 # WEB_IP=127.10.90.1 ↓ コメントアウト WEB_IP=127.10.90.1 # 指定したループバックアドレスを有効にする $ sudo ifconfig lo0 alias 127.10.90.1 up # 後は普通に実行 $ docker compose up -d
この状態で、ブラウザからhttp://example.jp/ をアクセスしてください。ブラウザのプロキシ設定は拙著通りで大丈夫です。
実習環境の入り口であるPROXYのポートはデフォルトでは13128ですが、変更することもできます。以下は 8888 にて待ち受けする例です。
$ cp env_example .env # .envを以下のように修正 # 通常利用するPROXY(フォワードプロキシ)のポート # APACHE_PROXY_PORT=13128 ↓ コメントアウトしてポートを変更 # 通常利用するPROXY(フォワードプロキシ)のポート APACHE_PROXY_PORT=8888 # 後は普通に実行 $ docker compose up -d
Dockerコンテナを起動した後にポートを変更する場合は、上記の変更をした後、いったんapacheコンテナを削除してからdocker compose up -dを実行してください。