WebSecurity

OWASP ZAPのフィルタ機能についてのメモ

※当サイトにはプロモーションが含まれています。

投稿日:

OWASP JAPAN

29日に行われた OWASP DAY というイベントの中で Proxy War というプレゼンがあったようで、スライドが公開されていました。この中では Fiddler, BurpSuite, OWASP ZAP といった3つのローカルプロキシツールについての特徴が説明されており、すごく面白くて勉強になりました。まだ見ていない方がいましたら、是非見て頂きたいと思います。

ZAPについても知らないことがいろいろあったのですが、今回はその中からフィルタ機能について調べたので分かったことをメモしておきます。最初に書いておきますが、ホントにメモみたいであまり整頓されていません。

フィルタ機能とは?

  • Paros時代からある機能です。(OWASP ZAPの源流は Parosというツールです)
  • [ツール]メニュー – [フィルタ…] を選択すると、各フィルタの一覧が表示されたダイアログボックスが表示されます。目的のフィルタにチェックを入れ(項目によっては補足的なデータもセットして)使用します(下の方に画面を貼り付けてあります)。
  • フィルタとは基本的に、「ZAPをプロキシとして設定したブラウザにおいて、Webサイトに対してリクエストを送信する直前と、レスポンスを取得した直後に何かしらの処理を行う」ものです(フィルタによってどちらか片方だけのものもあります)。
  • 例えば、「レスポンス中の”Set-cookie”攻撃を検出」(英語だと [Detect and alert ‘Set-cookie’ attempt in HTTP response for modification.])というフィルタの場合、レスポンスが返ってきた直後、レスポンスヘッダに “Set-cookie” がセットされているのを検出し、その場でダイアログボックスを表示して警告し、クッキーの内容を変更することができます。
  • 公式サイトの Wikiでフィルタ機能についてのページを探したのですが、見つかったのは以下だけでした。これ以外に何かドキュメントはあるのでしょうか?

内部的な話し

バージョン 2.4 以降について

  • もう少しでリリースされる予定のバージョン2.4では、フィルタのダイアログボックスに以下のような警告文が表示されます。
    • zap_filter
    • つまり、フィルタ機能はスクリプトの機能によって置き換えられてきており、将来的にはなくなります。
    • ちなみに スクリプトというのは、以下のように [Scripts]タブで作成することができます。
      • zap_new_script
      • この画面中に[タイプ]という項目がありますが、フィルタと全く同じ役割を持つのは “プロキシ”というタイプになります(リクエスト送信直前と、レスポンス取得直後に処理を追加できる)。

その他

  • 間違っている所があれば、ご指摘して頂けると助かります。
  • 上の方で書いた「レスポンス中の”Set-cookie”攻撃を検出」というフィルタについてですが、やっている処理は単純に “Set-cookie” を検出して警告し、その内容を変更できるようにしているだけ(参照)であって、攻撃だけを検出しているわけではないので、Crowdinサイト(ZAPの翻訳をするサイト)で日本語訳を “HTTPレスポンス中の ‘Set-cookie’ を検出して警告する” にしておきました。もっとよい言葉がありましたら、変更してしまっておいて下さい。(Crowdinのアカウントがあれば、こちらから このセンテンスのページにアクセスできます)

最終更新日: 2014-11-30

-WebSecurity
-,


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

OWASP ZAPをデバッグする方法

前回に引き続き OWASP ZAPです。OWASP ZAPはオープンソースであるため、動作におかしいところがあったり、内部でどんな処理をしているのか知りたい時にはソースレベルで調査することができます。 …

Heartbleed検知スクリプトのバグについて

以下の記事を読みました。 Bugs in Heartbleed detection scripts. ちょうど昨日、Heartbleedの検知スクリプトをいくつか読んでブログまで書いたので非常に興味深 …

IPA ウェブ健康診断仕様を使ったWebアプリ脆弱性検査(SQLインジェクション編)

IPAが公開しているウェブ健康診断仕様の中にあるSQLインジェクションの診断をやってみます。 (ウェブ健康診断については、以前の記事 IPA ウェブ健康診断仕様とは?で説明しています) 診断内容 ウェ …

PHPで画像ファイルかどうかを検証する(Laravel)

特定のファイルが画像ファイルかどうかを検証するPHPの関数を書いてみました。ウェブサイトにアップロードされた画像ファイルを検証する時などに使うことを想定しています。 GIF/JPEG/PNG のみ対象 …

OWASP BWAを使って気楽にModSecurityを試す方法

OWASP BWAにはModSecurityが最初から導入されています。簡単に有効/無効の切り替えができるので、ModSecurityがどんな動きをするのかちょっと見てみる場合に便利です。 OWASP …