Apache Killer で検証してみた。
2011.09.10 Author: hoge
ずいぶんと久しぶりに書き込みます。
CVE-2011-3192(2011年8月25日リリース)
いわずと知れた「Apache」の脆弱性について公開された情報です。
超概要を書きますと、メモリを喰い尽してどうしようも無くなります。
shutodownも効かないですよ~。
[注意すべき場合]
1、コンテンツデータサイズ:1299バイト以上
2、httpd.conf:MaxClientがメモリ適切で設定されている場合
上記に該当する場合は、漏れなく簡単に激重になります。
攻撃方法については、はっきり言って誰できてしまう内容なので、書きませんが、
かなり強烈なツールである事は間違いないです。
とうわけで、アドバイザリに従って対処をしましょう!!!
destination file "httpd.conf"
Option 1: (Apache 2.2)
# Drop the Range header when more than 5 ranges.
# CVE-2011-3192
SetEnvIf Range (?:,.*?){5,5} bad-range=1
RequestHeader unset Range env=bad-range
# We always drop Request-Range; as this is a legacy
# dating back to MSIE3 and Netscape 2 and 3.
RequestHeader unset Request-Range
required case
# optional logging.
CustomLog logs/range-CVE-2011-3192.log common env=bad-range
CustomLog logs/range-CVE-2011-3192.log common env=bad-req-range
Option 2: (Pre 2.2 and 1.3)
# Reject request when more than 5 ranges in the Range: header.
# CVE-2011-3192
#
RewriteEngine on
RewriteCond %{HTTP:range} !(bytes=[^,]+(,[^,]+){0,4}$|^$)
# RewriteCond %{HTTP:request-range} !(bytes=[^,]+(?:,[^,]+){0,4}$|^$)
RewriteRule .* - [F]
# We always drop Request-Range; as this is a legacy
# dating back to MSIE3 and Netscape 2 and 3.
RequestHeader unset Request-Range
#あ~~~~ややこしい設定内容になりますね~~~~~。
#Rangeヘッダに多くのパラメータを指定してhttpdプロセスの使用メモリを増大しますので、
#結局、よほどショボイ内容のコンテンツを公開しているWebサーバ以外全てが対象だ。
いくつかの検証環境で実験したところ、仮想環境で構築されたWebサーバほど、
著しく影響を受ける傾向になってしまいますね。
何故なら、アサインメモリが少ない傾向にある!!!!!
(とにもかくにも、お客様システム修正しないとね)