OWASP ZAPのススメ #ssmjp

2014/03/28
亀田 勇歩@YuhoKameda

Agenda• 自己紹介• ZAP機能紹介• ZAPの使い方• ZAPのコミュニティ紹介
• まとめ

自己紹介

Profile亀田 勇歩 (Yuho Kameda)– Twitter : @YuhoKameda

活動– ZAP Evangelist– ZAPハンズオントレーニング in AppSec APAC
– 『OWASP Zed Attack Proxy 運用マニュアル』執筆
協力ZAP Evangelist

ZAPハンズオントレーニングin AppSec APAC

『OWASP Zed Attack Proxy運用マニュアル』執筆協力• Ver 2.1.0版にて作成• インストール手順から各種メニューまで

OWASP ZAP• Paros version:3.2.13をフォークしたもの• 簡単に使える、Webアプリケーションの脆弱性を発見するための統合ペネトレーションツール••

https://code.google.com/p/zaproxy/https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project

IPAテクニカルウォッチ 「ウェブサイトにおける脆弱性検査手法の紹介」の公開
https://www.ipa.go.jp/about/technicalwatch/20131212.html

ZAP機能紹介(初心者向け)

Quick Start• 開始URLを指定し検査を行う• 操作が簡単

スパイダー検索• 開始URLを選択し、スパイダー検索• 簡単にサイトをクロールしてくれる

ブレーク機能• リクエストをブレーク• レスポンスをブレーク• 特定条件(カスタム)の場合にブレーク

ZAP機能紹介(中級者向け)

CSRFトークン• トークンに用いられるパラメータを指定• 使用する場合、オプションにて設定

強制ブラウズ• ディレクトリ調査• カスタマイズも可能
•
•
•
•
•
•
•

directory-list-1.0.txt
directory-list-2.3-big.txt
directory-list-2.3-medium.txt
directory-list-2.3-small.txt
directory-***2.3-big.txt
directory-***2.3-medium.txt
directory-***2.3-small.txt

141,694件 収録
1,273,819件 収録
220,546件 収録
87,650件 収録
1,185,240件 収録
207,619件 収録
81,643件 収録

FuzzerFuzzer• 攻撃文字列を連続試行• 「Reflected」で簡単判別• レスポンスで、すぐ確認可能• 試行パターンが豊富– Format String Payloads– SQL Injection– Cross Site Scripting– など

ZAP機能紹介(上級者向け)

ZAP Script• 様々な状況下でスクリプトを実行– Passive Rules• パッシブスキャン実行時に実行– Active Rules• 動的スキャン実行時に実行– プロキシ• ZAPをプロキシとして使用する時に実行– Stand Alone• 手動で実行– Targeted• 指定したURLに対して実行Plug-n-Hack• Firefoxのアドオン• 有効にした後、Shift+F2で起動• コマンドでZAP操作––––––zap http-session
zap recordzap scanzap session
zap spider…

Plug-n-Hack

22

ZAP API23

Ajax Spider

24

Ajax Spider• Ajaxベースの動的解析ツール• Crawljax (http://crawljax.com/)Manage Add-ons

ZAPの基本的な使い方

Context設定• スコープを指定– 検査対象を明示

除外設定• (必要がある場合、)検査に不要なリクエストを除外

Spider検索• スコープ内をSpider検索動的スキャン

• スコープ内を動的スキャン– All In Scope– Site Scan
– Subtree– Single URL Scan

ZAP SCRIPTの使い方

言語スクリプトのアドオン追加

1. 各言語スクリプトのアドオン追加
i.

「Manage Add-ons」の「Marketplace」にアクセスする。

ii. 使用したい言語のアドオンをチェック
iii. 「Install Selected」を押下する。
≪選択できるアドオン≫– Zest - Scripting Security Tests– Python Scripting– Ruby scripting– などスクリプトの作成

2. スクリプトの作成
i. 「Scripts」タブを選択
ii. 「New Script」を選択、もしくは「Templates」内のスクリプトを右クリックし「New Script」を選択
iii. 入力欄を選択し、「保存」を押下しスクリプトを作成
iv. 「Script Console」の結果出力部分に結果が表示される
スクリプト実行方法
Passive Rules/Active
Rules/プロキシ「Enable Script」を選択し有効にする

Stand Alone「Script Console」タブにある「Run」を押下し実行する

Targeted「履歴」内か「サイト」タブ内のURLを右クリックし、「Invoke with script」を選択し実行する

スクリプト実行例• Traverse sites tree.js– ページ一覧抽出• Find HTML comments.js– HTMLコメント抽出

ZESTスクリプト例• 一連の遷移をレコードし、マクロ化– トークンやパラメータの引き渡しも可能

ZAPコミュニティの紹介

Google Group• OWASP ZAP DeveloperGroup– メンバー数：314人– 開始日：2010/08/17• OWASP ZAP User Group– メンバー数：214人– 開始日：2012/05/22– 主な内容– 主な内容• ZAP開発に関すること• Extensionの開発• バグ修正• 使い方の質問• 実装してほしいリクエスト

Google Group (NEW!)• OWASP ZAP Scripts– メンバー数：11人– 開始日：2014/03/26– 主な内容• ZAPスクリプトを共有するためのグループ

Translations for the OWASP ZAP(https://crowdin.net/project/owasp-zap)• ZAP翻訳プロジェクト• 日本語翻訳度は26%(2014/3/28現在)• だれでも参加可能

まとめ

まとめ

• ZAPは、初心者には使いやすい、上級者には拘りを実現できる検査ツール• 直感的に使いづらい部分は、使い方のコツを広めていく• ターゲットを絞ったハンズオン(デモ形式)による教育機会は非常に有効• 幅広い層の方にZAPを使ってほしい！
(Web開発/ 情シス/診断業務など)

Any Question?

• Social Account– Twitter : @YuhoKameda• E-mail– tyoisu@gmail.com• OWASP– yuho.kameda@owasp.org– https://www.owasp.org/index.php/User:Yuho_Kameda