web-dev-qa-db-ja.com

CAPTCHAはDDoS攻撃をどのように軽減しますか?

これは簡単な質問のようですが、私は答えを見つけることができませんでした。

CAPTCHAの用途の1つは、サービス拒否攻撃の緩和に対処することです。攻撃者が過度のログイン試行を実行し、他のユーザーがログインできないままになっているとします。ログインする前に、CAPTCHAを解決する必要がある場合があります。しかし、この場合、同じトラフィック負荷でログインサービスが失敗しても、CAPTCHAサービスは引き続き実行されるのはなぜですか。なぜ機能するのですか?

13
overrider

CAPTCHAが正しい場合は、データベースでユーザーを検索するよりもcheckの方が簡単/高速です(これには、新しい接続、ハッシュなどが含まれる場合があります)。サーバーは最初にCAPTCHAを確認し、それが正しい場合はエラーを返さない場合、残りのログインを処理します。

CAPTCHA画像の作成にはいくつかの処理が必要ですが、これは非常に効果的な事前レンダリング画像、または他のサービス(reCAPTCHAなど)へのアウトソーシングでさえ実行できることに注意することが重要です。

11
Kent

[〜#〜]ユニコーンの魔法力[〜#〜]!!!

スナークは別として、CAPTCHAはD/DoS保護のための非常に貧弱なソリューションです。ある程度の効果はありますが、これは最小限であり、攻撃者が簡単に補正できます。

CAPTCHAはこの問題のwrong問題を解決し、それをbadly解決します。
CAPTCHAは接続をレート制限しようとしません。ログインメカニズムを攻撃から保護するためのものではありません。 CAPTCHAが攻撃者と正当なユーザーを区別することはできません。

それがが行う唯一のこと-そして、それではあまりよくない-は、驚くことではない:Tell Computers and Humans Apart。これは、すべてのコンピューターが敵であり、すべての人間が同盟国であるマトリックスのような現実にいた場合、実際に役立つかもしれません。
私たちの現実では、それは無意味な差別化です。表面的には、これは可能性がありますスクリプト化された攻撃を防ぐのに役立ちます-しかし、これが真実であっても(そうではありません)、たくさんの方法がありますその要件を回避するには-例CAPTCHAプロキシ(dem pr0nを表示する前にCAPTCHAを解決する必要がある場合)とCAPTCHAファーム(1000ポップあたり4 $でCAPTCHAを「解決」するためにいくつかの極東人を雇う場合)。
さらに、DDoSの場合-多くの場合、この攻撃は「政治運動」によって引き起こされます。つまり、人間の大きな集団が特定のサイトをダウン。そう、CAPTCHAはここでは無関係です。

それだけでなく、最先端のCAPTCHAは最新のOCRよりもはるかに遅れています。ユーザーが曲がりくねった画像を簡単に解読できるようにしたい場合は、コンピューターでもこれを実行できます。最高のCAPTCHAは20%のOCR成功率で測定されました。つまり、リクエストが成功するたびに、攻撃者は5つのリクエストを送信するだけで済みます。すでにDDoSの実装を計画している攻撃者にとっては、大きな違いをもたらすほどの規模ではありません。


ここと他のSOに関する私の他の投稿のいくつか:


TL; DR:
質問は誤った仮定に基づいています:

CAPTCHAはDDoS攻撃からどのように防御しますか?

そうではありません。
多くの場合、攻撃者からの少しの努力が必要になるかもしれませんが、それほど多くはありません。

20
AviD

Captchaは、攻撃者がCPUを介したDoSまたはメモリの枯渇を引き起こす可能性のあるデータベース集約型の操作を実行することを防ぎます。ただし、これは、キャプチャ画像の生成によって引き起こされるCPUとメモリの消費量が通常のページ要求のCPUおよびメモリの消費量よりも少なくなければならない場合にのみ当てはまります。これを確実にする1つの方法は、reCAPTCHAなどのオフサイトキャプチャサービスを使用することです。

通常、キャプチャのDoS防止の側面は、ログインのセキュリティ対策としてそれを使用して、自動ログイン試行を防止する副産物です。

11
Polynomial

そうではありませんが、その効果に対する主張が見られることがあります。 CAPTCHAは、Webサイトへのデータの自動送信を防ぐことを目的としています。 DDoS攻撃は、ほとんどの場合、データがHTTP経由で送信される前に、ネットワークレベルで発生します。 HTMLフォームがDoS(DDoSではない)攻撃に対して脆弱である場合、CAPTCHAは悪用を困難にしますが、適切な解決策はフォームを修正することであり、バンドエイド(CAPTCHA)を平手打ちしないことです。

2
SArcher

Captchasがサービス拒否攻撃に対抗できるとは思いません。 captchaアルゴリズムがCPUを集中的に使用している場合は、サイトにDoSingのスレッドをもたらす可能性さえあると思います。

サーバーでDoS攻撃を成功させるためには、攻撃者のコストは攻撃されたサーバーのコストよりも低くなければなりません。 captchasを使用しても、サーバーのコストは高くなります。サーバーはキャプチャを生成し、ページ全体をクライアントに送信する必要があります。

編集:要約すると、キャプチャの生成にコストがかかりすぎる場合、キャプチャは逆効果になる可能性があります。

2
theXs

実装方法によっては、ロボットを実際のユーザーと区別できるだけで、レイヤー7タイプの攻撃を緩和するのに十分であり、CAPTCHAを別のマシン/ IPでホストしている限り、トラフィックのみを転送できますキャプチャを通過しました。

また、冗長性のためにDNSラウンドロビンでこれらの複数のキャプチャプロキシを設定することをお勧めします。そうすると、パイプのサイズが大きくなり、パイプの飽和によりサーバーがダウンする可能性が大幅に低下します。

1
Tony Jones

CAPTCHAの用途の1つは、サービス拒否攻撃の緩和に対処することです。

それはCAPTCHAの使用ですか?私はそれがそのような攻撃でまったく助けになるとは思えません。

CAPTCHAフィールドが正しいかどうかは、リクエストが処理されるのを待機しているキューに置かれているだけの場合は、ほとんど関係ありません。

攻撃要求がHTTPサービスによって受け入れられた場合、それは成功しています。

リモートCAPTCHAサービスがどのように状況を改善することができるかわかりません。ハッカーがリクエストを行うのを防ぐことはできません。それが潜在的に行う唯一のことは、その後、画像を生成する必要がないので、メインサーバーの負荷を減らすことです。

DDoS攻撃はファイアウォールレイヤーでより適切に処理されます。ファイアウォールレイヤーでは、リクエストがWebサーバーに到達する前にドロップされる可能性があります。

1
user1751825

Webサーバーのnginxリバースプロキシとして機能する専用サーバーがある場合、 GoogleのreCAPTCHA は、レイヤー7フラッドを Cloudflare's CAPTCHA

自動フラッドは実際のWebサーバーに到達できません。CAPTCHAはログを確認し、レート制限を確認し、ブロックするのに BitNinja などのサードパーティのWAFを使用する時間を与えるためです。これらの攻撃。

現在は2020年であり、攻撃は毎日より複雑になっています。攻撃スクリプトはJavaScriptエンジンで実行される可能性があり、それらのJavaScriptチェックを無用にします。

0
Drugyn