回答:
Slowloris攻撃は、要求データを可能な限り低速で送信することで機能します。したがって、IPアドレスごとの帯域幅使用量を測定でき、あるしきい値を下回っている場合(既知のslowloris攻撃で帯域幅を測定することで確認できます)、攻撃を受けていることがわかります。
攻撃を防ぐために、ウェブサーバーソフトウェアを切り替えることをお勧めします。デフォルト設定では耐性のあるcherokeeを使用しています。nginxが脆弱かどうかは確認できませんが、lighttpdは脆弱です。また、耐性のあるWebサーバーをプロキシとして使用しても効果があるかどうかはわかりません。
詳細はこちら:http : //ha.ckers.org/blog/20090617/slowloris-http-dos/
レベル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モジュールをインストールしてセットアップします。例:
その後、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