目次
エンパワーメントサービス部所属セキュリティエンジニアの綾城です。
今回は、オープンソースの脆弱性診断ツール OWASP ZAPについて極々簡単に紹介していこうと思います。
はじめに
OWASP ZAPは、使い方によっては攻撃とみなされますので、取り扱いには十分に注意してください。
OWASP とは
“OWASP – Open Web Application Security Project とは、Webをはじめとするソフトウェアのセキュリティ環境の現状、またセキュアなソフトウェア開発を促進する技術・プロセスに関する情報共有と普及啓発を目的としたプロフェッショナルの集まる、オープンソース・ソフトウェアコミュニティです。The OWASP Foundationは、NPO団体として全世界のOWASPの活動を支えています。” OWASP Japanウェブサイトより
OWASP Japan
https://owasp.org/www-chapter-japan/
OWASPというのは団体なんです、そしてOWASP Flagship Projectsというのがありまして、OWASPが特に力を入れているプロジェクト群です。日本でも有名なものがいつくかあると思います。ASVSやTop 10、チートシートシリーズなどがあります。
(なので、OWASP ZAPやその他プロジェクトなどを、OWASPって略さないでほしいですね。)
- OWASP Amass
- OWASP Application Security Verification Standard (OWASP「アプリケーションセキュリティ検証標準 4.0」の日本語邦訳文書)
- OWASP Cheat Sheet Series
- OWASP CSRFGuard
- OWASP Defectdojo
- OWASP Dependency-Check
- OWASP Dependency-Track
- OWASP Juice Shop
- OWASP Maryam
- OWASP Mobile Security Testing Guide
- OWASP Mobile Top 10
- OWASP ModSecurity Core Rule Set
- OWASP OWTF
- OWASP SAMM
- OWASP security Knowledge Framework
- OWASP Security Qualitative Metrics
- OWASP Security Shepherd
- OWASP Top Ten
- OWASP Web Security Testing Guide
- OWASP ZAP(今回の記事はこれについて)
ボランティアで成り立っているので、スポンサーや会員になって支援することができます。
人気のイベントに優先的に入場できたり、メールアドレスがもらえたり特典もありますよ。
https://owasp.org/membership/
OWASP ZAP とは
正式名称は、OWASP Zed Attack Proxyです。ザップと読んだりしてます。
フリーでオープンソースのウェブアプリケーション脆弱性スキャナーです。
Javaアプリケーションなので、Windowsでも、macOSでも問題なく動作します。
クライアントとサーバ間の通信を、アプリケーションレベルで確認することのできる、ローカルプロキシとして動作します。
ローカルプロキシは、Fiddler Everywhere、Burp Suite、Charles、mitmproxy、PacketProxy などがあります。
それぞれ一長一短があるので、用途や目的、プラットフォームなどによって選ぶとよいでしょう。
ちなみに、アピリッツのウェブアプリケーション脆弱性診断では、Burp Suiteがメインで使われています。
OWASP ZAPは、IPAの文書にも登場したことがあります。
IPAテクニカルウォッチ 「ウェブサイトにおける脆弱性検査手法(ウェブアプリケーション検査編)」
https://www.ipa.go.jp/security/technicalwatch/20160928-2.html
OWASP ZAP のインストール
OWASP ZAPは、Javaアプリケーションです。現在は、JREが付属していないので、別途導入しましょう。
インストール時や、アドオン導入時など、ウィルス対策ソフトが反応することがあるので、あらかじめ対処しておきましょう。
無料Javaのダウンロード
https://java.com/ja/download/
OWASP Zed Attack Proxy
https://www.zaproxy.org/
少しわかりにくいところにあるのですが、メニューの[ヘルプ] [アップデートのチェック]、[マーケットプレイス]タブから、各種アドオンを投入することができます。release、beta、alphaの表記で、そのアドオンの完成度合いを知ることができます。目的や好みで入れてみてください。
下記の画面は、導入済みになってますが、マーケットプレイスのタブを選択し、そこから必要なもの導入してください。
インストール自体は普通のアプリケーションとあまり変わりません。体系的に学ぶ 安全なWebアプリケーションの作り方、Webセキュリティ担当者のための脆弱性診断スタートガイド などの書籍でもOWASP ZAPのインストールに触れていますので、わからない場合は参考にした方がよいでしょう。
OWASP ZAP の簡単な使い方
自動診断
一応、紹介はしますけれど、推奨はしません。プロテクトモードにして、スコープを定めないと、この機能自体を使えないように指導している方もいます。気軽に始められる分、デフォルトの診断範囲、クローリングやスキャンの速度、スキャンの強度で診断を始めてしまいますし、自動のため意図しない診断になる場合もあり、事故が起こる危険性があるため推奨していないわけです。なので自己責任でお願いしますね。例えば、ローカルに立てた自分のウェブアプリケーションなどに対して、お試しでやってみる程度にしてください。下部のアラートタブの中に、誤検知を含め検出した脆弱性が表示されているかと思います。
即クローリングが始まり診断が開始されるので注意してください。
手動診断
本格的に脆弱性診断やるためには、ブラウザを複数プロファイルに分け、それぞれのブラウザにローカルプロキシの証明書をインポート、プロキシ切替用のアドオンを導入します、FirefoxならFoxyProxy Standard、chromeならSwitchyOmegaなどが有名です。
今回は、HUDを切ります。(私が使い方に慣れていないだけ)HUDのボタンをオフにして、隣のFirefoxアイコンを押すと、各種設定済みのブラウザが立ち上がります。
そのブラウザに診断対象のURLを入力すると、下部、履歴に通信の状態を見ることができます。これに対して、再送を設定などしてパラメータを改変などして送信しなおしたり。手動診断を始めることができます。(今回は詳しく触れられなくてすいません。)
OWASP ZAP 多彩な使用方法の紹介
私は主に脆弱性診断にしか使わないのですが、OWASP ZAPは、APIを使用することができます。Jenkinsと連携してCIツールとしても利用することができます。(Official OWASP Zed Attack Proxy Jenkins Plugin)また、OWASP ZAP Docker版もありますので、組み合わせで多彩なことが可能になります。
弊社内の方で、こんな使い方してみたよとか、こんな使い方をした実績がありますとかあれば、社内Slackの #security でお知らせいただくと、いいナレッジにもなりますし、私が喜びます。
また、初心者から高度な使い方まで、脆弱性診断研究会の脆弱性診断ええんやでというOWASP ZAPの勉強会が定期的に開催されています。(新型コロナウィルスの影響で中断中)和気あいあいとした雰囲気で参加しやすいですが、多少緩いところがあるので、複数回参加してみるとよいかと思います。
OWASP ZAP の日本語訳
私は、微力ながらOWASP ZAPのローカライズ作業に参加してます。
https://www.zaproxy.org/docs/desktop/credits/#zap-localization
本体の方も修正を入れようかと思ったのですが少し難しかったです。
起動時やぱっと見でわかるメニュー類などちまちまと日本語化していきました。
現在は、スキャン結果など長めの英文がまだ残ってるので、協力してくださる方を待ってます。
おわりに
アピリッツでは、セキュリティに興味があり脆弱性診断をやってみたいセキュリティエンジニアを募集しています。興味ある方は、下記の採用情報からセキュリティエンジニアの職務内容・応募資格を確認してみてください。またコミュニティ活動やOSS活動に積極的な方、オープンソースを活用して開発をしてみたいWebエンジニアを歓迎します。下記ボタンからぜひ確認ください。