Apache Webサーバーに対する「スローロリス」DOS攻撃に対する最善の防御方法


32

最近、「スローロリス」と呼ばれるスクリプトが注目を集めています。slowlorisの基本的な概念は新しい攻撃ではありませんが、最近の注意を考慮すると、一部のApache Webサイトに対する攻撃が少し増加していることがわかりました。

現時点では、これに対する100%の防御策は存在しないようです。

(これまでのところ)私たちが決定した最善の解決策は、MaxClientsを増やすことです。

もちろん、これは攻撃者のコンピューターの要件を増やすだけであり、実際にサーバーを100%保護するわけではありません。

もう1つのレポートは、Apacheサーバーの前でリバースプロキシ(Perlbalなど)を使用すると、攻撃を防ぐことができることを示しています。

mod_evasiveを使用して1つのホストからの接続数を制限し、mod_securityを使用して、slowlorisによって発行されたように見える要求を拒否することが、これまでの最善の防御策のようです。

ServerFaultの誰かがこのような攻撃を受けていますか?もしそうなら、それを防御/予防するためにどのような対策を実施しましたか?

注:この質問は、Windows IISサーバーが影響を受けないと理解しているApacheサーバー向けです。

回答:


22

私はそのような攻撃を経験しました...あなたが田舎にいてビールを飲むことになっている真夏の真ん中(6月23日)に:>

ApacheをVarnishの後ろに置きました。これは、スローロリスから保護するだけでなく、Webリクエストをかなり加速します。

また、iptables助けてくれました:

iptables -I INPUT -p tcp --dport 80 \
         -m connlimit --connlimit-above 20 --connlimit-mask 40 -j DROP

このルールは、1つのホストをポート80への20の接続に制限します。これは、悪意のないユーザーには影響しないはずですが、slowlorisは1つのホストから使用できなくなります。


4
iptablesルールの場合は+1。
ティム

1
ただ頭を上げます。「箱から出して」、ワニスはCookieを受信した場合、ページをキャッシュしません。これを回避するには、カスタム設定を行う必要があります。サンプルはサイトで入手でき、簡単に実装できます。
デイビッド

Varnishは非常にプログラム可能なため、何が起こっているのかを確認して対処するように構成できる場合があります。ただし、Apacheの前にプロキシを配置することで、Webサーバーからプロキシに問題を移動するだけだと思います。問題はまだ存在し、別の場所にあります。接続/ポートは引き続き使用されます。リストされたiptablesルール(またはファイアウォールに相当するもの)から始めて、プロキシを調べます。
デビッド

1
sloworis攻撃の問題は、Apacheのマルチスレッドモデル(および同様のモデルを使用する他のいくつかのWebサーバー)に限定されています。ワニスはそれを乗り切る必要があります。
シアン


3

すべてのApacheモジュールがスレッドセーフである場合、slowlorisはイベントまたはワーカーMPMに切り替えるだけで無効にできます。ref:ここに


0

現時点では、サーバー上のIPごとの最大同時接続数を制限することはこれ以上ないようです。


0

試すことができるユーザーパッチがあります。サーバーが受ける負荷に基づいてタイムアウトを変更しますが、そのステータスを考慮すると、いくつかの深刻なテストなしでは、実稼働マシンで使用したくない場合があります。見てくださいここに。


0

iptableベースのファイアウォールは、1 ipからの複数の接続からあなたを保護するはずです。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.