
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."と明記されている。
- Use SetEnvIfまたはmod_rewriteを導入して、多数のパラメータが記述されたRengeヘッダは無視。その際、レガシーなRequest-Rangeヘッダも無視するように設定。
- リクエストフィールドのサイズを小さくする。
- RangeおよびRequest-Rangeヘッダを無視するように設定。
- Rangeヘッダーカウントモジュールを導入
- 暫定パッチの適用
Apache HTTP Server 2.2.20がリリースされているので、2.2系を使用中の場合は更新すればよいようです。2.0系については、まだリリースされていないようですので、回避策を参照し対処が必要なようです。
Cf.) Apache HTTP Server のサービス運用妨害の脆弱性に関する注意喚起
バージョンて難しい (スコア:4, 参考になる)
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に届いていないけど大丈夫という感じなんですよね。
他のディストリでもかんな感じなんでしょうかね?
Re:バージョンて難しい (スコア:3, 参考になる)
2.2.20がリリースされました (スコア:4, 参考になる)
日本Apacheユーザ会のアナウンス [apache.jp]
And now for something completely different...
2.2.20にはバグあり (スコア:3, 参考になる)
> Range: bytes=-1
が「最後の1バイト」ではなく0-1と同じ意味に解釈されてしまうらしい。
> 2. リクエストフィールドのサイズを小さくする。
下手に絞るとCookieが食えなくなって動作がおかしくなったりするよ。2chがまさにそれでハマってた。datの差分取得ができなくなるからRangeの無視もできないし。
PDFを置いていなければRangeのカウントを絞るのが一番副作用が少なげ
手前味噌だが (スコア:3, 参考になる)
25日に日記 [slashdot.jp]を書いたので、ご参考に。
DDoSの必要は無い (スコア:2, 参考になる)
"D"-DOS? (スコア:0, 既出)
スクリプト一本で殺せるんだから distributed じゃないじゃん単なる DoS だよ
報道協定 (スコア:0)
一週間前に騒がれてたときはゼロデイ事件だったけど、今では違いますね。
対策済み新バージョンを待って記事にするのは、ゼロデイのダメージを下げる報道協定みたいなもの?
Re: (スコア:0)
0-dayではないですね。4年前から分かっていた脆弱性ですよ。
http://seclists.org/bugtraq/2007/Jan/83 [seclists.org]
対処法などはわかった。しかし、ここはアレゲサイトなのですから、、、 (スコア:0)
アレゲな私としては、どういうアルゴリズムで処理したら、
メモリを大量消費することになるのかが知りたいのですが、
どなたか解説いただけないでしょうか。
Re:対処法などはわかった。しかし、ここはアレゲサイトなのですから、、、 (スコア:3, 興味深い)
http://d.hatena.ne.jp/nice20/20110829/p1 [hatena.ne.jp]
この辺りが回答っぽい。
#「まず最も誤解されそうな点」の通りに誤解してたけどID
Re: (スコア:0)
リクエストされたとおりにレンジを処理しただけで、「大量消費」になる、ということでは?
Re: (スコア:0)
だとすると、なぜApacheだけ? そう考えるとおかしいでしょ、その意見は。
Re: (スコア:0)
検証してないから推測だけど、
Rangeヘッダで重複領域を指定することがHTTPに規定されてないなら、400 Bad Requestを返したり、Rangeの重複部分を結合して返したりしてるのでは?
仮に規定されていてちゃんと一つのパラメータに対して、それに応じた範囲のデータを返す必要があるならば、
複数のパラメータ分のメモリを同時に確保することはせずに、一つずつメモリ確保して処理するという方法採ったりしてるのでしょう。
検証してないので他のHTTPサーバでも同じ脆弱性が存在する可能性は否定できないけど
Re: (スコア:0)
元のタレコミには2chのことも書いてあったのですが
編集者が何らかの理由で消したようです。
おそらく「どうして2chのことだけ書くんだ。
やっぱスラドは低能だな」みたいな話になるからでしょう。
Re: (スコア:0)
日記で書いていた人がいたのをアレたまで見かけたんで
それがストーリーとして掲載されるかと思ったんですけどねぇ
ここのApacheのアップデートが遅れてるとかいう理由から掲載しないつもりなのかな?と思いましたよ。
丁度スラドがアップデートされた後ですし、やっぱりそうだったんですかね。
Re: (スコア:0)
http://www.apache.jp/news/apache-http-server-2.2.20-released [apache.jp]