久々のサーバ関連ネタです。
マイサーバは安定稼働中なので、細かい修正を除けば全く変更していないのですが、Apacheの脆弱性が見つかったので対応しました。
2chのサーバを落としたやつです。
ローカルのVMで試してみましたが、メモリを食べ、ぐんぐんCPU使用率が上がって、操作不能になりました。危険過ぎる。
個人サーバなので、直接攻撃を受ける可能性は低いと思いますが、考え得る一通りのセキュリティは施しているので、今回も対応する事にしました。
ちゃんとした対応はyumのApacheが更新されてからですが、暫定的な対応策が下記に書いてありましたので、一番影響の少なそうな1番で対応しました。
http://sourceforge.jp/magazine/11/08/25/0351236
Apacheの設定変更
# vi /etc/httpd/conf.d/CVE-2011-3192.conf
# Drop the Range header when more than 5 ranges. # CVE-2011-3192 SetEnvIf Range (?:,.*?){5,5} bad-range=1 RequestHeader unset Range env=bad-range # We always drop Request-Range; as this is a legacy # dating back to MSIE3 and Netscape 2 and 3. RequestHeader unset Request-Range
# apachectl configtest
※「Syntax OK」と表示されればOK
# apachectl graceful
※エラーが表示されなければOK
攻撃スクリプトを入手
http://pastebin.com/NCDv9eTh
上の方の「COPY TO CLIPBOARD」をクリック
一応、rootでなく一般ユーザで
$ vi apachepartial.pl
※クリップボードの内容を貼付け
$ chmod 700 apachepartial.pl
攻撃してみる
$ ./apachepartial.pl localhost / 30 1 80
↑http://localhost:80/、同時接続数:30、実行回数:1
↑URLはRedirectとかしてるとダメなので、適当なのがない場合は静的HTMLを準備する。
※CPUやメモリ使用量が増大しなければOK
※また、影響を受けている場合はスクリプトの実行時に時間が掛かる。