目次

はじめに
免責事項
表記関係
著作権
本書で使用している診断ツールのバージョン
OWASP ZAPについて
OWASP
OWASP Japan
OWASP ZAP
Burp Suiteについて
PortSwigger
Burp Suite Community Edition
Burp Suite Professional
第1章 脆弱性診断
1.1 脆弱性とは
1.2 脆弱性診断とは
第2章 脆弱性診断フロー
2.1 診断対象確認
2.2 診断対象選定
2.3 診断作業準備
2.4 診断作業実施
2.5 診断結果考察
2.6 診断結果報告
第3章 診断対象確認
3.1 自動クローリング
3.2 URL一覧の作成
3.3 「診断対象確認」についての評価
第4章 診断対象選定
4.1 履歴のハイライト
4.2 履歴の絞り込み
4.3 ハイライトによる履歴の絞り込み
4.4 履歴へのコメント
4.5 コメントによる履歴の絞り込み
4.6 「診断対象選定」についての評価
第5章 診断作業準備
5.1 プロキシ設定
5.2 外部プロキシ設定
5.3 診断対象範囲の定義(スコープ)
5.4 「診断作業準備」についての評価
第6章 診断作業実施
6.1 手動診断
6.2 自動診断
6.3 「診断作業実施」についての評価
第7章 診断結果考察
7.1 OWASP ZAP
7.2 Burp Suite
7.3 「診断結果考察」についての評価
第8章 診断結果報告
8.1 OWASP ZAP
8.2 Burp Suite Professional
8.3 「診断結果報告」に関連する機能の評価
第9章 外観を比較
9.1 ダークモード
9.2 フォント
9.3 UIの日本語化
9.4 「外観」の評価
第10章 目的別診断ツールの選び方
10.1 予算に応じて
10.2 ユースケース別
おわりに

はじめに

 本書を手に取っていただき、誠にありがとうございます。

 本書は、Webアプリケーションの脆弱性診断において世界中で使用されているふたつのツール「OWASP ZAP」と「Burp Suite」の機能を比較しながら、脆弱性診断の進め方や具体的な手法の基礎を学ぶことを目的としています。

 そもそもの執筆のきっかけは、筆者が主催しているOWASP ZAPハンズオンセミナー「脆弱性診断ええんやで(^^)1 」にて多く寄せられる、「OWASP ZAPとBurp Suiteの無償版はどちらを使ったらいいのか」や「Burp Suiteの無償版と有償版の違いは何か」などのご質問に答えるために執筆しました。


免責事項

 本書に記載された内容は、情報の提供のみを目的としています。したがって、本書を用いたツールの検証や脆弱性診断作業は、必ずご自身の責任と判断によって実施してください。本書の情報によるツールの検証や脆弱性診断作業の結果について、筆者はいかなる責任も負いません。

表記関係

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

著作権

 本書の一部または全部について、筆者あるいは脆弱性診断研究会からの文書による許諾を得ずに、いかなる方法においても無断で複写または複製することは法律により禁じられています。

本書で使用している診断ツールのバージョン

 本書では、次のバージョンのOWASP ZAPおよびBurp Suiteを使用しています。

ツール バージョン
OWASP ZAP Version 2.12.0
Burp Suite Community Edition v2023.1.2 (stable)
Burp Suite Professional v2023.1.2 (stable)

 それぞれのツールのバージョン確認方法は次のとおりです。

OWASP ZAP

 メニューの「ヘルプ」>「OWASP ZAPについて」で表示されるダイアログにバージョンが記載されています。

図1: 「ヘルプ」>「OWASP ZAPについて」

Burp Suite

 メニューの「Help」>「About」で表示されるダイアログにバージョンが記載されています。

図2: 「Help」>「About」

 なお、執筆時期の都合により、一部、旧バージョンのツールのキャプチャを使用しています。

OWASP ZAPについて

OWASP

 OWASP(The Open Worldwide Application Security Project)1は、2000年に創設されたソフトウェアのセキュリティ向上のために活動している国際的でオープンな非営利のコミュニティです。OWASPのさまざまなプロジェクトには誰もが自由に参加して活用できます。

 世界中の国や地域にOWASPの活動拠点「OWASP Local Chapter」が多数存在しています。

OWASP Japan

 日本にも複数のOWASP Local Chapterがあります。

 筆者は首都圏を活動拠点とするLocal Chapterの「OWASP Japan」のプロモーションチームに所属しています。


ウェブサイト

https://owasp.org/www-chapter-japan/

Twitter

https://twitter.com/owaspjapan

OWASP ZAP

 OWASP ZAP (OWASP Zed Attack Proxy)は脆弱性診断ツールです。プロキシとして動作してブラウザとウェブアプリケーション間の通信の閲覧および改変が可能です。OWASP ZAPはオープンソースであり、ライセンスはApache License Version 2.02です。商用・非商用問わず無償で利用可能です。


公式サイト

https://www.zaproxy.org/

Twitter

https://twitter.com/zaproxy


OWASP ZAPの元ネタ

 OWASP ZAPは、とある民間企業が公開していた「Paros」という名前のツールが元になっています。OWASP ZAPのソースコードのパッケージ名などに「paros」という名称が今でも残っています。

Burp Suiteについて

 PortSwigger社が開発している「Burp Suite」は、Webアプリケーションの脆弱性診断に使用されるツールです。Burp SuiteにはWebアプリケーションの脆弱性診断に必要なさまざまな機能が実装されています。


 Burp Suiteには以下のような機能があります。


 Proxy

 Webブラウザからの通信をプロキシとして中継して、HTTPやHTTPSの通信内容を解析・修正できます。Webアプリケーションが受け取ったリクエスト・レスポンスをリアルタイムで確認可能です。


 Intercept

 プロキシ機能で中継される通信内容をユーザーが手動で修正できる機能です。これにより、Webアプリケーションの動作確認や脆弱性の検証などを行うことができます。


 Repeater

 Scannerなどで検出した脆弱性を検証するための機能です。Scannerで検出されたリクエストを取り出し、そのリクエストを変更して複数回送信することで脆弱性を検証できます。


 Scanner

 Webアプリケーションに対して、自動的に脆弱性診断を実施するツールです。SQLインジェクションやクロスサイトスクリプティング(XSS)などの脆弱性を検出するための機能を備えています。


 Burp Suiteはこれらの機能に加え多彩な拡張機能を提供しており、Webアプリケーションの脆弱性診断に欠かせないツールとして広く利用されています。

PortSwigger

 PortSwigger社は2004年にDafydd Stuttardによって設立されました。本社はイギリスのナッツフォードにあります。


ウェブサイト

https://portswigger.net/

Twitter

https://twitter.com/portswigger

Burp Suite Community Edition

 Burp Suite Community Editionは、無償の脆弱性診断ツールです。自動的に脆弱性を診断するScannerは省略されていますが、InterceptやRepeaterなどの基本的なツールが実装されています。

Burp Suite Professional

 Burp Suite Professionalは、有償の脆弱性診断ツールです。Burp Suite Community Editionに実装されている機能に加えて、本格的な脆弱性診断の実施に有益なScannerやレポート作成などの機能が実装されているため、世界中で多くの脆弱性診断のプロが使用しています。

第1章 脆弱性診断

1.1 脆弱性とは

 次の文章は、総務省のウェブサイト「脆弱性(ぜいじゃくせい)とは?|どんな危険があるの?|基礎知識|国民のための情報セキュリティサイト1 」より引用したものです。


脆弱性(ぜいじゃくせい)とは、コンピュータのOSやソフトウェアにおいて、プログラムの不具合や設計上のミスが原因となって発生した情報セキュリティ上の欠陥のことを言います。


 脆弱性が「プログラムの不具合や設計上のミス」であるならば、一般的な開発手法に則ってテストを実施することにより、製品のリリース前に脆弱性を検出して正しく修正することができるはずです。しかし、実際には、ウェブサイトやスマートフォンアプリケーションが世の中に正式にリリースされてから脆弱性が発見される事例が後を絶ちません。


 確かに、脆弱性はプログラムの不具合なのですが、正常系テストだけでは発見するのが難しく、異常系テストでもテストの方法によっては見落としがちです。


 脆弱性を検出するには「ひと工夫」が必要です。

1.2 脆弱性診断とは

 脆弱性診断とは、異常系テストにひと工夫を加えた「ちょい足し異常系テスト」です。


 たとえば、ログインが必要なウェブサイトでログインIDを入力するフォームをテストするとします。このとき、ログインIDとして「O'Reilly」を入力してみます。「O'Reilly」に含まれる「'(シングルクォーテーション)」は、SQLの文法上、特別な意味を持つ文字として取り扱われます。このため、ログイン処理にSQLインジェクション脆弱性が存在している場合、内部エラーが発生して画面にエラーメッセージが表示されるかもしれません。


 次図は脆弱性診断演習用ウェブサイトである「OWASP Mutilledae Ⅱ2」のログインフォームの名前入力欄に「O'Reilly」と入力して送信した例です。SQLインジェクション脆弱性がログイン処理に存在しているため、フォーム送信後の画面にデータベース処理に関連するエラーメッセージが表示されました。

図1.1: データベース関連エラーの表示

 本例ではログインフォームの名前入力欄に特定の記号を含む文字列を入力して送信しただけで、脆弱性を検出することができました。しかし、実際に脆弱性を検出しようとした場合、対象ウェブサイトのすべてのフォームについて、ブラウザだけを使用して手作業で「ちょい足し異常系テスト」を実施するのは、多大な時間がかかってしまうため現実的ではありません。


 そこで、脆弱性診断を生業としているセキュリティエンジニアは、「ちょい足し異常系テスト」を効率よく実施するために「OWASP ZAP」や「Burp Suite」などの脆弱性診断ツールを使用しています。

1. http://www.soumu.go.jp/main_sosiki/joho_tsusin/security/basic/risk/11.html

2. https://www.owasp.org/index.php/OWASP_Mutillidae_2_Project

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