web-dev-qa-db-ja.com

IPアドレスのブラックリストは、Webサイトの攻撃を防ぐための良い方法ですか?

私のウェブサイトにはIPアドレスのブラックリストがあります。 Webアプリケーションは、何らかの方法で、無効で不審な影響をすべて検出し、IPアドレスを記憶し、そのIPアドレスからの要求を拒否します。

だから私の質問は:この方法で攻撃を防ぐ良い方法、方法ですか?

要約(追加):

可能な限りすべての回答をまとめたいと思います。

  • ホワイトリスト(信頼できる場所)
  • グレイリスト(注目度の高いリスト)
  • 一時的なブロック
  • 静的、動的アドレス検出
  • スマートで柔軟な検出
12
garik

IPのブラックリスト化をあまり気にしないでください。

  • 共有IPの多くの状況(プロキシ、職場、ISPがロービングDHCPを使用しているなど)があるため、誤検知が多すぎます。
  • それを回避するのは簡単すぎる。本当の悪者が本当にあなたを攻撃したいのであれば、本当の悪者は別のIPを手に入れます。

IPアドレスの「グレーリスト」を提案します。つまり、悪いトラフィックを認識した場合は、それらのアドレスを「監視」します。

8
AviD

IPブラックリストは役立ちますが、セキュリティの唯一の手段としてこれに依存しないでください。

また、IPブロックや検索エンジンボットの禁止についても十分に注意する必要があります。また、疑わしい影響の誤検知であるIPのホワイトリストを維持することもできます。

5
VirtuosiMedia

疑わしい影響があまり厳しくない限り。良いユーザーをブロックしたくない。

3
James T

原則的には良いことができます。

ただし、IPアドレスをブロックする期間によって異なります。また、AOLを使用しているユーザーなど、一部のユーザーはプロキシサーバーを経由しているため、多くのユーザーが同じIPアドレスを共有しているため、多くのユーザーがブロックされる可能性があることを考慮してください。もう1つの考慮事項は、Officeや大学などです。同じIPを共有する多くのコンピューターが存在する可能性もあります。これは、1人のユーザーのアクションでブロックしてしまう可能性がある別の幅広い人々です。

ブロックの効果を制限するために、短期間にブロックするか、ユーザーエージェントとIPアドレスの組み合わせでブロックすることができます。

2
Mark Davidson

場合によります。アプリケーションがSMTPサーバーの場合、すべての着信トラフィックは静的IPからのものであると想定できます。つまり、メッセージが動的IPからのものである場合、それはおそらく何らかのボットネットから送信されたスパムまたはウイルスです。そのような場合は、接続を禁止することをお勧めします。これは良い習慣だと思います。

2
Paweł Dyda

一般的に私はうんそれはかなり効果的なコントロールになることができると思います。発生する可能性がある1つの問題は、ユーザーがプロキシ経由でアクセスしていることです。プロキシはすべて1つのIPアドレスから送信されているように見え、ブロックするとすべてブロックされます。 X-Forwarded-For ヘッダーを使用して、1つの送信元IPアドレスからの要求を区別できる場合がありますが、これは必ずしもすべてのプロキシされた要求に存在するわけではありません。

1
Rory McCune

たとえば、Rackspaceでは、通常ユーザーのIPアドレスである_SERVER [REMOTE_IP]が実際に負荷を担うプロキシサーバーであるサーバー構成に注意してください。

ただし、REMOTE_IPヘッダーは、ユーザーの実際のIPに関して、実際には唯一の偽装ヘッダーです。

たとえば、HTTP_X_CLUSTER_CLIENT_IPおよびHTTP_X_FORWARDED_FOR(例を挙げると)はすべて、攻撃者/攻撃システムによって偽装される可能性があります。

潜在的なヘッダーのカスケードアプローチを使用して入力をフィルターし、不良リクエストのIPアドレスを禁止するCMSアドオンセキュリティプラグインの多くは、最初に一般的なクライアントまたはプロキシ送信ヘッダーのほとんどをスタックする傾向があり、REMOTE_ADDRはリストの最後に、攻撃者にとってこれは簡単に迂回できるので、新しいクライアントIPアドレスが各不正な要求と共に送信される可能性があるため、実際にはアプリケーション全体が無意味になります。

クラスター化された構成で間違ったIPアドレスを禁止すると、Webサイトが禁止される可能性があります。また、なりすましIPの禁止を許可すると、攻撃者がWebサーバーまたはアップラインプロキシのなりすましIPをWebサーバーに送信して、同じ結果を招く可能性があります。

または、ホワイトリストに登録されたIPが使用されている場合、攻撃者はホワイトリストに登録されたIPを使用して不正リクエストを送信することもできます。

これらの状況で私が思いついた最良の方法は、REMOTE_IP以外のヘッダーが存在する場合、ルール番号1は常にそれらをフィルターしてそれらのヘッダーに実際にIPアドレスが含まれていることを確認し、次にそれらを使用してユーザーを決定しますただし、IPアドレスを使用する場合は、IP禁止(使用している場合)を無効にし、403ヘッダーとページdie()呼び出しを使用して、実際にIPアドレスを禁止するのではなく、実際の不正な要求をブロックします。

結局それはあなたが何よりも完了することを防ぎたい悪意のあるリクエストです。 IPアドレスを禁止することは、サービス拒否を作成するために、攻撃者が複数の匿名プロキシサーバーを介してサイトを攻撃している問題の詳細です。

1
Taipo