«

»

9月 20

CentOS 5.8 に DoS攻撃(試験)ツール slowhttptest をインストールする

slowloris に続いて、もっと攻撃パターンの多彩なツール slowhttptest を見つけたので
使い方を書いておきます。

よいこの みんなへ !

slowhttptest は とっても あぶないから
code.zobe.jp や おともだちのサーバに向けて
つかうのは やめましょう!
おとうさん おかあさんと
いっしょに つかってね!

置き場所はこちらです。
http://code.google.com/p/slowhttptest/

見に行くと
slowhttptest
Application Layer DoS attack simulator

と書いてあります。

simulator? いやいやご冗談を。ちゃんとうちのサーバ落ちましたよ。

まず、ソースコードをダウンロードします。

w3m http://code.google.com/p/slowhttptest/downloads/list

ここから最新版のソースコード「slowhttptest-1.5.tar.gz(2012/09/07現在)」
を落としてきます。

そして展開

gzip -cd slowhttptest-1.5.tar.gz | tar xvf -

展開時に生成されたディレクトリに入ります。

cd slowhttptest-1.5

 

そうそう、

slowhttptest をコンパイルする前に、当方の環境では
以下のものが必要になりました。
インストールがまだならば、yumコマンドでインストールしておきます。

yum install gcc-c++
yum install openssl-devel

slowhttptest はこのままでもコンパイルできますが、
今回は、コンパイル後の配置先をつくっておきます。
間違えて使ったりすることのないように、今回は
配置先をホームディレクトリに設定しました。

mkdir /home/code/test
mkdir /home/code/test/slowhttptest

そして make と make install です。

./configure --prefix=/home/code/test/slowhttptest
make
make install

何か不足しているものがあれば、 ./configure の段階でエラーが出ると思います。
頑張って読んで対応してください…当方の環境では、上記2コンポーネントを
インストールしたあとなら、問題なく進めました。

こうすると、./configure のときに指定したディレクトリの下に
ファイルが作られます。

ls -al /home/code/test/slowhttptest

drwxr-xr-x 2 code code 4096  9月  9 18:51 bin (slowhttptestの実行ファイルが入っている)
drwxr-xr-x 3 code code 4096  9月  9 18:51 share (マニュアルが入っている)

このようにディレクトリが作成されます。
もし常用しそうなら /usr/local あたりに置くとよいでしょう。

実行してみましょう。

cd /home/code/test/slowhttptest/bin
./slowhttptest -h

…とみせかけて実行してません。

ヘルプを読むことができます。が、ごちゃごちゃしていて意味がわからないとおもいます。

 

わかりやすくするため、超解説を残しておきます。間違っていませんように…。

このツールで試すことができる攻撃は、4パターンあります。

  1. HTTP Header の送信をゆーっくりやるコネクションを一杯張ります。
  2. HTTP Body の送信をゆーっくりやるコネクションを一杯張ります。
  3. 範囲読み出しを大量に指定することで、サーバのメモリを枯渇させます。
  4. 受信をゆーっくりやるコネクションを一杯張ります。

コンビニで例えれば

  1. レジに品物を超ゆっくり置くいやがらせをたくさんの人でやって、レジを使用不能にする。
  2. レジでお金の支払いを超ゆっくりやるいやがらせをたくさんの人でやって、レジを使用不能にする。
  3. (おもいつかなかった)
  4. 支払いの済んだ商品を受け取るのが超おそいいやがらせをたくさんの人でやって、レジを使用不能にする。

コンビニもサーバも同じく営業不能になりますね。これでは、ふつうのお客さんが買い物できません。

上記4パターンを実現するには、こんなかんじでコマンドを実行すればいけます。

./slowhttptest -c 1000 -H -l 300 -g -o test_log -i 300 -r 200 -t GET -u http://example.com/ -x 24 -p 3
./slowhttptest -c 1000 -B -l 300 -g -o test_log -i 300 -r 200 -t GET -u http://example.com/ -x 24 -p 3
./slowhttptest -c 1000 -R -l 300 -g -o test_log -i 300 -r 200 -t GET -u http://example.com/ -x 24 -p 3
./slowhttptest -c 1000 -X -l 300 -g -o test_log -i 300 -r 200 -t GET -u http://example.com/ -x 24 -p 3

最初の -c のあとの数字が、いやがらせ要員の人数です。
その次にくる、H B R X が、上の例の 1 2 3 4 それぞれに該当します。
また、-u のうしろに攻撃対象を設定します。
なお、当ブログを攻撃するのは、お願いだからよしてください。いじめ、かっこわるい。

で、ためしに当ブログを攻撃してみたところ…
mod_slowloris を有効にした状態でも、B または X のオプションつきで動作させた slowhttptest の前に屈し、
営業停止になったのでした…。

そのうち、これらの攻撃に対する防衛方法を紹介したいと思います。

2 pings

  1. mod_security2 による slow DoS 攻撃対策 (1) CentOS 5.8 に mod_security2 をインストール だけ する » code.zobe.jp

    […] 先日はslowhttptestの威力により、当ブログサーバが陥落しサービス停止に陥りました。 このままではまずいです。そういうわけで… […]

  2. mod_security2 による slow DoS 攻撃対策 (3) Core Rule Set を導入、カスタマイズして、slow DoS 攻撃から身を守る » code.zobe.jp

    […] これにて、設定は完了しました。 さっそく slowhttptest を使って攻撃してみてください。 […]

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次の HTMLタグおよび属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>