Slowlorisを検出するにはどうすればよいですか?


14

Slowlorisの攻撃を受けていたと確信しています。Webサーバーへの最大接続数を制限するiptablesルールを設定しましたが、それが本当にSlowloris攻撃であるかどうか、そしてそうであれば、攻撃者のIPアドレスを見つける方法を知る方法を知りたいです。私は本当に彼のISPにログオンを渡したいです。

ありがとう

回答:


5

Slowloris攻撃は、要求データを可能な限り低速で送信することで機能します。したがって、IPアドレスごとの帯域幅使用量を測定でき、あるしきい値を下回っている場合(既知のslowloris攻撃で帯域幅を測定することで確認できます)、攻撃を受けていることがわかります。

攻撃を防ぐために、ウェブサーバーソフトウェアを切り替えることをお勧めします。デフォルト設定では耐性のあるcherokeeを使用しています。nginxが脆弱かどうかは確認できませんが、lighttpdは脆弱です。また、耐性のあるWebサーバーをプロキシとして使用しても効果があるかどうかはわかりません。

詳細はこちら:http : //ha.ckers.org/blog/20090617/slowloris-http-dos/


10

レベル1:シンプルなスローロリスDOS


slowlorisの攻撃者のIPアドレスを見つけるには、次のコマンドラインを使用します。

netstat -ntu -4 -6 |  awk '/^tcp/{ print $5 }' | sed -r 's/:[0-9]+$//' |  sort | uniq -c | sort -n

これにより、接続されたIPごとにアクティブな接続の数がわかります

単純なDOS攻撃を受けている場合、1つまたはいくつかのIPを持つ子供、50〜100接続(またはそれ以上)を持つ子供は、おそらくドロップできるスローロリス攻撃者です。

これは、攻撃中にサーバーに接続している場合、「iptablesまたは任意のhlfwで」それらを「リアルタイム」で検出してドロップすることです。

Apacheログに処理時間(%Dまたは%T引数)を追加すると、ログを分析することにより、スローロリス攻撃の「事後分析」を検出するのに役立つ可能性があります。 。ログ設定については、http://httpd.apache.org/docs/current/mod/mod_log_config.htmlを参照してください

レベル2:本当に大きなスローロリスDDOS


netstat(リフレッシュにwatch netstatを使用)は、一部のIPが常に常に接続されていることを確認するのに役立ちます

slowlorisと戦うには、Apacheでreqtimeoutモジュールをインストールしてセットアップします。例:

http://pastebin.com/3BNNwfyb

その後、access_logに表示される408ごとに、slowlorisの攻撃者のIPが99.999%確実になります。

reqtimeout apacheモジュールを使用すると、適切な専用サーバー上で数千のIPと数千パケット/秒に簡単に対応できます。

Iptablesは次のようなことでも少し役立ちます:

iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 100 -j DROP
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.