web-dev-qa-db-ja.com

脆弱性スクリプトによるApacheサーバーのスキャンの防止

皆さんへの簡単な質問-私のhttpdログにはかなり頻繁に次のようなものがあります:

66.11.122.194 - - [29/Jan/2010:11:06:44 +0000] "GET HTTP/1.1 HTTP/1.1" 400 418 "-" "Toata dragostea mea pentru diavola"
66.11.122.194 - - [29/Jan/2010:11:06:44 +0000] "GET /roundcube//bin/msgimport HTTP/1.1" 404 417 "-" "Toata dragostea mea pentru diavola"
66.11.122.194 - - [29/Jan/2010:11:06:44 +0000] "GET /rc//bin/msgimport HTTP/1.1" 404 413 "-" "Toata dragostea mea pentru diavola"
66.11.122.194 - - [29/Jan/2010:11:06:44 +0000] "GET /mss2//bin/msgimport HTTP/1.1" 404 415 "-" "Toata dragostea mea pentru diavola"
66.11.122.194 - - [29/Jan/2010:11:06:45 +0000] "GET /mail//bin/msgimport HTTP/1.1" 404 415 "-" "Toata dragostea mea pentru diavola"
66.11.122.194 - - [29/Jan/2010:11:06:45 +0000] "GET /mail2//bin/msgimport HTTP/1.1" 404 416 "-" "Toata dragostea mea pentru diavola"
66.11.122.194 - - [29/Jan/2010:11:06:45 +0000] "GET /roundcubemail//bin/msgimport HTTP/1.1" 404 420 "-" "Toata dragostea mea pentru diavola"
...

脆弱性スキャンスクリプトというアイデアが浮かびます。私は自分のWebアプリを標準またはリモートの名前付きインストールにインストールしないので、ほとんどの場合404を返しますが、それでも見るのはイライラします。だから私の質問は、おそらくmod_rewriteや既知のブロックリストなどを使用して、そのような攻撃を検出/軽減する方法はありますか?それとも、これはWebサーバー管理者が単に我慢しなければならないことですか?

ありがとう。

4
user32616

mod_security または他のWebアプリケーションファイアウォール(waf)を使用できます。このようにして、リクエストは引き続きWebサーバーにヒットしますが、mod_securityは疑わしいとマークされたリクエストを除外します。

ワフを設定するにはさまざまな可能性があります。

  • 各Webサーバーで
  • 中央リバースプロキシ上

最善の解決策はセットアップに大きく依存するため、一般的な答えはありません。しかし、ドキュメントは、どのソリューションを採用するかを決定するのに役立つはずです。

考慮すべきもう1つのポイント:
wafはシステムをさらに複雑にしているので、それを使用するかどうかを確認してください。

2
Christian

常にあります Fail2Ban ; Apacheのログを監視し、1分以内に10404秒後に禁止するように設定します。

2
Chris S

簡単な答え-できません。 Webサーバーの観点からは、そのスクリプトは、誤動作しているものの、単なる別のブラウザーです。最善の方法は、ファイアウォールでそのようなスキャンを検出してブロックすることです。もちろん、詳細は使用するファイアウォールによって異なります。

1
John Gardeniers

ジョンが言ったように、あなたは本当にできません。

Mod_rewriteを使用していくつかの悪い要求をブロックしてみることができますが、それ以外はあまりありません。たとえば、クエリ文字列に[sysobject]が含まれるすべてのリクエストをブロックします(MSSQLは使用しませんが、多くのリクエストがあり、サイトの速度が低下する可能性があります)。また、mod_rewriteを使用する場合は、正当な要求をブロックしないようにしてください。

0
Dan Andreatta