Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Jenkins で OWASP ZAP ジョブの作り方

More than 1 year has passed since last update.

Jenkins で OWASP ZAP ジョブの作り方

はじめに

いささか遅すぎるようにも思うけれど、CIにOWASP ZAPを使用してWebセキュリティ対策を従前に行なえるようジョブの作成をしようと始めたところ思いの外ハマったので備忘も兼ねて投稿します。

jenkins

jenkins Dockerfile サンプル

ロケール、タイムゾーンを日本向けに変更しています。

FROM debian:stretch

ENV DEBIAN_FRONTEND noninteractive

RUN apt-get update && apt-get upgrade -y  && apt-get install -y gnupg gnupg2 wget curl locales \
    && localedef -i ja_JP -c -f UTF-8 -A /usr/share/locale/locale.alias ja_JP.UTF-8

RUN rm /etc/localtime && sh -c 'echo Asia/Tokyo' > /etc/timezone && \
dpkg-reconfigure -f noninteractive tzdata

ENV LANG ja_JP.utf8

RUN wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | apt-key add - && \
sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'

RUN apt-get update && apt-get install -y openjdk-8-jdk git jenkins systemd

EXPOSE 8080

ENTRYPOINT service jenkins start && sleep 5 && \
tail -f /var/log/jenkins/jenkins.log

使用する jenkins plugin

  • Official OWASP ZAP Jenkins Plugin
  • HTML Publisher Plugin
  • Custom Tools Plugin

以上のプラグインを追加してください。

ZAPジョブ作成

Custom Tool を追加する

「jenkinsの管理」ー「Global Tool Configuration」
スクリーンショット 2019-06-11 17.31.53.png

スクリーンショット 2019-06-11 17.35.03.png

注意: ラベルは入力するとエラーになってしまうので入力しない

新規ジョブ作成

新規ジョブ作成をクリック
スクリーンショット 2019-06-11 17.22.05.png

アイテム名を入力&「フリースタイル・プロジェクトのビルド」を選択してOK
スクリーンショット 2019-06-11 17.21.33.png

ビルド環境: Install custom tools

チェックを入れて、「Add tool」をクリック
スクリーンショット 2019-06-11 17.26.49.png

Tool selection に設定したCustom Toolを選択する
スクリーンショット 2019-06-11 16.30.36.png

ビルド手順の追加

Execute ZAP を選択
スクリーンショット 2019-06-11 17.39.17.png

Override Host , Override Port を入力する(デフォルトはシステムの設定)
スクリーンショット 2019-06-11 16.30.51.png
ZAP Home Directory に /tmp/ZAP
Session Management は Persist Session を選択、 Filename に "session"
スクリーンショット 2019-06-11 17.44.30.png

スクリーンショット 2019-06-11 17.48.23.png
Starting Point に検査対象のURLを入力
スクリーンショット 2019-06-11 17.48.04.png
Finalize Run で Generate Reports を選択
Filename に JENKINS_ZAP_VULNERABILITY_REPORT_${BUILD_ID}.html
スクリーンショット 2019-06-11 16.31.47.png

ビルド後の処理の追加

成果物を保存 と Publish HTML reports を追加
スクリーンショット 2019-06-11 17.51.59.png

スクリーンショット 2019-06-11 16.44.32.png

以上で保存して終了です

ジョブ実行

実行すると以下のようになるはずです。
スクリーンショット 2019-06-11 18.10.10.png

あとは結果を見て必要な対策をしていくことになります。

参考にしたサイト・記事

https://www.we45.com/blog/how-to-integrate-zap-into-jenkins-ci-pipeline-we45-blog

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away