web-dev-qa-db-ja.com

WebSocket用のアプリケーション層ファイアウォール?

私のチームは、クライアント用にAmazon AWSでイントラネットポータルを構築し、その上でWebSocketを使用して通知やその他のマイナーな処理を実行しました。ほとんどの場合、サーバーからイベントを送信しますが、クライアントがサーバーにユーザーの存在をすばやく通知できるようにするためにも使用します。

クライアントの要件の1つは、アプリケーションレベルのファイアウォールを使用して、悪意のある要求などを排除することでした。これを処理するためにSophosUTMをインストールしました。 HTTPトラフィックの場合、これはうまく機能します。ただし、UTMはWebSocketをサポートしていないため、基本的には、リクエストを盲目的にプロキシするように構成する必要がありました。私が完全に理解していない理由で(何時間もデバギングした後でも)、これは大きなボトルネックであり、すべてが遅くなりました(CPUとメモリの使用量は問題ありませんでしたが)。

次に、UTMがトラフィックをフィルタリングしていない場合は、nginxを挿入してソケットトラフィックを分割し、UTMに通常のトラフィックを処理させることにしました。この設定は非常にうまく機能し、パフォーマンスは素晴らしいです。

ただし、クライアントのセキュリティ担当者は、WebSocketトラフィックがスクリーニングされていないことを懸念しています。

したがって、3つの関連する質問があります。

  1. これは懸念事項ですか?そうでない場合、これを私ができるよりもよく説明することができるものはありますか?

  2. それが懸念される場合、私たちを助けるかもしれないアプリケーションファイアウォールはありますか?何をフィルタリングするのかはよくわかりませんが、それがファイアウォールの仕事だといいのですが。

編集:私は間違っていました、それはまだかなり些細なことですが、私たちは実際にソケットで双方向通信を行っています。これは、「ユーザーがこのタブを見ているか」、「ユーザーが通知を確認したか」などです。

4
Mike Caron

WebsocketをサポートするWAFが必要な場合は、 Wallarm を調べてください。ソフトウェアモジュールとしてNGINXに直接インストールされ、バージョン2.0以降のWebsocketを解析できます。詳細 ここ

1
Renata B