web-dev-qa-db-ja.com

アンチDoS WebSocketsのベストプラクティス

WebSocketサーバーのDoS攻撃を阻止するためのベストプラクティスは何ですか?

参照できる包括的なサイトまたはドキュメントはありますか?

13
user36556

最近では、ネットワーク内にある種の高額な物理ファイアウォールがなければ、トラフィックベースのDoSを阻止することはほぼ不可能です。ただし、DoSの他の形式について話している場合は、役立ついくつかのことができます。

  • 非同期/非ブロッキングソケットを使用します。悪意のあるユーザーがソケットへの接続をいくつでも開いて、使用可能なスレッドをすべて消費する可能性があります。 ( Slowlorisの脆弱性

  • ユーザーが1秒あたりのリクエストをいくつ送信できるかを制御して、ソケットがフラッディングしないようにします。

  • ユーザーがサーバーにリソースを集中的に使用して実行できないようにする

11
Ben Poulson

tl; dr:

「はい、WebSocketは単一のサーバーに無制限の数の接続を開く最初の方法です。そのため、DOS攻撃を防ぐために追加の保護が必要になる可能性があります。しかし、実際にこれを正しく実装する方法はありません...」( https://bugs.webkit.org/show_bug.cgi?id=32246#c4


私もそのトピックに興味がありますが、すべてのソースを読む時間がないので、(うまくいけば)役に立つリンクのコレクションとしてこれを開始します。各リンクへのコメントを歓迎


アップデート1(特にBlackhat-Presentation)