【簡単!】Azure DevOpsで「OWASP ZAP」による脆弱性診断を行う方法

セキュリティ

情報セキュリティにおいて脆弱性診断は、昔から実施されている防御策の一つです。己の弱点を知って事前に対策をすることでリスク軽減することが可能です。

今回は、「OWASP ZAP」というオープンソースのツールを利用してみます。「OWASP」(オワスプと呼んでいます)とは「Open Web Application Security Project」の頭文字で、その名のとおりWebアプリケーションのセキュリティプロジェクトを実施する国際的なコミュニティです。「OWASP ZAP」は、「OWASP」が作成したWebサイト向けの脆弱性診断ツールで、非営利、営利を問わず誰でも利用できます。

いろいろなプラットフォーム上で動作しますが、Azure DevOpsのPipelines上でdockerを利用して診断してみたいと思います。

Azure DevOpsの登録

Azure DevOpsは制限付きではあるものの無料でも利用できます。「https://azure.microsoft.com/ja-jp/services/devops/」にアクセスして、「無料で始める」をクリックします。

Azureの組織アカウントをお持ちであればサインインし、ない場合は「作成」からアカウントを作成します。

普段利用しているメールアドレスを入力するか、「新しいメールアドレスを取得」をクリックしてMicrosoft社の提供するフリーアドレスを新たに作成することも可能です。

ウィザードに沿って必要事項を入力していきます。最後にプロジェクトを作成して完了です。

リポジトリ作成

Pipelinesを利用する前にリポジトリが必要になります。左ペインのReposボタンをクリックします。
READMEのみを作成するため、右ペインの下部にある「Initialize」をクリックします。

「README」も必要ありませんので、必要に応じて削除してください。

Pipelinesの作成

続いてPipelineを作成します。右ペインの「Pipelines」をクリックし、「Create Pipeline」をクリックします。

GUIを利用して簡単にpipelineを作成するため、「Other Git」を選択します。

「Azure Repos Git」を選択し、最初に作成したリポジトリを指定して「Continue」をクリックします。

「Empty job」をクリックして空のPipelineを作成します。

今回はDocker上でスキャナーを動作させるため、「ubuntu-20.04」をエージェントに指定します。

タスクの追加

「+」をクリックしてタスクを追加します。
検索窓に「Docker」と入力し、「Docker CLI installer」を「Add」します。

次に「Bash」を追加します。

最後に「Publish Pipeline Artifacts」を追加します。

Bash Scriptタスクの設定

Typeを「Inline」に変更し、Scriptを記載います。

URLに検査したいサイトを記入します。

※自身の管理するサイト以外を検査すると不正アクセスになります!絶対に行わないでください。

docker上でベースライン検査を実行し、scan-report.htmlを出力します。
現在のフォルダをdocker内の/zap/wrk/にマウントして、pipeline上でファイルを扱えるようにしています。

URL="https://R0310120.jp"

chmod -R 777  ./
docker run --rm -v $(pwd):/zap/wrk/:rw -t owasp/zap2docker-stable zap-baseline.py -t $URL -r scan-report.html -j
true

Publish Pipeline Artifactタスクの設定

このタスクでは、Pipelineで生成したレポートファイルを後で取り出せるようにします。

デフォルトでは「$(Pipeline.Workspace)」が指定され、ディレクトリ全体が保存されるようになっていますが、「 $(Pipeline.Workspace) /s/scan-report.html」(レポートファイルのみ)を指定します。

スキャンの実行

「Save & queue」を選択し、保存と実行を行います。

適宜コメントを記入してもOKです。「Save and run」をクリックします。

スキャン結果のダウンロード

スキャンが正常に行われると、Related「1 published: 1 consumed」という表示が出ますので、そこをクリックします。

ファイル名をクリックするとダウンロードが開始されます。

注意点:実行できない?

2021年からMicrosoft社のポリシーが変更され、Pipelineの実行環境がデフォルトではオフにされているみたいです。実行環境をリクエストする場合、下記のフォームから申請することができます。環境は2~3営業日で用意されるそうです。

まとめ

自社で簡易的に脆弱性検査がしてみたい方々には今回のような方法も有効と思われます。Azure DevOpsは開発だけでなくスクラムで運営するプロジェクトなど幅広く利用可能なツールです。

PNCでは、人々が安心してシステムを利用できる環境づくりに貢献するため、ITインフラや情報セキュリティなどでお困りのことをお客様と共に解決へと導くお手伝いをさせていただいています。お困りのことがございましたら、お気軽にお問合せください。

タイトルとURLをコピーしました