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」
注意: ラベルは入力するとエラーになってしまうので入力しない
新規ジョブ作成
アイテム名を入力&「フリースタイル・プロジェクトのビルド」を選択してOK
ビルド環境: Install custom tools
Tool selection に設定したCustom Toolを選択する
ビルド手順の追加
Override Host , Override Port を入力する(デフォルトはシステムの設定)
ZAP Home Directory に /tmp/ZAP
Session Management は Persist Session を選択、 Filename に "session"
Starting Point に検査対象のURLを入力
Finalize Run で Generate Reports を選択
Filename に JENKINS_ZAP_VULNERABILITY_REPORT_${BUILD_ID}.html
ビルド後の処理の追加
成果物を保存 と Publish HTML reports を追加
以上で保存して終了です
ジョブ実行
あとは結果を見て必要な対策をしていくことになります。
参考にしたサイト・記事