広告

【OWASP ZAP】インストールと基本的な使い方【Web脆弱性診断】

ツール他

当サイトではアフィリエイト広告を利用しています。

広告

はじめに

OWASP ZAPを使用して、Webの脆弱性診断を行ってみます。OWASP ZAPはオープンソースで無料で使うことができます。

SQLインジェクションの脆弱性など、そういったセキュリティに関する診断を行うことができます。

Webアプリケーションのすべての画面を手動でチェック、または、不正パラメータを手動で送信して確認というのは難しいですが、このツールを使うと、自動で様々なパターンの検証を行い診断を行うことができます。

脆弱性診断を行う専門の業者がありますが、費用が高いです。
作成したアプリケーションに対し、「取り敢えず診断してみたい」という場合にはとても便利です。

アプリケーションに脆弱性があると以下のような被害に遭い、運営者やそれを利用するユーザにまで影響が及びます。

  • 不正にアクセスされる(情報流出)
  • データを不正に書き換えられる

Webアプリケーションは、場合によっては不特定多数のユーザがアクセスするため、脆弱性がある状態での公開は非常に危険です。(特に個人情報を扱うようなアプリなど)

脆弱性の危険性を試した記事を以前まとめましたので、ご覧ください。

【Laravel】敢えて試すSQLインジェクション【仕組みを知るには実装】
敢えてSQLインジェクションの脆弱性を含んだシステムを作成します。対策や仕組みを知るには実際に試してみましょう。人気のあるLaravelというフレームワークで試します。

本記事はWindowsで解説していますが、Mac版については以下の記事をご覧ください。

【OWASP ZAP】インストールと使い方【M1 Mac】
Mac版のOWASP ZAPを使用して、Webの脆弱性診断を行ってみます。オープンソースで無料で使うことができます。

それではOWASP ZAPをインストールしていきましょう。

動作環境
  • ホスト端末:Windows 10
  • OWASP ZAP 2.11.0
  • Java Version 8 Update 311

他にも私のブログで、ツールについて解説している記事がありますのでご覧ください。

最新のバージョンのOWASP ZAPを試した記事もご覧ください。

【OWASP ZAP】2.11.1を試す
OWASP ZAPを現時点の最新であるバージョン2.11.1で試しました。

Javaのインストール

OWASP ZAPのインストール前に、JREをインストールします。
JREがインストールされていない状態で、OWASP ZAPをインストールしようとすると、以下のエラーが表示されます。

インストール4jウィザードは、システム上にJava(TM)ランタイム環境を見つけることができませんでした。適切な64-bitのJREを検索してください。(最小バージョン: 1.8)

以下のページより、64bit版のJREをダウンロードします。

Download Java

32bit版と間違えないようにしましょう。

ライセンスを確認し、ダウンロードします。
現時点で、Version 8 Update 311でした。

インストーラを起動し、インストールを実行します。

しばらくすると、インストールが完了しました。

OWASP ZAPインストール

以下のページより、OWASP ZAPのインストーラをダウンロードします。

ZAP – Download
The world’s most widely used web app scanner. Free and open source. ZAP is a community project actively maintained by a …

Windowsの64bitインストーラを選択しました。
ファイルサイズが大きいので、少し時間がかかりました。

ダウンロードしたインストーラを起動します。
次へ進みます。

ライセンスを確認し、次へ進みます。

ここでは標準インストールを選択しました。
インストール先を変更したい場合は、カスタムインストールを選択します。

インストールを開始します。

インストールが完了しました。

広告

旧バージョンのダウンロード

古いバージョン(例えばv2.10.0)をダウンロードしたい場合は、GitHubのリポジトリにありました。
さらに古いバージョンも探せばあります。

Release v2.10.0 · zaproxy/zaproxy
Version 2.10.0

OWASP ZAP起動

早速起動してみましょう。

起動時にファイアーウォールのブロックの警告が表示される場合は、許可します。

セッションの保持方法を任意で選択します。

プロテクトモードになっていることを確認しましょう。
これが選択されていることにより、コンテキストに登録されたサイトのみが診断対象となります。

診断を行う際、大量のリクエストを送信します。
対象外のサイトへ診断を行わないように、必ずプロテクトモードを選択します。

OWASP ZAP設定

OWASP ZAPのオプションを開きます。

ローカル・プロキシから、ポートを確認します。
デフォルトで18080になっていましたが、必要に応じて変更してください。

Firefoxを開き、設定を変更します。
ネットワークの設定の接続設定を開きます。

OWASP ZAPの設定と同じく、プロキシとポートを指定します。

今回は、ローカル(自分のPC)に作成したWebアプリケーションを対象にしてみます。
Laravelで作成したサイトを表示しました。

URLの指定は、localhostではなく、IPアドレスで指定します。

× http://localhost:8000/
○ http://192.168.0.xx:8000/

OWASP ZAP上で認識されました。

OWASP ZAPの基本的な使い方

このサイトを対象とするために、コンテキストへ登録します。

プロテクトモードにしたのは、コンテキストに追加したサイトのみ、診断を行うためです。

サイトを右クリックし、規定のコンテキストへ追加しました。

サイトがコンテキストに追加されました。

これでサイトへの攻撃ができるようになりました。

スパイダー

スパイダーとは、サイトに含まれるページを自動的に検知します。

スパイダーを選択します。

スコープを確認し、スキャンを開始します。

対象サイトがLaravelのスタートページであり、それほどリンクがないのですが、一部のファイルを認識しました。

ちなみにこのページには、外部のURLが含まれていますが、コンテキストに含まれないページは追加されませんでした。

自動で検出できないページは、手動でページを開き追加します。

動的スキャン

それでは実際に脆弱性の診断を行いましょう。
動的スキャンを選択します。

設定はそのままでスキャンを開始しました。

ページ数やスキャンの設定によりますが、時間がかかります。
スキャンが完了しました。

アラートタブを確認すると、スキャンした結果が表示されます。
リスクというのが危険度です。リスクが高いものは対応したほうが良いと思いますが、必要に応じて対応可否を検討すると良いでしょう。

必ずしも、正確に脆弱性が発見出来るわけではありません。
サイトの作りによって、誤検知の可能性もありえますので、その都度確認しましょう。

レポートの出力

どうやら2.11.0でレポートの出力が変わったようです。

ZAP 2.11.0
ZAP 2.11.0 (also known as the OWASP 20th anniversary release) is available now.Major changes include:Alert Tags Alerts c…

レポートのGenerate Reportを選択します。

なにやら文字化けしているようですが・・

以前とは違うレポート結果が出力できました。

現時点では、一部文字化けしていました。
以前と同じレポートの方が良い場合は、最新バージョンを見合わせたほうが良いかもしれません。

セッションの保存

今回行った作業を、セッションとして保存しておきましょう。
次回、OWASP ZAPを起動後に、同じ状態に読み込むことができます。(セッションデータファイルを開く)

後処理

一通り作業が終わったら、Firefoxの設定を戻しておきましょう。

さいごに

今回はツールを使用して、脆弱性診断を行ってみました。
脆弱性はなかなか見つけにくいため、コーディング時に気をつけるのはもちろんですが、こういったツールで確認するのも効果的です。

作成したWebアプリケーションには、是非利用しましょう。

他にも私のブログで、ツールについて解説している記事がありますのでご覧ください。

OSWindowsツールツール他
広告

個人開発

千草 @chigusaweb

現役のITエンジニア。 気ままにコードを書いたり技術情報を発信しています。 Webアプリ/Windows・Macアプリ/モバイルアプリなど。 (Java, PHP, Javascript, Swift, Python, C#, 他) 個人開発:Clibor, Quipha, TXT-Crypter, 符計算特訓, チグサツール Kindle本: Laravel9 実践入門, 他

クリップボード履歴

Clibor

Windows

Cliborはシンプルで高機能なクリップボード履歴ソフトです。 また普段よく使うワードを定型文として登録し、いつでもクリップボードに保存することができます。高度なテキスト整形・FIFOモード・ホットキーに対応。

クリップボード履歴

Windows版Cliborの利便性を、そのままMacでも。 定型文登録、高度なテキスト整形、FIFOモードなど、便利なクリップボード履歴機能を利用できます。macOS最新のTahoeにも対応。

テキスト暗号化

テキストを暗号化してURLで共有・保存できる無料サービスです。 パスフレーズを知る人だけが復号できます。登録不要、データはサーバーに保存されません。 Notionでも利用できます。

学習

Quipha

Web / iOS

自分だけの問題集や問題を作成し、クイズを行い、学習に活用することができるアプリです。 例えば、学校の授業、語学学習、IT資格やその他の資格など多彩な分野での学習を支援します。 いつでも、どこでも、あなたの学習をサポート。

ツール

日常の「ちょっとした効率化」をサポートするWeb便利ツール集。 テキスト・データ処理から最新のAI連携まで、日々のちょっとした手間でググりがちなユーティリティを1つの場所に集約。

麻雀

麻雀の符計算をひたすら特訓しマスターしましょう。 初心者の方はもちろん、もっと速く計算したい方にも役立ちます。 5万対局以上の実践から問題を収録。

コメント

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