web-dev-qa-db-ja.com

Wafをサービスとして開発する方法

最近、私は教育プロジェクトWAFをサービスとして開始しました。私の見解に従ってこのプロジェクトを開発するには、次のものが必要です。

WebアプリケーションファイアウォールはWebサーバーとインラインです。着信トラフィックと発信トラフィックを傍受して検査し、攻撃がWebサーバーに到達するのを防ぎ、要求元のクライアントへの機密データの漏洩を防ぎます。

  1. プロキシサーバー
  2. 検出エンジン
  3. 悪意のあるリクエストを検出するための署名

    クライアント---> WAFサーバー--->オリジンサーバー

クライアントがドメイン名にAレコードを追加するだけで、トラフィックがサーバーに転送され、フィルタリングされると元のサーバーに送信されるという考え方です。

私の質問は、最初に、クライアントの元のIPアドレスに要求を転送するこのサーバーを実装するためのいくつかのポインターを提供してください。

次に、ネームサーバーをどのように処理できますか?サーバーの元のIPアドレスが漏洩するため。そうすれば、WAFをバイパスするのは簡単です。

1
SSK

質問1に関して:

ほとんどのWebサーバーをリバースプロキシとしてセットアップできます(IIS、Apache、Nginx、さらにはNodeJSもすべて機能します)。 IISとNginxの方が速いので(必須ではありません)望ましいです(私の意見ですが、これは常に正しいとは限りません)。

IISをプロキシとして設定する手順は、 ここ にあります。

Nginxをリバースプロキシとして設定するための手順

使用できるVMの形で既製のWAFもあります。 barracuda はその一例です(内部でNginxを使用しているようです)

質問2に関して:

あなたは2つのことをすることができます

  1. webサーバーがWebプロキシのパブリックIPからの接続のみを受け入れるようにしてください。

  2. webサーバーは、プロキシSaaSのクライアント証明書を検証した後にのみ接続を許可します。 TLSが必要であり、Webサーバーはクライアント証明書の検証を実装する必要があります。

  3. webサーバーとプロキシの間でトンネル(VPN)を使用し、インターネットの他の部分からWebサーバーを非表示にします

それが役に立てば幸い。

2
JOW