パスワードを忘れた? アカウント作成
751076 story
apache

Apache HTTP Serverの全てのバージョンにDDoS攻撃可能な脆弱性が見つかる 21

ストーリー by hayakawa
わかりやすいログが残るようですね 部門より
あるAnonymous Coward 曰く、

SourceForge.JP Magazineの記事によると、Apache HTTP Serverに存在する脆弱性(CVE-2011-3192)を突いたDoS攻撃ツール「Apache Killer」が出回っているとのこと。

対象となるバージョンは、1.3系および2.x系の全バージョンで、Rangeヘッダの処理に問題があるために、多数のパラメータを持つRangeヘッダを受け取るとメモリを大量消費し、最悪の場合サーバがハングアップする。

徳丸浩氏のブログなどによると、この「Apache Killer」は

Range:bytes=0-,5-0,5-1,5-2,5-3,5-4,5-5,5-6,……,5-1298,5-1299

を含むHEADリクエストをターゲットに送信するという、極めてシンプルなものであるようだ。

Apache HTTPD Security ADVISORYに、暫定的な対策法が紹介されている。なお1.3系のサポートはすでに終了しているため、"Note that, while popular, Apache 1.3 is deprecated."と明記されている。

  1. Use SetEnvIfまたはmod_rewriteを導入して、多数のパラメータが記述されたRengeヘッダは無視。その際、レガシーなRequest-Rangeヘッダも無視するように設定。
  2. リクエストフィールドのサイズを小さくする。
  3. RangeおよびRequest-Rangeヘッダを無視するように設定。
  4. Rangeヘッダーカウントモジュールを導入
  5. 暫定パッチの適用

Apache HTTP Server 2.2.20がリリースされているので、2.2系を使用中の場合は更新すればよいようです。2.0系については、まだリリースされていないようですので、回避策を参照し対処が必要なようです。
Cf.) Apache HTTP Server のサービス運用妨害の脆弱性に関する注意喚起

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2011年09月01日 10時29分 (#2012673)

    Apache HTTP Server 2.2.20がリリースされているので、2.2系を使用中の場合は更新すればよいようです。

    Debian Sqeeze(stable)だと2.2.16-6+squeeze2で対応済み。
    testingだと近々対応予定。
    unstableだと2.2.19-2で対応済み。
    oldstable2.2.9-10+lenny10で対応済み。
    http://www.debian.org/security/2011/dsa-2298 [debian.org]

    いずれも2.2.20に届いていないけど大丈夫という感じなんですよね。
    他のディストリでもかんな感じなんでしょうかね?

  • --
    And now for something completely different...
  • by Anonymous Coward on 2011年09月01日 10時13分 (#2012667)

    > Range: bytes=-1
    が「最後の1バイト」ではなく0-1と同じ意味に解釈されてしまうらしい。
    > 2. リクエストフィールドのサイズを小さくする。
    下手に絞るとCookieが食えなくなって動作がおかしくなったりするよ。2chがまさにそれでハマってた。datの差分取得ができなくなるからRangeの無視もできないし。
    PDFを置いていなければRangeのカウントを絞るのが一番副作用が少なげ

  • 手前味噌だが (スコア:3, 参考になる)

    by Anonymous Coward on 2011年09月01日 12時07分 (#2012744)

    25日に日記 [slashdot.jp]を書いたので、ご参考に。

  • DDoSの必要は無い (スコア:2, 参考になる)

    by Anonymous Coward on 2011年09月01日 10時08分 (#2012661)
    DDoSではなく、攻撃側が1台でも十分に DoSが発生しますよ。
  • "D"-DOS? (スコア:0, 既出)

    by Anonymous Coward on 2011年09月01日 10時08分 (#2012664)

    スクリプト一本で殺せるんだから distributed じゃないじゃん単なる DoS だよ

  • by Anonymous Coward on 2011年09月01日 12時40分 (#2012777)

    一週間前に騒がれてたときはゼロデイ事件だったけど、今では違いますね。
    対策済み新バージョンを待って記事にするのは、ゼロデイのダメージを下げる報道協定みたいなもの?

  • アレゲな私としては、どういうアルゴリズムで処理したら、
    メモリを大量消費することになるのかが知りたいのですが、
    どなたか解説いただけないでしょうか。

    • http://d.hatena.ne.jp/nice20/20110829/p1 [hatena.ne.jp]

      この辺りが回答っぽい。

      #「まず最も誤解されそうな点」の通りに誤解してたけどID

      親コメント
    • by Anonymous Coward

      リクエストされたとおりにレンジを処理しただけで、「大量消費」になる、ということでは?

      • by Anonymous Coward

        だとすると、なぜApacheだけ? そう考えるとおかしいでしょ、その意見は。

        • by Anonymous Coward

          検証してないから推測だけど、
          Rangeヘッダで重複領域を指定することがHTTPに規定されてないなら、400 Bad Requestを返したり、Rangeの重複部分を結合して返したりしてるのでは?
          仮に規定されていてちゃんと一つのパラメータに対して、それに応じた範囲のデータを返す必要があるならば、
          複数のパラメータ分のメモリを同時に確保することはせずに、一つずつメモリ確保して処理するという方法採ったりしてるのでしょう。

          検証してないので他のHTTPサーバでも同じ脆弱性が存在する可能性は否定できないけど

typodupeerror

吾輩はリファレンスである。名前はまだ無い -- perlの中の人

読み込み中...