更新日:2011年10月3日
1. 概要
Apache HTTPdサーバ2.x系に、Rangeヘッダ処理に関するサービス不能攻撃を許してしまう脆弱性(CVE-2011-3192)が存在します。Rangeヘッダは、ファイルの分割ダウンロードや、ダウンロード中断・再開などで利用するヘッダで、ダウンロードを範囲指定します。脆弱性は、このRangeヘッダに、カンマ区切りで非常に多くの範囲指定が設定された場合に、Apache HTTPdサーバがサービス不能状態に陥ってしまうというものです。
Apache HTTPdサーバをベースとした日立製品も、この脆弱性の影響を受けます。
CVSSによる深刻度
基本値:7.8
攻撃元区分:ネットワーク
攻撃条件の複雑さ:低
攻撃前の認証要否:不要
機密性への影響(C):なし
完全性への影響(I):なし
可用性への影響(A):全面的
現状値:6.7 (2011年9月7日時点)
攻撃される可能性:攻撃可能
利用可能な対策のレベル:暫定対策
脆弱性情報の信頼性:開発者が情報を確認済
2. 影響を受けるシステム
図1:脆弱性(CVE-2011-3192)の対応経緯
3. 想定される影響
不正なHTTP要求を受信したHTTPdサーバプロセスが、サービス不能状態に陥る可能性があります。結果として、サーバ全体がサービス不能状態に陥る可能性があります。
4. 対策
Rangeヘッダ処理に起因した脆弱性を修正したバージョン/セキュリティ更新プログラムの適用、あるいは、[5. 回避策]を適用してください。
4.1 Apache HTTPdサーバ2.x 系
Fixed in Apache httpd 2.2.20
http://httpd.apache.org/security/vulnerabilities_22.html#2.2.20
4.2 脆弱性の影響を受ける弊社製品
+ Hitachi Web Server
+ Hitachi Web Serverを同梱あるいはコンポーネントとして使用する製品
+ Cosminexusを同梱あるいはコンポーネントとして使用する製品
Hitachi Web ServerにおけるRangeヘッダによるDoS脆弱性
+ Hitachi IT Operations製品
Hitachi IT Operations製品におけるRangeヘッダによるDoS脆弱性
+ JP1製品
JP1製品におけるRangeヘッダによるDoS脆弱性
+ Hitachi Command Suite製品
Hitachi Command Suite製品におけるRangeヘッダによるDoS脆弱性
4.3 脆弱性の影響を受けない弊社製品
+ AlaxalA製品
* AX6000S/AX3800S/AX3600S/AX2400Sシリーズ
* AX7800S/AX7800R/AX7700R/AX5400S/AX2000R/AX2500S/AX1200S/AX620Rシリーズ
5. 回避策
Apache HTTPdサーバでの回避策について解説します。個々の製品の回避策については、[4. 対策]を参照してください。
Apache HTTPD Security ADVISORY (UPDATE 3 - FINAL)
Range header DoS vulnerability Apache HTTPD prior to 2.2.20.
http://httpd.apache.org/security/CVE-2011-3192.txt
5.1 Rangeヘッダを許容するが、制限を加える。
HTTPdサーバ設定ファイルhttpd.confに、Rangeヘッダを許容するが、記述できる項目数に上限を設ける設定(下記設定例では上限値=5件)を追加します。運用上、回避策による影響が一番少なくなります。
Apache 2.2系
----- httpd.conf -----
# setenvif_module (SetEnvIf)を使用して、Rangeヘッダの項目数が
# 5件以下かどうかを判定する。
# 5件よりも大きい場合には、headers_module (RequestHeader)を使って、
# Rangeヘッダを無視する。
SetEnvIf Range (?:,.*?){5,5} bad-range=1
RequestHeader unset Range env=bad-range
# Request-Rangeヘッダは、古いブラウザ(MSIE3, Netscape 2 or 3)で
# 使われていた。Request-Rangeヘッダは無視する。
RequestHeader unset Request-Range
# 制限を越えたアクセスのログ(制限超過ログ)を取得する。
CustomLog logs/range.log common env=bad-range
Apache 2.0系
----- httpd.conf -----
# rewrite_module (RewriteCond)を使用して、Rangeヘッダの項目数が
# 5件以下かどうかを判定。
# 5件よりも大きい場合には、rewrite_module (RewriteRule)を使って、
# エラー(403 Forbidden)を返す。
RewriteEngine on
RewriteCond %{HTTP:range} !(^bytes=[^,]+(,[^,]+){0,4}$|^$) [NC]
RewriteRule .* - [F]
# Request-Rangeヘッダは、古いブラウザ(MSIE3, Netscape 2 or 3)で
# 使われていた。Request-Rangeヘッダは無視する。
RequestHeader unset Request-Range
5.2 Rangeヘッダを許容しない。
HTTPdサーバ設定ファイルhttpd.confに、Rangeヘッダを許容しない設定を追加します。ただし、ブラウザでのダウンロード中断・再開の機能が利用できなくなります(図2)。
Apache 2.2/2.0 系
----- httpd.conf -----
# headers_module (RequestHeader)を使って、RangeとRequest-Range
# ヘッダを無視する。
RequestHeader unset Range
RequestHeader unset Request-Range
図2:Firefoxにおけるダウンロード中断・再開の例
6. 関連情報
6.1 脆弱性識別
CVE-2011-3192
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-3192
JVNVU#405811
http://jvn.jp/cert/JVNVU405811/index.html
JVNDB-2011-002172
http://jvndb.jvn.jp/ja/contents/2011/JVNDB-2011-002172.html
6.2 注意喚起
JPCERT/CC
Apache HTTP Server のサービス運用妨害の脆弱性に関する注意喚起
https://www.jpcert.or.jp/at/2011/at110023.txt
IPA
ウェブサーバ「Apache HTTP Server」の脆弱性(CVE-2011-3192)について
http://www.ipa.go.jp/security/ciadr/vul/20110831-apache.html
cNotes: Current Status Notes
http://jvnrss.ise.chuo-u.ac.jp/csn/index.cgi?p=Apache+HTTPD+Security+ADVISORY+%28UPDATE+3+-+FINAL%29
7. 更新履歴
2011年10月03日
2011年09月30日
2011年09月08日
2011年09月07日
担当:寺田、大西/HIRT