31 August
2011

apache 1.3.x の apache killer 対策

conf: range header for apache 1.3.x

revised at '11-09-15 (thu.)
■背景
apache 2.2.x に対する解法は各所にあるのですが、
既に support 対象外である version 1.3.x (わたく
しの手許には、1.3.41/1.3.42 などが....)に対する
情報があまりないようでしたので、纏めておきます。

■official
本日時点での最新情報は、
 http://mail-archives.apache.org/mod_mbox/httpd-announce/201108.mbox/browser

 Fri, 26 Aug, 10:35
 https://mail-archives.apache.org/mod_mbox/httpd-announce/201108.mbox/%3C20110826103531.998348F82@minotaur.apache.org%3E
です。

■制限事項
□RequestHeader
上記 reference

Option 2: (Pre 2.2 and 1.3)
中の、
RequestHeader unset Request-Range
は、apache 1.3.x の
 mod_headers.so
では動作しないようです。下記
Starting httpd: Syntax error on line 1201 of /etc/httpd/conf/httpd.conf: Invalid command 'RequestHeader', perhaps mis-spelled or defined by a module not included in the server configuration
が呈示され、apache の(再)起動に失敗します(cf.
official document)。

□RewriteCond %{HTTP:request-range}
従って、HEAD "Request-Range" に対しては、上記 re-
ference の comment 部
# RewriteCond %{HTTP:request-range} !(bytes=[^,]+(?:,[^,]+){0,4}$|^$)
を comment out して設定する必要があると思われま
すが、設定を活かして再起動すると、
Starting httpd: Syntax error on line 1196 of /etc/httpd/conf/httpd.conf: RewriteCond: cannot compile regular expression '!(bytes=[^,]+(?:,[^,]+){0,4}$|^$)'
と、正規表現の文法 error が呈示され、これまた、
apache の(再)起動に失敗します。

あまり自信ないのですが、多分、
 !(bytes=[^,]+(?:,[^,]+){0,4}$|^$)
の "(?:" がおかしく、正しくは "(:?" ではなかろう
か、従って、
 !(bytes=[^,]+(:?,[^,]+){0,4}$|^$)
ではなかろうか、と。

■結論
下記
## date: 2011/08/31
# Reject request when more than 5 ranges in the Range: header.
# CVE-2011-3192
#
# <IfModule mod_rewrite.c>
<Directory />
RewriteEngine on
RewriteCond %{HTTP:range} !(^bytes=[^,]+(,[^,]+){0,4}$|^$) [NC,OR]
RewriteCond %{HTTP:request-range} !(^bytes=[^,]+(:?,[^,]+){0,4}$|^$) [NC]
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
</Directory>
# </IfModule>
の設定を httpd.conf
### Section 3: Virtual Hosts
の直前に挿入しました(以上 9/15 update 分)。


================================================
以下は誤った記述です date: '11-09-15 (thu.) 追記
================================================
下記
## date: 2011/08/31
# 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
の設定を httpd.conf
### Section 3: Virtual Hosts
の直前に挿入しました。


Posted by unchor at 09:44 | Comments (0)
<< apache 1.3.42 と mod_ssl 2.8.31 | Main | apxs の include dir と library name の指定 >>
Comments
Re: apache 1.3.x の apache killer 対策

CVE-2011-3192 UPDATE 3 - FINAL
http://people.apache.org/~dirkx/CVE-2011-3192.txt
でていますね。

公式に、
| Apache 1.3 is NOT vulnerable.
との announce が....。わたくしの無駄な努力が....

Posted by: unchor at September 02,2011 18:33
Re: apache 1.3.x の apache killer 対策

ありがとうございます
助かりました。

Posted by: じょうじょう at September 06,2011 18:19
Re: apache 1.3.x の apache killer 対策

試験環境で検証したところ、いろいろと間違っておりましたので、設定を修正しました。

詳細は別途 post 予定。

Posted by: unchor at September 15,2011 18:32
Post a comment