Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OWT2017JP-OWASPZAP

OWASP Japan
September 30, 2017

 OWT2017JP-OWASPZAP

#OWT2017JP
OWASP ZAP talk by 亀田勇歩, SCSK

OWASP Japan

September 30, 2017
Tweet

More Decks by OWASP Japan

Other Decks in Technology

Transcript

  1. 自己紹介 亀田 勇歩 - SCSK株式会社 セキュリティサービス部 - @YuhoKameda [業務] Web/PF脆弱性診断

    インシデントレスポンス全般 [活動] ZAP Evangelist 『OWASP Zed Attack Proxy 運用マニュアル』執筆協力 ZAP Hands-on Training in AppSec APAC2014 Webシステム/Webアプリケーションセキュリティ要件書 2.0 執筆 脆弱性診断士(Web アプリケーション)ガイドライン 執筆 OSINT CTF 8位入賞 (DEFCON 25)
  2. Agenda • OWASP ZAPとは? • ZAPの利用想定事例 • 役に立つ関連OWASPプロジェクト – OWASP

    Top 10 – OWASP Cheat Sheet – Pentester Skillmap Project JP • OWASP トップ10に対応するZAP機能の紹介 • 振り返り
  3. 本トレーニングについて • 概要 – OWASP ZAPを使用して、開発中のアプリや納品時の受け入れテスト時に、脆弱性診断を行うことを 目的としたトレーニングを実施します。 • 目的 –

    開発を行いながら脆弱性を作りこんでいないか簡易的に診断を行うことができる – 受け入れ時に簡易的に診断を行うことができる – ZAPを使ったことがあるが、簡易的に診断を行うためのより詳しい使い方やコツを知ることができる – ZAPを使って「Webアプリケーション脆弱性診断ガイドライン」を利用する方法を知ることができる • 主な対象者 – ZAPを利用したことがある、ZAPの基本的な操作を理解している – 開発中や受け入れ時に診断を行いたいと考えている開発者や受け入れ担当者 • 関連プロジェクト – OWASPトップ10 – OWASPチートシート – Pentester Skillmap Project JP
  4. OWASP ZAPとは? • OWASP Zed Attack Proxy(ZAP) • 全世界的に使用されている無料のペネトレー ションテストツール

    • Webアプリケーションに対して自動診断を行う • 腕を磨けば手動での診断にも利用できる
  5. 2.0.0以降のZAP年表 2013 2013/01/30 ver 2.0.0 2013/04/18 ver 2.1.0 2013/09/11 ver

    2.2.0 2013/09/27 ver 2.2.2 2013/11/04 ZAP Evangelist制度開始 2014 2014/03/17 AppSec APACにてハンズオントレーニング 2014/03/27 ZAP Evangelistに日本人初の登録 2014/04/10 ver 2.3.0 2014/05/21 ver 2.3.1 2015 2015/04/14 ver 2.4.0 2015/07/30 ver 2.4.1 2015/08 ZAPスクリプトコンテスト 2015/09/07 ver 2.4.2 2015/12/04 ver 2.4.3 2016 2016/06/03 ver 2.5.0 2016/06/03 bugcrowdでバグバウンティプログラム開始 2017 2017/03/29 ver 2.6.0
  6. ZAPの役に立つ情報ソース • Twitter (ZAPに関するアナウンス) – https://twitter.com/zaproxy • ZAP Blog (定期的な情報発信)

    – https://zaproxy.blogspot.jp/ • ZAP User Guide (コア機能に関するマニュアル) – https://github.com/zaproxy/zap-core-help/wiki • ZAP Introduction Wiki (詳細なオンラインマニュアル) – https://github.com/zaproxy/zaproxy/wiki/Introduction • ZAP User Group (ユーザコミュニティ) – https://groups.google.com/group/zaproxy-users • Crowdin ZAP GUI translation (GUI翻訳グループ) – https://crowdin.com/project/owasp-zap • Crowdin ZAP User Guide Translation (User Guide 翻訳グループ) – https://crowdin.com/project/owasp-zap-help • Open Hub (OSS 開発コミュニティサイト) – https://www.openhub.net/p/zaproxy • Bountysource (ZAP バグバウンティプログラム) – https://www.bountysource.com/teams/zap/issues • ZAP日本語マニュアル Ver.2.1.0版 (日本語) – https://docs.google.com/file/d/0B1e1Cma1GUllazNUNVp6OWdGYzg/edit
  7. ZAP基本機能の振り返り • Active Scan • Passive Scan • ブレークポイント •

    スパイダー • AJAXスパイダー • 強制ブラウズ • スキャンポリシー • 証明書 • エンコード/デコード • レポート生成 • 拡張機能 • Fuzzer • Web Sockets • Replacer • Zest • スクリプト
  8. ZAPの利用想定事例 • (設計/開発)開発中の動作確認 – デバッグや簡単な脆弱性確認に利用 • (テスト/検証)受け入れテスト – 納品されたWebアプリの受け入れテストに利用 •

    (運用/保守)脆弱性診断の実施 – 機能リリース等による脆弱性診断に利用 デバッグしながら脆弱性が無いことを確認 確認すべき検査項目を元に診断を実施 自動診断による網羅的な診断 手動診断による自動診断で漏れる検査の実施
  9. 役に立つ関連OWASPプロジェクト • OWASP トップ10 (ZAPpingTheTop10) – ZAPでOWASP トップ10を診断しようとした際のマッピング – 自動診断

    (Active Scan Rule / Passive Scan Rule) • A1 : Injection • A3 : Cross-Site Scripting (XSS) • A5 : Security Misconfiguration • A6 : Sensitive Data Exposure • A8 : Cross-Site Request Forgery (CSRF) • A9 : Using Components with Known Vulnerabilities • A10 : Unvalidated Redirects and Forwards – 手動診断 • A6(機密データの露出)以外全般 https://www.owasp.org/index.php/ZAPpingTheTop10
  10. 役に立つ関連OWASPプロジェクト • OWASP トップ10 (ZAPpingTheTop10) – 自動診断では見つからない項目 • A2 :

    Broken Authentication and Session Management – 有効なZAPの機能例 : Httpセッション • A4 : Insecure Direct Object References – 有効なZAPの機能例 : パラメータ タブ • A7 : Missing Function Level Access Control – 有効なZAPの機能例 : スパイダー / AJAXスパイダー – 今後期待なZAPの機能 : Access Control
  11. 役に立つ関連OWASPプロジェクト • OWASP チートシート(Assessment/Breakers) – Web Application Security Testing Cheat

    Sheet – 診断時に必要な項目のチェックリスト • (英語) – https://www.owasp.org/index.php/Web_Application_Security _Testing_Cheat_Sheet • (日本語) – https://jpcertcc.github.io/OWASPdocuments/CheatSheets/W ebApplicationSecurityTesting.html
  12. 役に立つ関連OWASPプロジェクト • Pentester Skillmap Project JP • 脆弱性診断士スキルマッププロジェクト • https://www.owasp.org/index.php/Pentester_Skillmap_Project_JP

    – 脆弱性診断士(Webアプリケーション)スキルマップ&シラバス – 脆弱性診断士(プラットフォーム)スキルマップ&シラバス • 脆弱性診断業務に必要な技術的な能力を明示(マネジメントやコミュニケー ションスキルは対象外) • 特定のツールや環境に依存しない • 各社提供の診断サービスの品質に対する指標は対象外 – Webアプリケーション脆弱性診断ガイドライン • 手動診断補助ツールを使った手動診断を推奨 • 能力差を埋めるため、最低限必要な診断項目や手順を定義 • 一定レベルの手動診断による脆弱性診断 ガイドラインを使ったハンズオントレーニングも実施!
  13. Webアプリケーション脆弱性診断ガイ ドライン <主な対象者> • 自社のWebアプリケーションの脆弱性診断(受入れ検査) を行う方 • 脆弱性診断業務の従事を目指す方(学生など) <活用方法例> ✓

    スキルマップ&シラバスを用いた、基礎知識の習得 ✓ 脆弱性診断ガイドラインを用いた、基礎的な受入れ検査実 施 ✓ 脆弱性診断ガイドラインを用いた、開発時の簡易「脆弱性 診断」実施
  14. Webアプリケーション脆弱性診断ガイ ドライン • ガイドライン掲載の例 – 分類 : SQLインジェクション – 診断を実施すべき箇所

    : すべて – ペイロード・検出パターン : ‘ (シングルクォート) – 操作を行う対象 : パラメーター – 診断方法 • パラメーターの値に検出パターンを挿入し、リクエストを送信 – 脆弱性がある場合 • DB関連のエラーが表示されるか、正常動作と挙動が異なる – 脆弱性がない場合 • DB関連のエラーは表示されない どの箇所に何を 埋め込むか どう診断したときに、どのように動作したか
  15. ZAPの利用想定事例 • (設計/開発)開発中の動作確認 – デバッグや簡単な脆弱性確認に利用 • (テスト/検証)受け入れテスト – 納品されたWebアプリの受け入れテストに利用 •

    (運用/保守)脆弱性診断の実施 – 機能リリース等による脆弱性診断に利用 デバッグしながら脆弱性が無いことを確認 確認すべき検査項目を元に診断を実施 自動診断による網羅的な診断 手動診断による自動診断で漏れる検査の実施
  16. OWASPプロジェクトを活かした ZAPの利用想定事例 • (設計/開発)開発中の動作確認 – デバッグや簡単な脆弱性確認に利用 • (テスト/検証)受け入れテスト – 納品されたWebアプリの受け入れテストに利用

    • (運用/保守)脆弱性診断の実施 – 機能リリース等による脆弱性診断に利用 デバッグを兼ねたローカルプロキシツール 脆弱性診断ガイドラインに沿った診断実施 OWASP トップ10に対応した自動 / 手動診断
  17. 利用想定事例にあった施策 • デバッグを兼ねたローカルプロキシツール • 脆弱性診断ガイドラインに沿った診断実施 – 「Webアプリケーション脆弱性診断ガイドライン利用 のためのドキュメント」を読む • ブラウザの通信がZAPを通してアクセスできていることを確

    認 • 診断項目を確認 • 脆弱性がない場合を確認 • 診断を実施 • 脆弱性がある場合の結果を確認 • 再送信せずに、ブレークして診断を実施 https://docs.google.com/document/d/1-eZqWf2TqfEwc9f-OZr6bY24VjvNMUwS9zzAejpZQ64/
  18. 利用想定事例にあった施策 • OWASP トップ10に対応した自動 / 手動診断 – 自動診断 (A1, A3,

    A5, A6, A8, A9, A10) • Active Scan Rule • Passive Scan Rule – 手動診断 (A2, A4, A7) • Httpセッション • パラメータ タブ • スパイダー / AJAXスパイダー • Access Control
  19. Active Scan Rule • 動的スキャンのルール集 • Release / Beta /

    Alpha – Releaseのみデフォルトでインストール – Beta以降は、より複雑なペイロードを含む – 基本的な脆弱性を見つける場合、Releaseを推奨
  20. Passive Scan Rule • 静的(パッシブ)スキャンのルール集 • Release / Beta /

    Alpha – Releaseのみデフォルトでインストール – Beta以降は、より珍しい検出文字列が増える – 過検知が増えるような検出文字列が増える – 基本的な脆弱性を見つける場合、Releaseを推奨
  21. 振り返り • OWASP ZAPとは? • ZAPの利用想定事例 • 役に立つ関連OWASPプロジェクト – OWASP

    Top 10 – OWASP Cheat Sheet – Pentester Skillmap Project JPについて • OWASP トップ10に対応するZAP機能の紹介
  22. Profile • Mail : [email protected] • Twitter : @YuhoKameda •

    WebSite (過去の発表資料) : – https://www.owasp.org/index.php/User:Yuho_Kameda – https://speakerdeck.com/ykame