web-dev-qa-db-ja.com

DDoSからWebサイトを保護するために、ブラウザーがWebサイトをチェックしていますか?

私がアクセスするいくつかのサイトでは、「example.comにアクセスする前にブラウザを確認してください。CloudFlareによるDDoS攻撃からの保護」という大まかなページが表示されます。

私のブラウザーについて正確に何がチェックされていますか?それはDDoS攻撃からどのように保護するのに役立ちますか?

Automatic DDoS protection from CloudFlare

111
user133587

ほとんどのサービス拒否(DOS)攻撃は、攻撃者側とターゲット側に含まれるリソース間の非対称性に依存しています。言い換えると、DOSが成功するには、クライアント側でリソースをほとんど必要としない(つまり、各クライアントが大量の要求を送信できる)アクションが必要ですが、サーバー側で大きなリソースを使用する必要があります(そのため、サーバーは負荷を処理するため)。

このため、DDOS攻撃(DOS攻撃の「分散」バージョン)は、実際の人間がブラウザのタブでリンクをクリックするのではなく、ボットが大量の並列リクエストをターゲットに送信することで明らかに攻撃されます。この結果、DDOSの「クライアント」は実際のブラウザではなく、多かれ少なかれブラウザをシミュレートするツールになります。

Cloudflare DDOS保護システムは 迅速に説明されています 以下のようにWebサイトにあります: "チェックが完了するまでの間、5秒間インタースティシャルページがサイトの訪問者に表示されます"

ここで2つのことに注意を向けます。

  • チェック:自動DDOSボットから実際のWebサイトユーザーを並べ替える最も明白な方法は、HTTPクライアントが実際のブラウザーかどうかをチェックすることです。テストのパネルに対してクライアントの動作をテストすることができます(投稿を参照 " ブラウザのフィンガープリントによるボットの検出 "インスタンス)そして、その結果を、クライアントが主張するブラウザの正規のインスタンスから期待される結果と比較します(たとえば、クライアントがWindows 10マシンで実行されるFirefoxバージョン52であると主張する場合、同じ特性を示しますか?) 。

  • 5秒:JavaScriptテストの実行と訪問者のリダイレクトは非常に高速でほぼ透過的な操作である可能性があるため、この「5秒」のタイムアウトは偶然そこにありますが、サーバーを優先して計算の非対称性を元に戻すことを意図しています。

    • そのような原則の最も軽いバージョンは、同じリクエストを再送信する前に5秒間待機(スリープ)するようクライアントに要求することです(Cloudflareページで説明されているように、Cookieに一意の識別子が保存されています)。これにより、DDOSクライアントは保留中のリダイレクトのキューを何らかの方法で処理するように強制され、最終的にDDOSプロセス全体の効果が低下します。

    • より残酷な代替策は、平均的なホームシステムで解決するために数秒を必要とするいくつかの数学的課題を解決するようにブラウザーに要求することです。そのような場合、攻撃者は続行する場合、これらの課題を解決するために計算能力を費やす以外に選択肢はありませんが、これを行うと、要求を送信する代わりにすべての攻撃者のリソースが課題の解決に忙しいため、非対称性が完全に無効になります。最後に、攻撃対象のシステムではなく、攻撃者のシステムを「DOS」化します。

101
WhiteWinterWolf

私が経験から知っていることを追加するだけです:Cloudflareは、非グラフィカルブラウザー(テスト済み:リンク、lynx)をブロックします。最初のページビューではなく、2番目のブラウザーからブロックします。これらのブラウザーは(おそらく)画像をロードせず、少なくとも表示せず、JavaScriptもサポートしていません。

どうやって知るの?壊れたグラフィカル環境で立ち往生していて、Webで回答を検索しています…

16
user2394284

「ブラウザチャレンジ」は何をしますか?

JavaScriptでの単純で平凡な計算。次に、ブラウザのCookieとしてUIDを設定します。したがって、次にWebサイトにアクセスしたときに、Cookieが存在するかどうか、および有効期限が切れていないかどうかが確認されます。 Cookieが存在しないか期限切れの場合、再び「チャレンジ」されます。

どうやって?

ページとJavaScriptの中に非表示のフォームがあり、フォームはランダムな「秘密の」番号を取得し、JavaScriptが計算してフォームをサーバーに送信します。

これは、レイヤー7のDDoS攻撃を軽減する最も平凡な方法です。これは、JavaScriptを実行して計算を実行できるのは実際の(ブラウザー)ブラウザーだけであるためです。たとえば、スローロリスはJavaScriptを実行できません。サーバーは計算を受信しないため、403/503を返します。

2
Norbert Boros

つまり、ページの所有者は、自分のページをDoS攻撃から保護するためにCloudflareサービスを雇いました。接続をチェックし、チェックに合格した場合にリダイレクトして最終ページを表示する中間ページの一種です。

彼らは、接続の発信元(IP)、パケットの種類、パケットのサイズ、受信したパケットの数(レート)、ブラウザのユーザーエージェントなどをチェックし、接続が正しいかどうかを測定します。合法かどうか、フィルタを通過するかどうか。

2
OscarAkaElvis