目次

はじめに

本書の目標
本書で得られること
本書で説明しないこと
対象読者
前提知識
免責事項
表記関係について
お問い合わせ先

第1章 Quick Start

1.1 検証環境
1.2 事前準備
1.3 診断対象アプリの起動
1.4 診断対象アプリの動作確認
1.5 自分のリポジトリで自動的に脆弱性診断

第2章 GitHub Actionsのワークフロー

2.1 ワークフローの定義
2.2 ワークフロー実行イベントの定義
2.3 ワークフロー実行環境の定義
2.4 ワークフローのジョブの定義
2.5 まとめ

第3章 デフォルト設定による自動診断の問題点

3.1 原因1:サイトにログインしていない
3.2 原因2:デフォルトの「スキャンポリシー」をそのまま使用

第4章 ちょっと複雑な診断対象アプリのセットアップ

4.1 検証環境
4.2 事前準備
4.3 診断対象アプリの起動
4.4 診断対象アプリの動作確認

第5章 ワークフローを新規追加

5.1 既存のリポジトリにワークフローを追加

第6章 OWASP ZAPのログイン設定

6.1 OWASP ZAP内蔵ブラウザを起動
6.2 診断対象URLをコンテキストに登録
6.3 コンテキストの「認証」と「ユーザ」を設定
6.4 「認証」を設定
6.5 「ユーザ」を設定

第7章 GitHub Actionsにコンテキストを登録

7.1 「コンテキスト」をエクスポート
7.2 リポジトリにコンテキストファイルを保存

第8章 ワークフロー修正

8.1 ワークフローを修正

付録A Java 11 (JDK)のインストール

A.1 Amazon Corretto
A.2 インストール:Windows 10 Pro 編
A.3 インストール:macOS 編

付録B OWASP ZAPのセットアップ

B.1 ダウンロード
B.2 インストール
B.3 起動
B.4 ZAPセッション
B.5 HUDの無効化
B.6 ローカル・プロキシ
B.7 ネットワーク
B.8 プロテクトモード

おわりに

はじめに

 イマドキのウェブアプリケーション開発は、GitHubやGitLabなどのバージョン管理サービス(VCS:Version Control System)でソースコードを管理するのが一般的です。さらに、イマドキのVCSには「CI/CD(Continuous Integration:継続的インテグレーション/Continuous Delivery:継続的デリバリー)」という仕組みが備わっています。CI/CDにより、開発したアプリケーションのビルドおよびテストや実行環境へのデプロイなどを自動化することができます。

 CI/CDにより自動的にビルドやテストを実行できるのであれば、無償かつ商用利用も可能なOWASP ZAPを利用して脆弱性診断も自動的に実施してしまおう! というのが本書の趣旨です。

 本書では、オープンソースの脆弱性診断ツール「OWASP ZAP」およびGitHubが提供しているCI/CDツール「GitHub Actions」を用いて、開発中のウェブアプリケーションに対して自動的に脆弱性診断を実施する方法を解説します。

本書の目標

 ・GitHubで管理しているウェブアプリケーションについて、リポジトリに対するpushの実行やpull requestの発行などのたびに自動的に脆弱性診断を実施する環境を構築する。

 ・脆弱性診断を実施する際に、自動的に診断対象アプリにログインすることでログイン後にしかアクセスできない画面や機能も診断できるようにする。

 ・脆弱性診断の設定をカスタマイズして、診断精度を高め、有益な診断結果が得られるようにする。

本書で得られること

 ・OWASP ZAPとGitHub Actionsを連携させて脆弱性診断を自動的に実施する方法

 ・OWASP ZAPの自動診断の仕組みや考え方

 ・OWASP ZAPの診断設定のカスタマイズ方法

本書で説明しないこと

 ・GUI版OWASP ZAPの基本的な操作方法

 ・GitHubの基本的な操作方法

対象読者

 ・ウェブアプリケーションを開発している人

 ・脆弱性診断について興味がある人

前提知識

 ・Windowsのコマンドプロンプトについての基礎知識

 ・macOSやLinux系OSのシェルについての基礎知識

 ・GitHubの基本的な操作

免責事項

 本書に記載された内容は、情報提供のみを目的としています。したがって、本書を用いた開発・製作・運用は、必ずご自身の責任と判断によって行ってください。これらの情報による開発・製作・運用の結果について、著者はいかなる責任も負いません。

 本書への情報・資料の掲載には注意を払っておりますが、掲載された情報の内容の正確性については一切保証しません。

 本書に掲載された情報・資料の使用やダウンロードなどの行為に関連して生じたあらゆる損害等についても、理由の如何にかかわらず一切責任を負いません。

 本書に掲載している情報には第三者が提供している情報が含まれていますが、これらは読者の便宜のために提供しているものであり、著者はその内容の正確性については一切責任を負いません。

 本書で解説している脆弱性診断ツールは、ご自身が管理している、または、事前に所有者や管理者の許可を得ているアプリケーションに対してのみ使用してください。他者が所有・管理しているアプリケーションに対して無断で脆弱性診断ツールを使用した場合、法に基づき刑事罰を科されたり、民事上で、アプリケーションの所有者や管理者などから損害賠償請求を受けたりするおそれがあります。

表記関係について

 本書に記載されている会社名、製品名などは、一般に各社の登録商標または商標、商品名です。会社名、製品名については、本文中では©、®、™マークなどは表示していません。

お問い合わせ先

 本書についてのお問い合わせは、以下のいずれかへお寄せください。

 ・Web:https://www.facebook.com/groups/zeijakusei.shindan.kenkyukai/

 ・Mail:nilfigo@gmail.com

 ・Twitter:@nilfigo

試し読みはここまでです。
この続きは、製品版でお楽しみください。