ローカルで脆弱性診断を行う場合、OWASP ZAPを使うケースが多いと思います。
ただ、OWASP ZAPをローカルにわざわざ入れるのは面倒だし、何よりホストOSを汚したくない。
となると、Dockerを使いたくなるわけですが、今回はそのAWS版であるECSを使って環境を作ってみたいと思います。
これができれば、どこからでもOWASP ZAP環境を利用することができます。
ってことで今回は、 OWASP ZAPをAWS ECS(Docker)環境に構築していきます。
僕のプロフィールはこちら
前提
・AWSアカウントがあること
OWASP ZAPをAWS ECS(Docker)環境に構築する手順
クラスターの作成
まずはECSにアクセスします。
URL:「https://ap-northeast-1.console.aws.amazon.com/ecs/home?region=ap-northeast-1#/getStarted」
まずはクラスタを作成します。
「クラスターの作成」をクリックします。
「ECS Linux + ネットワーキング」を選択し、「次のステップ」をクリックします。
クラスター名は任意でOKです。
今回は「owasp-zap」にしました。
上記のように設定すればOKです。
ネットワークの設定は既存のものを使用しても問題ありません。
なければ新規作成しましょう。
IAMに関してはデフォルトでOKです。
上記のような表示になれば、クラスターの作成に関しては完了です。
タスクの作成
次にタスクを作成します。
「新しいタスク定義の作成」をクリックします。
EC2を選択し、「次のステップ」をクリックします。
上記のように設定します。
イメージは「owasp/zap2docker-stable」です。
ポートマッピングが「18080」「28080」になっていますが、正しくは「8080」「8090」です。すみません。。
上記のように設定します。
コマンドは「zap-webswing.sh」です。
タスクの作成は完了です。
タスクの実行
先ほど作成したクラスタのタスクタブを選択し、「新しいタスクの実行」をクリックします。
最初、キャパシティープロバイダーがうんたらみたいなエラーになっているので、起動タイプに切り替え、EC2を選択します。
ステータスが「RUNNING」であることを確認します。
OWASP ZAPにアクセス
クラスタのIPアドレスを控えます。
EC2の画面を開いたらECSが新しく作成されているので、そちらからIPアドレスを調べることもできます。
「http://<あなたのIPアドレス>:8080/?anonym=true&app=ZAP」にアクセスすると上記のような画面が表示されますが、どうやらこっちではないっぽい。
「http://<あなたのIPアドレス>:8080/zap/」にアクセスすると、上記のようにOWASP ZAPの画面が表示されます。
OWASP ZAPの画面が表示されない場合
画面が表示されない場合、セキュリティグループの設定を見直せば表示されるかもしれません。
OWASP ZAPには8080ポートでアクセスするので、上記の「カスタム TCP」のように8080が開いていることを確認してください。
まとめ
ECSを利用すれば、誰でもアクセスできる環境を作り出すことができます。
脆弱性診断のためにOWASP ZAPをローカルにインストールする必要もないですし、チーム内で共有することもできます。
すばらしきかな。
関連記事
以下の記事も合わせて読まれています。