アプリケーションファイアウォールは、アプリケーションまたはサービスへのトラフィック、そこからのトラフィック、あるいはそれらによって生成されるトラフィックを制御するファイアウォールの一種です。

アプリケーションファイアウォール(アプリケーション層ファイアウォール)は、設定された一連のポリシーに基づいて、アプリケーションとの通信をブロックするか許可するかを判断します。

従来のファイアウォールは、通過する各パケットを検査し、CPUとの間のデータフローを制御します。アプリケーションファイアウォールはさらに、特定のアプリケーションによるファイルやコードの実行も制御します。これにより、侵入者がネットワークやサーバーへの侵入に成功した場合でも、悪意のあるコードを実行できません。

アプリケーションファイアウォールには、アクティブ型とパッシブ型があります。

アクティブ – アクティブ型アプリケーションファイアウォールは、実際に交換されるメッセージを含むすべての受信リクエストを、SQLインジェクション、パラメーターやCookieの改ざん、クロスサイトスクリプティングなどの既知の脆弱性に照らして能動的に検査します。「クリーン」と判断されたリクエストのみがアプリケーションに渡されます。

パッシブ – パッシブ型アプリファイアウォールは、侵入検知システム(IDS)と同様に、既知の脆弱性に照らしてすべての受信リクエストを検査します。ただし、潜在的な攻撃を検出しても、そのリクエストを能動的に拒否または遮断することはありません。

アプリケーションファイアウォールは通常、リモートで更新できるため、新たに発見された脆弱性を悪用する攻撃を防止できます。アプリケーションにセキュリティ専用のコードを組み込むには、開発とテストに長い期間を要するため、アプリケーションファイアウォールの方が最新の状態に保たれていることが少なくありません。

現在、最も一般的に見られるのは、Webアプリケーションとの間で送受信されるHTTP/Sトラフィックをフィルタリング、監視、ブロックする、Webアプリケーションファイアウォール(WAF)です。