My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
JapaneseManual  

Featured
Updated Sep 7, 2011 by infoaliv...@gmail.com

Perl script testing Apache Range Header DOS

概要

Apacheで発見された「Range header DoS」と呼ばれる脆弱性(CVE-2011-3192)について、mod_setenvif または mod_rewrite による Rangeヘッダーの制限で、その脆弱性を回避する方法があることが、Apache開発チームにより公開されています。

このPerlスクリプトでは、長いRangeヘッダーのHTTPリクエストを指定のホストに送信して、mod_setenvif または mod_rewrite によるRangeヘッダー制限が有効であるかどうかを容易にチェックすることができます。

「Range header DoS」の脆弱性が閉じられているかどうかを検査するものではなく、冗長なRangeヘッダーによるHTTPリクエストのシミュレーションをすることを目的としたものです。

脆弱性の対策ができているかどうかのチェック補助にお使いいただければと思います。
このツールの実行結果だけで対策が確実と見なせるわけではありませんので、ご注意ください。

「Range Header DOS」についての詳しい情報が、以下のウェブサイトで公開されています。
http://www.ipa.go.jp/security/ciadr/vul/20110831-apache.html

システム要件

ダウンロード

スクリプトのダウンロード

使い方

簡易テスト。引数にホスト名またはURLを指定します。
簡易テストでは、Range-Headerに10個の範囲指定をしたリクエストを指定のホストに対して行います。Apache開発チームは、mod_setenvif または mod_rewriteを使って、Range-Header で 6個以上の範囲指定がある場合にそのリクエストをサーバー側で拒否、あるいは、Range-Headerを無視する設定方法を公開しています。
簡易テストの結果、Apacheがリクエストを拒否あるいは無視しなかった場合には、Warning のメッセージを出力します。Warningが出力された場合には、正しく mod_setenvif または mod_rewrite での制限が効いていないと見なせますので、Apache の設定確認することをお勧めします。

   $ ./httprangetest.pl www.example.local
   $ ./httprangetest.pl http://wwww.example.local/foo/

Range-Headerで任意の数の範囲指定を伴うテスト。第一引数に範囲の数値、第二引数にホスト名またはURLを指定します。
許可範囲内の Range-Headerのリクエストが正しく受け付けられるかをテストするのに有効です。

   $ ./httprangetest.pl 5 www.example.local
   $ ./httprangetest.pl 20 http://www.example.local/bar/

https のURLへのテストを行うこともできます。Crypt::SSLeay というPerlモジュールが必要です。

  $ ./httprangetest.pl https://www.example.local/

[参考情報] Perlモジュールのインストール

yumコマンドが使えるシステムの場合

  $root> yum install perl-libwww-perl
  $root> yum install perl-Crypt-SSLeay

cpanコマンドが使えるシステムの場合

  $root> cpan
  > install LWP
  > install Crypt::SSLeay

リンク


Sign in to add a comment
Powered by Google Project Hosting