OWASP ZAPを用いた脆弱性診断のメモ

注意

  • 自分の管理する範囲いないのサーバ、または検証ネットワーク内に対してのみスキャンを行うようにする
  • データへの影響や診断文字列の残存、診断対象への一定の負荷があるので、本番環境への診断は避けるべき
  • アンチウイルスソフトが攻撃と判断し、通信を遮断する可能性がある

ZAPとは

  • 全世界的によく使われている無料のペネトレーションテストツール
  • WEBアプリケーションに対して自動診断をおこなう
  • 腕を磨けば手動で診断にも利用できる
  • リクエストに対してスクリプトを挟むことができる
  • Proxyツール
    • 通常のブラウザからの閲覧の通信に挟んで、改ざんして送る

ZAPの利用推定事例

  • 設計・開発中の動作確認
  • テスト・検証の受け入れテスト
  • 運用・保守の脆弱性診断の実施
    • 自動診断による網羅的な診断
    • 手動診断による自動診断のカバー
    • OWASPトップ10に対応した診断

役に立つ関連OWASPプロジェクト

  • OWASP Top10
    • ZapingTheTop10
      • Active Scan Rule
      • Passive Scan Rule
  • OWASP チートシート
    • Web Application Seecirotu Testing cheat Sjeet
    • 診断時に必要な項目のチェックリスト
      • テスト項目
  • Pentester Skillmap Project
  • WEBアプリケ=ション脆弱性診断ガイドライン
    • どのような知識があれば、脆弱性診断ができるのかのマッピング
    • 基礎知識
      • 脆弱性がある場合はこんな挙動をする等の判断材料

OWASP Top10に対応するZAP機能の紹介

Active Scan(自動診断)

A1,3,5,6,8,9,10

  • Release / Beta / Alpha
  • Beta以降は、より複座なペイロードを含む
  • 普通にやるなら、Releaseを推奨

Passive Scan(静的診断)

A2,4,6

  • Beta以降は、より珍しい検出文字が増える。
  • 基本的な脆弱性を見つける場合はReleaseを推奨

HTTP Session

  • 特定の条件にマッチした文字列をセッション情報として格納
  • 必要に応じてセッションを切り替えて仕様
  • Option -> HTTP Sessionでセッションを設定

Parameter tab

  • さいとごとにパラメータの一覧が表示
  • 一つホツレスポンスを見なくても一挙に確認
  • 手動操作やリパイダーで移動させたあとに確認すると、存在する値を見逃さない

Spider/Ajax Spider

  • 指定ページから移動可能なページを探索
  • 認証があるサイトにおうて、認証なしと認証時の設定を行うことによって、それぞれ違った画面の移動を記録できる。

Access Control

  • 次のリリースで実装予定
  • 設定ユーザごとのアクセス制御を確認