ページの本文へ

Hitachi

HIRT-PUB11005:日立製品におけるApache HTTPdサーバのRangeヘッダ処理に起因した脆弱性(CVE-2011-3192)への対応について

更新日: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. 影響を受けるシステム

  • Apache HTTPdサーバ2.x 系のすべてのバージョン[*1]
  • 上記Apache HTTPdサーバをベースとした日立製品
*1)
2011年08月31日、1.3系に影響がないことが判明し、影響を受けるバージョンは2.x系のみに変更となりました(図1)。

脆弱性(CVE-2011-3192)の対応経緯
図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におけるダウンロード中断・再開の例
図2:Firefoxにおけるダウンロード中断・再開の例

6. 関連情報

6.1 脆弱性識別

6.2 注意喚起

7. 更新履歴

2011年10月03日
  • 「脆弱性の影響を受ける弊社製品」を更新(Hitachi IT Operations製品、JP1製品、Hitachi Command Suite製品追記)しました。
2011年09月30日
  • 対策に「脆弱性の影響を受けない弊社製品」を追加しました。リンクを追加ならびに更新しました。
2011年09月08日
  • CVSSによる深刻度:現状値、関連情報:脆弱性識別を追記しました。
2011年09月07日
  • このページを新規作成および公開しました。

担当:寺田、大西/HIRT