WAF は Web Application Firewall の略で、WebアプリへのHTTPリクエストを検査し、攻撃や不審なアクセスを止めるための仕組みです。
通常のファイアウォールがIPアドレスやポートなどを見ることが多いのに対して、WAFはURL、ヘッダー、Cookie、リクエスト本文、攻撃パターンなど、Webアプリ寄りの内容を見ます。
まず押さえたいポイント
- Webアプリの前段でHTTPリクエストを検査する
- SQLインジェクション、XSS、既知脆弱性を狙うアクセスなどを止める目的で使う
- CDNやリバースプロキシと一緒に提供されることが多い
- アプリの脆弱性修正を不要にするものではない
- 誤検知で正規ユーザーを止める可能性もある
どんな場面で使う?
公開Webサイト、管理画面、API、問い合わせフォーム、ログイン画面など、外部からHTTPアクセスを受ける場所で使われます。
Cloudflare WAF、AWS WAF、各種セキュリティサービスのWAF機能などが代表例です。
よくある誤解
WAFを入れればアプリのセキュリティ対策が不要になるわけではありません。
SQLインジェクション対策、XSS対策、認証、権限設計、CSRF対策、入力検証、ログ監視はアプリ側でも必要です。
WAFは、既知攻撃や明らかに怪しいリクエストを前段で減らす防御層として考える方が現実的です。
実務で見るポイント
WAFを有効にするときは、まずログを見ながら段階的に強くします。
いきなり強い遮断ルールを入れると、問い合わせフォーム、決済、管理画面、外部サービスのWebhookが誤って止まることがあります。
どのルールで止めたのか、正規ユーザーへの影響がないか、例外設定をどう管理するかを確認します。
小規模サイトでも、管理画面への攻撃、脆弱なプラグインを狙うアクセス、特定URLへの連続アクセスは普通に来ます。
WAFは万能ではありませんが、アプリ修正、アップデート、レート制限、監視と組み合わせると防御を厚くできます。