Jenkins で OWASP ZAP ジョブの作り方


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

チェックを入れて、「Add tool」をクリック

Tool selection に設定したCustom Toolを選択する

ビルド手順の追加

Execute ZAP を選択

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 を追加

以上で保存して終了です

ジョブ実行

実行すると以下のようになるはずです。

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

参考にしたサイト・記事