webdesignkeys

CSSやjavascriptなどを利用した動的なサイト作りやwebデザインに関するネタを紹介!

Subscribe by RSS RSS Icon
Follow me Twitter Twitter Icon
 
 

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Comment

承認待ちコメント

このコメントは管理者の承認待ちです

2013.01.23 | | # [ edit ]

承認待ちコメント

このコメントは管理者の承認待ちです

2014.08.09 | | # [ edit ]

承認待ちコメント

このコメントは管理者の承認待ちです

2014.08.10 | | # [ edit ]

コメントの投稿













管理者にだけ表示を許可する
 

Apache Killerについて

apache_killer_top_e99_001.png

8月24日にapacheのメーリングリストでApache 1.3及び2.x系のバージョンに脆弱性があることが公開されました。それは,HTTPのget,headメソッドでrangeフィールドの指定を分割してリクエストすることで,メモリを大量に消費させることができるというものです。大変危険そうだったので色々調べてみました。
■Apache Killer
Apache HTTPD Security ADVISORYで,Apache 1.3/2.x系に脆弱性があることが公開されたわけですが,果たしてそれはどんな内容なのでしょうか?
問題になっているのが,HTTP要求ヘッダのRangeフィールドです。このRangeフィールドを指定すると,指定したバイト分のコンテンツを取得することができます。指定された分を返すという操作であれば,サーバーの負荷はほとんど変わりませんが,複数の範囲を同時に指定した場合には大量のメモリを使用していまいます。

RFC2616によれば,以下のようにrangeフィールド指定の範囲は重複しても良いことになっているそうです。

bytes=500-600,601-999
bytes=500-700,601-999

ただし,bytes=500-700,601-999のような冗長な指定の場合には,bytes=500-999を指定したのと同様な解釈をすることが期待されています。しかしながらApacheの実装では,これらの冗長な指定をまとめずに,重複した範囲を大量に生成します。従って,以下のような指定をするとApacheはそのとおりにコンテンツの分割処理を行いメモリを消費します。

Range: bytes=0-,5-0,5-1,5-2,5-3,5-4,5-5,5-6,5-7,5-8,5-9,
(~中略~)
5-1293,5-1294,5-1295,5-1296,5-1297,5-1298,5-1299

これらが,今回指摘された脆弱性の原因らしいです。
*Rangeフィールドについては,「水無月ばけらのえび日記」さんのRangeつきリクエストによるApacheのDoSとApache Killerの実力で詳しく説明されていますので,こちらを見てください。

■実験
実際にkillapache.plを使って手元のPCがどんな感じになるかを試してみました。perlで書かれているスクリプトで,forkでプロセスを大量に生成するようです。デフォルトでは,50になっており,引数で自由に変更できるみたいです。

とりあえず,システムモニタでCPU,メモリ,topコマンドでプロセスの状態をモニタ―してみます。

□環境
CPU : intel core 2 duo U7500
memory : 2GB
swap : 1.9GB
OS : Ubuntu10.10 32bit
Apache : 2.2.16

□実行
apache_killer_execute_e99_002.png


□システムモニタ
killapache.plを起動した瞬間に,CPUの使用率が100%になり,徐々にメモリが食いつぶされていく様子がわかります。
apache_killer_sysmonitor_e99_004.png


□topコマンド
apache2のプロセスで埋め尽くされてしまいました。
apache_killer_topcommand_e99_003.png


とこんな感じで,Apache killerによって意図も簡単にリソースが食いつぶされました。こんな状態だと,WEBサーバーなんて簡単に落ちてしまいますし,OOMkiller発動して何されるかわかりません。とっても危険だということがわかります。すでに脆弱性を修正した2.2.20がリリースされていますので早めに対処しましょう。


□youtubeでも計測した人が動画を挙げてるみたいですので,見たい人はどうぞ
Apache Killer httpd Remote Denial of Service



■Apache Killerとコンテンツデータサイズ

Apache Killerがメモリを大量に消費させることはわかりましたが,これはコンテンツのデータサイズにも影響されるみたいです。「Apache killerは危険~Apache killerを評価する上での注意~」によれば,取得するデータサイズによって使用メモリが24~96MBまで変化するとのこと。

なのでApache Killerが一番猛威を振るうのは,取得のデータサイズが1300バイト(メモリ負荷:96MB)以上であるということです。従って,サーバが,Apache Killerの攻撃に耐えるためには,最大プロセスメモリ×MaxClient以上のリソースが必要になります。今回の環境でapacheのMaxclientデフォルト値は,150なので,96MB×150 = 14400MB(14.4GB)となります。メモリとswap領域あわせても4GB弱なので全然足りませんね。



■最初VMwareでやってたんだけど・・・・・

Vmware上で試してみたけど,メモリ使用率が上がらなかった。ちょうど↓のような動画の状況になった。
理由はよくわからない・・・・・・

CPU  : intel core i7-2600k 3.4GHz
memory : 8GB

VM : VMware 3.1.4
os : Ubuntu 10.04
memory : 1GB
apache : 2.2.14


□apache killer perl script demonstration




Comment

承認待ちコメント

このコメントは管理者の承認待ちです

2013.01.23 | | # [ edit ]

承認待ちコメント

このコメントは管理者の承認待ちです

2014.08.09 | | # [ edit ]

承認待ちコメント

このコメントは管理者の承認待ちです

2014.08.10 | | # [ edit ]

コメントの投稿













管理者にだけ表示を許可する
 
| HOME | NEXT >>

FC2 template
fc2_template_question.jpg

Category

NEWS
 

Comment

Archives

Favorite
125x125 banner 1
125x125 banner 2
125x125 banner 3
125x125 banner 4

Object
CoRich word of mouth information
Web service is developed through word of mouth information. ⇒CoRich
web design keys fc2 blog ranking!!
It challenges the ranking on my site. Please click this links. ⇒FC2 Blog Ranking
Proin magna amet fermentum dignissim
Nulla gravida, lacus molestie convallis dolor sem suscipit nisl, ut pharetra erat leo in elit.
Fusce pulvinar euismod urna vel viverra
Quisque malesuada laoreet tellus vel iaculis. Morbi nulla leo euismod pulvinar erat.
Class aptent taciti sociosqu ad litora
Curabitur vestibulum est eu purus bibendum eu eleifend diam tempor. Fusce metus eros, faucibus ut hendrerit ac.

Links

 
 
 
 
 
 
Copyright Info.

Nulla enim nibh, conse ctetuer sed, vesti bulum eleme ntum, sagittis nec, diam. Mauris blan dit vehi cula neque. Read More

 
Other Links
 
 
 
 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。