4

node.jsのような非ブロッキングフレームワークを実行しているアプリケーションに対するDDoS攻撃の処理に関して、固有の長所または短所はありますか?

私が理解しているように、これらの攻撃は大量のリクエストでシステムリソースを過負荷にし、失敗させます。非ブロッキングフレームワークは、ブロッキング要求よりもはるかに多くの同時要求を処理できます。それは、本質的に非ブロッキングフレームワークを使用することがこれらのタイプの攻撃を軽減するのに役立つことを意味するべきではありませんか?

これらの攻撃を軽減するために他の要因が関係していることを私は理解していますが、他のすべての条件が同じであれば、これは正しい仮定ですか?

4

3 に答える 3

3

非ブロッキングサービスは、通常、ブロッキングサービスよりも多くのシステムリソースをユーザーが利用できるようにします。攻撃によってすべてのシステムリソースが使い果たされるまで、攻撃が発生している間も正当なユーザーが要求を実行できるという点で、非ブロッキングサービスのパフォーマンスが向上します。つまり、実際のユーザーは、システムが正当な要求の処理を開始する前に、攻撃者の偽の要求が完了するのを待つ必要はありません。しかし、システムリソースへの露出が大きいことを考えると、DDoS攻撃は非ブロッキングサービスでより効果的である可能性があります。

たとえば、制限要因がデータベースアクセスであるとします。非ブロッキングサービスには、ブロッキングサービスよりも多くのDB要求を行う能力があります。したがって、非ブロッキングサービスは正当なユーザー要求を受け入れる可能性がありますが、攻撃者の要求はDBの負荷をより適切に維持できるため、データベースアクセスを完了するのに苦労します。

したがって、「はい」と言いますが、ダウンストリームリソースのサイズが適切であることを確認できる場合に限り、非ブロッキングの方が適しています。

于 2012-06-24T16:49:36.850 に答える
2

DDoS攻撃は、ddns、Webサーバーなどのさまざまなサービスを標的にすることができ、データベースarは、サーバー自体またはCPUの過負荷、RAMのいっぱいになる、ディスクに多くのファイルを書き込もうとするなど、さまざまな影響を与える可能性があります。それ(今日はもっとまれです)または単に書き込むことができるより多くのデータを書き込みます。

あなたの質問を説明するDDoSの非常に一般的な使用法の1つは、サーバーが処理できるよりも多くの同時接続を作成することを目標としています。Webサーバーの一般的なデフォルト値は、接続を作成するための256回(または多くのシステムでは512回)の同時試行です。Linuxシステムでは、ここで値を手動で変更できます(例:/ proc / sys / net / ipv4 / tcp_max_syn_backlog)。したがって、接続(synフラグ付きのパケットの送信)以上のものを作成すると、サービス拒否が発生します。したがって、使用するフレームワークはそもそも意味がありません。

さらに、非ブロッキングフレームワークは、ブロッキングよりも1秒あたりのリクエスト数が多くなります。これは、多くの場合、攻撃者に役立ちます。一部のサーバーや構成では、これによりリクエストごとに1つのインスタンスが作成され、より多くの攻撃者を支援します。

だからあなたの仮定は間違っています。

于 2012-05-19T13:21:41.527 に答える
1

残念ながら、nodejsはDDoSを支援しません。これは、他のサーバーと同じように単純にオーバーロードされる可能性があり、非ブロッキングでは何も変更されないため、実際には、キューに入れずにさらに多くのリクエストを処理しようとするため、サーバーをより速く停止できます。

于 2012-06-22T17:16:47.847 に答える